1 /* File generated automatically from tools/winapi/tests.dat; do not edit! */
2 /* This file can be copied, modified and distributed without restriction. */
3 
4 /*
5  * Unit tests for data structure packing
6  */
7 
8 #ifndef __REACTOS__
9 #define WINVER 0x0501
10 #define _WIN32_IE 0x0501
11 #define _WIN32_WINNT 0x0501
12 #endif
13 
14 #define WINE_NOWINSOCK
15 
16 #include <stdarg.h>
17 #include "windef.h"
18 #include "winbase.h"
19 #include "urlmon.h"
20 
21 #include "wine/test.h"
22 
23 /***********************************************************************
24  * Compatibility macros
25  */
26 
27 #define DWORD_PTR UINT_PTR
28 #define LONG_PTR INT_PTR
29 #define ULONG_PTR UINT_PTR
30 
31 /***********************************************************************
32  * Windows API extension
33  */
34 
35 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
36 # define _TYPE_ALIGNMENT(type) __alignof(type)
37 #elif defined(__GNUC__)
38 # define _TYPE_ALIGNMENT(type) __alignof__(type)
39 #else
40 /*
41  * FIXME: May not be possible without a compiler extension
42  *        (if type is not just a name that is, otherwise the normal
43  *         TYPE_ALIGNMENT can be used)
44  */
45 #endif
46 
47 #if defined(TYPE_ALIGNMENT) && defined(_MSC_VER) && _MSC_VER >= 800 && !defined(__cplusplus)
48 #pragma warning(disable:4116)
49 #endif
50 
51 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
52 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
53 #endif
54 
55 /***********************************************************************
56  * Test helper macros
57  */
58 
59 #define TEST_TYPE_SIZE(type, size)             C_ASSERT(sizeof(type) == size);
60 
61 #ifdef TYPE_ALIGNMENT
62 # define TEST_TYPE_ALIGN(type, align)          C_ASSERT(TYPE_ALIGNMENT(type) == align);
63 #else
64 # define TEST_TYPE_ALIGN(type, align)
65 #endif
66 
67 #ifdef _TYPE_ALIGNMENT
68 # define TEST_TARGET_ALIGN(type, align)        C_ASSERT(_TYPE_ALIGNMENT(*(type)0) == align);
69 # define TEST_FIELD_ALIGN(type, field, align)  C_ASSERT(_TYPE_ALIGNMENT(((type*)0)->field) == align);
70 #else
71 # define TEST_TARGET_ALIGN(type, align)
72 # define TEST_FIELD_ALIGN(type, field, align)
73 #endif
74 
75 #define TEST_FIELD_OFFSET(type, field, offset) C_ASSERT(FIELD_OFFSET(type, field) == offset);
76 
77 #define TEST_TARGET_SIZE(type, size)            TEST_TYPE_SIZE(*(type)0, size)
78 #define TEST_FIELD_SIZE(type, field, size)      TEST_TYPE_SIZE((((type*)0)->field), size)
79 #define TEST_TYPE_SIGNED(type)                  C_ASSERT((type) -1 < 0);
80 #define TEST_TYPE_UNSIGNED(type)                C_ASSERT((type) -1 > 0);
81 
82 
83 #ifdef _WIN64
84 
85 static void test_pack_BINDINFO(void)
86 {
87     /* BINDINFO */
88     TEST_FIELD_SIZE  (BINDINFO, cbSize, 4)
89     TEST_FIELD_ALIGN (BINDINFO, cbSize, 4)
90     TEST_FIELD_OFFSET(BINDINFO, cbSize, 0)
91     TEST_FIELD_SIZE  (BINDINFO, szExtraInfo, 8)
92     TEST_FIELD_ALIGN (BINDINFO, szExtraInfo, 8)
93     TEST_FIELD_OFFSET(BINDINFO, szExtraInfo, 8)
94 }
95 
96 static void test_pack_IBindHost(void)
97 {
98     /* IBindHost */
99 }
100 
101 static void test_pack_IBindHostVtbl(void)
102 {
103     /* IBindHostVtbl */
104 }
105 
106 static void test_pack_IBindStatusCallback(void)
107 {
108     /* IBindStatusCallback */
109 }
110 
111 static void test_pack_IBindStatusCallbackVtbl(void)
112 {
113     /* IBindStatusCallbackVtbl */
114 }
115 
116 static void test_pack_IBinding(void)
117 {
118     /* IBinding */
119 }
120 
121 static void test_pack_IBindingVtbl(void)
122 {
123     /* IBindingVtbl */
124 }
125 
126 static void test_pack_IInternetProtocolInfo(void)
127 {
128     /* IInternetProtocolInfo */
129 }
130 
131 static void test_pack_IInternetProtocolInfoVtbl(void)
132 {
133     /* IInternetProtocolInfoVtbl */
134 }
135 
136 static void test_pack_IInternetSession(void)
137 {
138     /* IInternetSession */
139 }
140 
141 static void test_pack_IInternetSessionVtbl(void)
142 {
143     /* IInternetSessionVtbl */
144 }
145 
146 static void test_pack_IPersistMoniker(void)
147 {
148     /* IPersistMoniker */
149 }
150 
151 static void test_pack_IPersistMonikerVtbl(void)
152 {
153     /* IPersistMonikerVtbl */
154 }
155 
156 static void test_pack_IWinInetHttpInfo(void)
157 {
158     /* IWinInetHttpInfo */
159 }
160 
161 static void test_pack_IWinInetHttpInfoVtbl(void)
162 {
163     /* IWinInetHttpInfoVtbl */
164 }
165 
166 static void test_pack_IWinInetInfo(void)
167 {
168     /* IWinInetInfo */
169 }
170 
171 static void test_pack_IWinInetInfoVtbl(void)
172 {
173     /* IWinInetInfoVtbl */
174 }
175 
176 static void test_pack_LPBINDHOST(void)
177 {
178     /* LPBINDHOST */
179     TEST_TYPE_SIZE   (LPBINDHOST, 8)
180     TEST_TYPE_ALIGN  (LPBINDHOST, 8)
181 }
182 
183 static void test_pack_LPBINDING(void)
184 {
185     /* LPBINDING */
186     TEST_TYPE_SIZE   (LPBINDING, 8)
187     TEST_TYPE_ALIGN  (LPBINDING, 8)
188 }
189 
190 static void test_pack_LPBINDSTATUSCALLBACK(void)
191 {
192     /* LPBINDSTATUSCALLBACK */
193     TEST_TYPE_SIZE   (LPBINDSTATUSCALLBACK, 8)
194     TEST_TYPE_ALIGN  (LPBINDSTATUSCALLBACK, 8)
195 }
196 
197 static void test_pack_LPIINTERNETPROTOCOLINFO(void)
198 {
199     /* LPIINTERNETPROTOCOLINFO */
200     TEST_TYPE_SIZE   (LPIINTERNETPROTOCOLINFO, 8)
201     TEST_TYPE_ALIGN  (LPIINTERNETPROTOCOLINFO, 8)
202 }
203 
204 static void test_pack_LPIINTERNETSESSION(void)
205 {
206     /* LPIINTERNETSESSION */
207     TEST_TYPE_SIZE   (LPIINTERNETSESSION, 8)
208     TEST_TYPE_ALIGN  (LPIINTERNETSESSION, 8)
209 }
210 
211 static void test_pack_LPPERSISTMONIKER(void)
212 {
213     /* LPPERSISTMONIKER */
214     TEST_TYPE_SIZE   (LPPERSISTMONIKER, 8)
215     TEST_TYPE_ALIGN  (LPPERSISTMONIKER, 8)
216 }
217 
218 static void test_pack_LPREMFORMATETC(void)
219 {
220     /* LPREMFORMATETC */
221     TEST_TYPE_SIZE   (LPREMFORMATETC, 8)
222     TEST_TYPE_ALIGN  (LPREMFORMATETC, 8)
223 }
224 
225 static void test_pack_LPREMSECURITY_ATTRIBUTES(void)
226 {
227     /* LPREMSECURITY_ATTRIBUTES */
228     TEST_TYPE_SIZE   (LPREMSECURITY_ATTRIBUTES, 8)
229     TEST_TYPE_ALIGN  (LPREMSECURITY_ATTRIBUTES, 8)
230 }
231 
232 static void test_pack_LPWININETHTTPINFO(void)
233 {
234     /* LPWININETHTTPINFO */
235     TEST_TYPE_SIZE   (LPWININETHTTPINFO, 8)
236     TEST_TYPE_ALIGN  (LPWININETHTTPINFO, 8)
237 }
238 
239 static void test_pack_LPWININETINFO(void)
240 {
241     /* LPWININETINFO */
242     TEST_TYPE_SIZE   (LPWININETINFO, 8)
243     TEST_TYPE_ALIGN  (LPWININETINFO, 8)
244 }
245 
246 static void test_pack_PREMSECURITY_ATTRIBUTES(void)
247 {
248     /* PREMSECURITY_ATTRIBUTES */
249     TEST_TYPE_SIZE   (PREMSECURITY_ATTRIBUTES, 8)
250     TEST_TYPE_ALIGN  (PREMSECURITY_ATTRIBUTES, 8)
251 }
252 
253 static void test_pack_REMSECURITY_ATTRIBUTES(void)
254 {
255     /* REMSECURITY_ATTRIBUTES */
256     TEST_TYPE_SIZE   (REMSECURITY_ATTRIBUTES, 12)
257     TEST_TYPE_ALIGN  (REMSECURITY_ATTRIBUTES, 4)
258     TEST_FIELD_SIZE  (REMSECURITY_ATTRIBUTES, nLength, 4)
259     TEST_FIELD_ALIGN (REMSECURITY_ATTRIBUTES, nLength, 4)
260     TEST_FIELD_OFFSET(REMSECURITY_ATTRIBUTES, nLength, 0)
261     TEST_FIELD_SIZE  (REMSECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
262     TEST_FIELD_ALIGN (REMSECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
263     TEST_FIELD_OFFSET(REMSECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
264     TEST_FIELD_SIZE  (REMSECURITY_ATTRIBUTES, bInheritHandle, 4)
265     TEST_FIELD_ALIGN (REMSECURITY_ATTRIBUTES, bInheritHandle, 4)
266     TEST_FIELD_OFFSET(REMSECURITY_ATTRIBUTES, bInheritHandle, 8)
267 }
268 
269 static void test_pack_RemBINDINFO(void)
270 {
271     /* RemBINDINFO */
272     TEST_TYPE_SIZE   (RemBINDINFO, 96)
273     TEST_TYPE_ALIGN  (RemBINDINFO, 8)
274     TEST_FIELD_SIZE  (RemBINDINFO, cbSize, 4)
275     TEST_FIELD_ALIGN (RemBINDINFO, cbSize, 4)
276     TEST_FIELD_OFFSET(RemBINDINFO, cbSize, 0)
277     TEST_FIELD_SIZE  (RemBINDINFO, szExtraInfo, 8)
278     TEST_FIELD_ALIGN (RemBINDINFO, szExtraInfo, 8)
279     TEST_FIELD_OFFSET(RemBINDINFO, szExtraInfo, 8)
280     TEST_FIELD_SIZE  (RemBINDINFO, grfBindInfoF, 4)
281     TEST_FIELD_ALIGN (RemBINDINFO, grfBindInfoF, 4)
282     TEST_FIELD_OFFSET(RemBINDINFO, grfBindInfoF, 16)
283     TEST_FIELD_SIZE  (RemBINDINFO, dwBindVerb, 4)
284     TEST_FIELD_ALIGN (RemBINDINFO, dwBindVerb, 4)
285     TEST_FIELD_OFFSET(RemBINDINFO, dwBindVerb, 20)
286     TEST_FIELD_SIZE  (RemBINDINFO, szCustomVerb, 8)
287     TEST_FIELD_ALIGN (RemBINDINFO, szCustomVerb, 8)
288     TEST_FIELD_OFFSET(RemBINDINFO, szCustomVerb, 24)
289     TEST_FIELD_SIZE  (RemBINDINFO, cbstgmedData, 4)
290     TEST_FIELD_ALIGN (RemBINDINFO, cbstgmedData, 4)
291     TEST_FIELD_OFFSET(RemBINDINFO, cbstgmedData, 32)
292     TEST_FIELD_SIZE  (RemBINDINFO, dwOptions, 4)
293     TEST_FIELD_ALIGN (RemBINDINFO, dwOptions, 4)
294     TEST_FIELD_OFFSET(RemBINDINFO, dwOptions, 36)
295     TEST_FIELD_SIZE  (RemBINDINFO, dwOptionsFlags, 4)
296     TEST_FIELD_ALIGN (RemBINDINFO, dwOptionsFlags, 4)
297     TEST_FIELD_OFFSET(RemBINDINFO, dwOptionsFlags, 40)
298     TEST_FIELD_SIZE  (RemBINDINFO, dwCodePage, 4)
299     TEST_FIELD_ALIGN (RemBINDINFO, dwCodePage, 4)
300     TEST_FIELD_OFFSET(RemBINDINFO, dwCodePage, 44)
301     TEST_FIELD_SIZE  (RemBINDINFO, securityAttributes, 12)
302     TEST_FIELD_ALIGN (RemBINDINFO, securityAttributes, 4)
303     TEST_FIELD_OFFSET(RemBINDINFO, securityAttributes, 48)
304     TEST_FIELD_SIZE  (RemBINDINFO, iid, 16)
305     TEST_FIELD_ALIGN (RemBINDINFO, iid, 4)
306     TEST_FIELD_OFFSET(RemBINDINFO, iid, 60)
307     TEST_FIELD_SIZE  (RemBINDINFO, pUnk, 8)
308     TEST_FIELD_ALIGN (RemBINDINFO, pUnk, 8)
309     TEST_FIELD_OFFSET(RemBINDINFO, pUnk, 80)
310     TEST_FIELD_SIZE  (RemBINDINFO, dwReserved, 4)
311     TEST_FIELD_ALIGN (RemBINDINFO, dwReserved, 4)
312     TEST_FIELD_OFFSET(RemBINDINFO, dwReserved, 88)
313 }
314 
315 static void test_pack_RemFORMATETC(void)
316 {
317     /* RemFORMATETC */
318     TEST_TYPE_SIZE   (RemFORMATETC, 20)
319     TEST_TYPE_ALIGN  (RemFORMATETC, 4)
320     TEST_FIELD_SIZE  (RemFORMATETC, cfFormat, 4)
321     TEST_FIELD_ALIGN (RemFORMATETC, cfFormat, 4)
322     TEST_FIELD_OFFSET(RemFORMATETC, cfFormat, 0)
323     TEST_FIELD_SIZE  (RemFORMATETC, ptd, 4)
324     TEST_FIELD_ALIGN (RemFORMATETC, ptd, 4)
325     TEST_FIELD_OFFSET(RemFORMATETC, ptd, 4)
326     TEST_FIELD_SIZE  (RemFORMATETC, dwAspect, 4)
327     TEST_FIELD_ALIGN (RemFORMATETC, dwAspect, 4)
328     TEST_FIELD_OFFSET(RemFORMATETC, dwAspect, 8)
329     TEST_FIELD_SIZE  (RemFORMATETC, lindex, 4)
330     TEST_FIELD_ALIGN (RemFORMATETC, lindex, 4)
331     TEST_FIELD_OFFSET(RemFORMATETC, lindex, 12)
332     TEST_FIELD_SIZE  (RemFORMATETC, tymed, 4)
333     TEST_FIELD_ALIGN (RemFORMATETC, tymed, 4)
334     TEST_FIELD_OFFSET(RemFORMATETC, tymed, 16)
335 }
336 
337 #else /* _WIN64 */
338 
339 static void test_pack_BINDINFO(void)
340 {
341     /* BINDINFO */
342     TEST_FIELD_SIZE  (BINDINFO, cbSize, 4)
343     TEST_FIELD_ALIGN (BINDINFO, cbSize, 4)
344     TEST_FIELD_OFFSET(BINDINFO, cbSize, 0)
345     TEST_FIELD_SIZE  (BINDINFO, szExtraInfo, 4)
346     TEST_FIELD_ALIGN (BINDINFO, szExtraInfo, 4)
347     TEST_FIELD_OFFSET(BINDINFO, szExtraInfo, 4)
348 }
349 
350 static void test_pack_IBindHost(void)
351 {
352     /* IBindHost */
353 }
354 
355 static void test_pack_IBindHostVtbl(void)
356 {
357     /* IBindHostVtbl */
358 }
359 
360 static void test_pack_IBindStatusCallback(void)
361 {
362     /* IBindStatusCallback */
363 }
364 
365 static void test_pack_IBindStatusCallbackVtbl(void)
366 {
367     /* IBindStatusCallbackVtbl */
368 }
369 
370 static void test_pack_IBinding(void)
371 {
372     /* IBinding */
373 }
374 
375 static void test_pack_IBindingVtbl(void)
376 {
377     /* IBindingVtbl */
378 }
379 
380 static void test_pack_IInternetProtocolInfo(void)
381 {
382     /* IInternetProtocolInfo */
383 }
384 
385 static void test_pack_IInternetProtocolInfoVtbl(void)
386 {
387     /* IInternetProtocolInfoVtbl */
388 }
389 
390 static void test_pack_IInternetSession(void)
391 {
392     /* IInternetSession */
393 }
394 
395 static void test_pack_IInternetSessionVtbl(void)
396 {
397     /* IInternetSessionVtbl */
398 }
399 
400 static void test_pack_IPersistMoniker(void)
401 {
402     /* IPersistMoniker */
403 }
404 
405 static void test_pack_IPersistMonikerVtbl(void)
406 {
407     /* IPersistMonikerVtbl */
408 }
409 
410 static void test_pack_IWinInetHttpInfo(void)
411 {
412     /* IWinInetHttpInfo */
413 }
414 
415 static void test_pack_IWinInetHttpInfoVtbl(void)
416 {
417     /* IWinInetHttpInfoVtbl */
418 }
419 
420 static void test_pack_IWinInetInfo(void)
421 {
422     /* IWinInetInfo */
423 }
424 
425 static void test_pack_IWinInetInfoVtbl(void)
426 {
427     /* IWinInetInfoVtbl */
428 }
429 
430 static void test_pack_LPBINDHOST(void)
431 {
432     /* LPBINDHOST */
433     TEST_TYPE_SIZE   (LPBINDHOST, 4)
434     TEST_TYPE_ALIGN  (LPBINDHOST, 4)
435 }
436 
437 static void test_pack_LPBINDING(void)
438 {
439     /* LPBINDING */
440     TEST_TYPE_SIZE   (LPBINDING, 4)
441     TEST_TYPE_ALIGN  (LPBINDING, 4)
442 }
443 
444 static void test_pack_LPBINDSTATUSCALLBACK(void)
445 {
446     /* LPBINDSTATUSCALLBACK */
447     TEST_TYPE_SIZE   (LPBINDSTATUSCALLBACK, 4)
448     TEST_TYPE_ALIGN  (LPBINDSTATUSCALLBACK, 4)
449 }
450 
451 static void test_pack_LPIINTERNETPROTOCOLINFO(void)
452 {
453     /* LPIINTERNETPROTOCOLINFO */
454     TEST_TYPE_SIZE   (LPIINTERNETPROTOCOLINFO, 4)
455     TEST_TYPE_ALIGN  (LPIINTERNETPROTOCOLINFO, 4)
456 }
457 
458 static void test_pack_LPIINTERNETSESSION(void)
459 {
460     /* LPIINTERNETSESSION */
461     TEST_TYPE_SIZE   (LPIINTERNETSESSION, 4)
462     TEST_TYPE_ALIGN  (LPIINTERNETSESSION, 4)
463 }
464 
465 static void test_pack_LPPERSISTMONIKER(void)
466 {
467     /* LPPERSISTMONIKER */
468     TEST_TYPE_SIZE   (LPPERSISTMONIKER, 4)
469     TEST_TYPE_ALIGN  (LPPERSISTMONIKER, 4)
470 }
471 
472 static void test_pack_LPREMFORMATETC(void)
473 {
474     /* LPREMFORMATETC */
475     TEST_TYPE_SIZE   (LPREMFORMATETC, 4)
476     TEST_TYPE_ALIGN  (LPREMFORMATETC, 4)
477 }
478 
479 static void test_pack_LPREMSECURITY_ATTRIBUTES(void)
480 {
481     /* LPREMSECURITY_ATTRIBUTES */
482     TEST_TYPE_SIZE   (LPREMSECURITY_ATTRIBUTES, 4)
483     TEST_TYPE_ALIGN  (LPREMSECURITY_ATTRIBUTES, 4)
484 }
485 
486 static void test_pack_LPWININETHTTPINFO(void)
487 {
488     /* LPWININETHTTPINFO */
489     TEST_TYPE_SIZE   (LPWININETHTTPINFO, 4)
490     TEST_TYPE_ALIGN  (LPWININETHTTPINFO, 4)
491 }
492 
493 static void test_pack_LPWININETINFO(void)
494 {
495     /* LPWININETINFO */
496     TEST_TYPE_SIZE   (LPWININETINFO, 4)
497     TEST_TYPE_ALIGN  (LPWININETINFO, 4)
498 }
499 
500 static void test_pack_PREMSECURITY_ATTRIBUTES(void)
501 {
502     /* PREMSECURITY_ATTRIBUTES */
503     TEST_TYPE_SIZE   (PREMSECURITY_ATTRIBUTES, 4)
504     TEST_TYPE_ALIGN  (PREMSECURITY_ATTRIBUTES, 4)
505 }
506 
507 static void test_pack_REMSECURITY_ATTRIBUTES(void)
508 {
509     /* REMSECURITY_ATTRIBUTES */
510     TEST_TYPE_SIZE   (REMSECURITY_ATTRIBUTES, 12)
511     TEST_TYPE_ALIGN  (REMSECURITY_ATTRIBUTES, 4)
512     TEST_FIELD_SIZE  (REMSECURITY_ATTRIBUTES, nLength, 4)
513     TEST_FIELD_ALIGN (REMSECURITY_ATTRIBUTES, nLength, 4)
514     TEST_FIELD_OFFSET(REMSECURITY_ATTRIBUTES, nLength, 0)
515     TEST_FIELD_SIZE  (REMSECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
516     TEST_FIELD_ALIGN (REMSECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
517     TEST_FIELD_OFFSET(REMSECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
518     TEST_FIELD_SIZE  (REMSECURITY_ATTRIBUTES, bInheritHandle, 4)
519     TEST_FIELD_ALIGN (REMSECURITY_ATTRIBUTES, bInheritHandle, 4)
520     TEST_FIELD_OFFSET(REMSECURITY_ATTRIBUTES, bInheritHandle, 8)
521 }
522 
523 static void test_pack_RemBINDINFO(void)
524 {
525     /* RemBINDINFO */
526     TEST_TYPE_SIZE   (RemBINDINFO, 72)
527     TEST_TYPE_ALIGN  (RemBINDINFO, 4)
528     TEST_FIELD_SIZE  (RemBINDINFO, cbSize, 4)
529     TEST_FIELD_ALIGN (RemBINDINFO, cbSize, 4)
530     TEST_FIELD_OFFSET(RemBINDINFO, cbSize, 0)
531     TEST_FIELD_SIZE  (RemBINDINFO, szExtraInfo, 4)
532     TEST_FIELD_ALIGN (RemBINDINFO, szExtraInfo, 4)
533     TEST_FIELD_OFFSET(RemBINDINFO, szExtraInfo, 4)
534     TEST_FIELD_SIZE  (RemBINDINFO, grfBindInfoF, 4)
535     TEST_FIELD_ALIGN (RemBINDINFO, grfBindInfoF, 4)
536     TEST_FIELD_OFFSET(RemBINDINFO, grfBindInfoF, 8)
537     TEST_FIELD_SIZE  (RemBINDINFO, dwBindVerb, 4)
538     TEST_FIELD_ALIGN (RemBINDINFO, dwBindVerb, 4)
539     TEST_FIELD_OFFSET(RemBINDINFO, dwBindVerb, 12)
540     TEST_FIELD_SIZE  (RemBINDINFO, szCustomVerb, 4)
541     TEST_FIELD_ALIGN (RemBINDINFO, szCustomVerb, 4)
542     TEST_FIELD_OFFSET(RemBINDINFO, szCustomVerb, 16)
543     TEST_FIELD_SIZE  (RemBINDINFO, cbstgmedData, 4)
544     TEST_FIELD_ALIGN (RemBINDINFO, cbstgmedData, 4)
545     TEST_FIELD_OFFSET(RemBINDINFO, cbstgmedData, 20)
546     TEST_FIELD_SIZE  (RemBINDINFO, dwOptions, 4)
547     TEST_FIELD_ALIGN (RemBINDINFO, dwOptions, 4)
548     TEST_FIELD_OFFSET(RemBINDINFO, dwOptions, 24)
549     TEST_FIELD_SIZE  (RemBINDINFO, dwOptionsFlags, 4)
550     TEST_FIELD_ALIGN (RemBINDINFO, dwOptionsFlags, 4)
551     TEST_FIELD_OFFSET(RemBINDINFO, dwOptionsFlags, 28)
552     TEST_FIELD_SIZE  (RemBINDINFO, dwCodePage, 4)
553     TEST_FIELD_ALIGN (RemBINDINFO, dwCodePage, 4)
554     TEST_FIELD_OFFSET(RemBINDINFO, dwCodePage, 32)
555     TEST_FIELD_SIZE  (RemBINDINFO, securityAttributes, 12)
556     TEST_FIELD_ALIGN (RemBINDINFO, securityAttributes, 4)
557     TEST_FIELD_OFFSET(RemBINDINFO, securityAttributes, 36)
558     TEST_FIELD_SIZE  (RemBINDINFO, iid, 16)
559     TEST_FIELD_ALIGN (RemBINDINFO, iid, 4)
560     TEST_FIELD_OFFSET(RemBINDINFO, iid, 48)
561     TEST_FIELD_SIZE  (RemBINDINFO, pUnk, 4)
562     TEST_FIELD_ALIGN (RemBINDINFO, pUnk, 4)
563     TEST_FIELD_OFFSET(RemBINDINFO, pUnk, 64)
564     TEST_FIELD_SIZE  (RemBINDINFO, dwReserved, 4)
565     TEST_FIELD_ALIGN (RemBINDINFO, dwReserved, 4)
566     TEST_FIELD_OFFSET(RemBINDINFO, dwReserved, 68)
567 }
568 
569 static void test_pack_RemFORMATETC(void)
570 {
571     /* RemFORMATETC */
572     TEST_TYPE_SIZE   (RemFORMATETC, 20)
573     TEST_TYPE_ALIGN  (RemFORMATETC, 4)
574     TEST_FIELD_SIZE  (RemFORMATETC, cfFormat, 4)
575     TEST_FIELD_ALIGN (RemFORMATETC, cfFormat, 4)
576     TEST_FIELD_OFFSET(RemFORMATETC, cfFormat, 0)
577     TEST_FIELD_SIZE  (RemFORMATETC, ptd, 4)
578     TEST_FIELD_ALIGN (RemFORMATETC, ptd, 4)
579     TEST_FIELD_OFFSET(RemFORMATETC, ptd, 4)
580     TEST_FIELD_SIZE  (RemFORMATETC, dwAspect, 4)
581     TEST_FIELD_ALIGN (RemFORMATETC, dwAspect, 4)
582     TEST_FIELD_OFFSET(RemFORMATETC, dwAspect, 8)
583     TEST_FIELD_SIZE  (RemFORMATETC, lindex, 4)
584     TEST_FIELD_ALIGN (RemFORMATETC, lindex, 4)
585     TEST_FIELD_OFFSET(RemFORMATETC, lindex, 12)
586     TEST_FIELD_SIZE  (RemFORMATETC, tymed, 4)
587     TEST_FIELD_ALIGN (RemFORMATETC, tymed, 4)
588     TEST_FIELD_OFFSET(RemFORMATETC, tymed, 16)
589 }
590 
591 #endif /* _WIN64 */
592 
593 static void test_pack(void)
594 {
595     test_pack_BINDINFO();
596     test_pack_IBindHost();
597     test_pack_IBindHostVtbl();
598     test_pack_IBindStatusCallback();
599     test_pack_IBindStatusCallbackVtbl();
600     test_pack_IBinding();
601     test_pack_IBindingVtbl();
602     test_pack_IInternetProtocolInfo();
603     test_pack_IInternetProtocolInfoVtbl();
604     test_pack_IInternetSession();
605     test_pack_IInternetSessionVtbl();
606     test_pack_IPersistMoniker();
607     test_pack_IPersistMonikerVtbl();
608     test_pack_IWinInetHttpInfo();
609     test_pack_IWinInetHttpInfoVtbl();
610     test_pack_IWinInetInfo();
611     test_pack_IWinInetInfoVtbl();
612     test_pack_LPBINDHOST();
613     test_pack_LPBINDING();
614     test_pack_LPBINDSTATUSCALLBACK();
615     test_pack_LPIINTERNETPROTOCOLINFO();
616     test_pack_LPIINTERNETSESSION();
617     test_pack_LPPERSISTMONIKER();
618     test_pack_LPREMFORMATETC();
619     test_pack_LPREMSECURITY_ATTRIBUTES();
620     test_pack_LPWININETHTTPINFO();
621     test_pack_LPWININETINFO();
622     test_pack_PREMSECURITY_ATTRIBUTES();
623     test_pack_REMSECURITY_ATTRIBUTES();
624     test_pack_RemBINDINFO();
625     test_pack_RemFORMATETC();
626 }
627 
628 START_TEST(generated)
629 {
630     test_pack();
631 }
632