gdi: Device name returned from EnumDisplayDevices is valid for
CreateDC.
Vitaliy Margolen
wine-patch at kievinfo.com
Sat Dec 31 16:55:37 CST 2005
ChangeLog:
gdi: Device name returned from EnumDisplayDevices is valid for CreateDC.
According to msdn and test device name is valid driver name to call CreateDC on.
dlls/gdi/driver.c | 4 +++-
dlls/user/tests/monitor.c | 8 ++++++++
2 files changed, 11 insertions(+), 1 deletions(-)
-------------- next part --------------
504b592b170805e2936898b3e021c0b2e988a4b5
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-patches
mailing list