Release 961215 Sun Dec 15 16:18:15 1996 Alexandre Julliard <julliard@lrc.epfl.ch> * [graphics/x11drv/bitblt.c] Fixed BITBLT_StretchImage for partially covered or inverted bitmaps. * [objects/dib.c] Fixed the upside-down bitmap problem. Sat Dec 14 02:49:57 1996 Thomas Sandford <t.d.g.sandford@prds-grn.demon.co.uk> * [if1632/user32.spec] IsMenu and RemoveMenu added (use existing Win16 functions). * [include/windows.h] Corrections to BITMAPINFOHEADER structure. * [loader/module.c] [if1632/kernel32.spec] New function GetModuleFileName32A (heavily based on original Win16 version). * [loader/pe_image.c] Hack to allow files with short PE header to be loaded (e.g. COMDLG32.DLL from Win32s). * [misc/winsock_async.c] #if out EIDRM case (not present in FreeBSD). * [tools/build.c] Remove trailing comments from .s files generated by build as these break assembly when not run through pre-processor. * [windows/graphics.c] [if1632/gdi32.spec] New function Polyline32 - based on original Polyline. Needs metafile support adding still. Fri Dec 13 13:04:06 1996 Bruce Milner <Bruce.Milner@genetics.utah.edu> * [win32/findfile.c] [if1632/kernel.spec] FindFirstFile32A(): Use dos current directory for drive prefixes. FindNextFile32A(): Fill in file attribute information. Implement FindFirstFile16, FindNextFile16, FindClose16. * [files/drive.c] GetCurrentDirectory32A - Fix problem with null 3rd character in string. Tue Dec 10 14:49:07 1996 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de> * [windows/painting.c][windows/message.c] Don't use linked lists to call SendMessage(), for it might destroy the current listentry. * [misc/registry.c] Fixed temporary file saving (rename doesn't work across partitions). * [files/*.c] GetFullPathName*,GetDriveType32A fixed, CreateDirectoryEx*, GetVolumeInformation32W fixed. * [win32/process.c][if1632/kernel.spec][if1632/kernel32.spec] LoadLibrary* updated to new naming std., *32W added. * [win32/console.c] [include/wincon.h] Additions for NT commandline executables. * [if1632/advapi32.spec][if1632/kernel32.spec][win32/init.c] GetUserName32W added, GetComputerName32W added, GetStartupInfo32W added, GetSystemInfo updated to NT standard. * [windows/msgbox.c][misc/shell.c][windows/graphics.c] MessageBox32W, ShellAbout32W, CommandLineToArgvW, Polygon32 added. * [misc/crtdll.c][include/crtdll.h][if1632/crtdll.spec][misc/ntdll.c] [if1632/ntdll.spec] Lot of new unicode functions added (needed for NT). * [loader/pe_image.c] NtCurrentTeb added. Tue Dec 10 22:39:33 1996 Albrecht Kleine <kleine@ak.sax.de> * [windows/keyboard.c] Rewrote function TranslateAccelerator(). Mon Dec 9 14:52:13 1996 Slaven Rezic <eserte@cs.tu-berlin.de> * [windows/defwnd.c] DEFWND_SetText(): Set icon name. Sun Dec 8 23:30:00 1996 Alex Korobka <alex@trantor.pharm.sunysb.edu> * [loader/signal.c] [misc/winsock.c] [misc/winsock_async.c] [if1632/winsock.spec] IPC resource cleanup, bugfixes. * [windows/dialog.c] [windows/defdlg.c] More DefDlgProc() fixes. Sun Dec 8 14:01:42 1996 Vadim Strizhevsky <striv@ms.com> * [misc/clipboard.c] [objects/font.c] [win32/init.c] [win32/newfns.c] [windows/graphics.c] Added a few WIN32 functions which needed to run some win32 accessories. Clock should now work almost as well as 16 bit version. Add: RegisterClipboardFormat32W GetTextExtentExPoint32* GetModuleHandleW, DisableThreadLibraryCalls (empty stub), Polygon32 Fix: Polygon16 possible memory leak on error return.
diff --git a/objects/dc.c b/objects/dc.c index 70c0355..0d05d11 100644 --- a/objects/dc.c +++ b/objects/dc.c
@@ -15,6 +15,7 @@ #include "debug.h" #include "font.h" #include "xmalloc.h" +#include "string32.h" extern void CLIPPING_UpdateGCRegion( DC * dc ); /* objects/clipping.c */ @@ -512,9 +513,10 @@ /*********************************************************************** - * CreateDC (GDI.53) + * CreateDC16 (GDI.53) */ -HDC16 CreateDC( LPCSTR driver, LPCSTR device, LPCSTR output, const DEVMODE* initData ) +HDC16 CreateDC16( LPCSTR driver, LPCSTR device, LPCSTR output, + const DEVMODE16 *initData ) { DC * dc; const DC_FUNCTIONS *funcs; @@ -540,12 +542,42 @@ /*********************************************************************** + * CreateDC32A (GDI32.) + */ +HDC32 CreateDC32A( LPCSTR driver, LPCSTR device, LPCSTR output, + const DEVMODE32A *initData ) +{ + return CreateDC16( driver, device, output, (const DEVMODE16 *)initData ); +} + + +/*********************************************************************** + * CreateDC32W (GDI32.) + */ +HDC32 CreateDC32W( LPCWSTR driver, LPCWSTR device, LPCWSTR output, + const DEVMODE32W *initData ) +{ + LPSTR driverA = driver?STRING32_DupUniToAnsi(driver):NULL; + LPSTR deviceA = device?STRING32_DupUniToAnsi(device):NULL; + LPSTR outputA = output?STRING32_DupUniToAnsi(output):NULL; + HDC32 res; + + res = CreateDC16( driverA, deviceA, outputA, (const DEVMODE16 *)initData ); + if (driverA) free(driverA); + if (deviceA) free(deviceA); + if (outputA) free(outputA); + return res; +} + + +/*********************************************************************** * CreateIC (GDI.153) */ -HDC16 CreateIC( LPCSTR driver, LPCSTR device, LPCSTR output, const DEVMODE* initData ) +HDC16 CreateIC( LPCSTR driver, LPCSTR device, LPCSTR output, + const DEVMODE16* initData ) { /* Nothing special yet for ICs */ - return CreateDC( driver, device, output, initData ); + return CreateDC16( driver, device, output, initData ); }