Update NOTIFYICONDATAA

Francois Gouget fgouget at free.fr
Thu Aug 19 12:02:30 CDT 2004


In recent platform SDKs NOTIFYICONDATA has more fields. I checked Wine's
code and, as far as I can tell, adding the new fields should not cause
problems.


Changelog:

 * include/shellapi.h
   dlls/shell32/tests/generated.c

   Add new fields to the NOTIFYICONDATA structure so it matches the
latest platform SDK.
   Update shell32/tests/generated.c. It now works when compiled witht eh
Windows headers.


Index: include/shellapi.h
===================================================================
RCS file: /var/cvs/wine/include/shellapi.h,v
retrieving revision 1.26
diff -u -r1.26 shellapi.h
--- include/shellapi.h	1 Apr 2004 21:01:04 -0000	1.26
+++ include/shellapi.h	18 Aug 2004 10:49:03 -0000
@@ -345,7 +345,16 @@
 	UINT uFlags;
 	UINT uCallbackMessage;
 	HICON hIcon;
-	CHAR szTip[64];
+	CHAR szTip[128];
+	DWORD dwState;
+	DWORD dwStateMask;
+	CHAR szInfo[256];
+	union {
+	    UINT uTimeout;
+	    UINT uVersion;
+	} DUMMYUNIONNAME;
+	CHAR szInfoTitle[64];
+	DWORD dwInfoFlags;
 } NOTIFYICONDATAA, *PNOTIFYICONDATAA;

 typedef struct _NOTIFYICONDATAW
@@ -355,7 +364,16 @@
 	UINT uFlags;
 	UINT uCallbackMessage;
 	HICON hIcon;
-	WCHAR szTip[64];
+	WCHAR szTip[128];
+	DWORD dwState;
+	DWORD dwStateMask;
+	WCHAR szInfo[256];
+	union {
+	    UINT uTimeout;
+	    UINT uVersion;
+	} DUMMYUNIONNAME;
+	WCHAR szInfoTitle[64];
+	DWORD dwInfoFlags;
 } NOTIFYICONDATAW, *PNOTIFYICONDATAW;

 DECL_WINELIB_TYPE_AW(NOTIFYICONDATA)
Index: dlls/shell32/tests/generated.c
===================================================================
RCS file: /var/cvs/wine/dlls/shell32/tests/generated.c,v
retrieving revision 1.6
diff -u -r1.6 generated.c
--- dlls/shell32/tests/generated.c	16 Aug 2004 19:46:09 -0000	1.6
+++ dlls/shell32/tests/generated.c	19 Aug 2004 14:15:36 -0000
@@ -650,27 +635,31 @@
 static void test_pack_NOTIFYICONDATAA(void)
 {
     /* NOTIFYICONDATAA (pack 1) */
-    TEST_TYPE(NOTIFYICONDATAA, 88, 1);
     TEST_FIELD(NOTIFYICONDATAA, DWORD, cbSize, 0, 4, 1);
     TEST_FIELD(NOTIFYICONDATAA, HWND, hWnd, 4, 4, 1);
     TEST_FIELD(NOTIFYICONDATAA, UINT, uID, 8, 4, 1);
     TEST_FIELD(NOTIFYICONDATAA, UINT, uFlags, 12, 4, 1);
     TEST_FIELD(NOTIFYICONDATAA, UINT, uCallbackMessage, 16, 4, 1);
     TEST_FIELD(NOTIFYICONDATAA, HICON, hIcon, 20, 4, 1);
-    TEST_FIELD(NOTIFYICONDATAA, CHAR[64], szTip, 24, 64, 1);
+    TEST_FIELD(NOTIFYICONDATAA, CHAR[128], szTip, 24, 128, 1);
+    TEST_FIELD(NOTIFYICONDATAA, DWORD, dwState, 152, 4, 1);
+    TEST_FIELD(NOTIFYICONDATAA, DWORD, dwStateMask, 156, 4, 1);
+    TEST_FIELD(NOTIFYICONDATAA, CHAR[256], szInfo, 160, 256, 1);
 }

 static void test_pack_NOTIFYICONDATAW(void)
 {
     /* NOTIFYICONDATAW (pack 1) */
-    TEST_TYPE(NOTIFYICONDATAW, 152, 1);
     TEST_FIELD(NOTIFYICONDATAW, DWORD, cbSize, 0, 4, 1);
     TEST_FIELD(NOTIFYICONDATAW, HWND, hWnd, 4, 4, 1);
     TEST_FIELD(NOTIFYICONDATAW, UINT, uID, 8, 4, 1);
     TEST_FIELD(NOTIFYICONDATAW, UINT, uFlags, 12, 4, 1);
     TEST_FIELD(NOTIFYICONDATAW, UINT, uCallbackMessage, 16, 4, 1);
     TEST_FIELD(NOTIFYICONDATAW, HICON, hIcon, 20, 4, 1);
-    TEST_FIELD(NOTIFYICONDATAW, WCHAR[64], szTip, 24, 128, 1);
+    TEST_FIELD(NOTIFYICONDATAW, WCHAR[128], szTip, 24, 256, 1);
+    TEST_FIELD(NOTIFYICONDATAW, DWORD, dwState, 280, 4, 1);
+    TEST_FIELD(NOTIFYICONDATAW, DWORD, dwStateMask, 284, 4, 1);
+    TEST_FIELD(NOTIFYICONDATAW, WCHAR[256], szInfo, 288, 512, 1);
 }

 static void test_pack_PAPPBARDATA(void)
@@ -684,14 +673,12 @@
 {
     /* PNOTIFYICONDATAA */
     TEST_TYPE(PNOTIFYICONDATAA, 4, 4);
-    TEST_TYPE_POINTER(PNOTIFYICONDATAA, 88, 1);
 }

 static void test_pack_PNOTIFYICONDATAW(void)
 {
     /* PNOTIFYICONDATAW */
     TEST_TYPE(PNOTIFYICONDATAW, 4, 4);
-    TEST_TYPE_POINTER(PNOTIFYICONDATAW, 152, 1);
 }

 static void test_pack_PRINTEROP_FLAGS(void)



-- 
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
 "Only wimps use tape backup: _real_ men just upload their important stuff on
       ftp, and let the rest of the world mirror it ;)" -- Linus Torvalds



More information about the wine-patches mailing list