Paul Vriens : shell32/tests: Make tests run again on win95 and NT.

Alexandre Julliard julliard at winehq.org
Mon Mar 10 07:16:46 CDT 2008


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

Author: Paul Vriens <paul.vriens.wine at gmail.com>
Date:   Fri Mar  7 20:05:57 2008 +0100

shell32/tests: Make tests run again on win95 and NT.

---

 dlls/shell32/tests/systray.c |   43 ++++++++++++++++++++++++++---------------
 1 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/dlls/shell32/tests/systray.c b/dlls/shell32/tests/systray.c
index f7fc747..c672d67 100644
--- a/dlls/shell32/tests/systray.c
+++ b/dlls/shell32/tests/systray.c
@@ -27,6 +27,7 @@
 
 static HWND hMainWnd;
 static BOOL (WINAPI *pShell_NotifyIconW)(DWORD,PNOTIFYICONDATAW);
+static HMONITOR (WINAPI *pMonitorFromWindow)(HWND, DWORD);
 
 void test_cbsize(void)
 {
@@ -89,21 +90,28 @@ static void test_SHAppBarMessage(void)
     ok(hwnd == NULL || IsWindow(hwnd), "ret %p which is not a window\n", hwnd);
     ok(abd.hWnd == (HWND)0xcccccccc, "hWnd overwritten\n");
 
-    /* Presumably one can pass a hwnd with ABM_GETAUTOHIDEBAR to specify a monitor.
-       Pass the foreground window and check */
-    foregnd = GetForegroundWindow();
-    if(foregnd)
+    if (!pMonitorFromWindow)
     {
-        abd.hWnd = foregnd;
-        hwnd = (HWND)SHAppBarMessage(ABM_GETAUTOHIDEBAR, &abd);
-        ok(hwnd == NULL || IsWindow(hwnd), "ret %p which is not a window\n", hwnd);
-        ok(abd.hWnd == foregnd, "hWnd overwritten\n");
-        if(hwnd)
+        skip("MonitorFromWindow is not available\n");
+    }
+    else
+    {
+        /* Presumably one can pass a hwnd with ABM_GETAUTOHIDEBAR to specify a monitor.
+           Pass the foreground window and check */
+        foregnd = GetForegroundWindow();
+        if(foregnd)
         {
-            HMONITOR appbar_mon, foregnd_mon;
-            appbar_mon = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST);
-            foregnd_mon = MonitorFromWindow(foregnd, MONITOR_DEFAULTTONEAREST);
-            ok(appbar_mon == foregnd_mon, "Windows on different monitors\n");
+            abd.hWnd = foregnd;
+            hwnd = (HWND)SHAppBarMessage(ABM_GETAUTOHIDEBAR, &abd);
+            ok(hwnd == NULL || IsWindow(hwnd), "ret %p which is not a window\n", hwnd);
+            ok(abd.hWnd == foregnd, "hWnd overwritten\n");
+            if(hwnd)
+            {
+                HMONITOR appbar_mon, foregnd_mon;
+                appbar_mon = pMonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST);
+                foregnd_mon = pMonitorFromWindow(foregnd, MONITOR_DEFAULTTONEAREST);
+                ok(appbar_mon == foregnd_mon, "Windows on different monitors\n");
+            }
         }
     }
 
@@ -128,10 +136,13 @@ START_TEST(systray)
     WNDCLASSA wc;
     MSG msg;
     RECT rc;
-    HMODULE hdll;
+    HMODULE huser32, hshell32;
+
+    hshell32 = GetModuleHandleA("shell32.dll");
+    pShell_NotifyIconW = (void*)GetProcAddress(hshell32, "Shell_NotifyIconW");
 
-    hdll = GetModuleHandleA("shell32.dll");
-    pShell_NotifyIconW = (void*)GetProcAddress(hdll, "Shell_NotifyIconW");
+    huser32 = GetModuleHandleA("user32.dll");
+    pMonitorFromWindow = (void*)GetProcAddress(huser32, "MonitorFromWindow");
 
     wc.style = CS_HREDRAW | CS_VREDRAW;
     wc.cbClsExtra = 0;




More information about the wine-cvs mailing list