diff --git a/reactos/include/win32k/dc.h b/reactos/include/win32k/dc.h index d244f9faf05..0e278e7b210 100644 --- a/reactos/include/win32k/dc.h +++ b/reactos/include/win32k/dc.h @@ -145,10 +145,10 @@ HDC STDCALL NtGdiCreateDC(PUNICODE_STRING Driver, PUNICODE_STRING Device, PUNICODE_STRING Output, CONST PDEVMODEW InitData); -HDC STDCALL NtGdiCreateIC(LPCWSTR Driver, - LPCWSTR Device, - LPCWSTR Output, - CONST PDEVMODEW DevMode); +HDC STDCALL NtGdiCreateIC(PUNICODE_STRING Driver, + PUNICODE_STRING Device, + PUNICODE_STRING Output, + CONST PDEVMODEW DevMode); BOOL STDCALL NtGdiDeleteDC(HDC hDC); BOOL STDCALL NtGdiDeleteObject(HGDIOBJ hObject); INT STDCALL NtGdiDrawEscape(HDC hDC, diff --git a/reactos/lib/gdi32/misc/stubsa.c b/reactos/lib/gdi32/misc/stubsa.c index ea348b4354b..c98857610c8 100644 --- a/reactos/lib/gdi32/misc/stubsa.c +++ b/reactos/lib/gdi32/misc/stubsa.c @@ -1,4 +1,4 @@ -/* $Id: stubsa.c,v 1.25 2003/11/15 15:18:06 weiden Exp $ +/* $Id: stubsa.c,v 1.26 2003/12/13 19:27:09 weiden Exp $ * * reactos/lib/gdi32/misc/stubs.c * @@ -69,6 +69,7 @@ CreateICA( { NTSTATUS Status; LPWSTR lpszDriverW, lpszDeviceW, lpszOutputW; + UNICODE_STRING Driver, Device, Output; DEVMODEW dvmInitW; HDC rc = 0; @@ -89,10 +90,13 @@ CreateICA( { if ( lpdvmInit ) RosRtlDevModeA2W ( &dvmInitW, (const LPDEVMODEA)lpdvmInit ); - - rc = NtGdiCreateIC ( lpszDriverW, - lpszDeviceW, - lpszOutputW, + + RtlInitUnicodeString(&Driver, lpszDriverW); + RtlInitUnicodeString(&Device, lpszDeviceW); + RtlInitUnicodeString(&Output, lpszOutputW); + rc = NtGdiCreateIC ( &Driver, + &Device, + &Output, lpdvmInit ? &dvmInitW : NULL ); HEAP_free ( lpszOutputW ); diff --git a/reactos/lib/gdi32/misc/stubsw.c b/reactos/lib/gdi32/misc/stubsw.c index 481f96414d5..f6efb2de24f 100644 --- a/reactos/lib/gdi32/misc/stubsw.c +++ b/reactos/lib/gdi32/misc/stubsw.c @@ -1,4 +1,4 @@ -/* $Id: stubsw.c,v 1.22 2003/12/12 21:37:39 weiden Exp $ +/* $Id: stubsw.c,v 1.23 2003/12/13 19:27:10 weiden Exp $ * * reactos/lib/gdi32/misc/stubs.c * @@ -51,9 +51,17 @@ CreateICW( CONST DEVMODEW * lpdvmInit ) { - return NtGdiCreateIC ( lpszDriver, - lpszDevice, - lpszOutput, + UNICODE_STRING Driver, Device, Output; + + if(lpszDriver) + RtlInitUnicodeString(&Driver, lpszDriver); + if(lpszDevice) + RtlInitUnicodeString(&Device, lpszDevice); + if(lpszOutput) + RtlInitUnicodeString(&Output, lpszOutput); + return NtGdiCreateIC ((lpszDriver ? &Driver : NULL), + (lpszDevice ? &Device : NULL), + (lpszOutput ? &Output : NULL), (CONST PDEVMODEW)lpdvmInit ); } diff --git a/reactos/subsys/win32k/objects/dc.c b/reactos/subsys/win32k/objects/dc.c index bd2443d0b64..791cda67110 100644 --- a/reactos/subsys/win32k/objects/dc.c +++ b/reactos/subsys/win32k/objects/dc.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: dc.c,v 1.111 2003/12/13 15:49:32 weiden Exp $ +/* $Id: dc.c,v 1.112 2003/12/13 19:27:10 weiden Exp $ * * DC.C - Device context functions * @@ -800,14 +800,13 @@ NtGdiCreateDC(PUNICODE_STRING Driver, } HDC STDCALL -NtGdiCreateIC(LPCWSTR Driver, - LPCWSTR Device, - LPCWSTR Output, - CONST PDEVMODEW DevMode) +NtGdiCreateIC(PUNICODE_STRING Driver, + PUNICODE_STRING Device, + PUNICODE_STRING Output, + CONST PDEVMODEW DevMode) { /* FIXME: this should probably do something else... */ - //return NtGdiCreateDC(Driver, Device, Output, DevMode); - return NULL; + return NtGdiCreateDC(Driver, Device, Output, DevMode); } BOOL STDCALL