[PATCH 3/3] user32/tests: Import functions if possible.

Zhiyi Zhang zzhang at codeweavers.com
Tue Oct 22 03:45:53 CDT 2019


Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
 dlls/user32/tests/monitor.c | 126 +++++++++++-------------------------
 1 file changed, 36 insertions(+), 90 deletions(-)

diff --git a/dlls/user32/tests/monitor.c b/dlls/user32/tests/monitor.c
index 26ee28a122..906cb806aa 100644
--- a/dlls/user32/tests/monitor.c
+++ b/dlls/user32/tests/monitor.c
@@ -27,15 +27,6 @@
 #include <stdio.h>
 
 static HMODULE hdll;
-static LONG (WINAPI *pChangeDisplaySettingsExA)(LPCSTR, LPDEVMODEA, HWND, DWORD, LPVOID);
-static LONG (WINAPI *pChangeDisplaySettingsExW)(LPCWSTR, LPDEVMODEW, HWND, DWORD, LPVOID);
-static BOOL (WINAPI *pEnumDisplayDevicesA)(LPCSTR,DWORD,LPDISPLAY_DEVICEA,DWORD);
-static BOOL (WINAPI *pEnumDisplayMonitors)(HDC,LPRECT,MONITORENUMPROC,LPARAM);
-static BOOL (WINAPI *pGetMonitorInfoA)(HMONITOR,LPMONITORINFO);
-static BOOL (WINAPI *pGetMonitorInfoW)(HMONITOR,LPMONITORINFO);
-static HMONITOR (WINAPI *pMonitorFromPoint)(POINT,DWORD);
-static HMONITOR (WINAPI *pMonitorFromRect)(LPCRECT,DWORD);
-static HMONITOR (WINAPI *pMonitorFromWindow)(HWND,DWORD);
 static LONG (WINAPI *pGetDisplayConfigBufferSizes)(UINT32,UINT32*,UINT32*);
 
 static void init_function_pointers(void)
@@ -47,16 +38,7 @@ static void init_function_pointers(void)
     if(!p ## func) \
       trace("GetProcAddress(%s) failed\n", #func);
 
-    GET_PROC(ChangeDisplaySettingsExA)
-    GET_PROC(ChangeDisplaySettingsExW)
-    GET_PROC(EnumDisplayDevicesA)
-    GET_PROC(EnumDisplayMonitors)
     GET_PROC(GetDisplayConfigBufferSizes)
-    GET_PROC(GetMonitorInfoA)
-    GET_PROC(GetMonitorInfoW)
-    GET_PROC(MonitorFromPoint)
-    GET_PROC(MonitorFromRect)
-    GET_PROC(MonitorFromWindow)
 
 #undef GET_PROC
 }
@@ -69,7 +51,7 @@ static BOOL CALLBACK monitor_enum_proc(HMONITOR hmon, HDC hdc, LPRECT lprc,
 
     mi.cbSize = sizeof(mi);
 
-    ok(pGetMonitorInfoA(hmon, (MONITORINFO*)&mi), "GetMonitorInfo failed\n");
+    ok(GetMonitorInfoA(hmon, (MONITORINFO*)&mi), "GetMonitorInfo failed\n");
     if (mi.dwFlags & MONITORINFOF_PRIMARY)
         strcpy(primary, mi.szDevice);
 
@@ -226,20 +208,14 @@ static void test_enumdisplaydevices(void)
     int monitor_index;
     BOOL ret;
 
-    if (!pEnumDisplayDevicesA)
-    {
-        win_skip("EnumDisplayDevicesA is not available\n");
-        return;
-    }
-
     /* Doesn't accept \\.\DISPLAY */
     dd.cb = sizeof(dd);
-    ret = pEnumDisplayDevicesA("\\\\.\\DISPLAY", 0, &dd, 0);
+    ret = EnumDisplayDevicesA("\\\\.\\DISPLAY", 0, &dd, 0);
     ok(!ret, "Expect failure\n");
 
     /* Enumeration */
     for (flag_index = 0; flag_index < ARRAY_SIZE(flags); flag_index++)
-        for (adapter_index = 0; pEnumDisplayDevicesA(NULL, adapter_index, &dd, flags[flag_index]); adapter_index++)
+        for (adapter_index = 0; EnumDisplayDevicesA(NULL, adapter_index, &dd, flags[flag_index]); adapter_index++)
         {
             lstrcpyA(adapter_name, dd.DeviceName);
 
@@ -251,7 +227,7 @@ static void test_enumdisplaydevices(void)
 
             test_enumdisplaydevices_adapter(adapter_index, &dd, flags[flag_index]);
 
-            for (monitor_index = 0; pEnumDisplayDevicesA(adapter_name, monitor_index, &dd, flags[flag_index]);
+            for (monitor_index = 0; EnumDisplayDevicesA(adapter_name, monitor_index, &dd, flags[flag_index]);
                  monitor_index++)
                 test_enumdisplaydevices_monitor(adapter_index, monitor_index, adapter_name, &dd, flags[flag_index]);
         }
@@ -260,18 +236,12 @@ static void test_enumdisplaydevices(void)
     /* XP on Testbot doesn't report a monitor, whereas XP on real machine does */
     ok(broken(monitor_count == 0) || monitor_count > 0, "Expect at least one monitor found\n");
 
-    if (!pEnumDisplayMonitors || !pGetMonitorInfoA)
-    {
-        win_skip("EnumDisplayMonitors or GetMonitorInfoA are not available\n");
-        return;
-    }
-
-    ret = pEnumDisplayDevicesA(NULL, 0, &dd, 0);
+    ret = EnumDisplayDevicesA(NULL, 0, &dd, 0);
     ok(ret, "Expect success\n");
     lstrcpyA(primary_device_name, dd.DeviceName);
 
     primary_monitor_device_name[0] = 0;
-    ret = pEnumDisplayMonitors(NULL, NULL, monitor_enum_proc, (LPARAM)primary_monitor_device_name);
+    ret = EnumDisplayMonitors(NULL, NULL, monitor_enum_proc, (LPARAM)primary_monitor_device_name);
     ok(ret, "EnumDisplayMonitors failed\n");
     ok(!strcmp(primary_monitor_device_name, primary_device_name),
        "monitor device name %s, device name %s\n", primary_monitor_device_name,
@@ -313,12 +283,6 @@ static void test_ChangeDisplaySettingsEx(void)
     LONG res;
     int i;
 
-    if (!pChangeDisplaySettingsExA)
-    {
-        win_skip("ChangeDisplaySettingsExA is not available\n");
-        return;
-    }
-
     SetLastError(0xdeadbeef);
     res = EnumDisplaySettingsA(NULL, ENUM_CURRENT_SETTINGS, &dm);
     ok(res, "EnumDisplaySettings error %u\n", GetLastError());
@@ -334,7 +298,7 @@ static void test_ChangeDisplaySettingsEx(void)
 
     /* crashes under XP SP3 for large dmDriverExtra values */
     dm.dmDriverExtra = 1;
-    res = pChangeDisplaySettingsExA(NULL, &dm, NULL, CDS_TEST, NULL);
+    res = ChangeDisplaySettingsExA(NULL, &dm, NULL, CDS_TEST, NULL);
     ok(res == DISP_CHANGE_SUCCESSFUL,
        "ChangeDisplaySettingsExW returned %d, expected DISP_CHANGE_SUCCESSFUL\n", res);
     ok(dm.dmDriverExtra == 1, "ChangeDisplaySettingsExA shouldn't reset dmDriverExtra to 0\n");
@@ -356,7 +320,7 @@ static void test_ChangeDisplaySettingsEx(void)
 
     /* Apparently XP treats dmDriverExtra being != 0 as an error */
     dmW.dmDriverExtra = 1;
-    res = pChangeDisplaySettingsExW(NULL, &dmW, NULL, CDS_TEST, NULL);
+    res = ChangeDisplaySettingsExW(NULL, &dmW, NULL, CDS_TEST, NULL);
     if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
     {
         ok(res == DISP_CHANGE_SUCCESSFUL,
@@ -370,7 +334,7 @@ static void test_ChangeDisplaySettingsEx(void)
     memset(&dm, 0, sizeof(dm));
     dm.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
     dm.dmPelsWidth = width;
-    res = pChangeDisplaySettingsExA(NULL, &dm, NULL, CDS_TEST, NULL);
+    res = ChangeDisplaySettingsExA(NULL, &dm, NULL, CDS_TEST, NULL);
     ok(res == DISP_CHANGE_SUCCESSFUL ||
        res == DISP_CHANGE_BADMODE || /* Win98, WinMe */
        res == DISP_CHANGE_FAILED, /* NT4 */
@@ -380,7 +344,7 @@ static void test_ChangeDisplaySettingsEx(void)
     dmW.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
     dmW.dmPelsWidth = width;
     SetLastError(0xdeadbeef);
-    res = pChangeDisplaySettingsExW(NULL, &dmW, NULL, CDS_TEST, NULL);
+    res = ChangeDisplaySettingsExW(NULL, &dmW, NULL, CDS_TEST, NULL);
     if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED)
         ok(res == DISP_CHANGE_FAILED ||
            res == DISP_CHANGE_BADPARAM ||  /* NT4 */
@@ -397,7 +361,7 @@ static void test_ChangeDisplaySettingsEx(void)
         dm.dmBitsPerPel       = vid_modes_test[i].bpp;
         dm.dmDisplayFrequency = vid_modes_test[i].freq;
         dm.dmFields           = vid_modes_test[i].fields;
-        res = pChangeDisplaySettingsExA(NULL, &dm, NULL, CDS_TEST, NULL);
+        res = ChangeDisplaySettingsExA(NULL, &dm, NULL, CDS_TEST, NULL);
         ok(vid_modes_test[i].must_succeed ?
            (res == DISP_CHANGE_SUCCESSFUL || res == DISP_CHANGE_RESTART) :
            (res == DISP_CHANGE_SUCCESSFUL || res == DISP_CHANGE_RESTART ||
@@ -443,7 +407,7 @@ static void test_ChangeDisplaySettingsEx(void)
             ClipCursor(&virt);
         }
     }
-    res = pChangeDisplaySettingsExA(NULL, NULL, NULL, CDS_RESET, NULL);
+    res = ChangeDisplaySettingsExA(NULL, NULL, NULL, CDS_RESET, NULL);
     ok(res == DISP_CHANGE_SUCCESSFUL, "Failed to reset default resolution: %d\n", res);
 }
 
@@ -487,76 +451,64 @@ static void test_monitors(void)
         {0xdeadbeef, FALSE},
     };
 
-    if (!pMonitorFromPoint || !pMonitorFromWindow || !pMonitorFromRect)
-    {
-        win_skip("MonitorFromPoint, MonitorFromWindow, or MonitorFromRect is not available\n");
-        return;
-    }
-
     pt.x = pt.y = 0;
-    primary = pMonitorFromPoint( pt, MONITOR_DEFAULTTOPRIMARY );
+    primary = MonitorFromPoint( pt, MONITOR_DEFAULTTOPRIMARY );
     ok( primary != 0, "couldn't get primary monitor\n" );
 
-    monitor = pMonitorFromWindow( 0, MONITOR_DEFAULTTONULL );
+    monitor = MonitorFromWindow( 0, MONITOR_DEFAULTTONULL );
     ok( !monitor, "got %p, should not get a monitor for an invalid window\n", monitor );
-    monitor = pMonitorFromWindow( 0, MONITOR_DEFAULTTOPRIMARY );
+    monitor = MonitorFromWindow( 0, MONITOR_DEFAULTTOPRIMARY );
     ok( monitor == primary, "got %p, should get primary %p for MONITOR_DEFAULTTOPRIMARY\n", monitor, primary );
-    monitor = pMonitorFromWindow( 0, MONITOR_DEFAULTTONEAREST );
+    monitor = MonitorFromWindow( 0, MONITOR_DEFAULTTONEAREST );
     ok( monitor == primary, "got %p, should get primary %p for MONITOR_DEFAULTTONEAREST\n", monitor, primary );
 
     SetRect( &rc, 0, 0, 1, 1 );
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
     ok( monitor == primary, "got %p, should get primary %p\n", monitor, primary );
 
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTOPRIMARY );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTOPRIMARY );
     ok( monitor == primary, "got %p, should get primary %p\n", monitor, primary );
 
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTONEAREST );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTONEAREST );
     ok( monitor == primary, "got %p, should get primary %p\n", monitor, primary );
 
     /* Empty rect at 0,0 is considered inside the primary monitor */
     SetRect( &rc, 0, 0, -1, -1 );
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
     ok( monitor == primary, "got %p, should get primary %p\n", monitor, primary );
 
     /* Even if there is a monitor left of the primary, the primary will have the most overlapping area */
     SetRect( &rc, -1, 0, 2, 1 );
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
     ok( monitor == primary, "got %p, should get primary %p\n", monitor, primary );
 
     /* But the width of the rect doesn't matter if it's empty. */
     SetRect( &rc, -1, 0, 2, -1 );
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
     ok( monitor != primary, "got primary %p\n", monitor );
 
-    if (!pGetMonitorInfoA)
-    {
-        win_skip("GetMonitorInfoA is not available\n");
-        return;
-    }
-
     /* Search for a monitor that has no others equally near to (left, top-1) */
     SetRect( &rc, -1, -2, 2, 0 );
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
     nearest = primary;
     while (monitor != NULL)
     {
         ok( monitor != primary, "got primary %p\n", monitor );
         nearest = monitor;
         mi.cbSize = sizeof(mi);
-        ret = pGetMonitorInfoA( monitor, &mi );
+        ret = GetMonitorInfoA( monitor, &mi );
         ok( ret, "GetMonitorInfo failed\n" );
         SetRect( &rc, mi.rcMonitor.left-1, mi.rcMonitor.top-2, mi.rcMonitor.left+2, mi.rcMonitor.top );
-        monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
+        monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
     }
 
     /* tests for cbSize in MONITORINFO */
-    monitor = pMonitorFromWindow( 0, MONITOR_DEFAULTTOPRIMARY );
+    monitor = MonitorFromWindow( 0, MONITOR_DEFAULTTOPRIMARY );
     for (i = 0; i < ARRAY_SIZE(testdatami); i++)
     {
         memset( &mi, 0, sizeof(mi) );
         mi.cbSize = testdatami[i].cbSize;
-        ret = pGetMonitorInfoA( monitor, &mi );
+        ret = GetMonitorInfoA( monitor, &mi );
         ok( ret == testdatami[i].ret, "GetMonitorInfo returned wrong value\n" );
         if (ret)
             ok( (mi.dwFlags & MONITORINFOF_PRIMARY), "MONITORINFOF_PRIMARY flag isn't set\n" );
@@ -565,7 +517,7 @@ static void test_monitors(void)
 
         memset( &miexw, 0, sizeof(miexw) );
         miexw.cbSize = testdatamiexw[i].cbSize;
-        ret = pGetMonitorInfoW( monitor, (LPMONITORINFO)&miexw );
+        ret = GetMonitorInfoW( monitor, (LPMONITORINFO)&miexw );
         ok( ret == testdatamiexw[i].ret, "GetMonitorInfo returned wrong value\n" );
         if (ret)
             ok( (miexw.dwFlags & MONITORINFOF_PRIMARY), "MONITORINFOF_PRIMARY flag isn't set\n" );
@@ -578,7 +530,7 @@ static void test_monitors(void)
     {
         memset( &miexa, 0, sizeof(miexa) );
         miexa.cbSize = testdatamiexa[i].cbSize;
-        ret = pGetMonitorInfoA( monitor, (LPMONITORINFO)&miexa );
+        ret = GetMonitorInfoA( monitor, (LPMONITORINFO)&miexa );
         ok( ret == testdatamiexa[i].ret, "GetMonitorInfo returned wrong value\n" );
         if (ret)
             ok( (miexa.dwFlags & MONITORINFOF_PRIMARY), "MONITORINFOF_PRIMARY flag isn't set\n" );
@@ -591,7 +543,7 @@ static void test_monitors(void)
     {
         memset( &miexw, 0, sizeof(miexw) );
         miexw.cbSize = testdatamiexw[i].cbSize;
-        ret = pGetMonitorInfoW( monitor, (LPMONITORINFO)&miexw );
+        ret = GetMonitorInfoW( monitor, (LPMONITORINFO)&miexw );
         ok( ret == testdatamiexw[i].ret, "GetMonitorInfo returned wrong value\n" );
         if (ret)
             ok( (miexw.dwFlags & MONITORINFOF_PRIMARY), "MONITORINFOF_PRIMARY flag isn't set\n" );
@@ -601,13 +553,13 @@ static void test_monitors(void)
 
     SetRect( &rc, rc.left+1, rc.top+1, rc.left+2, rc.top+2 );
 
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTONULL );
     ok( monitor == NULL, "got %p\n", monitor );
 
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTOPRIMARY );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTOPRIMARY );
     ok( monitor == primary, "got %p, should get primary %p\n", monitor, primary );
 
-    monitor = pMonitorFromRect( &rc, MONITOR_DEFAULTTONEAREST );
+    monitor = MonitorFromRect( &rc, MONITOR_DEFAULTTONEAREST );
     ok( monitor == nearest, "got %p, should get nearest %p\n", monitor, nearest );
 }
 
@@ -617,7 +569,7 @@ static BOOL CALLBACK find_primary_mon(HMONITOR hmon, HDC hdc, LPRECT rc, LPARAM
     BOOL ret;
 
     mi.cbSize = sizeof(mi);
-    ret = pGetMonitorInfoA(hmon, &mi);
+    ret = GetMonitorInfoA(hmon, &mi);
     ok(ret, "GetMonitorInfo failed\n");
     if (mi.dwFlags & MONITORINFOF_PRIMARY)
     {
@@ -636,19 +588,13 @@ static void test_work_area(void)
     WINDOWPLACEMENT wp;
     BOOL ret;
 
-    if (!pEnumDisplayMonitors || !pGetMonitorInfoA)
-    {
-        win_skip("EnumDisplayMonitors or GetMonitorInfoA are not available\n");
-        return;
-    }
-
     hmon = 0;
-    ret = pEnumDisplayMonitors(NULL, NULL, find_primary_mon, (LPARAM)&hmon);
+    ret = EnumDisplayMonitors(NULL, NULL, find_primary_mon, (LPARAM)&hmon);
     ok(!ret && hmon != 0, "Failed to find primary monitor\n");
 
     mi.cbSize = sizeof(mi);
     SetLastError(0xdeadbeef);
-    ret = pGetMonitorInfoA(hmon, &mi);
+    ret = GetMonitorInfoA(hmon, &mi);
     ok(ret, "GetMonitorInfo error %u\n", GetLastError());
     ok(mi.dwFlags & MONITORINFOF_PRIMARY, "not a primary monitor\n");
     trace("primary monitor %s\n", wine_dbgstr_rect(&mi.rcMonitor));
-- 
2.23.0



More information about the wine-devel mailing list