Module: wine Branch: master Commit: 75d21c999e39cf5c1b3feb6e2c50cdc30a077325 URL: https://source.winehq.org/git/wine.git/?a=commit;h=75d21c999e39cf5c1b3feb6e2...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Sep 2 14:16:00 2021 +0200
gdi32: Move GdiConvertToDevmodeW to gdidc.c.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdi32/driver.c | 52 +--------------------------------------------------- dlls/gdi32/gdidc.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 51 deletions(-)
diff --git a/dlls/gdi32/driver.c b/dlls/gdi32/driver.c index 340476bca10..95d1583a98a 100644 --- a/dlls/gdi32/driver.c +++ b/dlls/gdi32/driver.c @@ -225,7 +225,7 @@ done:
/*********************************************************************** - * __wine_set_display_driver (GDI32.@) + * __wine_set_display_driver (win32u.@) */ void CDECL __wine_set_display_driver( HMODULE module ) { @@ -941,56 +941,6 @@ BOOL DRIVER_GetDriverName( LPCWSTR device, LPWSTR driver, DWORD size ) }
-/*********************************************************************** - * GdiConvertToDevmodeW (GDI32.@) - */ -DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *dmA) -{ - DEVMODEW *dmW; - WORD dmW_size, dmA_size; - - dmA_size = dmA->dmSize; - - /* this is the minimal dmSize that XP accepts */ - if (dmA_size < FIELD_OFFSET(DEVMODEA, dmFields)) - return NULL; - - if (dmA_size > sizeof(DEVMODEA)) - dmA_size = sizeof(DEVMODEA); - - dmW_size = dmA_size + CCHDEVICENAME; - if (dmA_size >= FIELD_OFFSET(DEVMODEA, dmFormName) + CCHFORMNAME) - dmW_size += CCHFORMNAME; - - dmW = HeapAlloc(GetProcessHeap(), 0, dmW_size + dmA->dmDriverExtra); - if (!dmW) return NULL; - - MultiByteToWideChar(CP_ACP, 0, (const char*) dmA->dmDeviceName, -1, - dmW->dmDeviceName, CCHDEVICENAME); - /* copy slightly more, to avoid long computations */ - memcpy(&dmW->dmSpecVersion, &dmA->dmSpecVersion, dmA_size - CCHDEVICENAME); - - if (dmA_size >= FIELD_OFFSET(DEVMODEA, dmFormName) + CCHFORMNAME) - { - if (dmA->dmFields & DM_FORMNAME) - MultiByteToWideChar(CP_ACP, 0, (const char*) dmA->dmFormName, -1, - dmW->dmFormName, CCHFORMNAME); - else - dmW->dmFormName[0] = 0; - - if (dmA_size > FIELD_OFFSET(DEVMODEA, dmLogPixels)) - memcpy(&dmW->dmLogPixels, &dmA->dmLogPixels, dmA_size - FIELD_OFFSET(DEVMODEA, dmLogPixels)); - } - - if (dmA->dmDriverExtra) - memcpy((char *)dmW + dmW_size, (const char *)dmA + dmA_size, dmA->dmDriverExtra); - - dmW->dmSize = dmW_size; - - return dmW; -} - - /***************************************************************************** * @ [GDI32.100] * diff --git a/dlls/gdi32/gdidc.c b/dlls/gdi32/gdidc.c index 4dc0db42571..0f9c8ede8c9 100644 --- a/dlls/gdi32/gdidc.c +++ b/dlls/gdi32/gdidc.c @@ -97,6 +97,55 @@ HDC WINAPI CreateICW( const WCHAR *driver, const WCHAR *device, const WCHAR *out return CreateDCW( driver, device, output, init_data ); }
+/*********************************************************************** + * GdiConvertToDevmodeW (GDI32.@) + */ +DEVMODEW *WINAPI GdiConvertToDevmodeW( const DEVMODEA *dmA ) +{ + DEVMODEW *dmW; + WORD dmW_size, dmA_size; + + dmA_size = dmA->dmSize; + + /* this is the minimal dmSize that XP accepts */ + if (dmA_size < FIELD_OFFSET(DEVMODEA, dmFields)) + return NULL; + + if (dmA_size > sizeof(DEVMODEA)) + dmA_size = sizeof(DEVMODEA); + + dmW_size = dmA_size + CCHDEVICENAME; + if (dmA_size >= FIELD_OFFSET(DEVMODEA, dmFormName) + CCHFORMNAME) + dmW_size += CCHFORMNAME; + + dmW = HeapAlloc( GetProcessHeap(), 0, dmW_size + dmA->dmDriverExtra ); + if (!dmW) return NULL; + + MultiByteToWideChar( CP_ACP, 0, (const char*) dmA->dmDeviceName, -1, + dmW->dmDeviceName, CCHDEVICENAME ); + /* copy slightly more, to avoid long computations */ + memcpy( &dmW->dmSpecVersion, &dmA->dmSpecVersion, dmA_size - CCHDEVICENAME ); + + if (dmA_size >= FIELD_OFFSET(DEVMODEA, dmFormName) + CCHFORMNAME) + { + if (dmA->dmFields & DM_FORMNAME) + MultiByteToWideChar( CP_ACP, 0, (const char*) dmA->dmFormName, -1, + dmW->dmFormName, CCHFORMNAME ); + else + dmW->dmFormName[0] = 0; + + if (dmA_size > FIELD_OFFSET(DEVMODEA, dmLogPixels)) + memcpy( &dmW->dmLogPixels, &dmA->dmLogPixels, dmA_size - FIELD_OFFSET(DEVMODEA, dmLogPixels) ); + } + + if (dmA->dmDriverExtra) + memcpy( (char *)dmW + dmW_size, (const char *)dmA + dmA_size, dmA->dmDriverExtra ); + + dmW->dmSize = dmW_size; + + return dmW; +} + /*********************************************************************** * DeleteDC (GDI32.@) */