Vitaliy Margolen : gdi: Device name returned from EnumDisplayDevices is valid for CreateDC.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jan 3 06:37:26 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 9561d6e29cf781c9395aa58d1315ff1f1c9f6388
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=9561d6e29cf781c9395aa58d1315ff1f1c9f6388

Author: Vitaliy Margolen <wine-patch at kievinfo.com>
Date:   Tue Jan  3 12:05:54 2006 +0100

gdi: Device name returned from EnumDisplayDevices is valid for CreateDC.

---

 dlls/gdi/driver.c         |    4 +++-
 dlls/user/tests/monitor.c |    8 ++++++++
 2 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/dlls/gdi/driver.c b/dlls/gdi/driver.c
index 29c1f47..c9ac552 100644
--- a/dlls/gdi/driver.c
+++ b/dlls/gdi/driver.c
@@ -263,11 +263,13 @@ const DC_FUNCTIONS *DRIVER_load_driver( 
     HMODULE module;
     struct graphics_driver *driver;
     static const WCHAR displayW[] = { 'd','i','s','p','l','a','y',0 };
+    static const WCHAR display1W[] = {'\\','\\','.','\\','D','I','S','P','L','A','Y','1',0};
 
     EnterCriticalSection( &driver_section );
 
     /* display driver is a special case */
-    if (!strcmpiW( name, displayW ))
+    if (!strcmpiW( name, displayW ) || 
+        !strcmpiW( name, display1W ))
     {
         driver = load_display_driver();
         LeaveCriticalSection( &driver_section );
diff --git a/dlls/user/tests/monitor.c b/dlls/user/tests/monitor.c
index 3fdd5c7..f98ba0b 100644
--- a/dlls/user/tests/monitor.c
+++ b/dlls/user/tests/monitor.c
@@ -67,6 +67,7 @@ static void test_enumdisplaydevices(void
     while(1)
     {
         BOOL ret;
+        HDC dc;
         ret = pEnumDisplayDevicesA(NULL, num, &dd, 0);
         ok(ret || num != 0, "EnumDisplayDevices fails with num == 0\n");
         if(!ret) break;
@@ -75,6 +76,13 @@ static void test_enumdisplaydevices(void
             strcpy(primary_device_name, dd.DeviceName);
             primary_num = num;
         }
+        if(dd.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP)
+        {
+            /* test creating DC */
+            dc = CreateDCA(dd.DeviceName, NULL, NULL, NULL);
+            ok(dc != NULL, "Failed to CreateDC(\"%s\") err=%ld\n", dd.DeviceName, GetLastError());
+            DeleteDC(dc);
+        }
         num++;
     }
     ok(primary_num != -1, "Didn't get the primary device\n");




More information about the wine-cvs mailing list