shell32/tests: Use GetProcAddress() on Shell_NotifyIconW() because it is missing on Windows 95.
Francois Gouget
fgouget at free.fr
Tue Dec 18 03:01:14 CST 2007
---
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;
--
1.5.3.4
More information about the wine-patches
mailing list