[ros-diffs] [spetreolle] 41205: Implement CDS_TEST flag for IntChangeDisplaySettings. Set ERROR_CALL_NOT_IMPLEMENTED where needed.

spetreolle at svn.reactos.org spetreolle at svn.reactos.org
Sat May 30 14:27:00 CEST 2009


Author: spetreolle
Date: Sat May 30 16:26:59 2009
New Revision: 41205

URL: http://svn.reactos.org/svn/reactos?rev=41205&view=rev
Log:
Implement CDS_TEST flag for IntChangeDisplaySettings.
Set ERROR_CALL_NOT_IMPLEMENTED where needed.

Modified:
    trunk/reactos/subsystems/win32/win32k/objects/device.c

Modified: trunk/reactos/subsystems/win32/win32k/objects/device.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/objects/device.c?rev=41205&r1=41204&r2=41205&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/device.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/device.c [iso-8859-1] Sat May 30 16:26:59 2009
@@ -1202,7 +1202,7 @@
     BOOLEAN NoReset = FALSE;
     BOOLEAN Reset = FALSE;
     BOOLEAN SetPrimary = FALSE;
-    LONG Ret=0;
+    LONG Ret = DISP_CHANGE_SUCCESSFUL;
     NTSTATUS Status ;
 
     DPRINT1("display flags : %x\n",dwflags);
@@ -1230,14 +1230,17 @@
         /* Dynamically change graphics mode */
         DPRINT1("flag 0 UNIMPLEMENTED\n");
         return DISP_CHANGE_FAILED;
+        SetLastWin32Error(ERROR_CALL_NOT_IMPLEMENTED);
     }
 
     if ((dwflags & CDS_TEST) == CDS_TEST)
     {
-        /* Test reslution */
+        /* Test resolution */
         dwflags &= ~CDS_TEST;
-        DPRINT1("flag CDS_TEST UNIMPLEMENTED\n");
-        Ret = DISP_CHANGE_FAILED;
+        Status = IntEnumDisplaySettings(pDeviceName, ENUM_REGISTRY_SETTINGS, DevMode, 0);
+        if (!NT_SUCCESS(Status))
+            Ret = DISP_CHANGE_BADMODE;
+        return Ret;
     }
 
     if ((dwflags & CDS_FULLSCREEN) == CDS_FULLSCREEN)
@@ -1274,6 +1277,7 @@
         {
             DPRINT1("flag CDS_VIDEOPARAMETERS UNIMPLEMENTED\n");
             Ret = DISP_CHANGE_FAILED;
+            SetLastWin32Error(ERROR_CALL_NOT_IMPLEMENTED);
         }
 
     }
@@ -1387,6 +1391,7 @@
     if (dwflags != 0)
         Ret = DISP_CHANGE_BADFLAGS;
 
+    DPRINT("IntChangeDisplaySettings returning %x\n", Ret);
     return Ret;
 }
 



More information about the Ros-diffs mailing list