Francois Gouget : shell32/tests: Use GetProcAddress() on Shell_NotifyIconW( ) because it is missing on Windows 95.

Alexandre Julliard julliard at winehq.org
Tue Dec 18 07:34:49 CST 2007


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

Author: Francois Gouget <fgouget at free.fr>
Date:   Tue Dec 18 10:01:14 2007 +0100

shell32/tests: Use GetProcAddress() on Shell_NotifyIconW() because it is missing on Windows 95.

---

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

diff --git a/dlls/shell32/tests/systray.c b/dlls/shell32/tests/systray.c
index 9c97a4e..35a59ad 100644
--- a/dlls/shell32/tests/systray.c
+++ b/dlls/shell32/tests/systray.c
@@ -26,30 +26,35 @@
 
 
 static HWND hMainWnd;
+static BOOL (WINAPI *pShell_NotifyIconW)(DWORD,PNOTIFYICONDATAW);
 
 void test_cbsize(void)
 {
-    NOTIFYICONDATAW nidW;
     NOTIFYICONDATAA nidA;
 
-    ZeroMemory(&nidW, sizeof(nidW));
-    nidW.cbSize = NOTIFYICONDATAW_V1_SIZE;
-    nidW.hWnd = hMainWnd;
-    nidW.uID = 1;
-    nidW.uFlags = NIF_ICON|NIF_MESSAGE;
-    nidW.hIcon = LoadIcon(NULL, IDI_APPLICATION);
-    nidW.uCallbackMessage = WM_USER+17;
-    ok(Shell_NotifyIconW(NIM_ADD, &nidW), "NIM_ADD failed!\n");
+    if (pShell_NotifyIconW)
+    {
+        NOTIFYICONDATAW nidW;
 
-    /* using an invalid cbSize does work */
-    nidW.cbSize = 3;
-    nidW.hWnd = hMainWnd;
-    nidW.uID = 1;
-    ok(Shell_NotifyIconW(NIM_DELETE, &nidW), "NIM_DELETE failed!\n");
-    /* as icon doesn't exist anymore - now there will be an error */
-    nidW.cbSize = sizeof(nidW);
-    /* wine currently doesn't return error code put prints an ERR(...) */
-    todo_wine ok(!Shell_NotifyIconW(NIM_DELETE, &nidW), "The icon was not deleted\n");
+        ZeroMemory(&nidW, sizeof(nidW));
+        nidW.cbSize = NOTIFYICONDATAW_V1_SIZE;
+        nidW.hWnd = hMainWnd;
+        nidW.uID = 1;
+        nidW.uFlags = NIF_ICON|NIF_MESSAGE;
+        nidW.hIcon = LoadIcon(NULL, IDI_APPLICATION);
+        nidW.uCallbackMessage = WM_USER+17;
+        ok(pShell_NotifyIconW(NIM_ADD, &nidW), "NIM_ADD failed!\n");
+
+        /* using an invalid cbSize does work */
+        nidW.cbSize = 3;
+        nidW.hWnd = hMainWnd;
+        nidW.uID = 1;
+        ok(pShell_NotifyIconW(NIM_DELETE, &nidW), "NIM_DELETE failed!\n");
+        /* as icon doesn't exist anymore - now there will be an error */
+        nidW.cbSize = sizeof(nidW);
+        /* wine currently doesn't return error code put prints an ERR(...) */
+        todo_wine ok(!pShell_NotifyIconW(NIM_DELETE, &nidW), "The icon was not deleted\n");
+    }
 
     /* same for Shell_NotifyIconA */
     ZeroMemory(&nidA, sizeof(nidA));
@@ -77,6 +82,10 @@ START_TEST(systray)
     WNDCLASSA wc;
     MSG msg;
     RECT rc;
+    HMODULE hdll;
+
+    hdll = GetModuleHandleA("shell32.dll");
+    pShell_NotifyIconW = (void*)GetProcAddress(hdll, "Shell_NotifyIconW");
 
     wc.style = CS_HREDRAW | CS_VREDRAW;
     wc.cbClsExtra = 0;




More information about the wine-cvs mailing list