[YAROTOWS] Reintegrate the branch. For a brighter future.
[reactos.git] / reactos / dll / win32 / user32 / misc / display.c
index 9090454..e9de23e 100644 (file)
@@ -457,7 +457,6 @@ ChangeDisplaySettingsExA(
   LONG rc;
   UNICODE_STRING DeviceName;
   PUNICODE_STRING pDeviceName = &DeviceName;
-  LPDEVMODEW pDevModeW;
 
   if (lpszDeviceName != NULL)
     {
@@ -471,14 +470,19 @@ ChangeDisplaySettingsExA(
     pDeviceName = NULL;
 
   if (lpDevMode != NULL)
+  {
+    LPDEVMODEW pDevModeW;
     pDevModeW = GdiConvertToDevmodeW(lpDevMode);
+    if(pDevModeW)
+    {
+      rc = NtUserChangeDisplaySettings ( pDeviceName, pDevModeW, hwnd, dwflags, lParam );
+      RtlFreeHeap(GetProcessHeap(), 0, pDevModeW);
+    }
+    else
+      rc = DISP_CHANGE_SUCCESSFUL;
+  }
   else
-    pDevModeW = NULL;
-
-  rc = NtUserChangeDisplaySettings ( pDeviceName, pDevModeW, hwnd, dwflags, lParam );
-
-  if (pDevModeW != NULL)
-    RtlFreeHeap(GetProcessHeap(), 0, pDevModeW);
+    rc = NtUserChangeDisplaySettings ( pDeviceName, NULL, hwnd, dwflags, lParam );
 
   if (lpszDeviceName != NULL)
     RtlFreeUnicodeString ( &DeviceName );
@@ -539,6 +543,6 @@ ChangeDisplaySettingsW(
   DWORD dwflags)
 {
   if(lpDevMode)
-    lpDevMode->dmDriverExtra = 0; 
+    lpDevMode->dmDriverExtra = 0;
   return ChangeDisplaySettingsExW ( NULL, lpDevMode, NULL, dwflags, 0 );
 }