Update the generated shell32 tests

Francois Gouget fgouget at free.fr
Tue Sep 7 07:54:56 CDT 2004


This patch updates the shell32 generated tests. The hitch is that
winapi_test was choking on this declaration

    QCMINFO_IDMAP const* pIdMap;

because it did not expect the 'const'. So the patch includes a small fix
to c_parser.pm.

It also contains a couple of fixes to shlobj.h as I discovered some
missing pack directives and a couple incorrect field names.


Changelog:

 * include/shlobj.h
   dlls/shell32/shellord.c
   dlls/shell32/tests/generated.c
   tools/winapi/c_parser.pm
   tools/winapi/tests.dat

   Fix c_parser.pm so it handles 'const' preceeding a '*'.
   Add missing #pragma pack directives for the new shlobj.h types.
   Fix some field names in CSFV and QCMINFO.
   Update the generated tests to also check shtypes.h and test some more
types.


-- 
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
                 There are 10 types of people in the world...
               those who understand binary and those who don't.
-------------- next part --------------
Index: include/shlobj.h
===================================================================
RCS file: /var/cvs/wine/include/shlobj.h,v
retrieving revision 1.92
diff -u -r1.92 shlobj.h
--- include/shlobj.h	23 Aug 2004 18:10:02 -0000	1.92
+++ include/shlobj.h	5 Sep 2004 22:57:34 -0000
@@ -295,10 +295,10 @@
 
 typedef struct _CSFV
 {
-  UINT             uSize;
+  UINT             cbSize;
   IShellFolder*    pshf;
   IShellView*      psvOuter;
-  LPCITEMIDLIST    pidlFolder;
+  LPCITEMIDLIST    pidl;
   LONG             lEvents;
   LPFNVIEWCALLBACK pfnCallback;
   FOLDERVIEWMODE   fvm;
@@ -365,6 +365,7 @@
 #define SFVM_GETDEFERREDVIEWSETTINGS  92 /* undocumented */
 
 /* Types and definitions for the SFM_* parameters */
+#include <pshpack8.h>
 
 #define QCMINFO_PLACE_BEFORE          0
 #define QCMINFO_PLACE_AFTER           1
@@ -382,7 +383,7 @@
 
 typedef struct _QCMINFO
 {
-    HMENU hMenu;
+    HMENU hmenu;
     UINT indexMenu;
     UINT idCmdFirst;
     UINT idCmdLast;
@@ -403,6 +404,8 @@
     UINT uFlags;
 } TBINFO, *LPTBINFO;
 
+#include <poppack.h>
+
 /****************************************************************************
 *	SHShellFolderView_Message API
 */
Index: dlls/shell32/shellord.c
===================================================================
RCS file: /var/cvs/wine/dlls/shell32/shellord.c,v
retrieving revision 1.126
diff -u -r1.126 shellord.c
--- dlls/shell32/shellord.c	6 Sep 2004 20:24:10 -0000	1.126
+++ dlls/shell32/shellord.c	6 Sep 2004 23:52:32 -0000
@@ -963,7 +963,7 @@
 	HRESULT hRes;
 
 	TRACE("sf=%p pidl=%p cb=%p mode=0x%08x parm=%p\n",
-	  psvcbi->pshf, psvcbi->pidlFolder, psvcbi->pfnCallback,
+	  psvcbi->pshf, psvcbi->pidl, psvcbi->pfnCallback,
 	  psvcbi->fvm, psvcbi->psvOuter);
 
 	psf = IShellView_Constructor(psvcbi->pshf);
Index: dlls/shell32/tests/generated.c
===================================================================
RCS file: /var/cvs/wine/dlls/shell32/tests/generated.c,v
retrieving revision 1.12
diff -u -r1.12 generated.c
--- dlls/shell32/tests/generated.c	6 Sep 2004 20:29:53 -0000	1.12
+++ dlls/shell32/tests/generated.c	6 Sep 2004 23:52:33 -0000
@@ -824,6 +824,13 @@
     TEST_TYPE_POINTER(LPCITEMIDLIST, 3, 1);
 }
 
+static void test_pack_LPCSHITEMID(void)
+{
+    /* LPCSHITEMID */
+    TEST_TYPE(LPCSHITEMID, 4, 4);
+    TEST_TYPE_POINTER(LPCSHITEMID, 3, 1);
+}
+
 static void test_pack_LPITEMIDLIST(void)
 {
     /* LPITEMIDLIST */
@@ -831,6 +838,12 @@
     TEST_TYPE_POINTER(LPITEMIDLIST, 3, 1);
 }
 
+static void test_pack_LPSHELLDETAILS(void)
+{
+    /* LPSHELLDETAILS */
+    TEST_TYPE(LPSHELLDETAILS, 4, 4);
+}
+
 static void test_pack_LPSHITEMID(void)
 {
     /* LPSHITEMID */
@@ -838,6 +851,19 @@
     TEST_TYPE_POINTER(LPSHITEMID, 3, 1);
 }
 
+static void test_pack_LPSTRRET(void)
+{
+    /* LPSTRRET */
+    TEST_TYPE(LPSTRRET, 4, 4);
+}
+
+static void test_pack_SHELLDETAILS(void)
+{
+    /* SHELLDETAILS (pack 1) */
+    TEST_FIELD(SHELLDETAILS, int, fmt, 0, 4, 1);
+    TEST_FIELD(SHELLDETAILS, int, cxChar, 4, 4, 1);
+}
+
 static void test_pack_SHITEMID(void)
 {
     /* SHITEMID (pack 1) */
@@ -846,6 +872,12 @@
     TEST_FIELD(SHITEMID, BYTE[1], abID, 2, 1, 1);
 }
 
+static void test_pack_STRRET(void)
+{
+    /* STRRET (pack 4) */
+    TEST_FIELD(STRRET, UINT, uType, 0, 4, 4);
+}
+
 static void test_pack_AUTO_SCROLL_DATA(void)
 {
     /* AUTO_SCROLL_DATA (pack 1) */
@@ -908,6 +940,17 @@
     TEST_FIELD(CIDA, UINT[1], aoffset, 4, 4, 1);
 }
 
+static void test_pack_CSFV(void)
+{
+    /* CSFV (pack 1) */
+    TEST_FIELD(CSFV, UINT, cbSize, 0, 4, 1);
+    TEST_FIELD(CSFV, IShellFolder*, pshf, 4, 4, 1);
+    TEST_FIELD(CSFV, IShellView*, psvOuter, 8, 4, 1);
+    TEST_FIELD(CSFV, LPCITEMIDLIST, pidl, 12, 4, 1);
+    TEST_FIELD(CSFV, LONG, lEvents, 16, 4, 1);
+    TEST_FIELD(CSFV, LPFNVIEWCALLBACK, pfnCallback, 20, 4, 1);
+}
+
 static void test_pack_DROPFILES(void)
 {
     /* DROPFILES (pack 1) */
@@ -1009,6 +1052,12 @@
     TEST_TYPE_POINTER(LPCABINETSTATE, 12, 1);
 }
 
+static void test_pack_LPCSFV(void)
+{
+    /* LPCSFV */
+    TEST_TYPE(LPCSFV, 4, 4);
+}
+
 static void test_pack_LPDROPFILES(void)
 {
     /* LPDROPFILES */
@@ -1044,6 +1093,12 @@
     TEST_TYPE_POINTER(LPFILEGROUPDESCRIPTORW, 596, 1);
 }
 
+static void test_pack_LPFNVIEWCALLBACK(void)
+{
+    /* LPFNVIEWCALLBACK */
+    TEST_TYPE(LPFNVIEWCALLBACK, 4, 4);
+}
+
 static void test_pack_LPIDA(void)
 {
     /* LPIDA */
@@ -1051,6 +1106,13 @@
     TEST_TYPE_POINTER(LPIDA, 8, 1);
 }
 
+static void test_pack_LPQCMINFO(void)
+{
+    /* LPQCMINFO */
+    TEST_TYPE(LPQCMINFO, 4, 4);
+    TEST_TYPE_POINTER(LPQCMINFO, 20, 4);
+}
+
 static void test_pack_LPSHChangeDWORDAsIDList(void)
 {
     /* LPSHChangeDWORDAsIDList */
@@ -1086,6 +1148,13 @@
     TEST_TYPE_POINTER(LPSHELLSTATE, 32, 1);
 }
 
+static void test_pack_LPTBINFO(void)
+{
+    /* LPTBINFO */
+    TEST_TYPE(LPTBINFO, 4, 4);
+    TEST_TYPE_POINTER(LPTBINFO, 8, 4);
+}
+
 static void test_pack_PBROWSEINFOA(void)
 {
     /* PBROWSEINFOA */
@@ -1100,6 +1169,33 @@
     TEST_TYPE_POINTER(PBROWSEINFOW, 32, 4);
 }
 
+static void test_pack_QCMINFO(void)
+{
+    /* QCMINFO (pack 8) */
+    TEST_TYPE(QCMINFO, 20, 4);
+    TEST_FIELD(QCMINFO, HMENU, hmenu, 0, 4, 4);
+    TEST_FIELD(QCMINFO, UINT, indexMenu, 4, 4, 4);
+    TEST_FIELD(QCMINFO, UINT, idCmdFirst, 8, 4, 4);
+    TEST_FIELD(QCMINFO, UINT, idCmdLast, 12, 4, 4);
+    TEST_FIELD(QCMINFO, QCMINFO_IDMAP const*, pIdMap, 16, 4, 4);
+}
+
+static void test_pack_QCMINFO_IDMAP(void)
+{
+    /* QCMINFO_IDMAP (pack 8) */
+    TEST_TYPE(QCMINFO_IDMAP, 12, 4);
+    TEST_FIELD(QCMINFO_IDMAP, UINT, nMaxIds, 0, 4, 4);
+    TEST_FIELD(QCMINFO_IDMAP, QCMINFO_IDMAP_PLACEMENT[1], pIdList, 4, 8, 4);
+}
+
+static void test_pack_QCMINFO_IDMAP_PLACEMENT(void)
+{
+    /* QCMINFO_IDMAP_PLACEMENT (pack 8) */
+    TEST_TYPE(QCMINFO_IDMAP_PLACEMENT, 8, 4);
+    TEST_FIELD(QCMINFO_IDMAP_PLACEMENT, UINT, id, 0, 4, 4);
+    TEST_FIELD(QCMINFO_IDMAP_PLACEMENT, UINT, fFlags, 4, 4, 4);
+}
+
 static void test_pack_SHChangeDWORDAsIDList(void)
 {
     /* SHChangeDWORDAsIDList (pack 1) */
@@ -1159,6 +1255,14 @@
     TEST_TYPE(SHELLVIEWID, 16, 4);
 }
 
+static void test_pack_TBINFO(void)
+{
+    /* TBINFO (pack 8) */
+    TEST_TYPE(TBINFO, 8, 4);
+    TEST_FIELD(TBINFO, UINT, cbuttons, 0, 4, 4);
+    TEST_FIELD(TBINFO, UINT, uFlags, 4, 4, 4);
+}
+
 static void test_pack(void)
 {
     test_pack_APPBARDATA();
@@ -1179,6 +1283,7 @@
     test_pack_COAUTHIDENTITY();
     test_pack_COAUTHINFO();
     test_pack_COSERVERINFO();
+    test_pack_CSFV();
     test_pack_DRAGINFOA();
     test_pack_DRAGINFOW();
     test_pack_DROPFILES();
@@ -1208,6 +1313,8 @@
     test_pack_LPCABINETSTATE();
     test_pack_LPCITEMIDLIST();
     test_pack_LPCOLESTR();
+    test_pack_LPCSFV();
+    test_pack_LPCSHITEMID();
     test_pack_LPCY();
     test_pack_LPDECIMAL();
     test_pack_LPDRAGINFOA();
@@ -1217,13 +1324,16 @@
     test_pack_LPFILEDESCRIPTORW();
     test_pack_LPFILEGROUPDESCRIPTORA();
     test_pack_LPFILEGROUPDESCRIPTORW();
+    test_pack_LPFNVIEWCALLBACK();
     test_pack_LPGUID();
     test_pack_LPIDA();
     test_pack_LPITEMIDLIST();
     test_pack_LPOLESTR();
+    test_pack_LPQCMINFO();
     test_pack_LPSHChangeDWORDAsIDList();
     test_pack_LPSHChangeProductKeyAsIDList();
     test_pack_LPSHDESCRIPTIONID();
+    test_pack_LPSHELLDETAILS();
     test_pack_LPSHELLEXECUTEINFOA();
     test_pack_LPSHELLEXECUTEINFOW();
     test_pack_LPSHELLFLAGSTATE();
@@ -1233,6 +1343,8 @@
     test_pack_LPSHITEMID();
     test_pack_LPSHNAMEMAPPINGA();
     test_pack_LPSHNAMEMAPPINGW();
+    test_pack_LPSTRRET();
+    test_pack_LPTBINFO();
     test_pack_NOTIFYICONDATAA();
     test_pack_NOTIFYICONDATAW();
     test_pack_OLECHAR();
@@ -1243,6 +1355,9 @@
     test_pack_PNOTIFYICONDATAW();
     test_pack_PRINTEROP_FLAGS();
     test_pack_PROPID();
+    test_pack_QCMINFO();
+    test_pack_QCMINFO_IDMAP();
+    test_pack_QCMINFO_IDMAP_PLACEMENT();
     test_pack_RemHBITMAP();
     test_pack_RemHENHMETAFILE();
     test_pack_RemHGLOBAL();
@@ -1253,6 +1368,7 @@
     test_pack_SHChangeNotifyEntry();
     test_pack_SHChangeProductKeyAsIDList();
     test_pack_SHDESCRIPTIONID();
+    test_pack_SHELLDETAILS();
     test_pack_SHELLEXECUTEINFOA();
     test_pack_SHELLEXECUTEINFOW();
     test_pack_SHELLFLAGSTATE();
@@ -1265,6 +1381,8 @@
     test_pack_SHITEMID();
     test_pack_SHNAMEMAPPINGA();
     test_pack_SHNAMEMAPPINGW();
+    test_pack_STRRET();
+    test_pack_TBINFO();
     test_pack_UP_BYTE_BLOB();
     test_pack_UP_FLAGGED_BYTE_BLOB();
     test_pack_UP_FLAGGED_WORD_BLOB();
Index: tools/winapi/c_parser.pm
===================================================================
RCS file: /var/cvs/wine/tools/winapi/c_parser.pm,v
retrieving revision 1.13
diff -u -r1.13 c_parser.pm
--- tools/winapi/c_parser.pm	22 Aug 2004 02:02:00 -0000	1.13
+++ tools/winapi/c_parser.pm	5 Sep 2004 22:44:28 -0000
@@ -1979,7 +1989,7 @@
 	}
 
 	$finished = 1;
-    } elsif(s/^((?:enum\s+|struct\s+|union\s+)?\w+\b(?:\s+DECLSPEC_ALIGN\(.*?\)|\s*\*)*)\s*(\w+)\s*(\[.*?\]$|:\s*(\d+)$|\{)?//s) {
+    } elsif(s/^((?:enum\s+|struct\s+|union\s+)?\w+\b(?:\s+DECLSPEC_ALIGN\(.*?\)|\s*(?:const\s*)?\*)*)\s*(\w+)\s*(\[.*?\]$|:\s*(\d+)$|\{)?//s) {
 	$type = "$sign$1";
 	$name = $2;
 
Index: tools/winapi/tests.dat
===================================================================
RCS file: /var/cvs/wine/tools/winapi/tests.dat,v
retrieving revision 1.23
diff -u -r1.23 tests.dat
--- tools/winapi/tests.dat	6 Sep 2004 21:26:57 -0000	1.23
+++ tools/winapi/tests.dat	6 Sep 2004 23:53:39 -0000
@@ -916,6 +1040,7 @@
 wtypes.h
 guiddef.h
 shellapi.h
+shtypes.h
 shlobj.h
 
 %include
@@ -949,6 +1074,7 @@
 COAUTHIDENTITY
 COAUTHINFO
 COSERVERINFO
+CSFV
 DATE
 DOUBLE
 DRAGINFOA
@@ -980,6 +1106,8 @@
 LPCABINETSTATE
 LPCITEMIDLIST
 LPCOLESTR
+LPCSFV
+LPCSHITEMID
 LPCY
 LPDECIMAL
 LPDRAGINFOA
@@ -989,13 +1117,16 @@
 LPFILEDESCRIPTORW
 LPFILEGROUPDESCRIPTORA
 LPFILEGROUPDESCRIPTORW
+LPFNVIEWCALLBACK
 LPGUID
 LPIDA
 LPITEMIDLIST
 LPOLESTR
+LPQCMINFO
 LPSHChangeDWORDAsIDList
 LPSHChangeProductKeyAsIDList
 LPSHDESCRIPTIONID
+LPSHELLDETAILS
 LPSHELLEXECUTEINFOA
 LPSHELLEXECUTEINFOW
 LPSHELLFLAGSTATE
@@ -1005,6 +1136,8 @@
 LPSHITEMID
 LPSHNAMEMAPPINGA
 LPSHNAMEMAPPINGW
+LPSTRRET
+LPTBINFO
 NOTIFYICONDATAA
 NOTIFYICONDATAW
 OLECHAR
@@ -1015,6 +1148,9 @@
 PNOTIFYICONDATAW
 PRINTEROP_FLAGS
 PROPID
+QCMINFO
+QCMINFO_IDMAP
+QCMINFO_IDMAP_PLACEMENT
 RemHBITMAP
 RemHENHMETAFILE
 RemHGLOBAL
@@ -1025,6 +1161,7 @@
 SHChangeNotifyEntry
 SHChangeProductKeyAsIDList
 SHDESCRIPTIONID
+SHELLDETAILS
 SHELLEXECUTEINFOA
 SHELLEXECUTEINFOW
 SHELLFLAGSTATE
@@ -1037,6 +1174,9 @@
 SHITEMID
 SHNAMEMAPPINGA
 SHNAMEMAPPINGW
+STRRET
+STRRET_TYPE
+TBINFO
 UP_BYTE_BLOB
 UP_FLAGGED_BYTE_BLOB
 UP_FLAGGED_WORD_BLOB


More information about the wine-patches mailing list