1 /* File generated automatically from tools/winapi/test.dat; do not edit! */
2 /* This file can be copied, modified and distributed without restriction. */
5 * Unit tests for data structure packing
9 #define _WIN32_IE 0x0501
10 #define _WIN32_WINNT 0x0501
12 #define WINE_NOWINSOCK
23 #include "wine/test.h"
25 /***********************************************************************
29 #define DWORD_PTR UINT_PTR
30 #define LONG_PTR INT_PTR
31 #define ULONG_PTR UINT_PTR
33 /***********************************************************************
34 * Windows API extension
37 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
38 # define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)
39 #elif defined(__GNUC__)
40 # define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)
42 /* FIXME: Not sure if is possible to do without compiler extension */
45 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
46 # define _TYPE_ALIGNMENT(type) __alignof(type)
47 #elif defined(__GNUC__)
48 # define _TYPE_ALIGNMENT(type) __alignof__(type)
51 * FIXME: Not sure if is possible to do without compiler extension
52 * (if type is not just a name that is, if so the normal)
53 * TYPE_ALIGNMENT can be used)
57 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
58 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
61 /***********************************************************************
65 #ifdef FIELD_ALIGNMENT
66 # define TEST_FIELD_ALIGNMENT(type, field, align) \
67 ok(FIELD_ALIGNMENT(type, field) == align, \
68 "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")\n", \
69 FIELD_ALIGNMENT(type, field))
71 # define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)
74 #define TEST_FIELD_OFFSET(type, field, offset) \
75 ok(FIELD_OFFSET(type, field) == offset, \
76 "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")\n", \
77 FIELD_OFFSET(type, field))
79 #ifdef _TYPE_ALIGNMENT
80 #define TEST__TYPE_ALIGNMENT(type, align) \
81 ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", _TYPE_ALIGNMENT(type))
83 # define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)
87 #define TEST_TYPE_ALIGNMENT(type, align) \
88 ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", TYPE_ALIGNMENT(type))
90 # define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)
93 #define TEST_TYPE_SIZE(type, size) \
94 ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")\n", sizeof(type))
96 /***********************************************************************
100 #define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \
101 TEST_TYPE_SIZE(field_type, field_size); \
102 TEST_FIELD_ALIGNMENT(type, field_name, field_align); \
103 TEST_FIELD_OFFSET(type, field_name, field_offset); \
105 #define TEST_TYPE(type, size, align) \
106 TEST_TYPE_ALIGNMENT(type, align); \
107 TEST_TYPE_SIZE(type, size)
109 #define TEST_TYPE_POINTER(type, size, align) \
110 TEST__TYPE_ALIGNMENT(*(type)0, align); \
111 TEST_TYPE_SIZE(*(type)0, size)
113 #define TEST_TYPE_SIGNED(type) \
114 ok((type) -1 < 0, "(" #type ") -1 < 0\n");
116 #define TEST_TYPE_UNSIGNED(type) \
117 ok((type) -1 > 0, "(" #type ") -1 > 0\n");
119 static void test_pack_BLOB(void)
122 TEST_TYPE(BLOB, 8, 4);
123 TEST_FIELD(BLOB, ULONG, cbSize, 0, 4, 4);
124 TEST_FIELD(BLOB, BYTE *, pBlobData, 4, 4, 4);
127 static void test_pack_BSTR(void)
130 TEST_TYPE(BSTR, 4, 4);
131 TEST_TYPE_POINTER(BSTR, 2, 2);
134 static void test_pack_BSTRBLOB(void)
136 /* BSTRBLOB (pack 4) */
137 TEST_TYPE(BSTRBLOB, 8, 4);
138 TEST_FIELD(BSTRBLOB, ULONG, cbSize, 0, 4, 4);
139 TEST_FIELD(BSTRBLOB, BYTE *, pData, 4, 4, 4);
142 static void test_pack_BYTE_BLOB(void)
144 /* BYTE_BLOB (pack 4) */
145 TEST_TYPE(BYTE_BLOB, 8, 4);
146 TEST_FIELD(BYTE_BLOB, unsigned long, clSize, 0, 4, 4);
147 TEST_FIELD(BYTE_BLOB, byte[1], abData, 4, 1, 1);
150 static void test_pack_BYTE_SIZEDARR(void)
152 /* BYTE_SIZEDARR (pack 4) */
153 TEST_TYPE(BYTE_SIZEDARR, 8, 4);
154 TEST_FIELD(BYTE_SIZEDARR, unsigned long, clSize, 0, 4, 4);
155 TEST_FIELD(BYTE_SIZEDARR, byte *, pData, 4, 4, 4);
158 static void test_pack_CLIPDATA(void)
160 /* CLIPDATA (pack 4) */
161 TEST_TYPE(CLIPDATA, 12, 4);
162 TEST_FIELD(CLIPDATA, ULONG, cbSize, 0, 4, 4);
163 TEST_FIELD(CLIPDATA, long, ulClipFmt, 4, 4, 4);
164 TEST_FIELD(CLIPDATA, BYTE *, pClipData, 8, 4, 4);
167 static void test_pack_CLIPFORMAT(void)
170 TEST_TYPE(CLIPFORMAT, 2, 2);
171 TEST_TYPE_UNSIGNED(CLIPFORMAT);
174 static void test_pack_COAUTHIDENTITY(void)
176 /* COAUTHIDENTITY (pack 4) */
177 TEST_TYPE(COAUTHIDENTITY, 28, 4);
178 TEST_FIELD(COAUTHIDENTITY, USHORT *, User, 0, 4, 4);
179 TEST_FIELD(COAUTHIDENTITY, ULONG, UserLength, 4, 4, 4);
180 TEST_FIELD(COAUTHIDENTITY, USHORT *, Domain, 8, 4, 4);
181 TEST_FIELD(COAUTHIDENTITY, ULONG, DomainLength, 12, 4, 4);
182 TEST_FIELD(COAUTHIDENTITY, USHORT *, Password, 16, 4, 4);
183 TEST_FIELD(COAUTHIDENTITY, ULONG, PasswordLength, 20, 4, 4);
184 TEST_FIELD(COAUTHIDENTITY, ULONG, Flags, 24, 4, 4);
187 static void test_pack_COAUTHINFO(void)
189 /* COAUTHINFO (pack 4) */
190 TEST_TYPE(COAUTHINFO, 28, 4);
191 TEST_FIELD(COAUTHINFO, DWORD, dwAuthnSvc, 0, 4, 4);
192 TEST_FIELD(COAUTHINFO, DWORD, dwAuthzSvc, 4, 4, 4);
193 TEST_FIELD(COAUTHINFO, LPWSTR, pwszServerPrincName, 8, 4, 4);
194 TEST_FIELD(COAUTHINFO, DWORD, dwAuthnLevel, 12, 4, 4);
195 TEST_FIELD(COAUTHINFO, DWORD, dwImpersonationLevel, 16, 4, 4);
196 TEST_FIELD(COAUTHINFO, COAUTHIDENTITY *, pAuthIdentityData, 20, 4, 4);
197 TEST_FIELD(COAUTHINFO, DWORD, dwCapabilities, 24, 4, 4);
200 static void test_pack_COSERVERINFO(void)
202 /* COSERVERINFO (pack 4) */
203 TEST_TYPE(COSERVERINFO, 16, 4);
204 TEST_FIELD(COSERVERINFO, DWORD, dwReserved1, 0, 4, 4);
205 TEST_FIELD(COSERVERINFO, LPWSTR, pwszName, 4, 4, 4);
206 TEST_FIELD(COSERVERINFO, COAUTHINFO *, pAuthInfo, 8, 4, 4);
207 TEST_FIELD(COSERVERINFO, DWORD, dwReserved2, 12, 4, 4);
210 static void test_pack_DWORD_SIZEDARR(void)
212 /* DWORD_SIZEDARR (pack 4) */
213 TEST_TYPE(DWORD_SIZEDARR, 8, 4);
214 TEST_FIELD(DWORD_SIZEDARR, unsigned long, clSize, 0, 4, 4);
215 TEST_FIELD(DWORD_SIZEDARR, unsigned long *, pData, 4, 4, 4);
218 static void test_pack_FLAGGED_BYTE_BLOB(void)
220 /* FLAGGED_BYTE_BLOB (pack 4) */
221 TEST_TYPE(FLAGGED_BYTE_BLOB, 12, 4);
222 TEST_FIELD(FLAGGED_BYTE_BLOB, unsigned long, fFlags, 0, 4, 4);
223 TEST_FIELD(FLAGGED_BYTE_BLOB, unsigned long, clSize, 4, 4, 4);
224 TEST_FIELD(FLAGGED_BYTE_BLOB, byte[1], abData, 8, 1, 1);
227 static void test_pack_FLAGGED_WORD_BLOB(void)
229 /* FLAGGED_WORD_BLOB (pack 4) */
230 TEST_TYPE(FLAGGED_WORD_BLOB, 12, 4);
231 TEST_FIELD(FLAGGED_WORD_BLOB, unsigned long, fFlags, 0, 4, 4);
232 TEST_FIELD(FLAGGED_WORD_BLOB, unsigned long, clSize, 4, 4, 4);
233 TEST_FIELD(FLAGGED_WORD_BLOB, unsigned short[1], asData, 8, 2, 2);
236 static void test_pack_HMETAFILEPICT(void)
239 TEST_TYPE(HMETAFILEPICT, 4, 4);
242 static void test_pack_HYPER_SIZEDARR(void)
244 /* HYPER_SIZEDARR (pack 4) */
245 TEST_TYPE(HYPER_SIZEDARR, 8, 4);
246 TEST_FIELD(HYPER_SIZEDARR, unsigned long, clSize, 0, 4, 4);
247 TEST_FIELD(HYPER_SIZEDARR, hyper *, pData, 4, 4, 4);
250 static void test_pack_LPBLOB(void)
253 TEST_TYPE(LPBLOB, 4, 4);
254 TEST_TYPE_POINTER(LPBLOB, 8, 4);
257 static void test_pack_LPBSTR(void)
260 TEST_TYPE(LPBSTR, 4, 4);
261 TEST_TYPE_POINTER(LPBSTR, 4, 4);
264 static void test_pack_LPBSTRBLOB(void)
267 TEST_TYPE(LPBSTRBLOB, 4, 4);
268 TEST_TYPE_POINTER(LPBSTRBLOB, 8, 4);
271 static void test_pack_LPCOLESTR(void)
274 TEST_TYPE(LPCOLESTR, 4, 4);
275 TEST_TYPE_POINTER(LPCOLESTR, 2, 2);
278 static void test_pack_LPCY(void)
281 TEST_TYPE(LPCY, 4, 4);
284 static void test_pack_LPDECIMAL(void)
287 TEST_TYPE(LPDECIMAL, 4, 4);
290 static void test_pack_LPOLESTR(void)
293 TEST_TYPE(LPOLESTR, 4, 4);
294 TEST_TYPE_POINTER(LPOLESTR, 2, 2);
297 static void test_pack_OLECHAR(void)
300 TEST_TYPE(OLECHAR, 2, 2);
303 static void test_pack_PROPID(void)
306 TEST_TYPE(PROPID, 4, 4);
309 static void test_pack_RemHBITMAP(void)
311 /* RemHBITMAP (pack 4) */
312 TEST_TYPE(RemHBITMAP, 8, 4);
313 TEST_FIELD(RemHBITMAP, unsigned long, cbData, 0, 4, 4);
314 TEST_FIELD(RemHBITMAP, byte[1], data, 4, 1, 1);
317 static void test_pack_RemHENHMETAFILE(void)
319 /* RemHENHMETAFILE (pack 4) */
320 TEST_TYPE(RemHENHMETAFILE, 8, 4);
321 TEST_FIELD(RemHENHMETAFILE, unsigned long, cbData, 0, 4, 4);
322 TEST_FIELD(RemHENHMETAFILE, byte[1], data, 4, 1, 1);
325 static void test_pack_RemHGLOBAL(void)
327 /* RemHGLOBAL (pack 4) */
328 TEST_TYPE(RemHGLOBAL, 12, 4);
329 TEST_FIELD(RemHGLOBAL, long, fNullHGlobal, 0, 4, 4);
330 TEST_FIELD(RemHGLOBAL, unsigned long, cbData, 4, 4, 4);
331 TEST_FIELD(RemHGLOBAL, byte[1], data, 8, 1, 1);
334 static void test_pack_RemHMETAFILEPICT(void)
336 /* RemHMETAFILEPICT (pack 4) */
337 TEST_TYPE(RemHMETAFILEPICT, 20, 4);
338 TEST_FIELD(RemHMETAFILEPICT, long, mm, 0, 4, 4);
339 TEST_FIELD(RemHMETAFILEPICT, long, xExt, 4, 4, 4);
340 TEST_FIELD(RemHMETAFILEPICT, long, yExt, 8, 4, 4);
341 TEST_FIELD(RemHMETAFILEPICT, unsigned long, cbData, 12, 4, 4);
342 TEST_FIELD(RemHMETAFILEPICT, byte[1], data, 16, 1, 1);
345 static void test_pack_RemHPALETTE(void)
347 /* RemHPALETTE (pack 4) */
348 TEST_TYPE(RemHPALETTE, 8, 4);
349 TEST_FIELD(RemHPALETTE, unsigned long, cbData, 0, 4, 4);
350 TEST_FIELD(RemHPALETTE, byte[1], data, 4, 1, 1);
353 static void test_pack_SCODE(void)
356 TEST_TYPE(SCODE, 4, 4);
359 static void test_pack_UP_BYTE_BLOB(void)
362 TEST_TYPE(UP_BYTE_BLOB, 4, 4);
363 TEST_TYPE_POINTER(UP_BYTE_BLOB, 8, 4);
366 static void test_pack_UP_FLAGGED_BYTE_BLOB(void)
368 /* UP_FLAGGED_BYTE_BLOB */
369 TEST_TYPE(UP_FLAGGED_BYTE_BLOB, 4, 4);
370 TEST_TYPE_POINTER(UP_FLAGGED_BYTE_BLOB, 12, 4);
373 static void test_pack_UP_FLAGGED_WORD_BLOB(void)
375 /* UP_FLAGGED_WORD_BLOB */
376 TEST_TYPE(UP_FLAGGED_WORD_BLOB, 4, 4);
377 TEST_TYPE_POINTER(UP_FLAGGED_WORD_BLOB, 12, 4);
380 static void test_pack_VARIANT_BOOL(void)
383 TEST_TYPE(VARIANT_BOOL, 2, 2);
384 TEST_TYPE_SIGNED(VARIANT_BOOL);
387 static void test_pack_VARTYPE(void)
390 TEST_TYPE(VARTYPE, 2, 2);
391 TEST_TYPE_UNSIGNED(VARTYPE);
394 static void test_pack_WORD_SIZEDARR(void)
396 /* WORD_SIZEDARR (pack 4) */
397 TEST_TYPE(WORD_SIZEDARR, 8, 4);
398 TEST_FIELD(WORD_SIZEDARR, unsigned long, clSize, 0, 4, 4);
399 TEST_FIELD(WORD_SIZEDARR, unsigned short *, pData, 4, 4, 4);
402 static void test_pack_remoteMETAFILEPICT(void)
404 /* remoteMETAFILEPICT (pack 4) */
405 TEST_TYPE(remoteMETAFILEPICT, 16, 4);
406 TEST_FIELD(remoteMETAFILEPICT, long, mm, 0, 4, 4);
407 TEST_FIELD(remoteMETAFILEPICT, long, xExt, 4, 4, 4);
408 TEST_FIELD(remoteMETAFILEPICT, long, yExt, 8, 4, 4);
409 TEST_FIELD(remoteMETAFILEPICT, userHMETAFILE *, hMF, 12, 4, 4);
412 static void test_pack_userBITMAP(void)
414 /* userBITMAP (pack 4) */
415 TEST_TYPE(userBITMAP, 28, 4);
416 TEST_FIELD(userBITMAP, LONG, bmType, 0, 4, 4);
417 TEST_FIELD(userBITMAP, LONG, bmWidth, 4, 4, 4);
418 TEST_FIELD(userBITMAP, LONG, bmHeight, 8, 4, 4);
419 TEST_FIELD(userBITMAP, LONG, bmWidthBytes, 12, 4, 4);
420 TEST_FIELD(userBITMAP, WORD, bmPlanes, 16, 2, 2);
421 TEST_FIELD(userBITMAP, WORD, bmBitsPixel, 18, 2, 2);
422 TEST_FIELD(userBITMAP, ULONG, cbSize, 20, 4, 4);
423 TEST_FIELD(userBITMAP, byte[1], pBuffer, 24, 1, 1);
426 static void test_pack_userCLIPFORMAT(void)
428 /* userCLIPFORMAT (pack 4) */
429 TEST_FIELD(userCLIPFORMAT, long, fContext, 0, 4, 4);
432 static void test_pack_userHBITMAP(void)
434 /* userHBITMAP (pack 4) */
435 TEST_FIELD(userHBITMAP, long, fContext, 0, 4, 4);
438 static void test_pack_userHENHMETAFILE(void)
440 /* userHENHMETAFILE (pack 4) */
441 TEST_FIELD(userHENHMETAFILE, long, fContext, 0, 4, 4);
444 static void test_pack_userHGLOBAL(void)
446 /* userHGLOBAL (pack 4) */
447 TEST_FIELD(userHGLOBAL, long, fContext, 0, 4, 4);
450 static void test_pack_userHMETAFILE(void)
452 /* userHMETAFILE (pack 4) */
453 TEST_FIELD(userHMETAFILE, long, fContext, 0, 4, 4);
456 static void test_pack_userHMETAFILEPICT(void)
458 /* userHMETAFILEPICT (pack 4) */
459 TEST_FIELD(userHMETAFILEPICT, long, fContext, 0, 4, 4);
462 static void test_pack_userHPALETTE(void)
464 /* userHPALETTE (pack 4) */
465 TEST_FIELD(userHPALETTE, long, fContext, 0, 4, 4);
468 static void test_pack_wireBSTR(void)
471 TEST_TYPE(wireBSTR, 4, 4);
472 TEST_TYPE_POINTER(wireBSTR, 12, 4);
475 static void test_pack_wireCLIPFORMAT(void)
478 TEST_TYPE(wireCLIPFORMAT, 4, 4);
481 static void test_pack_wireHBITMAP(void)
484 TEST_TYPE(wireHBITMAP, 4, 4);
487 static void test_pack_wireHENHMETAFILE(void)
489 /* wireHENHMETAFILE */
490 TEST_TYPE(wireHENHMETAFILE, 4, 4);
493 static void test_pack_wireHGLOBAL(void)
496 TEST_TYPE(wireHGLOBAL, 4, 4);
499 static void test_pack_wireHMETAFILE(void)
502 TEST_TYPE(wireHMETAFILE, 4, 4);
505 static void test_pack_wireHMETAFILEPICT(void)
507 /* wireHMETAFILEPICT */
508 TEST_TYPE(wireHMETAFILEPICT, 4, 4);
511 static void test_pack_wireHPALETTE(void)
514 TEST_TYPE(wireHPALETTE, 4, 4);
517 static void test_pack_CLSID(void)
520 TEST_TYPE(CLSID, 16, 4);
523 static void test_pack_FMTID(void)
526 TEST_TYPE(FMTID, 16, 4);
529 static void test_pack_GUID(void)
532 TEST_TYPE(GUID, 16, 4);
533 TEST_FIELD(GUID, unsigned long, Data1, 0, 4, 4);
534 TEST_FIELD(GUID, unsigned short, Data2, 4, 2, 2);
535 TEST_FIELD(GUID, unsigned short, Data3, 6, 2, 2);
536 TEST_FIELD(GUID, unsigned char[ 8 ], Data4, 8, 8, 1);
539 static void test_pack_IID(void)
542 TEST_TYPE(IID, 16, 4);
545 static void test_pack_LPGUID(void)
548 TEST_TYPE(LPGUID, 4, 4);
549 TEST_TYPE_POINTER(LPGUID, 16, 4);
552 static void test_pack_APPBARDATA(void)
554 /* APPBARDATA (pack 1) */
555 TEST_TYPE(APPBARDATA, 36, 1);
556 TEST_FIELD(APPBARDATA, DWORD, cbSize, 0, 4, 1);
557 TEST_FIELD(APPBARDATA, HWND, hWnd, 4, 4, 1);
558 TEST_FIELD(APPBARDATA, UINT, uCallbackMessage, 8, 4, 1);
559 TEST_FIELD(APPBARDATA, UINT, uEdge, 12, 4, 1);
560 TEST_FIELD(APPBARDATA, RECT, rc, 16, 16, 1);
561 TEST_FIELD(APPBARDATA, LPARAM, lParam, 32, 4, 1);
564 static void test_pack_DRAGINFOA(void)
566 /* DRAGINFOA (pack 1) */
567 TEST_TYPE(DRAGINFOA, 24, 1);
568 TEST_FIELD(DRAGINFOA, UINT, uSize, 0, 4, 1);
569 TEST_FIELD(DRAGINFOA, POINT, pt, 4, 8, 1);
570 TEST_FIELD(DRAGINFOA, BOOL, fNC, 12, 4, 1);
571 TEST_FIELD(DRAGINFOA, LPSTR, lpFileList, 16, 4, 1);
572 TEST_FIELD(DRAGINFOA, DWORD, grfKeyState, 20, 4, 1);
575 static void test_pack_DRAGINFOW(void)
577 /* DRAGINFOW (pack 1) */
578 TEST_TYPE(DRAGINFOW, 24, 1);
579 TEST_FIELD(DRAGINFOW, UINT, uSize, 0, 4, 1);
580 TEST_FIELD(DRAGINFOW, POINT, pt, 4, 8, 1);
581 TEST_FIELD(DRAGINFOW, BOOL, fNC, 12, 4, 1);
582 TEST_FIELD(DRAGINFOW, LPWSTR, lpFileList, 16, 4, 1);
583 TEST_FIELD(DRAGINFOW, DWORD, grfKeyState, 20, 4, 1);
586 static void test_pack_FILEOP_FLAGS(void)
589 TEST_TYPE(FILEOP_FLAGS, 2, 2);
590 TEST_TYPE_UNSIGNED(FILEOP_FLAGS);
593 static void test_pack_LPDRAGINFOA(void)
596 TEST_TYPE(LPDRAGINFOA, 4, 4);
597 TEST_TYPE_POINTER(LPDRAGINFOA, 24, 1);
600 static void test_pack_LPDRAGINFOW(void)
603 TEST_TYPE(LPDRAGINFOW, 4, 4);
604 TEST_TYPE_POINTER(LPDRAGINFOW, 24, 1);
607 static void test_pack_LPSHELLEXECUTEINFOA(void)
609 /* LPSHELLEXECUTEINFOA */
610 TEST_TYPE(LPSHELLEXECUTEINFOA, 4, 4);
613 static void test_pack_LPSHELLEXECUTEINFOW(void)
615 /* LPSHELLEXECUTEINFOW */
616 TEST_TYPE(LPSHELLEXECUTEINFOW, 4, 4);
619 static void test_pack_LPSHFILEOPSTRUCTA(void)
621 /* LPSHFILEOPSTRUCTA */
622 TEST_TYPE(LPSHFILEOPSTRUCTA, 4, 4);
623 TEST_TYPE_POINTER(LPSHFILEOPSTRUCTA, 30, 1);
626 static void test_pack_LPSHFILEOPSTRUCTW(void)
628 /* LPSHFILEOPSTRUCTW */
629 TEST_TYPE(LPSHFILEOPSTRUCTW, 4, 4);
630 TEST_TYPE_POINTER(LPSHFILEOPSTRUCTW, 30, 1);
633 static void test_pack_LPSHNAMEMAPPINGA(void)
635 /* LPSHNAMEMAPPINGA */
636 TEST_TYPE(LPSHNAMEMAPPINGA, 4, 4);
637 TEST_TYPE_POINTER(LPSHNAMEMAPPINGA, 16, 1);
640 static void test_pack_LPSHNAMEMAPPINGW(void)
642 /* LPSHNAMEMAPPINGW */
643 TEST_TYPE(LPSHNAMEMAPPINGW, 4, 4);
644 TEST_TYPE_POINTER(LPSHNAMEMAPPINGW, 16, 1);
647 static void test_pack_NOTIFYICONDATAA(void)
649 /* NOTIFYICONDATAA (pack 1) */
650 TEST_FIELD(NOTIFYICONDATAA, DWORD, cbSize, 0, 4, 1);
651 TEST_FIELD(NOTIFYICONDATAA, HWND, hWnd, 4, 4, 1);
652 TEST_FIELD(NOTIFYICONDATAA, UINT, uID, 8, 4, 1);
653 TEST_FIELD(NOTIFYICONDATAA, UINT, uFlags, 12, 4, 1);
654 TEST_FIELD(NOTIFYICONDATAA, UINT, uCallbackMessage, 16, 4, 1);
655 TEST_FIELD(NOTIFYICONDATAA, HICON, hIcon, 20, 4, 1);
656 TEST_FIELD(NOTIFYICONDATAA, CHAR[128], szTip, 24, 128, 1);
657 TEST_FIELD(NOTIFYICONDATAA, DWORD, dwState, 152, 4, 1);
658 TEST_FIELD(NOTIFYICONDATAA, DWORD, dwStateMask, 156, 4, 1);
659 TEST_FIELD(NOTIFYICONDATAA, CHAR[256], szInfo, 160, 256, 1);
662 static void test_pack_NOTIFYICONDATAW(void)
664 /* NOTIFYICONDATAW (pack 1) */
665 TEST_FIELD(NOTIFYICONDATAW, DWORD, cbSize, 0, 4, 1);
666 TEST_FIELD(NOTIFYICONDATAW, HWND, hWnd, 4, 4, 1);
667 TEST_FIELD(NOTIFYICONDATAW, UINT, uID, 8, 4, 1);
668 TEST_FIELD(NOTIFYICONDATAW, UINT, uFlags, 12, 4, 1);
669 TEST_FIELD(NOTIFYICONDATAW, UINT, uCallbackMessage, 16, 4, 1);
670 TEST_FIELD(NOTIFYICONDATAW, HICON, hIcon, 20, 4, 1);
671 TEST_FIELD(NOTIFYICONDATAW, WCHAR[128], szTip, 24, 256, 1);
672 TEST_FIELD(NOTIFYICONDATAW, DWORD, dwState, 280, 4, 1);
673 TEST_FIELD(NOTIFYICONDATAW, DWORD, dwStateMask, 284, 4, 1);
674 TEST_FIELD(NOTIFYICONDATAW, WCHAR[256], szInfo, 288, 512, 1);
677 static void test_pack_PAPPBARDATA(void)
680 TEST_TYPE(PAPPBARDATA, 4, 4);
681 TEST_TYPE_POINTER(PAPPBARDATA, 36, 1);
684 static void test_pack_PNOTIFYICONDATAA(void)
686 /* PNOTIFYICONDATAA */
687 TEST_TYPE(PNOTIFYICONDATAA, 4, 4);
690 static void test_pack_PNOTIFYICONDATAW(void)
692 /* PNOTIFYICONDATAW */
693 TEST_TYPE(PNOTIFYICONDATAW, 4, 4);
696 static void test_pack_PRINTEROP_FLAGS(void)
698 /* PRINTEROP_FLAGS */
699 TEST_TYPE(PRINTEROP_FLAGS, 2, 2);
700 TEST_TYPE_UNSIGNED(PRINTEROP_FLAGS);
703 static void test_pack_SHELLEXECUTEINFOA(void)
705 /* SHELLEXECUTEINFOA (pack 1) */
706 TEST_FIELD(SHELLEXECUTEINFOA, DWORD, cbSize, 0, 4, 1);
707 TEST_FIELD(SHELLEXECUTEINFOA, ULONG, fMask, 4, 4, 1);
708 TEST_FIELD(SHELLEXECUTEINFOA, HWND, hwnd, 8, 4, 1);
709 TEST_FIELD(SHELLEXECUTEINFOA, LPCSTR, lpVerb, 12, 4, 1);
710 TEST_FIELD(SHELLEXECUTEINFOA, LPCSTR, lpFile, 16, 4, 1);
711 TEST_FIELD(SHELLEXECUTEINFOA, LPCSTR, lpParameters, 20, 4, 1);
712 TEST_FIELD(SHELLEXECUTEINFOA, LPCSTR, lpDirectory, 24, 4, 1);
713 TEST_FIELD(SHELLEXECUTEINFOA, INT, nShow, 28, 4, 1);
714 TEST_FIELD(SHELLEXECUTEINFOA, HINSTANCE, hInstApp, 32, 4, 1);
715 TEST_FIELD(SHELLEXECUTEINFOA, LPVOID, lpIDList, 36, 4, 1);
716 TEST_FIELD(SHELLEXECUTEINFOA, LPCSTR, lpClass, 40, 4, 1);
717 TEST_FIELD(SHELLEXECUTEINFOA, HKEY, hkeyClass, 44, 4, 1);
718 TEST_FIELD(SHELLEXECUTEINFOA, DWORD, dwHotKey, 48, 4, 1);
721 static void test_pack_SHELLEXECUTEINFOW(void)
723 /* SHELLEXECUTEINFOW (pack 1) */
724 TEST_FIELD(SHELLEXECUTEINFOW, DWORD, cbSize, 0, 4, 1);
725 TEST_FIELD(SHELLEXECUTEINFOW, ULONG, fMask, 4, 4, 1);
726 TEST_FIELD(SHELLEXECUTEINFOW, HWND, hwnd, 8, 4, 1);
727 TEST_FIELD(SHELLEXECUTEINFOW, LPCWSTR, lpVerb, 12, 4, 1);
728 TEST_FIELD(SHELLEXECUTEINFOW, LPCWSTR, lpFile, 16, 4, 1);
729 TEST_FIELD(SHELLEXECUTEINFOW, LPCWSTR, lpParameters, 20, 4, 1);
730 TEST_FIELD(SHELLEXECUTEINFOW, LPCWSTR, lpDirectory, 24, 4, 1);
731 TEST_FIELD(SHELLEXECUTEINFOW, INT, nShow, 28, 4, 1);
732 TEST_FIELD(SHELLEXECUTEINFOW, HINSTANCE, hInstApp, 32, 4, 1);
733 TEST_FIELD(SHELLEXECUTEINFOW, LPVOID, lpIDList, 36, 4, 1);
734 TEST_FIELD(SHELLEXECUTEINFOW, LPCWSTR, lpClass, 40, 4, 1);
735 TEST_FIELD(SHELLEXECUTEINFOW, HKEY, hkeyClass, 44, 4, 1);
736 TEST_FIELD(SHELLEXECUTEINFOW, DWORD, dwHotKey, 48, 4, 1);
739 static void test_pack_SHFILEINFOA(void)
741 /* SHFILEINFOA (pack 1) */
742 TEST_TYPE(SHFILEINFOA, 352, 1);
743 TEST_FIELD(SHFILEINFOA, HICON, hIcon, 0, 4, 1);
744 TEST_FIELD(SHFILEINFOA, int, iIcon, 4, 4, 1);
745 TEST_FIELD(SHFILEINFOA, DWORD, dwAttributes, 8, 4, 1);
746 TEST_FIELD(SHFILEINFOA, CHAR[MAX_PATH], szDisplayName, 12, 260, 1);
747 TEST_FIELD(SHFILEINFOA, CHAR[80], szTypeName, 272, 80, 1);
750 static void test_pack_SHFILEINFOW(void)
752 /* SHFILEINFOW (pack 1) */
753 TEST_TYPE(SHFILEINFOW, 692, 1);
754 TEST_FIELD(SHFILEINFOW, HICON, hIcon, 0, 4, 1);
755 TEST_FIELD(SHFILEINFOW, int, iIcon, 4, 4, 1);
756 TEST_FIELD(SHFILEINFOW, DWORD, dwAttributes, 8, 4, 1);
757 TEST_FIELD(SHFILEINFOW, WCHAR[MAX_PATH], szDisplayName, 12, 520, 1);
758 TEST_FIELD(SHFILEINFOW, WCHAR[80], szTypeName, 532, 160, 1);
761 static void test_pack_SHFILEOPSTRUCTA(void)
763 /* SHFILEOPSTRUCTA (pack 1) */
764 TEST_TYPE(SHFILEOPSTRUCTA, 30, 1);
765 TEST_FIELD(SHFILEOPSTRUCTA, HWND, hwnd, 0, 4, 1);
766 TEST_FIELD(SHFILEOPSTRUCTA, UINT, wFunc, 4, 4, 1);
767 TEST_FIELD(SHFILEOPSTRUCTA, LPCSTR, pFrom, 8, 4, 1);
768 TEST_FIELD(SHFILEOPSTRUCTA, LPCSTR, pTo, 12, 4, 1);
769 TEST_FIELD(SHFILEOPSTRUCTA, FILEOP_FLAGS, fFlags, 16, 2, 1);
770 TEST_FIELD(SHFILEOPSTRUCTA, BOOL, fAnyOperationsAborted, 18, 4, 1);
771 TEST_FIELD(SHFILEOPSTRUCTA, LPVOID, hNameMappings, 22, 4, 1);
772 TEST_FIELD(SHFILEOPSTRUCTA, LPCSTR, lpszProgressTitle, 26, 4, 1);
775 static void test_pack_SHFILEOPSTRUCTW(void)
777 /* SHFILEOPSTRUCTW (pack 1) */
778 TEST_TYPE(SHFILEOPSTRUCTW, 30, 1);
779 TEST_FIELD(SHFILEOPSTRUCTW, HWND, hwnd, 0, 4, 1);
780 TEST_FIELD(SHFILEOPSTRUCTW, UINT, wFunc, 4, 4, 1);
781 TEST_FIELD(SHFILEOPSTRUCTW, LPCWSTR, pFrom, 8, 4, 1);
782 TEST_FIELD(SHFILEOPSTRUCTW, LPCWSTR, pTo, 12, 4, 1);
783 TEST_FIELD(SHFILEOPSTRUCTW, FILEOP_FLAGS, fFlags, 16, 2, 1);
784 TEST_FIELD(SHFILEOPSTRUCTW, BOOL, fAnyOperationsAborted, 18, 4, 1);
785 TEST_FIELD(SHFILEOPSTRUCTW, LPVOID, hNameMappings, 22, 4, 1);
786 TEST_FIELD(SHFILEOPSTRUCTW, LPCWSTR, lpszProgressTitle, 26, 4, 1);
789 static void test_pack_SHNAMEMAPPINGA(void)
791 /* SHNAMEMAPPINGA (pack 1) */
792 TEST_TYPE(SHNAMEMAPPINGA, 16, 1);
793 TEST_FIELD(SHNAMEMAPPINGA, LPSTR, pszOldPath, 0, 4, 1);
794 TEST_FIELD(SHNAMEMAPPINGA, LPSTR, pszNewPath, 4, 4, 1);
795 TEST_FIELD(SHNAMEMAPPINGA, int, cchOldPath, 8, 4, 1);
796 TEST_FIELD(SHNAMEMAPPINGA, int, cchNewPath, 12, 4, 1);
799 static void test_pack_SHNAMEMAPPINGW(void)
801 /* SHNAMEMAPPINGW (pack 1) */
802 TEST_TYPE(SHNAMEMAPPINGW, 16, 1);
803 TEST_FIELD(SHNAMEMAPPINGW, LPWSTR, pszOldPath, 0, 4, 1);
804 TEST_FIELD(SHNAMEMAPPINGW, LPWSTR, pszNewPath, 4, 4, 1);
805 TEST_FIELD(SHNAMEMAPPINGW, int, cchOldPath, 8, 4, 1);
806 TEST_FIELD(SHNAMEMAPPINGW, int, cchNewPath, 12, 4, 1);
809 static void test_pack_ITEMIDLIST(void)
811 /* ITEMIDLIST (pack 1) */
812 TEST_TYPE(ITEMIDLIST, 3, 1);
813 TEST_FIELD(ITEMIDLIST, SHITEMID, mkid, 0, 3, 1);
816 static void test_pack_LPCITEMIDLIST(void)
819 TEST_TYPE(LPCITEMIDLIST, 4, 4);
820 TEST_TYPE_POINTER(LPCITEMIDLIST, 3, 1);
823 static void test_pack_LPITEMIDLIST(void)
826 TEST_TYPE(LPITEMIDLIST, 4, 4);
827 TEST_TYPE_POINTER(LPITEMIDLIST, 3, 1);
830 static void test_pack_LPSHITEMID(void)
833 TEST_TYPE(LPSHITEMID, 4, 4);
834 TEST_TYPE_POINTER(LPSHITEMID, 3, 1);
837 static void test_pack_SHITEMID(void)
839 /* SHITEMID (pack 1) */
840 TEST_TYPE(SHITEMID, 3, 1);
841 TEST_FIELD(SHITEMID, WORD, cb, 0, 2, 1);
842 TEST_FIELD(SHITEMID, BYTE[1], abID, 2, 1, 1);
845 static void test_pack_AUTO_SCROLL_DATA(void)
847 /* AUTO_SCROLL_DATA (pack 1) */
848 TEST_TYPE(AUTO_SCROLL_DATA, 48, 1);
849 TEST_FIELD(AUTO_SCROLL_DATA, int, iNextSample, 0, 4, 1);
850 TEST_FIELD(AUTO_SCROLL_DATA, DWORD, dwLastScroll, 4, 4, 1);
851 TEST_FIELD(AUTO_SCROLL_DATA, BOOL, bFull, 8, 4, 1);
852 TEST_FIELD(AUTO_SCROLL_DATA, POINT[NUM_POINTS], pts, 12, 24, 1);
853 TEST_FIELD(AUTO_SCROLL_DATA, DWORD[NUM_POINTS], dwTimes, 36, 12, 1);
856 static void test_pack_BFFCALLBACK(void)
859 TEST_TYPE(BFFCALLBACK, 4, 4);
862 static void test_pack_BROWSEINFOA(void)
864 /* BROWSEINFOA (pack 8) */
865 TEST_TYPE(BROWSEINFOA, 32, 4);
866 TEST_FIELD(BROWSEINFOA, HWND, hwndOwner, 0, 4, 4);
867 TEST_FIELD(BROWSEINFOA, LPCITEMIDLIST, pidlRoot, 4, 4, 4);
868 TEST_FIELD(BROWSEINFOA, LPSTR, pszDisplayName, 8, 4, 4);
869 TEST_FIELD(BROWSEINFOA, LPCSTR, lpszTitle, 12, 4, 4);
870 TEST_FIELD(BROWSEINFOA, UINT, ulFlags, 16, 4, 4);
871 TEST_FIELD(BROWSEINFOA, BFFCALLBACK, lpfn, 20, 4, 4);
872 TEST_FIELD(BROWSEINFOA, LPARAM, lParam, 24, 4, 4);
873 TEST_FIELD(BROWSEINFOA, INT, iImage, 28, 4, 4);
876 static void test_pack_BROWSEINFOW(void)
878 /* BROWSEINFOW (pack 8) */
879 TEST_TYPE(BROWSEINFOW, 32, 4);
880 TEST_FIELD(BROWSEINFOW, HWND, hwndOwner, 0, 4, 4);
881 TEST_FIELD(BROWSEINFOW, LPCITEMIDLIST, pidlRoot, 4, 4, 4);
882 TEST_FIELD(BROWSEINFOW, LPWSTR, pszDisplayName, 8, 4, 4);
883 TEST_FIELD(BROWSEINFOW, LPCWSTR, lpszTitle, 12, 4, 4);
884 TEST_FIELD(BROWSEINFOW, UINT, ulFlags, 16, 4, 4);
885 TEST_FIELD(BROWSEINFOW, BFFCALLBACK, lpfn, 20, 4, 4);
886 TEST_FIELD(BROWSEINFOW, LPARAM, lParam, 24, 4, 4);
887 TEST_FIELD(BROWSEINFOW, INT, iImage, 28, 4, 4);
890 static void test_pack_CABINETSTATE(void)
892 /* CABINETSTATE (pack 1) */
893 TEST_TYPE(CABINETSTATE, 12, 1);
894 TEST_FIELD(CABINETSTATE, WORD, cLength, 0, 2, 1);
895 TEST_FIELD(CABINETSTATE, WORD, nVersion, 2, 2, 1);
896 TEST_FIELD(CABINETSTATE, UINT, fMenuEnumFilter, 8, 4, 1);
899 static void test_pack_CIDA(void)
902 TEST_TYPE(CIDA, 8, 1);
903 TEST_FIELD(CIDA, UINT, cidl, 0, 4, 1);
904 TEST_FIELD(CIDA, UINT[1], aoffset, 4, 4, 1);
907 static void test_pack_DROPFILES(void)
909 /* DROPFILES (pack 1) */
910 TEST_TYPE(DROPFILES, 20, 1);
911 TEST_FIELD(DROPFILES, DWORD, pFiles, 0, 4, 1);
912 TEST_FIELD(DROPFILES, POINT, pt, 4, 8, 1);
913 TEST_FIELD(DROPFILES, BOOL, fNC, 12, 4, 1);
914 TEST_FIELD(DROPFILES, BOOL, fWide, 16, 4, 1);
917 static void test_pack_FILEDESCRIPTORA(void)
919 /* FILEDESCRIPTORA (pack 1) */
920 TEST_TYPE(FILEDESCRIPTORA, 332, 1);
921 TEST_FIELD(FILEDESCRIPTORA, DWORD, dwFlags, 0, 4, 1);
922 TEST_FIELD(FILEDESCRIPTORA, CLSID, clsid, 4, 16, 1);
923 TEST_FIELD(FILEDESCRIPTORA, SIZEL, sizel, 20, 8, 1);
924 TEST_FIELD(FILEDESCRIPTORA, POINTL, pointl, 28, 8, 1);
925 TEST_FIELD(FILEDESCRIPTORA, DWORD, dwFileAttributes, 36, 4, 1);
926 TEST_FIELD(FILEDESCRIPTORA, FILETIME, ftCreationTime, 40, 8, 1);
927 TEST_FIELD(FILEDESCRIPTORA, FILETIME, ftLastAccessTime, 48, 8, 1);
928 TEST_FIELD(FILEDESCRIPTORA, FILETIME, ftLastWriteTime, 56, 8, 1);
929 TEST_FIELD(FILEDESCRIPTORA, DWORD, nFileSizeHigh, 64, 4, 1);
930 TEST_FIELD(FILEDESCRIPTORA, DWORD, nFileSizeLow, 68, 4, 1);
931 TEST_FIELD(FILEDESCRIPTORA, CHAR[MAX_PATH], cFileName, 72, 260, 1);
934 static void test_pack_FILEDESCRIPTORW(void)
936 /* FILEDESCRIPTORW (pack 1) */
937 TEST_TYPE(FILEDESCRIPTORW, 592, 1);
938 TEST_FIELD(FILEDESCRIPTORW, DWORD, dwFlags, 0, 4, 1);
939 TEST_FIELD(FILEDESCRIPTORW, CLSID, clsid, 4, 16, 1);
940 TEST_FIELD(FILEDESCRIPTORW, SIZEL, sizel, 20, 8, 1);
941 TEST_FIELD(FILEDESCRIPTORW, POINTL, pointl, 28, 8, 1);
942 TEST_FIELD(FILEDESCRIPTORW, DWORD, dwFileAttributes, 36, 4, 1);
943 TEST_FIELD(FILEDESCRIPTORW, FILETIME, ftCreationTime, 40, 8, 1);
944 TEST_FIELD(FILEDESCRIPTORW, FILETIME, ftLastAccessTime, 48, 8, 1);
945 TEST_FIELD(FILEDESCRIPTORW, FILETIME, ftLastWriteTime, 56, 8, 1);
946 TEST_FIELD(FILEDESCRIPTORW, DWORD, nFileSizeHigh, 64, 4, 1);
947 TEST_FIELD(FILEDESCRIPTORW, DWORD, nFileSizeLow, 68, 4, 1);
948 TEST_FIELD(FILEDESCRIPTORW, WCHAR[MAX_PATH], cFileName, 72, 520, 1);
951 static void test_pack_FILEGROUPDESCRIPTORA(void)
953 /* FILEGROUPDESCRIPTORA (pack 1) */
954 TEST_TYPE(FILEGROUPDESCRIPTORA, 336, 1);
955 TEST_FIELD(FILEGROUPDESCRIPTORA, UINT, cItems, 0, 4, 1);
956 TEST_FIELD(FILEGROUPDESCRIPTORA, FILEDESCRIPTORA[1], fgd, 4, 332, 1);
959 static void test_pack_FILEGROUPDESCRIPTORW(void)
961 /* FILEGROUPDESCRIPTORW (pack 1) */
962 TEST_TYPE(FILEGROUPDESCRIPTORW, 596, 1);
963 TEST_FIELD(FILEGROUPDESCRIPTORW, UINT, cItems, 0, 4, 1);
964 TEST_FIELD(FILEGROUPDESCRIPTORW, FILEDESCRIPTORW[1], fgd, 4, 592, 1);
967 static void test_pack_IFileSystemBindData(void)
969 /* IFileSystemBindData */
972 static void test_pack_IFileSystemBindDataVtbl(void)
974 /* IFileSystemBindDataVtbl */
977 static void test_pack_IShellChangeNotify(void)
979 /* IShellChangeNotify */
982 static void test_pack_IShellIcon(void)
987 static void test_pack_LPBROWSEINFOA(void)
990 TEST_TYPE(LPBROWSEINFOA, 4, 4);
991 TEST_TYPE_POINTER(LPBROWSEINFOA, 32, 4);
994 static void test_pack_LPBROWSEINFOW(void)
997 TEST_TYPE(LPBROWSEINFOW, 4, 4);
998 TEST_TYPE_POINTER(LPBROWSEINFOW, 32, 4);
1001 static void test_pack_LPCABINETSTATE(void)
1003 /* LPCABINETSTATE */
1004 TEST_TYPE(LPCABINETSTATE, 4, 4);
1005 TEST_TYPE_POINTER(LPCABINETSTATE, 12, 1);
1008 static void test_pack_LPDROPFILES(void)
1011 TEST_TYPE(LPDROPFILES, 4, 4);
1012 TEST_TYPE_POINTER(LPDROPFILES, 20, 1);
1015 static void test_pack_LPFILEDESCRIPTORA(void)
1017 /* LPFILEDESCRIPTORA */
1018 TEST_TYPE(LPFILEDESCRIPTORA, 4, 4);
1019 TEST_TYPE_POINTER(LPFILEDESCRIPTORA, 332, 1);
1022 static void test_pack_LPFILEDESCRIPTORW(void)
1024 /* LPFILEDESCRIPTORW */
1025 TEST_TYPE(LPFILEDESCRIPTORW, 4, 4);
1026 TEST_TYPE_POINTER(LPFILEDESCRIPTORW, 592, 1);
1029 static void test_pack_LPFILEGROUPDESCRIPTORA(void)
1031 /* LPFILEGROUPDESCRIPTORA */
1032 TEST_TYPE(LPFILEGROUPDESCRIPTORA, 4, 4);
1033 TEST_TYPE_POINTER(LPFILEGROUPDESCRIPTORA, 336, 1);
1036 static void test_pack_LPFILEGROUPDESCRIPTORW(void)
1038 /* LPFILEGROUPDESCRIPTORW */
1039 TEST_TYPE(LPFILEGROUPDESCRIPTORW, 4, 4);
1040 TEST_TYPE_POINTER(LPFILEGROUPDESCRIPTORW, 596, 1);
1043 static void test_pack_LPIDA(void)
1046 TEST_TYPE(LPIDA, 4, 4);
1047 TEST_TYPE_POINTER(LPIDA, 8, 1);
1050 static void test_pack_LPSHChangeDWORDAsIDList(void)
1052 /* LPSHChangeDWORDAsIDList */
1053 TEST_TYPE(LPSHChangeDWORDAsIDList, 4, 4);
1054 TEST_TYPE_POINTER(LPSHChangeDWORDAsIDList, 12, 1);
1057 static void test_pack_LPSHChangeProductKeyAsIDList(void)
1059 /* LPSHChangeProductKeyAsIDList */
1060 TEST_TYPE(LPSHChangeProductKeyAsIDList, 4, 4);
1061 TEST_TYPE_POINTER(LPSHChangeProductKeyAsIDList, 82, 1);
1064 static void test_pack_LPSHDESCRIPTIONID(void)
1066 /* LPSHDESCRIPTIONID */
1067 TEST_TYPE(LPSHDESCRIPTIONID, 4, 4);
1068 TEST_TYPE_POINTER(LPSHDESCRIPTIONID, 20, 4);
1071 static void test_pack_LPSHELLFLAGSTATE(void)
1073 /* LPSHELLFLAGSTATE */
1074 TEST_TYPE(LPSHELLFLAGSTATE, 4, 4);
1075 TEST_TYPE_POINTER(LPSHELLFLAGSTATE, 4, 1);
1078 static void test_pack_LPSHELLSTATE(void)
1081 TEST_TYPE(LPSHELLSTATE, 4, 4);
1082 TEST_TYPE_POINTER(LPSHELLSTATE, 32, 1);
1085 static void test_pack_PBROWSEINFOA(void)
1088 TEST_TYPE(PBROWSEINFOA, 4, 4);
1089 TEST_TYPE_POINTER(PBROWSEINFOA, 32, 4);
1092 static void test_pack_PBROWSEINFOW(void)
1095 TEST_TYPE(PBROWSEINFOW, 4, 4);
1096 TEST_TYPE_POINTER(PBROWSEINFOW, 32, 4);
1099 static void test_pack_SHChangeDWORDAsIDList(void)
1101 /* SHChangeDWORDAsIDList (pack 1) */
1102 TEST_TYPE(SHChangeDWORDAsIDList, 12, 1);
1103 TEST_FIELD(SHChangeDWORDAsIDList, USHORT, cb, 0, 2, 1);
1104 TEST_FIELD(SHChangeDWORDAsIDList, DWORD, dwItem1, 2, 4, 1);
1105 TEST_FIELD(SHChangeDWORDAsIDList, DWORD, dwItem2, 6, 4, 1);
1106 TEST_FIELD(SHChangeDWORDAsIDList, USHORT, cbZero, 10, 2, 1);
1109 static void test_pack_SHChangeNotifyEntry(void)
1111 /* SHChangeNotifyEntry (pack 1) */
1112 TEST_TYPE(SHChangeNotifyEntry, 8, 1);
1113 TEST_FIELD(SHChangeNotifyEntry, LPCITEMIDLIST, pidl, 0, 4, 1);
1114 TEST_FIELD(SHChangeNotifyEntry, BOOL, fRecursive, 4, 4, 1);
1117 static void test_pack_SHChangeProductKeyAsIDList(void)
1119 /* SHChangeProductKeyAsIDList (pack 1) */
1120 TEST_TYPE(SHChangeProductKeyAsIDList, 82, 1);
1121 TEST_FIELD(SHChangeProductKeyAsIDList, USHORT, cb, 0, 2, 1);
1122 TEST_FIELD(SHChangeProductKeyAsIDList, WCHAR[39], wszProductKey, 2, 78, 1);
1123 TEST_FIELD(SHChangeProductKeyAsIDList, USHORT, cbZero, 80, 2, 1);
1126 static void test_pack_SHDESCRIPTIONID(void)
1128 /* SHDESCRIPTIONID (pack 8) */
1129 TEST_TYPE(SHDESCRIPTIONID, 20, 4);
1130 TEST_FIELD(SHDESCRIPTIONID, DWORD, dwDescriptionId, 0, 4, 4);
1131 TEST_FIELD(SHDESCRIPTIONID, CLSID, clsid, 4, 16, 4);
1134 static void test_pack_SHELLFLAGSTATE(void)
1136 /* SHELLFLAGSTATE (pack 1) */
1137 TEST_TYPE(SHELLFLAGSTATE, 4, 1);
1140 static void test_pack_SHELLSTATE(void)
1142 /* SHELLSTATE (pack 1) */
1143 TEST_TYPE(SHELLSTATE, 32, 1);
1144 TEST_FIELD(SHELLSTATE, DWORD, dwWin95Unused, 4, 4, 1);
1145 TEST_FIELD(SHELLSTATE, UINT, uWin95Unused, 8, 4, 1);
1146 TEST_FIELD(SHELLSTATE, LONG, lParamSort, 12, 4, 1);
1147 TEST_FIELD(SHELLSTATE, int, iSortDirection, 16, 4, 1);
1148 TEST_FIELD(SHELLSTATE, UINT, version, 20, 4, 1);
1149 TEST_FIELD(SHELLSTATE, UINT, uNotUsed, 24, 4, 1);
1152 static void test_pack_SHELLVIEWID(void)
1155 TEST_TYPE(SHELLVIEWID, 16, 4);
1158 static void test_pack(void)
1160 test_pack_APPBARDATA();
1161 test_pack_AUTO_SCROLL_DATA();
1162 test_pack_BFFCALLBACK();
1164 test_pack_BROWSEINFOA();
1165 test_pack_BROWSEINFOW();
1167 test_pack_BSTRBLOB();
1168 test_pack_BYTE_BLOB();
1169 test_pack_BYTE_SIZEDARR();
1170 test_pack_CABINETSTATE();
1172 test_pack_CLIPDATA();
1173 test_pack_CLIPFORMAT();
1175 test_pack_COAUTHIDENTITY();
1176 test_pack_COAUTHINFO();
1177 test_pack_COSERVERINFO();
1178 test_pack_DRAGINFOA();
1179 test_pack_DRAGINFOW();
1180 test_pack_DROPFILES();
1181 test_pack_DWORD_SIZEDARR();
1182 test_pack_FILEDESCRIPTORA();
1183 test_pack_FILEDESCRIPTORW();
1184 test_pack_FILEGROUPDESCRIPTORA();
1185 test_pack_FILEGROUPDESCRIPTORW();
1186 test_pack_FILEOP_FLAGS();
1187 test_pack_FLAGGED_BYTE_BLOB();
1188 test_pack_FLAGGED_WORD_BLOB();
1191 test_pack_HMETAFILEPICT();
1192 test_pack_HYPER_SIZEDARR();
1193 test_pack_IFileSystemBindData();
1194 test_pack_IFileSystemBindDataVtbl();
1196 test_pack_IShellChangeNotify();
1197 test_pack_IShellIcon();
1198 test_pack_ITEMIDLIST();
1200 test_pack_LPBROWSEINFOA();
1201 test_pack_LPBROWSEINFOW();
1203 test_pack_LPBSTRBLOB();
1204 test_pack_LPCABINETSTATE();
1205 test_pack_LPCITEMIDLIST();
1206 test_pack_LPCOLESTR();
1208 test_pack_LPDECIMAL();
1209 test_pack_LPDRAGINFOA();
1210 test_pack_LPDRAGINFOW();
1211 test_pack_LPDROPFILES();
1212 test_pack_LPFILEDESCRIPTORA();
1213 test_pack_LPFILEDESCRIPTORW();
1214 test_pack_LPFILEGROUPDESCRIPTORA();
1215 test_pack_LPFILEGROUPDESCRIPTORW();
1218 test_pack_LPITEMIDLIST();
1219 test_pack_LPOLESTR();
1220 test_pack_LPSHChangeDWORDAsIDList();
1221 test_pack_LPSHChangeProductKeyAsIDList();
1222 test_pack_LPSHDESCRIPTIONID();
1223 test_pack_LPSHELLEXECUTEINFOA();
1224 test_pack_LPSHELLEXECUTEINFOW();
1225 test_pack_LPSHELLFLAGSTATE();
1226 test_pack_LPSHELLSTATE();
1227 test_pack_LPSHFILEOPSTRUCTA();
1228 test_pack_LPSHFILEOPSTRUCTW();
1229 test_pack_LPSHITEMID();
1230 test_pack_LPSHNAMEMAPPINGA();
1231 test_pack_LPSHNAMEMAPPINGW();
1232 test_pack_NOTIFYICONDATAA();
1233 test_pack_NOTIFYICONDATAW();
1234 test_pack_OLECHAR();
1235 test_pack_PAPPBARDATA();
1236 test_pack_PBROWSEINFOA();
1237 test_pack_PBROWSEINFOW();
1238 test_pack_PNOTIFYICONDATAA();
1239 test_pack_PNOTIFYICONDATAW();
1240 test_pack_PRINTEROP_FLAGS();
1242 test_pack_RemHBITMAP();
1243 test_pack_RemHENHMETAFILE();
1244 test_pack_RemHGLOBAL();
1245 test_pack_RemHMETAFILEPICT();
1246 test_pack_RemHPALETTE();
1248 test_pack_SHChangeDWORDAsIDList();
1249 test_pack_SHChangeNotifyEntry();
1250 test_pack_SHChangeProductKeyAsIDList();
1251 test_pack_SHDESCRIPTIONID();
1252 test_pack_SHELLEXECUTEINFOA();
1253 test_pack_SHELLEXECUTEINFOW();
1254 test_pack_SHELLFLAGSTATE();
1255 test_pack_SHELLSTATE();
1256 test_pack_SHELLVIEWID();
1257 test_pack_SHFILEINFOA();
1258 test_pack_SHFILEINFOW();
1259 test_pack_SHFILEOPSTRUCTA();
1260 test_pack_SHFILEOPSTRUCTW();
1261 test_pack_SHITEMID();
1262 test_pack_SHNAMEMAPPINGA();
1263 test_pack_SHNAMEMAPPINGW();
1264 test_pack_UP_BYTE_BLOB();
1265 test_pack_UP_FLAGGED_BYTE_BLOB();
1266 test_pack_UP_FLAGGED_WORD_BLOB();
1267 test_pack_VARIANT_BOOL();
1268 test_pack_VARTYPE();
1269 test_pack_WORD_SIZEDARR();
1270 test_pack_remoteMETAFILEPICT();
1271 test_pack_userBITMAP();
1272 test_pack_userCLIPFORMAT();
1273 test_pack_userHBITMAP();
1274 test_pack_userHENHMETAFILE();
1275 test_pack_userHGLOBAL();
1276 test_pack_userHMETAFILE();
1277 test_pack_userHMETAFILEPICT();
1278 test_pack_userHPALETTE();
1279 test_pack_wireBSTR();
1280 test_pack_wireCLIPFORMAT();
1281 test_pack_wireHBITMAP();
1282 test_pack_wireHENHMETAFILE();
1283 test_pack_wireHGLOBAL();
1284 test_pack_wireHMETAFILE();
1285 test_pack_wireHMETAFILEPICT();
1286 test_pack_wireHPALETTE();
1289 START_TEST(generated)