diff --git a/reactos/lib/user32/misc/display.c b/reactos/lib/user32/misc/display.c index dc2e5101ed2..bca76e76544 100644 --- a/reactos/lib/user32/misc/display.c +++ b/reactos/lib/user32/misc/display.c @@ -200,15 +200,7 @@ EnumDisplaySettingsExA( { BOOL rc; UNICODE_STRING DeviceName; - LPDEVMODEW lpDevModeW; - - lpDevModeW = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(DEVMODEW) + lpDevMode->dmDriverExtra); - if ( lpDevModeW == NULL ) - { - SetLastError ( ERROR_OUTOFMEMORY ); - return FALSE; - } + DEVMODEW lpDevModeW; if ( !RtlCreateUnicodeStringFromAsciiz ( &DeviceName, (PCSZ)lpszDeviceName ) ) { @@ -216,16 +208,16 @@ EnumDisplaySettingsExA( return FALSE; } - lpDevModeW->dmSize = sizeof(DEVMODEW); - lpDevModeW->dmDriverExtra = 0; - - rc = NtUserEnumDisplaySettings ( &DeviceName, iModeNum, lpDevModeW, + memset(&lpDevModeW,0,sizeof(DEVMODEW)); + lpDevModeW.dmSize = sizeof(DEVMODEW); + + rc = NtUserEnumDisplaySettings ( &DeviceName, iModeNum, &lpDevModeW, dwFlags ); - RosRtlDevModeW2A ( lpDevMode, lpDevModeW ); + RosRtlDevModeW2A ( lpDevMode, &lpDevModeW ); RtlFreeUnicodeString ( &DeviceName ); - HeapFree ( GetProcessHeap(), 0, lpDevModeW ); + return rc; }