From 75d21c999e39cf5c1b3feb6e2c50cdc30a077325 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Thu, 2 Sep 2021 14:16:00 +0200 Subject: [PATCH] gdi32: Move GdiConvertToDevmodeW to gdidc.c. Signed-off-by: Jacek Caban Signed-off-by: Huw Davies Signed-off-by: Alexandre Julliard --- 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.@) */