Marcus Meissner : winex11: Set last error on enumerating display settings.

Alexandre Julliard julliard at winehq.org
Wed Jan 9 07:02:12 CST 2008


Module: wine
Branch: master
Commit: 75de624377e46fdabe156074fc17a37a18c4a154
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=75de624377e46fdabe156074fc17a37a18c4a154

Author: Marcus Meissner <marcus at jet.franken.de>
Date:   Wed Jan  9 12:57:26 2008 +0100

winex11: Set last error on enumerating display settings.

---

 dlls/user32/tests/sysparams.c |   11 +++++++++++
 dlls/winex11.drv/settings.c   |    1 +
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c
index 8ce4b93..320bd04 100644
--- a/dlls/user32/tests/sysparams.c
+++ b/dlls/user32/tests/sysparams.c
@@ -2532,6 +2532,7 @@ static void test_EnumDisplaySettings(void)
     DEVMODE devmode;
     DWORD val;
     HDC hdc;
+    DWORD num;
 
     memset(&devmode, 0, sizeof(devmode));
     devmode.dmSize = sizeof(devmode);
@@ -2550,6 +2551,16 @@ static void test_EnumDisplaySettings(void)
     }
 
     ReleaseDC(0, hdc);
+
+    num = 1;
+    while (1) {
+	SetLastError (0xdeadbeef);
+	if (!EnumDisplaySettings(NULL, num++, &devmode)) {
+		DWORD le = GetLastError();
+		ok (le == ERROR_NO_MORE_FILES, "Last error on EnumDisplaySettings was %d, expected ERROR_NO_MORE_FILES\n", le);
+		break;
+	}
+    }
 }
 
 START_TEST(sysparams)
diff --git a/dlls/winex11.drv/settings.c b/dlls/winex11.drv/settings.c
index 373562b..d68b674 100644
--- a/dlls/winex11.drv/settings.c
+++ b/dlls/winex11.drv/settings.c
@@ -316,6 +316,7 @@ BOOL X11DRV_EnumDisplaySettingsEx( LPCWSTR name, DWORD n, LPDEVMODEW devmode, DW
         return TRUE;
     }
     TRACE("mode %d -- not present (%s)\n", n, handler_name);
+    SetLastError(ERROR_NO_MORE_FILES);
     return FALSE;
 }
 




More information about the wine-cvs mailing list