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