gdi32: Store a separate flag to mark a GDI object for delayed destruction.
[wine] / dlls / urlmon / tests / generated.c
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 WINVER 0x0501
9 #define _WIN32_IE 0x0501
10 #define _WIN32_WINNT 0x0501
11
12 #define WINE_NOWINSOCK
13
14 #include <stdarg.h>
15 #include "windef.h"
16 #include "winbase.h"
17 #include "urlmon.h"
18
19 #include "wine/test.h"
20
21 /***********************************************************************
22  * Compatibility macros
23  */
24
25 #define DWORD_PTR UINT_PTR
26 #define LONG_PTR INT_PTR
27 #define ULONG_PTR UINT_PTR
28
29 /***********************************************************************
30  * Windows API extension
31  */
32
33 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
34 # define _TYPE_ALIGNMENT(type) __alignof(type)
35 #elif defined(__GNUC__)
36 # define _TYPE_ALIGNMENT(type) __alignof__(type)
37 #else
38 /*
39  * FIXME: May not be possible without a compiler extension
40  *        (if type is not just a name that is, otherwise the normal
41  *         TYPE_ALIGNMENT can be used)
42  */
43 #endif
44
45 #if defined(TYPE_ALIGNMENT) && defined(_MSC_VER) && _MSC_VER >= 800 && !defined(__cplusplus)
46 #pragma warning(disable:4116)
47 #endif
48
49 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
50 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
51 #endif
52
53 /***********************************************************************
54  * Test helper macros
55  */
56
57 #ifdef _WIN64
58
59 # define TEST_TYPE_SIZE(type, size)
60 # define TEST_TYPE_ALIGN(type, align)
61 # define TEST_TARGET_ALIGN(type, align)
62 # define TEST_FIELD_ALIGN(type, field, align)
63 # define TEST_FIELD_OFFSET(type, field, offset)
64
65 #else
66
67 # define TEST_TYPE_SIZE(type, size)             C_ASSERT(sizeof(type) == size);
68
69 # ifdef TYPE_ALIGNMENT
70 #  define TEST_TYPE_ALIGN(type, align)          C_ASSERT(TYPE_ALIGNMENT(type) == align);
71 # else
72 #  define TEST_TYPE_ALIGN(type, align)
73 # endif
74
75 # ifdef _TYPE_ALIGNMENT
76 #  define TEST_TARGET_ALIGN(type, align)        C_ASSERT(_TYPE_ALIGNMENT(*(type)0) == align);
77 #  define TEST_FIELD_ALIGN(type, field, align)  C_ASSERT(_TYPE_ALIGNMENT(((type*)0)->field) == align);
78 # else
79 #  define TEST_TARGET_ALIGN(type, align)
80 #  define TEST_FIELD_ALIGN(type, field, align)
81 # endif
82
83 # define TEST_FIELD_OFFSET(type, field, offset) C_ASSERT(FIELD_OFFSET(type, field) == offset);
84
85 #endif
86
87 #define TEST_TARGET_SIZE(type, size)            TEST_TYPE_SIZE(*(type)0, size)
88 #define TEST_FIELD_SIZE(type, field, size)      TEST_TYPE_SIZE((((type*)0)->field), size)
89 #define TEST_TYPE_SIGNED(type)                  C_ASSERT((type) -1 < 0);
90 #define TEST_TYPE_UNSIGNED(type)                C_ASSERT((type) -1 > 0);
91
92
93 static void test_pack_BINDINFO(void)
94 {
95     /* BINDINFO (pack 4) */
96     TEST_FIELD_SIZE  (BINDINFO, cbSize, 4)
97     TEST_FIELD_ALIGN (BINDINFO, cbSize, 4)
98     TEST_FIELD_OFFSET(BINDINFO, cbSize, 0)
99     TEST_FIELD_SIZE  (BINDINFO, szExtraInfo, 4)
100     TEST_FIELD_ALIGN (BINDINFO, szExtraInfo, 4)
101     TEST_FIELD_OFFSET(BINDINFO, szExtraInfo, 4)
102 }
103
104 static void test_pack_IBindHost(void)
105 {
106     /* IBindHost */
107 }
108
109 static void test_pack_IBindHostVtbl(void)
110 {
111     /* IBindHostVtbl (pack 4) */
112 }
113
114 static void test_pack_IBindStatusCallback(void)
115 {
116     /* IBindStatusCallback */
117 }
118
119 static void test_pack_IBindStatusCallbackVtbl(void)
120 {
121     /* IBindStatusCallbackVtbl (pack 4) */
122 }
123
124 static void test_pack_IBinding(void)
125 {
126     /* IBinding */
127 }
128
129 static void test_pack_IBindingVtbl(void)
130 {
131     /* IBindingVtbl (pack 4) */
132 }
133
134 static void test_pack_IInternetProtocolInfo(void)
135 {
136     /* IInternetProtocolInfo */
137 }
138
139 static void test_pack_IInternetProtocolInfoVtbl(void)
140 {
141     /* IInternetProtocolInfoVtbl (pack 4) */
142 }
143
144 static void test_pack_IInternetSession(void)
145 {
146     /* IInternetSession */
147 }
148
149 static void test_pack_IInternetSessionVtbl(void)
150 {
151     /* IInternetSessionVtbl (pack 4) */
152 }
153
154 static void test_pack_IPersistMoniker(void)
155 {
156     /* IPersistMoniker */
157 }
158
159 static void test_pack_IPersistMonikerVtbl(void)
160 {
161     /* IPersistMonikerVtbl (pack 4) */
162 }
163
164 static void test_pack_IWinInetHttpInfo(void)
165 {
166     /* IWinInetHttpInfo */
167 }
168
169 static void test_pack_IWinInetHttpInfoVtbl(void)
170 {
171     /* IWinInetHttpInfoVtbl (pack 4) */
172 }
173
174 static void test_pack_IWinInetInfo(void)
175 {
176     /* IWinInetInfo */
177 }
178
179 static void test_pack_IWinInetInfoVtbl(void)
180 {
181     /* IWinInetInfoVtbl (pack 4) */
182 }
183
184 static void test_pack_LPBINDHOST(void)
185 {
186     /* LPBINDHOST */
187     TEST_TYPE_SIZE   (LPBINDHOST, 4)
188     TEST_TYPE_ALIGN  (LPBINDHOST, 4)
189 }
190
191 static void test_pack_LPBINDING(void)
192 {
193     /* LPBINDING */
194     TEST_TYPE_SIZE   (LPBINDING, 4)
195     TEST_TYPE_ALIGN  (LPBINDING, 4)
196 }
197
198 static void test_pack_LPBINDSTATUSCALLBACK(void)
199 {
200     /* LPBINDSTATUSCALLBACK */
201     TEST_TYPE_SIZE   (LPBINDSTATUSCALLBACK, 4)
202     TEST_TYPE_ALIGN  (LPBINDSTATUSCALLBACK, 4)
203 }
204
205 static void test_pack_LPIINTERNETPROTOCOLINFO(void)
206 {
207     /* LPIINTERNETPROTOCOLINFO */
208     TEST_TYPE_SIZE   (LPIINTERNETPROTOCOLINFO, 4)
209     TEST_TYPE_ALIGN  (LPIINTERNETPROTOCOLINFO, 4)
210 }
211
212 static void test_pack_LPIINTERNETSESSION(void)
213 {
214     /* LPIINTERNETSESSION */
215     TEST_TYPE_SIZE   (LPIINTERNETSESSION, 4)
216     TEST_TYPE_ALIGN  (LPIINTERNETSESSION, 4)
217 }
218
219 static void test_pack_LPPERSISTMONIKER(void)
220 {
221     /* LPPERSISTMONIKER */
222     TEST_TYPE_SIZE   (LPPERSISTMONIKER, 4)
223     TEST_TYPE_ALIGN  (LPPERSISTMONIKER, 4)
224 }
225
226 static void test_pack_LPREMFORMATETC(void)
227 {
228     /* LPREMFORMATETC */
229     TEST_TYPE_SIZE   (LPREMFORMATETC, 4)
230     TEST_TYPE_ALIGN  (LPREMFORMATETC, 4)
231 }
232
233 static void test_pack_LPREMSECURITY_ATTRIBUTES(void)
234 {
235     /* LPREMSECURITY_ATTRIBUTES */
236     TEST_TYPE_SIZE   (LPREMSECURITY_ATTRIBUTES, 4)
237     TEST_TYPE_ALIGN  (LPREMSECURITY_ATTRIBUTES, 4)
238 }
239
240 static void test_pack_LPWININETHTTPINFO(void)
241 {
242     /* LPWININETHTTPINFO */
243     TEST_TYPE_SIZE   (LPWININETHTTPINFO, 4)
244     TEST_TYPE_ALIGN  (LPWININETHTTPINFO, 4)
245 }
246
247 static void test_pack_LPWININETINFO(void)
248 {
249     /* LPWININETINFO */
250     TEST_TYPE_SIZE   (LPWININETINFO, 4)
251     TEST_TYPE_ALIGN  (LPWININETINFO, 4)
252 }
253
254 static void test_pack_PREMSECURITY_ATTRIBUTES(void)
255 {
256     /* PREMSECURITY_ATTRIBUTES */
257     TEST_TYPE_SIZE   (PREMSECURITY_ATTRIBUTES, 4)
258     TEST_TYPE_ALIGN  (PREMSECURITY_ATTRIBUTES, 4)
259 }
260
261 static void test_pack_REMSECURITY_ATTRIBUTES(void)
262 {
263     /* REMSECURITY_ATTRIBUTES (pack 4) */
264     TEST_TYPE_SIZE   (REMSECURITY_ATTRIBUTES, 12)
265     TEST_TYPE_ALIGN  (REMSECURITY_ATTRIBUTES, 4)
266     TEST_FIELD_SIZE  (REMSECURITY_ATTRIBUTES, nLength, 4)
267     TEST_FIELD_ALIGN (REMSECURITY_ATTRIBUTES, nLength, 4)
268     TEST_FIELD_OFFSET(REMSECURITY_ATTRIBUTES, nLength, 0)
269     TEST_FIELD_SIZE  (REMSECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
270     TEST_FIELD_ALIGN (REMSECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
271     TEST_FIELD_OFFSET(REMSECURITY_ATTRIBUTES, lpSecurityDescriptor, 4)
272     TEST_FIELD_SIZE  (REMSECURITY_ATTRIBUTES, bInheritHandle, 4)
273     TEST_FIELD_ALIGN (REMSECURITY_ATTRIBUTES, bInheritHandle, 4)
274     TEST_FIELD_OFFSET(REMSECURITY_ATTRIBUTES, bInheritHandle, 8)
275 }
276
277 static void test_pack_RemBINDINFO(void)
278 {
279     /* RemBINDINFO (pack 4) */
280     TEST_TYPE_SIZE   (RemBINDINFO, 72)
281     TEST_TYPE_ALIGN  (RemBINDINFO, 4)
282     TEST_FIELD_SIZE  (RemBINDINFO, cbSize, 4)
283     TEST_FIELD_ALIGN (RemBINDINFO, cbSize, 4)
284     TEST_FIELD_OFFSET(RemBINDINFO, cbSize, 0)
285     TEST_FIELD_SIZE  (RemBINDINFO, szExtraInfo, 4)
286     TEST_FIELD_ALIGN (RemBINDINFO, szExtraInfo, 4)
287     TEST_FIELD_OFFSET(RemBINDINFO, szExtraInfo, 4)
288     TEST_FIELD_SIZE  (RemBINDINFO, grfBindInfoF, 4)
289     TEST_FIELD_ALIGN (RemBINDINFO, grfBindInfoF, 4)
290     TEST_FIELD_OFFSET(RemBINDINFO, grfBindInfoF, 8)
291     TEST_FIELD_SIZE  (RemBINDINFO, dwBindVerb, 4)
292     TEST_FIELD_ALIGN (RemBINDINFO, dwBindVerb, 4)
293     TEST_FIELD_OFFSET(RemBINDINFO, dwBindVerb, 12)
294     TEST_FIELD_SIZE  (RemBINDINFO, szCustomVerb, 4)
295     TEST_FIELD_ALIGN (RemBINDINFO, szCustomVerb, 4)
296     TEST_FIELD_OFFSET(RemBINDINFO, szCustomVerb, 16)
297     TEST_FIELD_SIZE  (RemBINDINFO, cbstgmedData, 4)
298     TEST_FIELD_ALIGN (RemBINDINFO, cbstgmedData, 4)
299     TEST_FIELD_OFFSET(RemBINDINFO, cbstgmedData, 20)
300     TEST_FIELD_SIZE  (RemBINDINFO, dwOptions, 4)
301     TEST_FIELD_ALIGN (RemBINDINFO, dwOptions, 4)
302     TEST_FIELD_OFFSET(RemBINDINFO, dwOptions, 24)
303     TEST_FIELD_SIZE  (RemBINDINFO, dwOptionsFlags, 4)
304     TEST_FIELD_ALIGN (RemBINDINFO, dwOptionsFlags, 4)
305     TEST_FIELD_OFFSET(RemBINDINFO, dwOptionsFlags, 28)
306     TEST_FIELD_SIZE  (RemBINDINFO, dwCodePage, 4)
307     TEST_FIELD_ALIGN (RemBINDINFO, dwCodePage, 4)
308     TEST_FIELD_OFFSET(RemBINDINFO, dwCodePage, 32)
309     TEST_FIELD_SIZE  (RemBINDINFO, securityAttributes, 12)
310     TEST_FIELD_ALIGN (RemBINDINFO, securityAttributes, 4)
311     TEST_FIELD_OFFSET(RemBINDINFO, securityAttributes, 36)
312     TEST_FIELD_SIZE  (RemBINDINFO, iid, 16)
313     TEST_FIELD_ALIGN (RemBINDINFO, iid, 4)
314     TEST_FIELD_OFFSET(RemBINDINFO, iid, 48)
315     TEST_FIELD_SIZE  (RemBINDINFO, pUnk, 4)
316     TEST_FIELD_ALIGN (RemBINDINFO, pUnk, 4)
317     TEST_FIELD_OFFSET(RemBINDINFO, pUnk, 64)
318     TEST_FIELD_SIZE  (RemBINDINFO, dwReserved, 4)
319     TEST_FIELD_ALIGN (RemBINDINFO, dwReserved, 4)
320     TEST_FIELD_OFFSET(RemBINDINFO, dwReserved, 68)
321 }
322
323 static void test_pack_RemFORMATETC(void)
324 {
325     /* RemFORMATETC (pack 4) */
326     TEST_TYPE_SIZE   (RemFORMATETC, 20)
327     TEST_TYPE_ALIGN  (RemFORMATETC, 4)
328     TEST_FIELD_SIZE  (RemFORMATETC, cfFormat, 4)
329     TEST_FIELD_ALIGN (RemFORMATETC, cfFormat, 4)
330     TEST_FIELD_OFFSET(RemFORMATETC, cfFormat, 0)
331     TEST_FIELD_SIZE  (RemFORMATETC, ptd, 4)
332     TEST_FIELD_ALIGN (RemFORMATETC, ptd, 4)
333     TEST_FIELD_OFFSET(RemFORMATETC, ptd, 4)
334     TEST_FIELD_SIZE  (RemFORMATETC, dwAspect, 4)
335     TEST_FIELD_ALIGN (RemFORMATETC, dwAspect, 4)
336     TEST_FIELD_OFFSET(RemFORMATETC, dwAspect, 8)
337     TEST_FIELD_SIZE  (RemFORMATETC, lindex, 4)
338     TEST_FIELD_ALIGN (RemFORMATETC, lindex, 4)
339     TEST_FIELD_OFFSET(RemFORMATETC, lindex, 12)
340     TEST_FIELD_SIZE  (RemFORMATETC, tymed, 4)
341     TEST_FIELD_ALIGN (RemFORMATETC, tymed, 4)
342     TEST_FIELD_OFFSET(RemFORMATETC, tymed, 16)
343 }
344
345 static void test_pack(void)
346 {
347     test_pack_BINDINFO();
348     test_pack_IBindHost();
349     test_pack_IBindHostVtbl();
350     test_pack_IBindStatusCallback();
351     test_pack_IBindStatusCallbackVtbl();
352     test_pack_IBinding();
353     test_pack_IBindingVtbl();
354     test_pack_IInternetProtocolInfo();
355     test_pack_IInternetProtocolInfoVtbl();
356     test_pack_IInternetSession();
357     test_pack_IInternetSessionVtbl();
358     test_pack_IPersistMoniker();
359     test_pack_IPersistMonikerVtbl();
360     test_pack_IWinInetHttpInfo();
361     test_pack_IWinInetHttpInfoVtbl();
362     test_pack_IWinInetInfo();
363     test_pack_IWinInetInfoVtbl();
364     test_pack_LPBINDHOST();
365     test_pack_LPBINDING();
366     test_pack_LPBINDSTATUSCALLBACK();
367     test_pack_LPIINTERNETPROTOCOLINFO();
368     test_pack_LPIINTERNETSESSION();
369     test_pack_LPPERSISTMONIKER();
370     test_pack_LPREMFORMATETC();
371     test_pack_LPREMSECURITY_ATTRIBUTES();
372     test_pack_LPWININETHTTPINFO();
373     test_pack_LPWININETINFO();
374     test_pack_PREMSECURITY_ATTRIBUTES();
375     test_pack_REMSECURITY_ATTRIBUTES();
376     test_pack_RemBINDINFO();
377     test_pack_RemFORMATETC();
378 }
379
380 START_TEST(generated)
381 {
382 #ifdef _WIN64
383     ok(0, "The type size / alignment tests don't support Win64 yet\n");
384 #else
385     test_pack();
386 #endif
387 }