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