Disable MSVC warning 4116 to avoid the 'unnamed type definition in
[wine] / dlls / gdi / tests / generated.c
1 /* File generated automatically from tools/winapi/test.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 "windows.h"
15
16 #include "wine/test.h"
17
18 /***********************************************************************
19  * Compability macros
20  */
21
22 #define DWORD_PTR UINT_PTR
23 #define LONG_PTR INT_PTR
24 #define ULONG_PTR UINT_PTR
25
26 /***********************************************************************
27  * Windows API extension
28  */
29
30 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
31 # define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)
32 #elif defined(__GNUC__)
33 # define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)
34 #else
35 /* FIXME: Not sure if is possible to do without compiler extension */
36 #endif
37
38 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
39 # define _TYPE_ALIGNMENT(type) __alignof(type)
40 #elif defined(__GNUC__)
41 # define _TYPE_ALIGNMENT(type) __alignof__(type)
42 #else
43 /*
44  * FIXME: Not sure if is possible to do without compiler extension
45  *        (if type is not just a name that is, if so the normal)
46  *         TYPE_ALIGNMENT can be used)
47  */
48 #endif
49
50 #if defined(TYPE_ALIGNMENT) && defined(_MSC_VER) && _MSC_VER >= 800 && !defined(__cplusplus)
51 #pragma warning(disable:4116)
52 #endif
53
54 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
55 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
56 #endif
57
58 /***********************************************************************
59  * Test helper macros
60  */
61
62 #ifdef FIELD_ALIGNMENT
63 # define TEST_FIELD_ALIGNMENT(type, field, align) \
64    ok(FIELD_ALIGNMENT(type, field) == align, \
65        "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")\n", \
66            FIELD_ALIGNMENT(type, field))
67 #else
68 # define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)
69 #endif
70
71 #define TEST_FIELD_OFFSET(type, field, offset) \
72     ok(FIELD_OFFSET(type, field) == offset, \
73         "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")\n", \
74              FIELD_OFFSET(type, field))
75
76 #ifdef _TYPE_ALIGNMENT
77 #define TEST__TYPE_ALIGNMENT(type, align) \
78     ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", _TYPE_ALIGNMENT(type))
79 #else
80 # define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)
81 #endif
82
83 #ifdef TYPE_ALIGNMENT
84 #define TEST_TYPE_ALIGNMENT(type, align) \
85     ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", TYPE_ALIGNMENT(type))
86 #else
87 # define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)
88 #endif
89
90 #define TEST_TYPE_SIZE(type, size) \
91     ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")\n", sizeof(type))
92
93 /***********************************************************************
94  * Test macros
95  */
96
97 #define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \
98   TEST_TYPE_SIZE(field_type, field_size); \
99   TEST_FIELD_ALIGNMENT(type, field_name, field_align); \
100   TEST_FIELD_OFFSET(type, field_name, field_offset); \
101
102 #define TEST_TYPE(type, size, align) \
103   TEST_TYPE_ALIGNMENT(type, align); \
104   TEST_TYPE_SIZE(type, size)
105
106 #define TEST_TYPE_POINTER(type, size, align) \
107     TEST__TYPE_ALIGNMENT(*(type)0, align); \
108     TEST_TYPE_SIZE(*(type)0, size)
109
110 #define TEST_TYPE_SIGNED(type) \
111     ok((type) -1 < 0, "(" #type ") -1 < 0\n");
112
113 #define TEST_TYPE_UNSIGNED(type) \
114      ok((type) -1 > 0, "(" #type ") -1 > 0\n");
115
116 static void test_pack_ABC(void)
117 {
118     /* ABC (pack 4) */
119     TEST_TYPE(ABC, 12, 4);
120     TEST_FIELD(ABC, INT, abcA, 0, 4, 4);
121     TEST_FIELD(ABC, UINT, abcB, 4, 4, 4);
122     TEST_FIELD(ABC, INT, abcC, 8, 4, 4);
123 }
124
125 static void test_pack_ABCFLOAT(void)
126 {
127     /* ABCFLOAT (pack 4) */
128     TEST_TYPE(ABCFLOAT, 12, 4);
129     TEST_FIELD(ABCFLOAT, FLOAT, abcfA, 0, 4, 4);
130     TEST_FIELD(ABCFLOAT, FLOAT, abcfB, 4, 4, 4);
131     TEST_FIELD(ABCFLOAT, FLOAT, abcfC, 8, 4, 4);
132 }
133
134 static void test_pack_ABORTPROC(void)
135 {
136     /* ABORTPROC */
137     TEST_TYPE(ABORTPROC, 4, 4);
138 }
139
140 static void test_pack_BITMAP(void)
141 {
142     /* BITMAP (pack 4) */
143     TEST_TYPE(BITMAP, 24, 4);
144     TEST_FIELD(BITMAP, INT, bmType, 0, 4, 4);
145     TEST_FIELD(BITMAP, INT, bmWidth, 4, 4, 4);
146     TEST_FIELD(BITMAP, INT, bmHeight, 8, 4, 4);
147     TEST_FIELD(BITMAP, INT, bmWidthBytes, 12, 4, 4);
148     TEST_FIELD(BITMAP, WORD, bmPlanes, 16, 2, 2);
149     TEST_FIELD(BITMAP, WORD, bmBitsPixel, 18, 2, 2);
150     TEST_FIELD(BITMAP, LPVOID, bmBits, 20, 4, 4);
151 }
152
153 static void test_pack_BITMAPCOREHEADER(void)
154 {
155     /* BITMAPCOREHEADER (pack 4) */
156     TEST_TYPE(BITMAPCOREHEADER, 12, 4);
157     TEST_FIELD(BITMAPCOREHEADER, DWORD, bcSize, 0, 4, 4);
158     TEST_FIELD(BITMAPCOREHEADER, WORD, bcWidth, 4, 2, 2);
159     TEST_FIELD(BITMAPCOREHEADER, WORD, bcHeight, 6, 2, 2);
160     TEST_FIELD(BITMAPCOREHEADER, WORD, bcPlanes, 8, 2, 2);
161     TEST_FIELD(BITMAPCOREHEADER, WORD, bcBitCount, 10, 2, 2);
162 }
163
164 static void test_pack_BITMAPCOREINFO(void)
165 {
166     /* BITMAPCOREINFO (pack 4) */
167     TEST_TYPE(BITMAPCOREINFO, 16, 4);
168     TEST_FIELD(BITMAPCOREINFO, BITMAPCOREHEADER, bmciHeader, 0, 12, 4);
169     TEST_FIELD(BITMAPCOREINFO, RGBTRIPLE[1], bmciColors, 12, 3, 1);
170 }
171
172 static void test_pack_BITMAPFILEHEADER(void)
173 {
174     /* BITMAPFILEHEADER (pack 2) */
175     TEST_TYPE(BITMAPFILEHEADER, 14, 2);
176     TEST_FIELD(BITMAPFILEHEADER, WORD, bfType, 0, 2, 2);
177     TEST_FIELD(BITMAPFILEHEADER, DWORD, bfSize, 2, 4, 2);
178     TEST_FIELD(BITMAPFILEHEADER, WORD, bfReserved1, 6, 2, 2);
179     TEST_FIELD(BITMAPFILEHEADER, WORD, bfReserved2, 8, 2, 2);
180     TEST_FIELD(BITMAPFILEHEADER, DWORD, bfOffBits, 10, 4, 2);
181 }
182
183 static void test_pack_BITMAPINFO(void)
184 {
185     /* BITMAPINFO (pack 4) */
186     TEST_TYPE(BITMAPINFO, 44, 4);
187     TEST_FIELD(BITMAPINFO, BITMAPINFOHEADER, bmiHeader, 0, 40, 4);
188     TEST_FIELD(BITMAPINFO, RGBQUAD[1], bmiColors, 40, 4, 1);
189 }
190
191 static void test_pack_BITMAPINFOHEADER(void)
192 {
193     /* BITMAPINFOHEADER (pack 4) */
194     TEST_TYPE(BITMAPINFOHEADER, 40, 4);
195     TEST_FIELD(BITMAPINFOHEADER, DWORD, biSize, 0, 4, 4);
196     TEST_FIELD(BITMAPINFOHEADER, LONG, biWidth, 4, 4, 4);
197     TEST_FIELD(BITMAPINFOHEADER, LONG, biHeight, 8, 4, 4);
198     TEST_FIELD(BITMAPINFOHEADER, WORD, biPlanes, 12, 2, 2);
199     TEST_FIELD(BITMAPINFOHEADER, WORD, biBitCount, 14, 2, 2);
200     TEST_FIELD(BITMAPINFOHEADER, DWORD, biCompression, 16, 4, 4);
201     TEST_FIELD(BITMAPINFOHEADER, DWORD, biSizeImage, 20, 4, 4);
202     TEST_FIELD(BITMAPINFOHEADER, LONG, biXPelsPerMeter, 24, 4, 4);
203     TEST_FIELD(BITMAPINFOHEADER, LONG, biYPelsPerMeter, 28, 4, 4);
204     TEST_FIELD(BITMAPINFOHEADER, DWORD, biClrUsed, 32, 4, 4);
205     TEST_FIELD(BITMAPINFOHEADER, DWORD, biClrImportant, 36, 4, 4);
206 }
207
208 static void test_pack_BITMAPV4HEADER(void)
209 {
210     /* BITMAPV4HEADER (pack 4) */
211     TEST_TYPE(BITMAPV4HEADER, 108, 4);
212     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4Size, 0, 4, 4);
213     TEST_FIELD(BITMAPV4HEADER, LONG, bV4Width, 4, 4, 4);
214     TEST_FIELD(BITMAPV4HEADER, LONG, bV4Height, 8, 4, 4);
215     TEST_FIELD(BITMAPV4HEADER, WORD, bV4Planes, 12, 2, 2);
216     TEST_FIELD(BITMAPV4HEADER, WORD, bV4BitCount, 14, 2, 2);
217     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4V4Compression, 16, 4, 4);
218     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4SizeImage, 20, 4, 4);
219     TEST_FIELD(BITMAPV4HEADER, LONG, bV4XPelsPerMeter, 24, 4, 4);
220     TEST_FIELD(BITMAPV4HEADER, LONG, bV4YPelsPerMeter, 28, 4, 4);
221     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4ClrUsed, 32, 4, 4);
222     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4ClrImportant, 36, 4, 4);
223     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4RedMask, 40, 4, 4);
224     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4GreenMask, 44, 4, 4);
225     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4BlueMask, 48, 4, 4);
226     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4AlphaMask, 52, 4, 4);
227     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4CSType, 56, 4, 4);
228     TEST_FIELD(BITMAPV4HEADER, CIEXYZTRIPLE, bV4Endpoints, 60, 36, 4);
229     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4GammaRed, 96, 4, 4);
230     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4GammaGreen, 100, 4, 4);
231     TEST_FIELD(BITMAPV4HEADER, DWORD, bV4GammaBlue, 104, 4, 4);
232 }
233
234 static void test_pack_BITMAPV5HEADER(void)
235 {
236     /* BITMAPV5HEADER (pack 4) */
237     TEST_TYPE(BITMAPV5HEADER, 124, 4);
238     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5Size, 0, 4, 4);
239     TEST_FIELD(BITMAPV5HEADER, LONG, bV5Width, 4, 4, 4);
240     TEST_FIELD(BITMAPV5HEADER, LONG, bV5Height, 8, 4, 4);
241     TEST_FIELD(BITMAPV5HEADER, WORD, bV5Planes, 12, 2, 2);
242     TEST_FIELD(BITMAPV5HEADER, WORD, bV5BitCount, 14, 2, 2);
243     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5Compression, 16, 4, 4);
244     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5SizeImage, 20, 4, 4);
245     TEST_FIELD(BITMAPV5HEADER, LONG, bV5XPelsPerMeter, 24, 4, 4);
246     TEST_FIELD(BITMAPV5HEADER, LONG, bV5YPelsPerMeter, 28, 4, 4);
247     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5ClrUsed, 32, 4, 4);
248     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5ClrImportant, 36, 4, 4);
249     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5RedMask, 40, 4, 4);
250     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5GreenMask, 44, 4, 4);
251     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5BlueMask, 48, 4, 4);
252     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5AlphaMask, 52, 4, 4);
253     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5CSType, 56, 4, 4);
254     TEST_FIELD(BITMAPV5HEADER, CIEXYZTRIPLE, bV5Endpoints, 60, 36, 4);
255     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5GammaRed, 96, 4, 4);
256     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5GammaGreen, 100, 4, 4);
257     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5GammaBlue, 104, 4, 4);
258     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5Intent, 108, 4, 4);
259     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5ProfileData, 112, 4, 4);
260     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5ProfileSize, 116, 4, 4);
261     TEST_FIELD(BITMAPV5HEADER, DWORD, bV5Reserved, 120, 4, 4);
262 }
263
264 static void test_pack_BLENDFUNCTION(void)
265 {
266     /* BLENDFUNCTION (pack 4) */
267     TEST_TYPE(BLENDFUNCTION, 4, 1);
268     TEST_FIELD(BLENDFUNCTION, BYTE, BlendOp, 0, 1, 1);
269     TEST_FIELD(BLENDFUNCTION, BYTE, BlendFlags, 1, 1, 1);
270     TEST_FIELD(BLENDFUNCTION, BYTE, SourceConstantAlpha, 2, 1, 1);
271     TEST_FIELD(BLENDFUNCTION, BYTE, AlphaFormat, 3, 1, 1);
272 }
273
274 static void test_pack_CHARSETINFO(void)
275 {
276     /* CHARSETINFO (pack 4) */
277     TEST_TYPE(CHARSETINFO, 32, 4);
278     TEST_FIELD(CHARSETINFO, UINT, ciCharset, 0, 4, 4);
279     TEST_FIELD(CHARSETINFO, UINT, ciACP, 4, 4, 4);
280     TEST_FIELD(CHARSETINFO, FONTSIGNATURE, fs, 8, 24, 4);
281 }
282
283 static void test_pack_CIEXYZ(void)
284 {
285     /* CIEXYZ (pack 4) */
286     TEST_TYPE(CIEXYZ, 12, 4);
287     TEST_FIELD(CIEXYZ, FXPT2DOT30, ciexyzX, 0, 4, 4);
288     TEST_FIELD(CIEXYZ, FXPT2DOT30, ciexyzY, 4, 4, 4);
289     TEST_FIELD(CIEXYZ, FXPT2DOT30, ciexyzZ, 8, 4, 4);
290 }
291
292 static void test_pack_CIEXYZTRIPLE(void)
293 {
294     /* CIEXYZTRIPLE (pack 4) */
295     TEST_TYPE(CIEXYZTRIPLE, 36, 4);
296     TEST_FIELD(CIEXYZTRIPLE, CIEXYZ, ciexyzRed, 0, 12, 4);
297     TEST_FIELD(CIEXYZTRIPLE, CIEXYZ, ciexyzGreen, 12, 12, 4);
298     TEST_FIELD(CIEXYZTRIPLE, CIEXYZ, ciexyzBlue, 24, 12, 4);
299 }
300
301 static void test_pack_COLOR16(void)
302 {
303     /* COLOR16 */
304     TEST_TYPE(COLOR16, 2, 2);
305 }
306
307 static void test_pack_COLORADJUSTMENT(void)
308 {
309     /* COLORADJUSTMENT (pack 4) */
310     TEST_TYPE(COLORADJUSTMENT, 24, 2);
311     TEST_FIELD(COLORADJUSTMENT, WORD, caSize, 0, 2, 2);
312     TEST_FIELD(COLORADJUSTMENT, WORD, caFlags, 2, 2, 2);
313     TEST_FIELD(COLORADJUSTMENT, WORD, caIlluminantIndex, 4, 2, 2);
314     TEST_FIELD(COLORADJUSTMENT, WORD, caRedGamma, 6, 2, 2);
315     TEST_FIELD(COLORADJUSTMENT, WORD, caGreenGamma, 8, 2, 2);
316     TEST_FIELD(COLORADJUSTMENT, WORD, caBlueGamma, 10, 2, 2);
317     TEST_FIELD(COLORADJUSTMENT, WORD, caReferenceBlack, 12, 2, 2);
318     TEST_FIELD(COLORADJUSTMENT, WORD, caReferenceWhite, 14, 2, 2);
319     TEST_FIELD(COLORADJUSTMENT, SHORT, caContrast, 16, 2, 2);
320     TEST_FIELD(COLORADJUSTMENT, SHORT, caBrightness, 18, 2, 2);
321     TEST_FIELD(COLORADJUSTMENT, SHORT, caColorfulness, 20, 2, 2);
322     TEST_FIELD(COLORADJUSTMENT, SHORT, caRedGreenTint, 22, 2, 2);
323 }
324
325 static void test_pack_DEVMODEA(void)
326 {
327     /* DEVMODEA (pack 4) */
328     TEST_FIELD(DEVMODEA, BYTE[CCHDEVICENAME], dmDeviceName, 0, 32, 1);
329     TEST_FIELD(DEVMODEA, WORD, dmSpecVersion, 32, 2, 2);
330     TEST_FIELD(DEVMODEA, WORD, dmDriverVersion, 34, 2, 2);
331     TEST_FIELD(DEVMODEA, WORD, dmSize, 36, 2, 2);
332     TEST_FIELD(DEVMODEA, WORD, dmDriverExtra, 38, 2, 2);
333     TEST_FIELD(DEVMODEA, DWORD, dmFields, 40, 4, 4);
334 }
335
336 static void test_pack_DEVMODEW(void)
337 {
338     /* DEVMODEW (pack 4) */
339     TEST_FIELD(DEVMODEW, WCHAR[CCHDEVICENAME], dmDeviceName, 0, 64, 2);
340     TEST_FIELD(DEVMODEW, WORD, dmSpecVersion, 64, 2, 2);
341     TEST_FIELD(DEVMODEW, WORD, dmDriverVersion, 66, 2, 2);
342     TEST_FIELD(DEVMODEW, WORD, dmSize, 68, 2, 2);
343     TEST_FIELD(DEVMODEW, WORD, dmDriverExtra, 70, 2, 2);
344     TEST_FIELD(DEVMODEW, DWORD, dmFields, 72, 4, 4);
345 }
346
347 static void test_pack_DIBSECTION(void)
348 {
349     /* DIBSECTION (pack 4) */
350     TEST_TYPE(DIBSECTION, 84, 4);
351     TEST_FIELD(DIBSECTION, BITMAP, dsBm, 0, 24, 4);
352     TEST_FIELD(DIBSECTION, BITMAPINFOHEADER, dsBmih, 24, 40, 4);
353     TEST_FIELD(DIBSECTION, DWORD[3], dsBitfields, 64, 12, 4);
354     TEST_FIELD(DIBSECTION, HANDLE, dshSection, 76, 4, 4);
355     TEST_FIELD(DIBSECTION, DWORD, dsOffset, 80, 4, 4);
356 }
357
358 static void test_pack_DISPLAY_DEVICEA(void)
359 {
360     /* DISPLAY_DEVICEA (pack 4) */
361     TEST_TYPE(DISPLAY_DEVICEA, 424, 4);
362     TEST_FIELD(DISPLAY_DEVICEA, DWORD, cb, 0, 4, 4);
363     TEST_FIELD(DISPLAY_DEVICEA, CHAR[32], DeviceName, 4, 32, 1);
364     TEST_FIELD(DISPLAY_DEVICEA, CHAR[128], DeviceString, 36, 128, 1);
365     TEST_FIELD(DISPLAY_DEVICEA, DWORD, StateFlags, 164, 4, 4);
366     TEST_FIELD(DISPLAY_DEVICEA, CHAR[128], DeviceID, 168, 128, 1);
367     TEST_FIELD(DISPLAY_DEVICEA, CHAR[128], DeviceKey, 296, 128, 1);
368 }
369
370 static void test_pack_DISPLAY_DEVICEW(void)
371 {
372     /* DISPLAY_DEVICEW (pack 4) */
373     TEST_TYPE(DISPLAY_DEVICEW, 840, 4);
374     TEST_FIELD(DISPLAY_DEVICEW, DWORD, cb, 0, 4, 4);
375     TEST_FIELD(DISPLAY_DEVICEW, WCHAR[32], DeviceName, 4, 64, 2);
376     TEST_FIELD(DISPLAY_DEVICEW, WCHAR[128], DeviceString, 68, 256, 2);
377     TEST_FIELD(DISPLAY_DEVICEW, DWORD, StateFlags, 324, 4, 4);
378     TEST_FIELD(DISPLAY_DEVICEW, WCHAR[128], DeviceID, 328, 256, 2);
379     TEST_FIELD(DISPLAY_DEVICEW, WCHAR[128], DeviceKey, 584, 256, 2);
380 }
381
382 static void test_pack_DOCINFOA(void)
383 {
384     /* DOCINFOA (pack 4) */
385     TEST_TYPE(DOCINFOA, 20, 4);
386     TEST_FIELD(DOCINFOA, INT, cbSize, 0, 4, 4);
387     TEST_FIELD(DOCINFOA, LPCSTR, lpszDocName, 4, 4, 4);
388     TEST_FIELD(DOCINFOA, LPCSTR, lpszOutput, 8, 4, 4);
389     TEST_FIELD(DOCINFOA, LPCSTR, lpszDatatype, 12, 4, 4);
390     TEST_FIELD(DOCINFOA, DWORD, fwType, 16, 4, 4);
391 }
392
393 static void test_pack_DOCINFOW(void)
394 {
395     /* DOCINFOW (pack 4) */
396     TEST_TYPE(DOCINFOW, 20, 4);
397     TEST_FIELD(DOCINFOW, INT, cbSize, 0, 4, 4);
398     TEST_FIELD(DOCINFOW, LPCWSTR, lpszDocName, 4, 4, 4);
399     TEST_FIELD(DOCINFOW, LPCWSTR, lpszOutput, 8, 4, 4);
400     TEST_FIELD(DOCINFOW, LPCWSTR, lpszDatatype, 12, 4, 4);
401     TEST_FIELD(DOCINFOW, DWORD, fwType, 16, 4, 4);
402 }
403
404 static void test_pack_EMR(void)
405 {
406     /* EMR (pack 4) */
407     TEST_TYPE(EMR, 8, 4);
408     TEST_FIELD(EMR, DWORD, iType, 0, 4, 4);
409     TEST_FIELD(EMR, DWORD, nSize, 4, 4, 4);
410 }
411
412 static void test_pack_EMRABORTPATH(void)
413 {
414     /* EMRABORTPATH (pack 4) */
415     TEST_TYPE(EMRABORTPATH, 8, 4);
416     TEST_FIELD(EMRABORTPATH, EMR, emr, 0, 8, 4);
417 }
418
419 static void test_pack_EMRANGLEARC(void)
420 {
421     /* EMRANGLEARC (pack 4) */
422     TEST_TYPE(EMRANGLEARC, 28, 4);
423     TEST_FIELD(EMRANGLEARC, EMR, emr, 0, 8, 4);
424     TEST_FIELD(EMRANGLEARC, POINTL, ptlCenter, 8, 8, 4);
425     TEST_FIELD(EMRANGLEARC, DWORD, nRadius, 16, 4, 4);
426     TEST_FIELD(EMRANGLEARC, FLOAT, eStartAngle, 20, 4, 4);
427     TEST_FIELD(EMRANGLEARC, FLOAT, eSweepAngle, 24, 4, 4);
428 }
429
430 static void test_pack_EMRARC(void)
431 {
432     /* EMRARC (pack 4) */
433     TEST_TYPE(EMRARC, 40, 4);
434     TEST_FIELD(EMRARC, EMR, emr, 0, 8, 4);
435     TEST_FIELD(EMRARC, RECTL, rclBox, 8, 16, 4);
436     TEST_FIELD(EMRARC, POINTL, ptlStart, 24, 8, 4);
437     TEST_FIELD(EMRARC, POINTL, ptlEnd, 32, 8, 4);
438 }
439
440 static void test_pack_EMRARCTO(void)
441 {
442     /* EMRARCTO (pack 4) */
443     TEST_TYPE(EMRARCTO, 40, 4);
444     TEST_FIELD(EMRARCTO, EMR, emr, 0, 8, 4);
445     TEST_FIELD(EMRARCTO, RECTL, rclBox, 8, 16, 4);
446     TEST_FIELD(EMRARCTO, POINTL, ptlStart, 24, 8, 4);
447     TEST_FIELD(EMRARCTO, POINTL, ptlEnd, 32, 8, 4);
448 }
449
450 static void test_pack_EMRBEGINPATH(void)
451 {
452     /* EMRBEGINPATH (pack 4) */
453     TEST_TYPE(EMRBEGINPATH, 8, 4);
454     TEST_FIELD(EMRBEGINPATH, EMR, emr, 0, 8, 4);
455 }
456
457 static void test_pack_EMRBITBLT(void)
458 {
459     /* EMRBITBLT (pack 4) */
460     TEST_TYPE(EMRBITBLT, 100, 4);
461     TEST_FIELD(EMRBITBLT, EMR, emr, 0, 8, 4);
462     TEST_FIELD(EMRBITBLT, RECTL, rclBounds, 8, 16, 4);
463     TEST_FIELD(EMRBITBLT, LONG, xDest, 24, 4, 4);
464     TEST_FIELD(EMRBITBLT, LONG, yDest, 28, 4, 4);
465     TEST_FIELD(EMRBITBLT, LONG, cxDest, 32, 4, 4);
466     TEST_FIELD(EMRBITBLT, LONG, cyDest, 36, 4, 4);
467     TEST_FIELD(EMRBITBLT, DWORD, dwRop, 40, 4, 4);
468     TEST_FIELD(EMRBITBLT, LONG, xSrc, 44, 4, 4);
469     TEST_FIELD(EMRBITBLT, LONG, ySrc, 48, 4, 4);
470     TEST_FIELD(EMRBITBLT, XFORM, xformSrc, 52, 24, 4);
471     TEST_FIELD(EMRBITBLT, COLORREF, crBkColorSrc, 76, 4, 4);
472     TEST_FIELD(EMRBITBLT, DWORD, iUsageSrc, 80, 4, 4);
473     TEST_FIELD(EMRBITBLT, DWORD, offBmiSrc, 84, 4, 4);
474     TEST_FIELD(EMRBITBLT, DWORD, cbBmiSrc, 88, 4, 4);
475     TEST_FIELD(EMRBITBLT, DWORD, offBitsSrc, 92, 4, 4);
476     TEST_FIELD(EMRBITBLT, DWORD, cbBitsSrc, 96, 4, 4);
477 }
478
479 static void test_pack_EMRCHORD(void)
480 {
481     /* EMRCHORD (pack 4) */
482     TEST_TYPE(EMRCHORD, 40, 4);
483     TEST_FIELD(EMRCHORD, EMR, emr, 0, 8, 4);
484     TEST_FIELD(EMRCHORD, RECTL, rclBox, 8, 16, 4);
485     TEST_FIELD(EMRCHORD, POINTL, ptlStart, 24, 8, 4);
486     TEST_FIELD(EMRCHORD, POINTL, ptlEnd, 32, 8, 4);
487 }
488
489 static void test_pack_EMRCLOSEFIGURE(void)
490 {
491     /* EMRCLOSEFIGURE (pack 4) */
492     TEST_TYPE(EMRCLOSEFIGURE, 8, 4);
493     TEST_FIELD(EMRCLOSEFIGURE, EMR, emr, 0, 8, 4);
494 }
495
496 static void test_pack_EMRCREATEBRUSHINDIRECT(void)
497 {
498     /* EMRCREATEBRUSHINDIRECT (pack 4) */
499     TEST_TYPE(EMRCREATEBRUSHINDIRECT, 24, 4);
500     TEST_FIELD(EMRCREATEBRUSHINDIRECT, EMR, emr, 0, 8, 4);
501     TEST_FIELD(EMRCREATEBRUSHINDIRECT, DWORD, ihBrush, 8, 4, 4);
502     TEST_FIELD(EMRCREATEBRUSHINDIRECT, LOGBRUSH, lb, 12, 12, 4);
503 }
504
505 static void test_pack_EMRCREATECOLORSPACE(void)
506 {
507     /* EMRCREATECOLORSPACE (pack 4) */
508     TEST_TYPE(EMRCREATECOLORSPACE, 340, 4);
509     TEST_FIELD(EMRCREATECOLORSPACE, EMR, emr, 0, 8, 4);
510     TEST_FIELD(EMRCREATECOLORSPACE, DWORD, ihCS, 8, 4, 4);
511     TEST_FIELD(EMRCREATECOLORSPACE, LOGCOLORSPACEA, lcs, 12, 328, 4);
512 }
513
514 static void test_pack_EMRCREATECOLORSPACEW(void)
515 {
516     /* EMRCREATECOLORSPACEW (pack 4) */
517     TEST_TYPE(EMRCREATECOLORSPACEW, 612, 4);
518     TEST_FIELD(EMRCREATECOLORSPACEW, EMR, emr, 0, 8, 4);
519     TEST_FIELD(EMRCREATECOLORSPACEW, DWORD, ihCS, 8, 4, 4);
520     TEST_FIELD(EMRCREATECOLORSPACEW, LOGCOLORSPACEW, lcs, 12, 588, 4);
521     TEST_FIELD(EMRCREATECOLORSPACEW, DWORD, dwFlags, 600, 4, 4);
522     TEST_FIELD(EMRCREATECOLORSPACEW, DWORD, cbData, 604, 4, 4);
523     TEST_FIELD(EMRCREATECOLORSPACEW, BYTE[1], Data, 608, 1, 1);
524 }
525
526 static void test_pack_EMRCREATEDIBPATTERNBRUSHPT(void)
527 {
528     /* EMRCREATEDIBPATTERNBRUSHPT (pack 4) */
529     TEST_TYPE(EMRCREATEDIBPATTERNBRUSHPT, 32, 4);
530     TEST_FIELD(EMRCREATEDIBPATTERNBRUSHPT, EMR, emr, 0, 8, 4);
531     TEST_FIELD(EMRCREATEDIBPATTERNBRUSHPT, DWORD, ihBrush, 8, 4, 4);
532     TEST_FIELD(EMRCREATEDIBPATTERNBRUSHPT, DWORD, iUsage, 12, 4, 4);
533     TEST_FIELD(EMRCREATEDIBPATTERNBRUSHPT, DWORD, offBmi, 16, 4, 4);
534     TEST_FIELD(EMRCREATEDIBPATTERNBRUSHPT, DWORD, cbBmi, 20, 4, 4);
535     TEST_FIELD(EMRCREATEDIBPATTERNBRUSHPT, DWORD, offBits, 24, 4, 4);
536     TEST_FIELD(EMRCREATEDIBPATTERNBRUSHPT, DWORD, cbBits, 28, 4, 4);
537 }
538
539 static void test_pack_EMRCREATEMONOBRUSH(void)
540 {
541     /* EMRCREATEMONOBRUSH (pack 4) */
542     TEST_TYPE(EMRCREATEMONOBRUSH, 32, 4);
543     TEST_FIELD(EMRCREATEMONOBRUSH, EMR, emr, 0, 8, 4);
544     TEST_FIELD(EMRCREATEMONOBRUSH, DWORD, ihBrush, 8, 4, 4);
545     TEST_FIELD(EMRCREATEMONOBRUSH, DWORD, iUsage, 12, 4, 4);
546     TEST_FIELD(EMRCREATEMONOBRUSH, DWORD, offBmi, 16, 4, 4);
547     TEST_FIELD(EMRCREATEMONOBRUSH, DWORD, cbBmi, 20, 4, 4);
548     TEST_FIELD(EMRCREATEMONOBRUSH, DWORD, offBits, 24, 4, 4);
549     TEST_FIELD(EMRCREATEMONOBRUSH, DWORD, cbBits, 28, 4, 4);
550 }
551
552 static void test_pack_EMRCREATEPEN(void)
553 {
554     /* EMRCREATEPEN (pack 4) */
555     TEST_TYPE(EMRCREATEPEN, 28, 4);
556     TEST_FIELD(EMRCREATEPEN, EMR, emr, 0, 8, 4);
557     TEST_FIELD(EMRCREATEPEN, DWORD, ihPen, 8, 4, 4);
558     TEST_FIELD(EMRCREATEPEN, LOGPEN, lopn, 12, 16, 4);
559 }
560
561 static void test_pack_EMRDELETECOLORSPACE(void)
562 {
563     /* EMRDELETECOLORSPACE (pack 4) */
564     TEST_TYPE(EMRDELETECOLORSPACE, 12, 4);
565     TEST_FIELD(EMRDELETECOLORSPACE, EMR, emr, 0, 8, 4);
566     TEST_FIELD(EMRDELETECOLORSPACE, DWORD, ihCS, 8, 4, 4);
567 }
568
569 static void test_pack_EMRDELETEOBJECT(void)
570 {
571     /* EMRDELETEOBJECT (pack 4) */
572     TEST_TYPE(EMRDELETEOBJECT, 12, 4);
573     TEST_FIELD(EMRDELETEOBJECT, EMR, emr, 0, 8, 4);
574     TEST_FIELD(EMRDELETEOBJECT, DWORD, ihObject, 8, 4, 4);
575 }
576
577 static void test_pack_EMRELLIPSE(void)
578 {
579     /* EMRELLIPSE (pack 4) */
580     TEST_TYPE(EMRELLIPSE, 24, 4);
581     TEST_FIELD(EMRELLIPSE, EMR, emr, 0, 8, 4);
582     TEST_FIELD(EMRELLIPSE, RECTL, rclBox, 8, 16, 4);
583 }
584
585 static void test_pack_EMRENDPATH(void)
586 {
587     /* EMRENDPATH (pack 4) */
588     TEST_TYPE(EMRENDPATH, 8, 4);
589     TEST_FIELD(EMRENDPATH, EMR, emr, 0, 8, 4);
590 }
591
592 static void test_pack_EMREOF(void)
593 {
594     /* EMREOF (pack 4) */
595     TEST_TYPE(EMREOF, 20, 4);
596     TEST_FIELD(EMREOF, EMR, emr, 0, 8, 4);
597     TEST_FIELD(EMREOF, DWORD, nPalEntries, 8, 4, 4);
598     TEST_FIELD(EMREOF, DWORD, offPalEntries, 12, 4, 4);
599     TEST_FIELD(EMREOF, DWORD, nSizeLast, 16, 4, 4);
600 }
601
602 static void test_pack_EMREXCLUDECLIPRECT(void)
603 {
604     /* EMREXCLUDECLIPRECT (pack 4) */
605     TEST_TYPE(EMREXCLUDECLIPRECT, 24, 4);
606     TEST_FIELD(EMREXCLUDECLIPRECT, EMR, emr, 0, 8, 4);
607     TEST_FIELD(EMREXCLUDECLIPRECT, RECTL, rclClip, 8, 16, 4);
608 }
609
610 static void test_pack_EMREXTCREATEFONTINDIRECTW(void)
611 {
612     /* EMREXTCREATEFONTINDIRECTW (pack 4) */
613     TEST_TYPE(EMREXTCREATEFONTINDIRECTW, 332, 4);
614     TEST_FIELD(EMREXTCREATEFONTINDIRECTW, EMR, emr, 0, 8, 4);
615     TEST_FIELD(EMREXTCREATEFONTINDIRECTW, DWORD, ihFont, 8, 4, 4);
616     TEST_FIELD(EMREXTCREATEFONTINDIRECTW, EXTLOGFONTW, elfw, 12, 320, 4);
617 }
618
619 static void test_pack_EMREXTCREATEPEN(void)
620 {
621     /* EMREXTCREATEPEN (pack 4) */
622     TEST_TYPE(EMREXTCREATEPEN, 56, 4);
623     TEST_FIELD(EMREXTCREATEPEN, EMR, emr, 0, 8, 4);
624     TEST_FIELD(EMREXTCREATEPEN, DWORD, ihPen, 8, 4, 4);
625     TEST_FIELD(EMREXTCREATEPEN, DWORD, offBmi, 12, 4, 4);
626     TEST_FIELD(EMREXTCREATEPEN, DWORD, cbBmi, 16, 4, 4);
627     TEST_FIELD(EMREXTCREATEPEN, DWORD, offBits, 20, 4, 4);
628     TEST_FIELD(EMREXTCREATEPEN, DWORD, cbBits, 24, 4, 4);
629     TEST_FIELD(EMREXTCREATEPEN, EXTLOGPEN, elp, 28, 28, 4);
630 }
631
632 static void test_pack_EMREXTFLOODFILL(void)
633 {
634     /* EMREXTFLOODFILL (pack 4) */
635     TEST_TYPE(EMREXTFLOODFILL, 24, 4);
636     TEST_FIELD(EMREXTFLOODFILL, EMR, emr, 0, 8, 4);
637     TEST_FIELD(EMREXTFLOODFILL, POINTL, ptlStart, 8, 8, 4);
638     TEST_FIELD(EMREXTFLOODFILL, COLORREF, crColor, 16, 4, 4);
639     TEST_FIELD(EMREXTFLOODFILL, DWORD, iMode, 20, 4, 4);
640 }
641
642 static void test_pack_EMREXTSELECTCLIPRGN(void)
643 {
644     /* EMREXTSELECTCLIPRGN (pack 4) */
645     TEST_TYPE(EMREXTSELECTCLIPRGN, 20, 4);
646     TEST_FIELD(EMREXTSELECTCLIPRGN, EMR, emr, 0, 8, 4);
647     TEST_FIELD(EMREXTSELECTCLIPRGN, DWORD, cbRgnData, 8, 4, 4);
648     TEST_FIELD(EMREXTSELECTCLIPRGN, DWORD, iMode, 12, 4, 4);
649     TEST_FIELD(EMREXTSELECTCLIPRGN, BYTE[1], RgnData, 16, 1, 1);
650 }
651
652 static void test_pack_EMREXTTEXTOUTA(void)
653 {
654     /* EMREXTTEXTOUTA (pack 4) */
655     TEST_TYPE(EMREXTTEXTOUTA, 76, 4);
656     TEST_FIELD(EMREXTTEXTOUTA, EMR, emr, 0, 8, 4);
657     TEST_FIELD(EMREXTTEXTOUTA, RECTL, rclBounds, 8, 16, 4);
658     TEST_FIELD(EMREXTTEXTOUTA, DWORD, iGraphicsMode, 24, 4, 4);
659     TEST_FIELD(EMREXTTEXTOUTA, FLOAT, exScale, 28, 4, 4);
660     TEST_FIELD(EMREXTTEXTOUTA, FLOAT, eyScale, 32, 4, 4);
661     TEST_FIELD(EMREXTTEXTOUTA, EMRTEXT, emrtext, 36, 40, 4);
662 }
663
664 static void test_pack_EMREXTTEXTOUTW(void)
665 {
666     /* EMREXTTEXTOUTW (pack 4) */
667     TEST_TYPE(EMREXTTEXTOUTW, 76, 4);
668     TEST_FIELD(EMREXTTEXTOUTW, EMR, emr, 0, 8, 4);
669     TEST_FIELD(EMREXTTEXTOUTW, RECTL, rclBounds, 8, 16, 4);
670     TEST_FIELD(EMREXTTEXTOUTW, DWORD, iGraphicsMode, 24, 4, 4);
671     TEST_FIELD(EMREXTTEXTOUTW, FLOAT, exScale, 28, 4, 4);
672     TEST_FIELD(EMREXTTEXTOUTW, FLOAT, eyScale, 32, 4, 4);
673     TEST_FIELD(EMREXTTEXTOUTW, EMRTEXT, emrtext, 36, 40, 4);
674 }
675
676 static void test_pack_EMRFILLPATH(void)
677 {
678     /* EMRFILLPATH (pack 4) */
679     TEST_TYPE(EMRFILLPATH, 24, 4);
680     TEST_FIELD(EMRFILLPATH, EMR, emr, 0, 8, 4);
681     TEST_FIELD(EMRFILLPATH, RECTL, rclBounds, 8, 16, 4);
682 }
683
684 static void test_pack_EMRFILLRGN(void)
685 {
686     /* EMRFILLRGN (pack 4) */
687     TEST_TYPE(EMRFILLRGN, 36, 4);
688     TEST_FIELD(EMRFILLRGN, EMR, emr, 0, 8, 4);
689     TEST_FIELD(EMRFILLRGN, RECTL, rclBounds, 8, 16, 4);
690     TEST_FIELD(EMRFILLRGN, DWORD, cbRgnData, 24, 4, 4);
691     TEST_FIELD(EMRFILLRGN, DWORD, ihBrush, 28, 4, 4);
692     TEST_FIELD(EMRFILLRGN, BYTE[1], RgnData, 32, 1, 1);
693 }
694
695 static void test_pack_EMRFLATTENPATH(void)
696 {
697     /* EMRFLATTENPATH (pack 4) */
698     TEST_TYPE(EMRFLATTENPATH, 8, 4);
699     TEST_FIELD(EMRFLATTENPATH, EMR, emr, 0, 8, 4);
700 }
701
702 static void test_pack_EMRFORMAT(void)
703 {
704     /* EMRFORMAT (pack 4) */
705     TEST_TYPE(EMRFORMAT, 16, 4);
706     TEST_FIELD(EMRFORMAT, DWORD, dSignature, 0, 4, 4);
707     TEST_FIELD(EMRFORMAT, DWORD, nVersion, 4, 4, 4);
708     TEST_FIELD(EMRFORMAT, DWORD, cbData, 8, 4, 4);
709     TEST_FIELD(EMRFORMAT, DWORD, offData, 12, 4, 4);
710 }
711
712 static void test_pack_EMRFRAMERGN(void)
713 {
714     /* EMRFRAMERGN (pack 4) */
715     TEST_TYPE(EMRFRAMERGN, 44, 4);
716     TEST_FIELD(EMRFRAMERGN, EMR, emr, 0, 8, 4);
717     TEST_FIELD(EMRFRAMERGN, RECTL, rclBounds, 8, 16, 4);
718     TEST_FIELD(EMRFRAMERGN, DWORD, cbRgnData, 24, 4, 4);
719     TEST_FIELD(EMRFRAMERGN, DWORD, ihBrush, 28, 4, 4);
720     TEST_FIELD(EMRFRAMERGN, SIZEL, szlStroke, 32, 8, 4);
721     TEST_FIELD(EMRFRAMERGN, BYTE[1], RgnData, 40, 1, 1);
722 }
723
724 static void test_pack_EMRGDICOMMENT(void)
725 {
726     /* EMRGDICOMMENT (pack 4) */
727     TEST_TYPE(EMRGDICOMMENT, 16, 4);
728     TEST_FIELD(EMRGDICOMMENT, EMR, emr, 0, 8, 4);
729     TEST_FIELD(EMRGDICOMMENT, DWORD, cbData, 8, 4, 4);
730     TEST_FIELD(EMRGDICOMMENT, BYTE[1], Data, 12, 1, 1);
731 }
732
733 static void test_pack_EMRGLSBOUNDEDRECORD(void)
734 {
735     /* EMRGLSBOUNDEDRECORD (pack 4) */
736     TEST_TYPE(EMRGLSBOUNDEDRECORD, 32, 4);
737     TEST_FIELD(EMRGLSBOUNDEDRECORD, EMR, emr, 0, 8, 4);
738     TEST_FIELD(EMRGLSBOUNDEDRECORD, RECTL, rclBounds, 8, 16, 4);
739     TEST_FIELD(EMRGLSBOUNDEDRECORD, DWORD, cbData, 24, 4, 4);
740     TEST_FIELD(EMRGLSBOUNDEDRECORD, BYTE[1], Data, 28, 1, 1);
741 }
742
743 static void test_pack_EMRGLSRECORD(void)
744 {
745     /* EMRGLSRECORD (pack 4) */
746     TEST_TYPE(EMRGLSRECORD, 16, 4);
747     TEST_FIELD(EMRGLSRECORD, EMR, emr, 0, 8, 4);
748     TEST_FIELD(EMRGLSRECORD, DWORD, cbData, 8, 4, 4);
749     TEST_FIELD(EMRGLSRECORD, BYTE[1], Data, 12, 1, 1);
750 }
751
752 static void test_pack_EMRINTERSECTCLIPRECT(void)
753 {
754     /* EMRINTERSECTCLIPRECT (pack 4) */
755     TEST_TYPE(EMRINTERSECTCLIPRECT, 24, 4);
756     TEST_FIELD(EMRINTERSECTCLIPRECT, EMR, emr, 0, 8, 4);
757     TEST_FIELD(EMRINTERSECTCLIPRECT, RECTL, rclClip, 8, 16, 4);
758 }
759
760 static void test_pack_EMRINVERTRGN(void)
761 {
762     /* EMRINVERTRGN (pack 4) */
763     TEST_TYPE(EMRINVERTRGN, 32, 4);
764     TEST_FIELD(EMRINVERTRGN, EMR, emr, 0, 8, 4);
765     TEST_FIELD(EMRINVERTRGN, RECTL, rclBounds, 8, 16, 4);
766     TEST_FIELD(EMRINVERTRGN, DWORD, cbRgnData, 24, 4, 4);
767     TEST_FIELD(EMRINVERTRGN, BYTE[1], RgnData, 28, 1, 1);
768 }
769
770 static void test_pack_EMRLINETO(void)
771 {
772     /* EMRLINETO (pack 4) */
773     TEST_TYPE(EMRLINETO, 16, 4);
774     TEST_FIELD(EMRLINETO, EMR, emr, 0, 8, 4);
775     TEST_FIELD(EMRLINETO, POINTL, ptl, 8, 8, 4);
776 }
777
778 static void test_pack_EMRMASKBLT(void)
779 {
780     /* EMRMASKBLT (pack 4) */
781     TEST_TYPE(EMRMASKBLT, 128, 4);
782     TEST_FIELD(EMRMASKBLT, EMR, emr, 0, 8, 4);
783     TEST_FIELD(EMRMASKBLT, RECTL, rclBounds, 8, 16, 4);
784     TEST_FIELD(EMRMASKBLT, LONG, xDest, 24, 4, 4);
785     TEST_FIELD(EMRMASKBLT, LONG, yDest, 28, 4, 4);
786     TEST_FIELD(EMRMASKBLT, LONG, cxDest, 32, 4, 4);
787     TEST_FIELD(EMRMASKBLT, LONG, cyDest, 36, 4, 4);
788     TEST_FIELD(EMRMASKBLT, DWORD, dwRop, 40, 4, 4);
789     TEST_FIELD(EMRMASKBLT, LONG, xSrc, 44, 4, 4);
790     TEST_FIELD(EMRMASKBLT, LONG, ySrc, 48, 4, 4);
791     TEST_FIELD(EMRMASKBLT, XFORM, xformSrc, 52, 24, 4);
792     TEST_FIELD(EMRMASKBLT, COLORREF, crBkColorSrc, 76, 4, 4);
793     TEST_FIELD(EMRMASKBLT, DWORD, iUsageSrc, 80, 4, 4);
794     TEST_FIELD(EMRMASKBLT, DWORD, offBmiSrc, 84, 4, 4);
795     TEST_FIELD(EMRMASKBLT, DWORD, cbBmiSrc, 88, 4, 4);
796     TEST_FIELD(EMRMASKBLT, DWORD, offBitsSrc, 92, 4, 4);
797     TEST_FIELD(EMRMASKBLT, DWORD, cbBitsSrc, 96, 4, 4);
798     TEST_FIELD(EMRMASKBLT, LONG, xMask, 100, 4, 4);
799     TEST_FIELD(EMRMASKBLT, LONG, yMask, 104, 4, 4);
800     TEST_FIELD(EMRMASKBLT, DWORD, iUsageMask, 108, 4, 4);
801     TEST_FIELD(EMRMASKBLT, DWORD, offBmiMask, 112, 4, 4);
802     TEST_FIELD(EMRMASKBLT, DWORD, cbBmiMask, 116, 4, 4);
803     TEST_FIELD(EMRMASKBLT, DWORD, offBitsMask, 120, 4, 4);
804     TEST_FIELD(EMRMASKBLT, DWORD, cbBitsMask, 124, 4, 4);
805 }
806
807 static void test_pack_EMRMODIFYWORLDTRANSFORM(void)
808 {
809     /* EMRMODIFYWORLDTRANSFORM (pack 4) */
810     TEST_TYPE(EMRMODIFYWORLDTRANSFORM, 36, 4);
811     TEST_FIELD(EMRMODIFYWORLDTRANSFORM, EMR, emr, 0, 8, 4);
812     TEST_FIELD(EMRMODIFYWORLDTRANSFORM, XFORM, xform, 8, 24, 4);
813     TEST_FIELD(EMRMODIFYWORLDTRANSFORM, DWORD, iMode, 32, 4, 4);
814 }
815
816 static void test_pack_EMRMOVETOEX(void)
817 {
818     /* EMRMOVETOEX (pack 4) */
819     TEST_TYPE(EMRMOVETOEX, 16, 4);
820     TEST_FIELD(EMRMOVETOEX, EMR, emr, 0, 8, 4);
821     TEST_FIELD(EMRMOVETOEX, POINTL, ptl, 8, 8, 4);
822 }
823
824 static void test_pack_EMROFFSETCLIPRGN(void)
825 {
826     /* EMROFFSETCLIPRGN (pack 4) */
827     TEST_TYPE(EMROFFSETCLIPRGN, 16, 4);
828     TEST_FIELD(EMROFFSETCLIPRGN, EMR, emr, 0, 8, 4);
829     TEST_FIELD(EMROFFSETCLIPRGN, POINTL, ptlOffset, 8, 8, 4);
830 }
831
832 static void test_pack_EMRPAINTRGN(void)
833 {
834     /* EMRPAINTRGN (pack 4) */
835     TEST_TYPE(EMRPAINTRGN, 32, 4);
836     TEST_FIELD(EMRPAINTRGN, EMR, emr, 0, 8, 4);
837     TEST_FIELD(EMRPAINTRGN, RECTL, rclBounds, 8, 16, 4);
838     TEST_FIELD(EMRPAINTRGN, DWORD, cbRgnData, 24, 4, 4);
839     TEST_FIELD(EMRPAINTRGN, BYTE[1], RgnData, 28, 1, 1);
840 }
841
842 static void test_pack_EMRPIE(void)
843 {
844     /* EMRPIE (pack 4) */
845     TEST_TYPE(EMRPIE, 40, 4);
846     TEST_FIELD(EMRPIE, EMR, emr, 0, 8, 4);
847     TEST_FIELD(EMRPIE, RECTL, rclBox, 8, 16, 4);
848     TEST_FIELD(EMRPIE, POINTL, ptlStart, 24, 8, 4);
849     TEST_FIELD(EMRPIE, POINTL, ptlEnd, 32, 8, 4);
850 }
851
852 static void test_pack_EMRPIXELFORMAT(void)
853 {
854     /* EMRPIXELFORMAT (pack 4) */
855     TEST_TYPE(EMRPIXELFORMAT, 48, 4);
856     TEST_FIELD(EMRPIXELFORMAT, EMR, emr, 0, 8, 4);
857     TEST_FIELD(EMRPIXELFORMAT, PIXELFORMATDESCRIPTOR, pfd, 8, 40, 4);
858 }
859
860 static void test_pack_EMRPLGBLT(void)
861 {
862     /* EMRPLGBLT (pack 4) */
863     TEST_TYPE(EMRPLGBLT, 140, 4);
864     TEST_FIELD(EMRPLGBLT, EMR, emr, 0, 8, 4);
865     TEST_FIELD(EMRPLGBLT, RECTL, rclBounds, 8, 16, 4);
866     TEST_FIELD(EMRPLGBLT, POINTL[3], aptlDest, 24, 24, 4);
867     TEST_FIELD(EMRPLGBLT, LONG, xSrc, 48, 4, 4);
868     TEST_FIELD(EMRPLGBLT, LONG, ySrc, 52, 4, 4);
869     TEST_FIELD(EMRPLGBLT, LONG, cxSrc, 56, 4, 4);
870     TEST_FIELD(EMRPLGBLT, LONG, cySrc, 60, 4, 4);
871     TEST_FIELD(EMRPLGBLT, XFORM, xformSrc, 64, 24, 4);
872     TEST_FIELD(EMRPLGBLT, COLORREF, crBkColorSrc, 88, 4, 4);
873     TEST_FIELD(EMRPLGBLT, DWORD, iUsageSrc, 92, 4, 4);
874     TEST_FIELD(EMRPLGBLT, DWORD, offBmiSrc, 96, 4, 4);
875     TEST_FIELD(EMRPLGBLT, DWORD, cbBmiSrc, 100, 4, 4);
876     TEST_FIELD(EMRPLGBLT, DWORD, offBitsSrc, 104, 4, 4);
877     TEST_FIELD(EMRPLGBLT, DWORD, cbBitsSrc, 108, 4, 4);
878     TEST_FIELD(EMRPLGBLT, LONG, xMask, 112, 4, 4);
879     TEST_FIELD(EMRPLGBLT, LONG, yMask, 116, 4, 4);
880     TEST_FIELD(EMRPLGBLT, DWORD, iUsageMask, 120, 4, 4);
881     TEST_FIELD(EMRPLGBLT, DWORD, offBmiMask, 124, 4, 4);
882     TEST_FIELD(EMRPLGBLT, DWORD, cbBmiMask, 128, 4, 4);
883     TEST_FIELD(EMRPLGBLT, DWORD, offBitsMask, 132, 4, 4);
884     TEST_FIELD(EMRPLGBLT, DWORD, cbBitsMask, 136, 4, 4);
885 }
886
887 static void test_pack_EMRPOLYBEZIER(void)
888 {
889     /* EMRPOLYBEZIER (pack 4) */
890     TEST_TYPE(EMRPOLYBEZIER, 36, 4);
891     TEST_FIELD(EMRPOLYBEZIER, EMR, emr, 0, 8, 4);
892     TEST_FIELD(EMRPOLYBEZIER, RECTL, rclBounds, 8, 16, 4);
893     TEST_FIELD(EMRPOLYBEZIER, DWORD, cptl, 24, 4, 4);
894     TEST_FIELD(EMRPOLYBEZIER, POINTL[1], aptl, 28, 8, 4);
895 }
896
897 static void test_pack_EMRPOLYBEZIER16(void)
898 {
899     /* EMRPOLYBEZIER16 (pack 4) */
900     TEST_TYPE(EMRPOLYBEZIER16, 32, 4);
901     TEST_FIELD(EMRPOLYBEZIER16, EMR, emr, 0, 8, 4);
902     TEST_FIELD(EMRPOLYBEZIER16, RECTL, rclBounds, 8, 16, 4);
903     TEST_FIELD(EMRPOLYBEZIER16, DWORD, cpts, 24, 4, 4);
904     TEST_FIELD(EMRPOLYBEZIER16, POINTS[1], apts, 28, 4, 2);
905 }
906
907 static void test_pack_EMRPOLYBEZIERTO(void)
908 {
909     /* EMRPOLYBEZIERTO (pack 4) */
910     TEST_TYPE(EMRPOLYBEZIERTO, 36, 4);
911     TEST_FIELD(EMRPOLYBEZIERTO, EMR, emr, 0, 8, 4);
912     TEST_FIELD(EMRPOLYBEZIERTO, RECTL, rclBounds, 8, 16, 4);
913     TEST_FIELD(EMRPOLYBEZIERTO, DWORD, cptl, 24, 4, 4);
914     TEST_FIELD(EMRPOLYBEZIERTO, POINTL[1], aptl, 28, 8, 4);
915 }
916
917 static void test_pack_EMRPOLYBEZIERTO16(void)
918 {
919     /* EMRPOLYBEZIERTO16 (pack 4) */
920     TEST_TYPE(EMRPOLYBEZIERTO16, 32, 4);
921     TEST_FIELD(EMRPOLYBEZIERTO16, EMR, emr, 0, 8, 4);
922     TEST_FIELD(EMRPOLYBEZIERTO16, RECTL, rclBounds, 8, 16, 4);
923     TEST_FIELD(EMRPOLYBEZIERTO16, DWORD, cpts, 24, 4, 4);
924     TEST_FIELD(EMRPOLYBEZIERTO16, POINTS[1], apts, 28, 4, 2);
925 }
926
927 static void test_pack_EMRPOLYDRAW(void)
928 {
929     /* EMRPOLYDRAW (pack 4) */
930     TEST_TYPE(EMRPOLYDRAW, 40, 4);
931     TEST_FIELD(EMRPOLYDRAW, EMR, emr, 0, 8, 4);
932     TEST_FIELD(EMRPOLYDRAW, RECTL, rclBounds, 8, 16, 4);
933     TEST_FIELD(EMRPOLYDRAW, DWORD, cptl, 24, 4, 4);
934     TEST_FIELD(EMRPOLYDRAW, POINTL[1], aptl, 28, 8, 4);
935     TEST_FIELD(EMRPOLYDRAW, BYTE[1], abTypes, 36, 1, 1);
936 }
937
938 static void test_pack_EMRPOLYDRAW16(void)
939 {
940     /* EMRPOLYDRAW16 (pack 4) */
941     TEST_TYPE(EMRPOLYDRAW16, 36, 4);
942     TEST_FIELD(EMRPOLYDRAW16, EMR, emr, 0, 8, 4);
943     TEST_FIELD(EMRPOLYDRAW16, RECTL, rclBounds, 8, 16, 4);
944     TEST_FIELD(EMRPOLYDRAW16, DWORD, cpts, 24, 4, 4);
945     TEST_FIELD(EMRPOLYDRAW16, POINTS[1], apts, 28, 4, 2);
946     TEST_FIELD(EMRPOLYDRAW16, BYTE[1], abTypes, 32, 1, 1);
947 }
948
949 static void test_pack_EMRPOLYGON(void)
950 {
951     /* EMRPOLYGON (pack 4) */
952     TEST_TYPE(EMRPOLYGON, 36, 4);
953     TEST_FIELD(EMRPOLYGON, EMR, emr, 0, 8, 4);
954     TEST_FIELD(EMRPOLYGON, RECTL, rclBounds, 8, 16, 4);
955     TEST_FIELD(EMRPOLYGON, DWORD, cptl, 24, 4, 4);
956     TEST_FIELD(EMRPOLYGON, POINTL[1], aptl, 28, 8, 4);
957 }
958
959 static void test_pack_EMRPOLYGON16(void)
960 {
961     /* EMRPOLYGON16 (pack 4) */
962     TEST_TYPE(EMRPOLYGON16, 32, 4);
963     TEST_FIELD(EMRPOLYGON16, EMR, emr, 0, 8, 4);
964     TEST_FIELD(EMRPOLYGON16, RECTL, rclBounds, 8, 16, 4);
965     TEST_FIELD(EMRPOLYGON16, DWORD, cpts, 24, 4, 4);
966     TEST_FIELD(EMRPOLYGON16, POINTS[1], apts, 28, 4, 2);
967 }
968
969 static void test_pack_EMRPOLYLINE(void)
970 {
971     /* EMRPOLYLINE (pack 4) */
972     TEST_TYPE(EMRPOLYLINE, 36, 4);
973     TEST_FIELD(EMRPOLYLINE, EMR, emr, 0, 8, 4);
974     TEST_FIELD(EMRPOLYLINE, RECTL, rclBounds, 8, 16, 4);
975     TEST_FIELD(EMRPOLYLINE, DWORD, cptl, 24, 4, 4);
976     TEST_FIELD(EMRPOLYLINE, POINTL[1], aptl, 28, 8, 4);
977 }
978
979 static void test_pack_EMRPOLYLINE16(void)
980 {
981     /* EMRPOLYLINE16 (pack 4) */
982     TEST_TYPE(EMRPOLYLINE16, 32, 4);
983     TEST_FIELD(EMRPOLYLINE16, EMR, emr, 0, 8, 4);
984     TEST_FIELD(EMRPOLYLINE16, RECTL, rclBounds, 8, 16, 4);
985     TEST_FIELD(EMRPOLYLINE16, DWORD, cpts, 24, 4, 4);
986     TEST_FIELD(EMRPOLYLINE16, POINTS[1], apts, 28, 4, 2);
987 }
988
989 static void test_pack_EMRPOLYLINETO(void)
990 {
991     /* EMRPOLYLINETO (pack 4) */
992     TEST_TYPE(EMRPOLYLINETO, 36, 4);
993     TEST_FIELD(EMRPOLYLINETO, EMR, emr, 0, 8, 4);
994     TEST_FIELD(EMRPOLYLINETO, RECTL, rclBounds, 8, 16, 4);
995     TEST_FIELD(EMRPOLYLINETO, DWORD, cptl, 24, 4, 4);
996     TEST_FIELD(EMRPOLYLINETO, POINTL[1], aptl, 28, 8, 4);
997 }
998
999 static void test_pack_EMRPOLYLINETO16(void)
1000 {
1001     /* EMRPOLYLINETO16 (pack 4) */
1002     TEST_TYPE(EMRPOLYLINETO16, 32, 4);
1003     TEST_FIELD(EMRPOLYLINETO16, EMR, emr, 0, 8, 4);
1004     TEST_FIELD(EMRPOLYLINETO16, RECTL, rclBounds, 8, 16, 4);
1005     TEST_FIELD(EMRPOLYLINETO16, DWORD, cpts, 24, 4, 4);
1006     TEST_FIELD(EMRPOLYLINETO16, POINTS[1], apts, 28, 4, 2);
1007 }
1008
1009 static void test_pack_EMRPOLYPOLYGON(void)
1010 {
1011     /* EMRPOLYPOLYGON (pack 4) */
1012     TEST_TYPE(EMRPOLYPOLYGON, 44, 4);
1013     TEST_FIELD(EMRPOLYPOLYGON, EMR, emr, 0, 8, 4);
1014     TEST_FIELD(EMRPOLYPOLYGON, RECTL, rclBounds, 8, 16, 4);
1015     TEST_FIELD(EMRPOLYPOLYGON, DWORD, nPolys, 24, 4, 4);
1016     TEST_FIELD(EMRPOLYPOLYGON, DWORD, cptl, 28, 4, 4);
1017     TEST_FIELD(EMRPOLYPOLYGON, DWORD[1], aPolyCounts, 32, 4, 4);
1018     TEST_FIELD(EMRPOLYPOLYGON, POINTL[1], aptl, 36, 8, 4);
1019 }
1020
1021 static void test_pack_EMRPOLYPOLYGON16(void)
1022 {
1023     /* EMRPOLYPOLYGON16 (pack 4) */
1024     TEST_TYPE(EMRPOLYPOLYGON16, 40, 4);
1025     TEST_FIELD(EMRPOLYPOLYGON16, EMR, emr, 0, 8, 4);
1026     TEST_FIELD(EMRPOLYPOLYGON16, RECTL, rclBounds, 8, 16, 4);
1027     TEST_FIELD(EMRPOLYPOLYGON16, DWORD, nPolys, 24, 4, 4);
1028     TEST_FIELD(EMRPOLYPOLYGON16, DWORD, cpts, 28, 4, 4);
1029     TEST_FIELD(EMRPOLYPOLYGON16, DWORD[1], aPolyCounts, 32, 4, 4);
1030     TEST_FIELD(EMRPOLYPOLYGON16, POINTS[1], apts, 36, 4, 2);
1031 }
1032
1033 static void test_pack_EMRPOLYPOLYLINE(void)
1034 {
1035     /* EMRPOLYPOLYLINE (pack 4) */
1036     TEST_TYPE(EMRPOLYPOLYLINE, 44, 4);
1037     TEST_FIELD(EMRPOLYPOLYLINE, EMR, emr, 0, 8, 4);
1038     TEST_FIELD(EMRPOLYPOLYLINE, RECTL, rclBounds, 8, 16, 4);
1039     TEST_FIELD(EMRPOLYPOLYLINE, DWORD, nPolys, 24, 4, 4);
1040     TEST_FIELD(EMRPOLYPOLYLINE, DWORD, cptl, 28, 4, 4);
1041     TEST_FIELD(EMRPOLYPOLYLINE, DWORD[1], aPolyCounts, 32, 4, 4);
1042     TEST_FIELD(EMRPOLYPOLYLINE, POINTL[1], aptl, 36, 8, 4);
1043 }
1044
1045 static void test_pack_EMRPOLYPOLYLINE16(void)
1046 {
1047     /* EMRPOLYPOLYLINE16 (pack 4) */
1048     TEST_TYPE(EMRPOLYPOLYLINE16, 40, 4);
1049     TEST_FIELD(EMRPOLYPOLYLINE16, EMR, emr, 0, 8, 4);
1050     TEST_FIELD(EMRPOLYPOLYLINE16, RECTL, rclBounds, 8, 16, 4);
1051     TEST_FIELD(EMRPOLYPOLYLINE16, DWORD, nPolys, 24, 4, 4);
1052     TEST_FIELD(EMRPOLYPOLYLINE16, DWORD, cpts, 28, 4, 4);
1053     TEST_FIELD(EMRPOLYPOLYLINE16, DWORD[1], aPolyCounts, 32, 4, 4);
1054     TEST_FIELD(EMRPOLYPOLYLINE16, POINTS[1], apts, 36, 4, 2);
1055 }
1056
1057 static void test_pack_EMRPOLYTEXTOUTA(void)
1058 {
1059     /* EMRPOLYTEXTOUTA (pack 4) */
1060     TEST_TYPE(EMRPOLYTEXTOUTA, 80, 4);
1061     TEST_FIELD(EMRPOLYTEXTOUTA, EMR, emr, 0, 8, 4);
1062     TEST_FIELD(EMRPOLYTEXTOUTA, RECTL, rclBounds, 8, 16, 4);
1063     TEST_FIELD(EMRPOLYTEXTOUTA, DWORD, iGraphicsMode, 24, 4, 4);
1064     TEST_FIELD(EMRPOLYTEXTOUTA, FLOAT, exScale, 28, 4, 4);
1065     TEST_FIELD(EMRPOLYTEXTOUTA, FLOAT, eyScale, 32, 4, 4);
1066     TEST_FIELD(EMRPOLYTEXTOUTA, LONG, cStrings, 36, 4, 4);
1067     TEST_FIELD(EMRPOLYTEXTOUTA, EMRTEXT[1], aemrtext, 40, 40, 4);
1068 }
1069
1070 static void test_pack_EMRPOLYTEXTOUTW(void)
1071 {
1072     /* EMRPOLYTEXTOUTW (pack 4) */
1073     TEST_TYPE(EMRPOLYTEXTOUTW, 80, 4);
1074     TEST_FIELD(EMRPOLYTEXTOUTW, EMR, emr, 0, 8, 4);
1075     TEST_FIELD(EMRPOLYTEXTOUTW, RECTL, rclBounds, 8, 16, 4);
1076     TEST_FIELD(EMRPOLYTEXTOUTW, DWORD, iGraphicsMode, 24, 4, 4);
1077     TEST_FIELD(EMRPOLYTEXTOUTW, FLOAT, exScale, 28, 4, 4);
1078     TEST_FIELD(EMRPOLYTEXTOUTW, FLOAT, eyScale, 32, 4, 4);
1079     TEST_FIELD(EMRPOLYTEXTOUTW, LONG, cStrings, 36, 4, 4);
1080     TEST_FIELD(EMRPOLYTEXTOUTW, EMRTEXT[1], aemrtext, 40, 40, 4);
1081 }
1082
1083 static void test_pack_EMRREALIZEPALETTE(void)
1084 {
1085     /* EMRREALIZEPALETTE (pack 4) */
1086     TEST_TYPE(EMRREALIZEPALETTE, 8, 4);
1087     TEST_FIELD(EMRREALIZEPALETTE, EMR, emr, 0, 8, 4);
1088 }
1089
1090 static void test_pack_EMRRECTANGLE(void)
1091 {
1092     /* EMRRECTANGLE (pack 4) */
1093     TEST_TYPE(EMRRECTANGLE, 24, 4);
1094     TEST_FIELD(EMRRECTANGLE, EMR, emr, 0, 8, 4);
1095     TEST_FIELD(EMRRECTANGLE, RECTL, rclBox, 8, 16, 4);
1096 }
1097
1098 static void test_pack_EMRRESIZEPALETTE(void)
1099 {
1100     /* EMRRESIZEPALETTE (pack 4) */
1101     TEST_TYPE(EMRRESIZEPALETTE, 16, 4);
1102     TEST_FIELD(EMRRESIZEPALETTE, EMR, emr, 0, 8, 4);
1103     TEST_FIELD(EMRRESIZEPALETTE, DWORD, ihPal, 8, 4, 4);
1104     TEST_FIELD(EMRRESIZEPALETTE, DWORD, cEntries, 12, 4, 4);
1105 }
1106
1107 static void test_pack_EMRRESTOREDC(void)
1108 {
1109     /* EMRRESTOREDC (pack 4) */
1110     TEST_TYPE(EMRRESTOREDC, 12, 4);
1111     TEST_FIELD(EMRRESTOREDC, EMR, emr, 0, 8, 4);
1112     TEST_FIELD(EMRRESTOREDC, LONG, iRelative, 8, 4, 4);
1113 }
1114
1115 static void test_pack_EMRROUNDRECT(void)
1116 {
1117     /* EMRROUNDRECT (pack 4) */
1118     TEST_TYPE(EMRROUNDRECT, 32, 4);
1119     TEST_FIELD(EMRROUNDRECT, EMR, emr, 0, 8, 4);
1120     TEST_FIELD(EMRROUNDRECT, RECTL, rclBox, 8, 16, 4);
1121     TEST_FIELD(EMRROUNDRECT, SIZEL, szlCorner, 24, 8, 4);
1122 }
1123
1124 static void test_pack_EMRSAVEDC(void)
1125 {
1126     /* EMRSAVEDC (pack 4) */
1127     TEST_TYPE(EMRSAVEDC, 8, 4);
1128     TEST_FIELD(EMRSAVEDC, EMR, emr, 0, 8, 4);
1129 }
1130
1131 static void test_pack_EMRSCALEVIEWPORTEXTEX(void)
1132 {
1133     /* EMRSCALEVIEWPORTEXTEX (pack 4) */
1134     TEST_TYPE(EMRSCALEVIEWPORTEXTEX, 24, 4);
1135     TEST_FIELD(EMRSCALEVIEWPORTEXTEX, EMR, emr, 0, 8, 4);
1136     TEST_FIELD(EMRSCALEVIEWPORTEXTEX, LONG, xNum, 8, 4, 4);
1137     TEST_FIELD(EMRSCALEVIEWPORTEXTEX, LONG, xDenom, 12, 4, 4);
1138     TEST_FIELD(EMRSCALEVIEWPORTEXTEX, LONG, yNum, 16, 4, 4);
1139     TEST_FIELD(EMRSCALEVIEWPORTEXTEX, LONG, yDenom, 20, 4, 4);
1140 }
1141
1142 static void test_pack_EMRSCALEWINDOWEXTEX(void)
1143 {
1144     /* EMRSCALEWINDOWEXTEX (pack 4) */
1145     TEST_TYPE(EMRSCALEWINDOWEXTEX, 24, 4);
1146     TEST_FIELD(EMRSCALEWINDOWEXTEX, EMR, emr, 0, 8, 4);
1147     TEST_FIELD(EMRSCALEWINDOWEXTEX, LONG, xNum, 8, 4, 4);
1148     TEST_FIELD(EMRSCALEWINDOWEXTEX, LONG, xDenom, 12, 4, 4);
1149     TEST_FIELD(EMRSCALEWINDOWEXTEX, LONG, yNum, 16, 4, 4);
1150     TEST_FIELD(EMRSCALEWINDOWEXTEX, LONG, yDenom, 20, 4, 4);
1151 }
1152
1153 static void test_pack_EMRSELECTCLIPPATH(void)
1154 {
1155     /* EMRSELECTCLIPPATH (pack 4) */
1156     TEST_TYPE(EMRSELECTCLIPPATH, 12, 4);
1157     TEST_FIELD(EMRSELECTCLIPPATH, EMR, emr, 0, 8, 4);
1158     TEST_FIELD(EMRSELECTCLIPPATH, DWORD, iMode, 8, 4, 4);
1159 }
1160
1161 static void test_pack_EMRSELECTCOLORSPACE(void)
1162 {
1163     /* EMRSELECTCOLORSPACE (pack 4) */
1164     TEST_TYPE(EMRSELECTCOLORSPACE, 12, 4);
1165     TEST_FIELD(EMRSELECTCOLORSPACE, EMR, emr, 0, 8, 4);
1166     TEST_FIELD(EMRSELECTCOLORSPACE, DWORD, ihCS, 8, 4, 4);
1167 }
1168
1169 static void test_pack_EMRSELECTOBJECT(void)
1170 {
1171     /* EMRSELECTOBJECT (pack 4) */
1172     TEST_TYPE(EMRSELECTOBJECT, 12, 4);
1173     TEST_FIELD(EMRSELECTOBJECT, EMR, emr, 0, 8, 4);
1174     TEST_FIELD(EMRSELECTOBJECT, DWORD, ihObject, 8, 4, 4);
1175 }
1176
1177 static void test_pack_EMRSELECTPALETTE(void)
1178 {
1179     /* EMRSELECTPALETTE (pack 4) */
1180     TEST_TYPE(EMRSELECTPALETTE, 12, 4);
1181     TEST_FIELD(EMRSELECTPALETTE, EMR, emr, 0, 8, 4);
1182     TEST_FIELD(EMRSELECTPALETTE, DWORD, ihPal, 8, 4, 4);
1183 }
1184
1185 static void test_pack_EMRSETARCDIRECTION(void)
1186 {
1187     /* EMRSETARCDIRECTION (pack 4) */
1188     TEST_TYPE(EMRSETARCDIRECTION, 12, 4);
1189     TEST_FIELD(EMRSETARCDIRECTION, EMR, emr, 0, 8, 4);
1190     TEST_FIELD(EMRSETARCDIRECTION, DWORD, iArcDirection, 8, 4, 4);
1191 }
1192
1193 static void test_pack_EMRSETBKCOLOR(void)
1194 {
1195     /* EMRSETBKCOLOR (pack 4) */
1196     TEST_TYPE(EMRSETBKCOLOR, 12, 4);
1197     TEST_FIELD(EMRSETBKCOLOR, EMR, emr, 0, 8, 4);
1198     TEST_FIELD(EMRSETBKCOLOR, COLORREF, crColor, 8, 4, 4);
1199 }
1200
1201 static void test_pack_EMRSETBKMODE(void)
1202 {
1203     /* EMRSETBKMODE (pack 4) */
1204     TEST_TYPE(EMRSETBKMODE, 12, 4);
1205     TEST_FIELD(EMRSETBKMODE, EMR, emr, 0, 8, 4);
1206     TEST_FIELD(EMRSETBKMODE, DWORD, iMode, 8, 4, 4);
1207 }
1208
1209 static void test_pack_EMRSETBRUSHORGEX(void)
1210 {
1211     /* EMRSETBRUSHORGEX (pack 4) */
1212     TEST_TYPE(EMRSETBRUSHORGEX, 16, 4);
1213     TEST_FIELD(EMRSETBRUSHORGEX, EMR, emr, 0, 8, 4);
1214     TEST_FIELD(EMRSETBRUSHORGEX, POINTL, ptlOrigin, 8, 8, 4);
1215 }
1216
1217 static void test_pack_EMRSETCOLORADJUSTMENT(void)
1218 {
1219     /* EMRSETCOLORADJUSTMENT (pack 4) */
1220     TEST_TYPE(EMRSETCOLORADJUSTMENT, 32, 4);
1221     TEST_FIELD(EMRSETCOLORADJUSTMENT, EMR, emr, 0, 8, 4);
1222     TEST_FIELD(EMRSETCOLORADJUSTMENT, COLORADJUSTMENT, ColorAdjustment, 8, 24, 2);
1223 }
1224
1225 static void test_pack_EMRSETCOLORSPACE(void)
1226 {
1227     /* EMRSETCOLORSPACE (pack 4) */
1228     TEST_TYPE(EMRSETCOLORSPACE, 12, 4);
1229     TEST_FIELD(EMRSETCOLORSPACE, EMR, emr, 0, 8, 4);
1230     TEST_FIELD(EMRSETCOLORSPACE, DWORD, ihCS, 8, 4, 4);
1231 }
1232
1233 static void test_pack_EMRSETDIBITSTODEVICE(void)
1234 {
1235     /* EMRSETDIBITSTODEVICE (pack 4) */
1236     TEST_TYPE(EMRSETDIBITSTODEVICE, 76, 4);
1237     TEST_FIELD(EMRSETDIBITSTODEVICE, EMR, emr, 0, 8, 4);
1238     TEST_FIELD(EMRSETDIBITSTODEVICE, RECTL, rclBounds, 8, 16, 4);
1239     TEST_FIELD(EMRSETDIBITSTODEVICE, LONG, xDest, 24, 4, 4);
1240     TEST_FIELD(EMRSETDIBITSTODEVICE, LONG, yDest, 28, 4, 4);
1241     TEST_FIELD(EMRSETDIBITSTODEVICE, LONG, xSrc, 32, 4, 4);
1242     TEST_FIELD(EMRSETDIBITSTODEVICE, LONG, ySrc, 36, 4, 4);
1243     TEST_FIELD(EMRSETDIBITSTODEVICE, LONG, cxSrc, 40, 4, 4);
1244     TEST_FIELD(EMRSETDIBITSTODEVICE, LONG, cySrc, 44, 4, 4);
1245     TEST_FIELD(EMRSETDIBITSTODEVICE, DWORD, offBmiSrc, 48, 4, 4);
1246     TEST_FIELD(EMRSETDIBITSTODEVICE, DWORD, cbBmiSrc, 52, 4, 4);
1247     TEST_FIELD(EMRSETDIBITSTODEVICE, DWORD, offBitsSrc, 56, 4, 4);
1248     TEST_FIELD(EMRSETDIBITSTODEVICE, DWORD, cbBitsSrc, 60, 4, 4);
1249     TEST_FIELD(EMRSETDIBITSTODEVICE, DWORD, iUsageSrc, 64, 4, 4);
1250     TEST_FIELD(EMRSETDIBITSTODEVICE, DWORD, iStartScan, 68, 4, 4);
1251     TEST_FIELD(EMRSETDIBITSTODEVICE, DWORD, cScans, 72, 4, 4);
1252 }
1253
1254 static void test_pack_EMRSETICMMODE(void)
1255 {
1256     /* EMRSETICMMODE (pack 4) */
1257     TEST_TYPE(EMRSETICMMODE, 12, 4);
1258     TEST_FIELD(EMRSETICMMODE, EMR, emr, 0, 8, 4);
1259     TEST_FIELD(EMRSETICMMODE, DWORD, iMode, 8, 4, 4);
1260 }
1261
1262 static void test_pack_EMRSETLAYOUT(void)
1263 {
1264     /* EMRSETLAYOUT (pack 4) */
1265     TEST_TYPE(EMRSETLAYOUT, 12, 4);
1266     TEST_FIELD(EMRSETLAYOUT, EMR, emr, 0, 8, 4);
1267     TEST_FIELD(EMRSETLAYOUT, DWORD, iMode, 8, 4, 4);
1268 }
1269
1270 static void test_pack_EMRSETMAPMODE(void)
1271 {
1272     /* EMRSETMAPMODE (pack 4) */
1273     TEST_TYPE(EMRSETMAPMODE, 12, 4);
1274     TEST_FIELD(EMRSETMAPMODE, EMR, emr, 0, 8, 4);
1275     TEST_FIELD(EMRSETMAPMODE, DWORD, iMode, 8, 4, 4);
1276 }
1277
1278 static void test_pack_EMRSETMAPPERFLAGS(void)
1279 {
1280     /* EMRSETMAPPERFLAGS (pack 4) */
1281     TEST_TYPE(EMRSETMAPPERFLAGS, 12, 4);
1282     TEST_FIELD(EMRSETMAPPERFLAGS, EMR, emr, 0, 8, 4);
1283     TEST_FIELD(EMRSETMAPPERFLAGS, DWORD, dwFlags, 8, 4, 4);
1284 }
1285
1286 static void test_pack_EMRSETMETARGN(void)
1287 {
1288     /* EMRSETMETARGN (pack 4) */
1289     TEST_TYPE(EMRSETMETARGN, 8, 4);
1290     TEST_FIELD(EMRSETMETARGN, EMR, emr, 0, 8, 4);
1291 }
1292
1293 static void test_pack_EMRSETMITERLIMIT(void)
1294 {
1295     /* EMRSETMITERLIMIT (pack 4) */
1296     TEST_TYPE(EMRSETMITERLIMIT, 12, 4);
1297     TEST_FIELD(EMRSETMITERLIMIT, EMR, emr, 0, 8, 4);
1298     TEST_FIELD(EMRSETMITERLIMIT, FLOAT, eMiterLimit, 8, 4, 4);
1299 }
1300
1301 static void test_pack_EMRSETPIXELV(void)
1302 {
1303     /* EMRSETPIXELV (pack 4) */
1304     TEST_TYPE(EMRSETPIXELV, 20, 4);
1305     TEST_FIELD(EMRSETPIXELV, EMR, emr, 0, 8, 4);
1306     TEST_FIELD(EMRSETPIXELV, POINTL, ptlPixel, 8, 8, 4);
1307     TEST_FIELD(EMRSETPIXELV, COLORREF, crColor, 16, 4, 4);
1308 }
1309
1310 static void test_pack_EMRSETPOLYFILLMODE(void)
1311 {
1312     /* EMRSETPOLYFILLMODE (pack 4) */
1313     TEST_TYPE(EMRSETPOLYFILLMODE, 12, 4);
1314     TEST_FIELD(EMRSETPOLYFILLMODE, EMR, emr, 0, 8, 4);
1315     TEST_FIELD(EMRSETPOLYFILLMODE, DWORD, iMode, 8, 4, 4);
1316 }
1317
1318 static void test_pack_EMRSETROP2(void)
1319 {
1320     /* EMRSETROP2 (pack 4) */
1321     TEST_TYPE(EMRSETROP2, 12, 4);
1322     TEST_FIELD(EMRSETROP2, EMR, emr, 0, 8, 4);
1323     TEST_FIELD(EMRSETROP2, DWORD, iMode, 8, 4, 4);
1324 }
1325
1326 static void test_pack_EMRSETSTRETCHBLTMODE(void)
1327 {
1328     /* EMRSETSTRETCHBLTMODE (pack 4) */
1329     TEST_TYPE(EMRSETSTRETCHBLTMODE, 12, 4);
1330     TEST_FIELD(EMRSETSTRETCHBLTMODE, EMR, emr, 0, 8, 4);
1331     TEST_FIELD(EMRSETSTRETCHBLTMODE, DWORD, iMode, 8, 4, 4);
1332 }
1333
1334 static void test_pack_EMRSETTEXTALIGN(void)
1335 {
1336     /* EMRSETTEXTALIGN (pack 4) */
1337     TEST_TYPE(EMRSETTEXTALIGN, 12, 4);
1338     TEST_FIELD(EMRSETTEXTALIGN, EMR, emr, 0, 8, 4);
1339     TEST_FIELD(EMRSETTEXTALIGN, DWORD, iMode, 8, 4, 4);
1340 }
1341
1342 static void test_pack_EMRSETTEXTCOLOR(void)
1343 {
1344     /* EMRSETTEXTCOLOR (pack 4) */
1345     TEST_TYPE(EMRSETTEXTCOLOR, 12, 4);
1346     TEST_FIELD(EMRSETTEXTCOLOR, EMR, emr, 0, 8, 4);
1347     TEST_FIELD(EMRSETTEXTCOLOR, COLORREF, crColor, 8, 4, 4);
1348 }
1349
1350 static void test_pack_EMRSETVIEWPORTEXTEX(void)
1351 {
1352     /* EMRSETVIEWPORTEXTEX (pack 4) */
1353     TEST_TYPE(EMRSETVIEWPORTEXTEX, 16, 4);
1354     TEST_FIELD(EMRSETVIEWPORTEXTEX, EMR, emr, 0, 8, 4);
1355     TEST_FIELD(EMRSETVIEWPORTEXTEX, SIZEL, szlExtent, 8, 8, 4);
1356 }
1357
1358 static void test_pack_EMRSETVIEWPORTORGEX(void)
1359 {
1360     /* EMRSETVIEWPORTORGEX (pack 4) */
1361     TEST_TYPE(EMRSETVIEWPORTORGEX, 16, 4);
1362     TEST_FIELD(EMRSETVIEWPORTORGEX, EMR, emr, 0, 8, 4);
1363     TEST_FIELD(EMRSETVIEWPORTORGEX, POINTL, ptlOrigin, 8, 8, 4);
1364 }
1365
1366 static void test_pack_EMRSETWINDOWEXTEX(void)
1367 {
1368     /* EMRSETWINDOWEXTEX (pack 4) */
1369     TEST_TYPE(EMRSETWINDOWEXTEX, 16, 4);
1370     TEST_FIELD(EMRSETWINDOWEXTEX, EMR, emr, 0, 8, 4);
1371     TEST_FIELD(EMRSETWINDOWEXTEX, SIZEL, szlExtent, 8, 8, 4);
1372 }
1373
1374 static void test_pack_EMRSETWINDOWORGEX(void)
1375 {
1376     /* EMRSETWINDOWORGEX (pack 4) */
1377     TEST_TYPE(EMRSETWINDOWORGEX, 16, 4);
1378     TEST_FIELD(EMRSETWINDOWORGEX, EMR, emr, 0, 8, 4);
1379     TEST_FIELD(EMRSETWINDOWORGEX, POINTL, ptlOrigin, 8, 8, 4);
1380 }
1381
1382 static void test_pack_EMRSETWORLDTRANSFORM(void)
1383 {
1384     /* EMRSETWORLDTRANSFORM (pack 4) */
1385     TEST_TYPE(EMRSETWORLDTRANSFORM, 32, 4);
1386     TEST_FIELD(EMRSETWORLDTRANSFORM, EMR, emr, 0, 8, 4);
1387     TEST_FIELD(EMRSETWORLDTRANSFORM, XFORM, xform, 8, 24, 4);
1388 }
1389
1390 static void test_pack_EMRSTRETCHBLT(void)
1391 {
1392     /* EMRSTRETCHBLT (pack 4) */
1393     TEST_TYPE(EMRSTRETCHBLT, 108, 4);
1394     TEST_FIELD(EMRSTRETCHBLT, EMR, emr, 0, 8, 4);
1395     TEST_FIELD(EMRSTRETCHBLT, RECTL, rclBounds, 8, 16, 4);
1396     TEST_FIELD(EMRSTRETCHBLT, LONG, xDest, 24, 4, 4);
1397     TEST_FIELD(EMRSTRETCHBLT, LONG, yDest, 28, 4, 4);
1398     TEST_FIELD(EMRSTRETCHBLT, LONG, cxDest, 32, 4, 4);
1399     TEST_FIELD(EMRSTRETCHBLT, LONG, cyDest, 36, 4, 4);
1400     TEST_FIELD(EMRSTRETCHBLT, DWORD, dwRop, 40, 4, 4);
1401     TEST_FIELD(EMRSTRETCHBLT, LONG, xSrc, 44, 4, 4);
1402     TEST_FIELD(EMRSTRETCHBLT, LONG, ySrc, 48, 4, 4);
1403     TEST_FIELD(EMRSTRETCHBLT, XFORM, xformSrc, 52, 24, 4);
1404     TEST_FIELD(EMRSTRETCHBLT, COLORREF, crBkColorSrc, 76, 4, 4);
1405     TEST_FIELD(EMRSTRETCHBLT, DWORD, iUsageSrc, 80, 4, 4);
1406     TEST_FIELD(EMRSTRETCHBLT, DWORD, offBmiSrc, 84, 4, 4);
1407     TEST_FIELD(EMRSTRETCHBLT, DWORD, cbBmiSrc, 88, 4, 4);
1408     TEST_FIELD(EMRSTRETCHBLT, DWORD, offBitsSrc, 92, 4, 4);
1409     TEST_FIELD(EMRSTRETCHBLT, DWORD, cbBitsSrc, 96, 4, 4);
1410     TEST_FIELD(EMRSTRETCHBLT, LONG, cxSrc, 100, 4, 4);
1411     TEST_FIELD(EMRSTRETCHBLT, LONG, cySrc, 104, 4, 4);
1412 }
1413
1414 static void test_pack_EMRSTRETCHDIBITS(void)
1415 {
1416     /* EMRSTRETCHDIBITS (pack 4) */
1417     TEST_TYPE(EMRSTRETCHDIBITS, 80, 4);
1418     TEST_FIELD(EMRSTRETCHDIBITS, EMR, emr, 0, 8, 4);
1419     TEST_FIELD(EMRSTRETCHDIBITS, RECTL, rclBounds, 8, 16, 4);
1420     TEST_FIELD(EMRSTRETCHDIBITS, LONG, xDest, 24, 4, 4);
1421     TEST_FIELD(EMRSTRETCHDIBITS, LONG, yDest, 28, 4, 4);
1422     TEST_FIELD(EMRSTRETCHDIBITS, LONG, xSrc, 32, 4, 4);
1423     TEST_FIELD(EMRSTRETCHDIBITS, LONG, ySrc, 36, 4, 4);
1424     TEST_FIELD(EMRSTRETCHDIBITS, LONG, cxSrc, 40, 4, 4);
1425     TEST_FIELD(EMRSTRETCHDIBITS, LONG, cySrc, 44, 4, 4);
1426     TEST_FIELD(EMRSTRETCHDIBITS, DWORD, offBmiSrc, 48, 4, 4);
1427     TEST_FIELD(EMRSTRETCHDIBITS, DWORD, cbBmiSrc, 52, 4, 4);
1428     TEST_FIELD(EMRSTRETCHDIBITS, DWORD, offBitsSrc, 56, 4, 4);
1429     TEST_FIELD(EMRSTRETCHDIBITS, DWORD, cbBitsSrc, 60, 4, 4);
1430     TEST_FIELD(EMRSTRETCHDIBITS, DWORD, iUsageSrc, 64, 4, 4);
1431     TEST_FIELD(EMRSTRETCHDIBITS, DWORD, dwRop, 68, 4, 4);
1432     TEST_FIELD(EMRSTRETCHDIBITS, LONG, cxDest, 72, 4, 4);
1433     TEST_FIELD(EMRSTRETCHDIBITS, LONG, cyDest, 76, 4, 4);
1434 }
1435
1436 static void test_pack_EMRSTROKEANDFILLPATH(void)
1437 {
1438     /* EMRSTROKEANDFILLPATH (pack 4) */
1439     TEST_TYPE(EMRSTROKEANDFILLPATH, 24, 4);
1440     TEST_FIELD(EMRSTROKEANDFILLPATH, EMR, emr, 0, 8, 4);
1441     TEST_FIELD(EMRSTROKEANDFILLPATH, RECTL, rclBounds, 8, 16, 4);
1442 }
1443
1444 static void test_pack_EMRSTROKEPATH(void)
1445 {
1446     /* EMRSTROKEPATH (pack 4) */
1447     TEST_TYPE(EMRSTROKEPATH, 24, 4);
1448     TEST_FIELD(EMRSTROKEPATH, EMR, emr, 0, 8, 4);
1449     TEST_FIELD(EMRSTROKEPATH, RECTL, rclBounds, 8, 16, 4);
1450 }
1451
1452 static void test_pack_EMRTEXT(void)
1453 {
1454     /* EMRTEXT (pack 4) */
1455     TEST_TYPE(EMRTEXT, 40, 4);
1456     TEST_FIELD(EMRTEXT, POINTL, ptlReference, 0, 8, 4);
1457     TEST_FIELD(EMRTEXT, DWORD, nChars, 8, 4, 4);
1458     TEST_FIELD(EMRTEXT, DWORD, offString, 12, 4, 4);
1459     TEST_FIELD(EMRTEXT, DWORD, fOptions, 16, 4, 4);
1460     TEST_FIELD(EMRTEXT, RECTL, rcl, 20, 16, 4);
1461     TEST_FIELD(EMRTEXT, DWORD, offDx, 36, 4, 4);
1462 }
1463
1464 static void test_pack_EMRWIDENPATH(void)
1465 {
1466     /* EMRWIDENPATH (pack 4) */
1467     TEST_TYPE(EMRWIDENPATH, 8, 4);
1468     TEST_FIELD(EMRWIDENPATH, EMR, emr, 0, 8, 4);
1469 }
1470
1471 static void test_pack_ENHMETAHEADER(void)
1472 {
1473     /* ENHMETAHEADER (pack 4) */
1474     TEST_TYPE(ENHMETAHEADER, 108, 4);
1475     TEST_FIELD(ENHMETAHEADER, DWORD, iType, 0, 4, 4);
1476     TEST_FIELD(ENHMETAHEADER, DWORD, nSize, 4, 4, 4);
1477     TEST_FIELD(ENHMETAHEADER, RECTL, rclBounds, 8, 16, 4);
1478     TEST_FIELD(ENHMETAHEADER, RECTL, rclFrame, 24, 16, 4);
1479     TEST_FIELD(ENHMETAHEADER, DWORD, dSignature, 40, 4, 4);
1480     TEST_FIELD(ENHMETAHEADER, DWORD, nVersion, 44, 4, 4);
1481     TEST_FIELD(ENHMETAHEADER, DWORD, nBytes, 48, 4, 4);
1482     TEST_FIELD(ENHMETAHEADER, DWORD, nRecords, 52, 4, 4);
1483     TEST_FIELD(ENHMETAHEADER, WORD, nHandles, 56, 2, 2);
1484     TEST_FIELD(ENHMETAHEADER, WORD, sReserved, 58, 2, 2);
1485     TEST_FIELD(ENHMETAHEADER, DWORD, nDescription, 60, 4, 4);
1486     TEST_FIELD(ENHMETAHEADER, DWORD, offDescription, 64, 4, 4);
1487     TEST_FIELD(ENHMETAHEADER, DWORD, nPalEntries, 68, 4, 4);
1488     TEST_FIELD(ENHMETAHEADER, SIZEL, szlDevice, 72, 8, 4);
1489     TEST_FIELD(ENHMETAHEADER, SIZEL, szlMillimeters, 80, 8, 4);
1490     TEST_FIELD(ENHMETAHEADER, DWORD, cbPixelFormat, 88, 4, 4);
1491     TEST_FIELD(ENHMETAHEADER, DWORD, offPixelFormat, 92, 4, 4);
1492     TEST_FIELD(ENHMETAHEADER, DWORD, bOpenGL, 96, 4, 4);
1493     TEST_FIELD(ENHMETAHEADER, SIZEL, szlMicrometers, 100, 8, 4);
1494 }
1495
1496 static void test_pack_ENHMETARECORD(void)
1497 {
1498     /* ENHMETARECORD (pack 4) */
1499     TEST_TYPE(ENHMETARECORD, 12, 4);
1500     TEST_FIELD(ENHMETARECORD, DWORD, iType, 0, 4, 4);
1501     TEST_FIELD(ENHMETARECORD, DWORD, nSize, 4, 4, 4);
1502     TEST_FIELD(ENHMETARECORD, DWORD[1], dParm, 8, 4, 4);
1503 }
1504
1505 static void test_pack_ENHMFENUMPROC(void)
1506 {
1507     /* ENHMFENUMPROC */
1508     TEST_TYPE(ENHMFENUMPROC, 4, 4);
1509 }
1510
1511 static void test_pack_ENUMLOGFONTA(void)
1512 {
1513     /* ENUMLOGFONTA (pack 4) */
1514     TEST_TYPE(ENUMLOGFONTA, 156, 4);
1515     TEST_FIELD(ENUMLOGFONTA, LOGFONTA, elfLogFont, 0, 60, 4);
1516     TEST_FIELD(ENUMLOGFONTA, BYTE[LF_FULLFACESIZE], elfFullName, 60, 64, 1);
1517     TEST_FIELD(ENUMLOGFONTA, BYTE[LF_FACESIZE], elfStyle, 124, 32, 1);
1518 }
1519
1520 static void test_pack_ENUMLOGFONTEXA(void)
1521 {
1522     /* ENUMLOGFONTEXA (pack 4) */
1523     TEST_TYPE(ENUMLOGFONTEXA, 188, 4);
1524     TEST_FIELD(ENUMLOGFONTEXA, LOGFONTA, elfLogFont, 0, 60, 4);
1525     TEST_FIELD(ENUMLOGFONTEXA, BYTE[LF_FULLFACESIZE], elfFullName, 60, 64, 1);
1526     TEST_FIELD(ENUMLOGFONTEXA, BYTE[LF_FACESIZE], elfStyle, 124, 32, 1);
1527     TEST_FIELD(ENUMLOGFONTEXA, BYTE[LF_FACESIZE], elfScript, 156, 32, 1);
1528 }
1529
1530 static void test_pack_ENUMLOGFONTEXW(void)
1531 {
1532     /* ENUMLOGFONTEXW (pack 4) */
1533     TEST_TYPE(ENUMLOGFONTEXW, 348, 4);
1534     TEST_FIELD(ENUMLOGFONTEXW, LOGFONTW, elfLogFont, 0, 92, 4);
1535     TEST_FIELD(ENUMLOGFONTEXW, WCHAR[LF_FULLFACESIZE], elfFullName, 92, 128, 2);
1536     TEST_FIELD(ENUMLOGFONTEXW, WCHAR[LF_FACESIZE], elfStyle, 220, 64, 2);
1537     TEST_FIELD(ENUMLOGFONTEXW, WCHAR[LF_FACESIZE], elfScript, 284, 64, 2);
1538 }
1539
1540 static void test_pack_ENUMLOGFONTW(void)
1541 {
1542     /* ENUMLOGFONTW (pack 4) */
1543     TEST_TYPE(ENUMLOGFONTW, 284, 4);
1544     TEST_FIELD(ENUMLOGFONTW, LOGFONTW, elfLogFont, 0, 92, 4);
1545     TEST_FIELD(ENUMLOGFONTW, WCHAR[LF_FULLFACESIZE], elfFullName, 92, 128, 2);
1546     TEST_FIELD(ENUMLOGFONTW, WCHAR[LF_FACESIZE], elfStyle, 220, 64, 2);
1547 }
1548
1549 static void test_pack_EXTLOGFONTA(void)
1550 {
1551     /* EXTLOGFONTA (pack 4) */
1552     TEST_TYPE(EXTLOGFONTA, 192, 4);
1553     TEST_FIELD(EXTLOGFONTA, LOGFONTA, elfLogFont, 0, 60, 4);
1554     TEST_FIELD(EXTLOGFONTA, BYTE[LF_FULLFACESIZE], elfFullName, 60, 64, 1);
1555     TEST_FIELD(EXTLOGFONTA, BYTE[LF_FACESIZE], elfStyle, 124, 32, 1);
1556     TEST_FIELD(EXTLOGFONTA, DWORD, elfVersion, 156, 4, 4);
1557     TEST_FIELD(EXTLOGFONTA, DWORD, elfStyleSize, 160, 4, 4);
1558     TEST_FIELD(EXTLOGFONTA, DWORD, elfMatch, 164, 4, 4);
1559     TEST_FIELD(EXTLOGFONTA, DWORD, elfReserved, 168, 4, 4);
1560     TEST_FIELD(EXTLOGFONTA, BYTE[ELF_VENDOR_SIZE], elfVendorId, 172, 4, 1);
1561     TEST_FIELD(EXTLOGFONTA, DWORD, elfCulture, 176, 4, 4);
1562     TEST_FIELD(EXTLOGFONTA, PANOSE, elfPanose, 180, 10, 1);
1563 }
1564
1565 static void test_pack_EXTLOGFONTW(void)
1566 {
1567     /* EXTLOGFONTW (pack 4) */
1568     TEST_TYPE(EXTLOGFONTW, 320, 4);
1569     TEST_FIELD(EXTLOGFONTW, LOGFONTW, elfLogFont, 0, 92, 4);
1570     TEST_FIELD(EXTLOGFONTW, WCHAR[LF_FULLFACESIZE], elfFullName, 92, 128, 2);
1571     TEST_FIELD(EXTLOGFONTW, WCHAR[LF_FACESIZE], elfStyle, 220, 64, 2);
1572     TEST_FIELD(EXTLOGFONTW, DWORD, elfVersion, 284, 4, 4);
1573     TEST_FIELD(EXTLOGFONTW, DWORD, elfStyleSize, 288, 4, 4);
1574     TEST_FIELD(EXTLOGFONTW, DWORD, elfMatch, 292, 4, 4);
1575     TEST_FIELD(EXTLOGFONTW, DWORD, elfReserved, 296, 4, 4);
1576     TEST_FIELD(EXTLOGFONTW, BYTE[ELF_VENDOR_SIZE], elfVendorId, 300, 4, 1);
1577     TEST_FIELD(EXTLOGFONTW, DWORD, elfCulture, 304, 4, 4);
1578     TEST_FIELD(EXTLOGFONTW, PANOSE, elfPanose, 308, 10, 1);
1579 }
1580
1581 static void test_pack_EXTLOGPEN(void)
1582 {
1583     /* EXTLOGPEN (pack 4) */
1584     TEST_TYPE(EXTLOGPEN, 28, 4);
1585     TEST_FIELD(EXTLOGPEN, DWORD, elpPenStyle, 0, 4, 4);
1586     TEST_FIELD(EXTLOGPEN, DWORD, elpWidth, 4, 4, 4);
1587     TEST_FIELD(EXTLOGPEN, UINT, elpBrushStyle, 8, 4, 4);
1588     TEST_FIELD(EXTLOGPEN, COLORREF, elpColor, 12, 4, 4);
1589     TEST_FIELD(EXTLOGPEN, LONG, elpHatch, 16, 4, 4);
1590     TEST_FIELD(EXTLOGPEN, DWORD, elpNumEntries, 20, 4, 4);
1591     TEST_FIELD(EXTLOGPEN, DWORD[1], elpStyleEntry, 24, 4, 4);
1592 }
1593
1594 static void test_pack_FIXED(void)
1595 {
1596     /* FIXED (pack 4) */
1597     TEST_TYPE(FIXED, 4, 2);
1598     TEST_FIELD(FIXED, WORD, fract, 0, 2, 2);
1599     TEST_FIELD(FIXED, SHORT, value, 2, 2, 2);
1600 }
1601
1602 static void test_pack_FONTENUMPROCA(void)
1603 {
1604     /* FONTENUMPROCA */
1605     TEST_TYPE(FONTENUMPROCA, 4, 4);
1606 }
1607
1608 static void test_pack_FONTENUMPROCW(void)
1609 {
1610     /* FONTENUMPROCW */
1611     TEST_TYPE(FONTENUMPROCW, 4, 4);
1612 }
1613
1614 static void test_pack_FONTSIGNATURE(void)
1615 {
1616     /* FONTSIGNATURE (pack 4) */
1617     TEST_TYPE(FONTSIGNATURE, 24, 4);
1618     TEST_FIELD(FONTSIGNATURE, DWORD[4], fsUsb, 0, 16, 4);
1619     TEST_FIELD(FONTSIGNATURE, DWORD[2], fsCsb, 16, 8, 4);
1620 }
1621
1622 static void test_pack_FXPT16DOT16(void)
1623 {
1624     /* FXPT16DOT16 */
1625     TEST_TYPE(FXPT16DOT16, 4, 4);
1626 }
1627
1628 static void test_pack_FXPT2DOT30(void)
1629 {
1630     /* FXPT2DOT30 */
1631     TEST_TYPE(FXPT2DOT30, 4, 4);
1632 }
1633
1634 static void test_pack_GCP_RESULTSA(void)
1635 {
1636     /* GCP_RESULTSA (pack 4) */
1637     TEST_TYPE(GCP_RESULTSA, 36, 4);
1638     TEST_FIELD(GCP_RESULTSA, DWORD, lStructSize, 0, 4, 4);
1639     TEST_FIELD(GCP_RESULTSA, LPSTR, lpOutString, 4, 4, 4);
1640     TEST_FIELD(GCP_RESULTSA, UINT *, lpOrder, 8, 4, 4);
1641     TEST_FIELD(GCP_RESULTSA, INT *, lpDx, 12, 4, 4);
1642     TEST_FIELD(GCP_RESULTSA, INT *, lpCaretPos, 16, 4, 4);
1643     TEST_FIELD(GCP_RESULTSA, LPSTR, lpClass, 20, 4, 4);
1644     TEST_FIELD(GCP_RESULTSA, LPWSTR, lpGlyphs, 24, 4, 4);
1645     TEST_FIELD(GCP_RESULTSA, UINT, nGlyphs, 28, 4, 4);
1646     TEST_FIELD(GCP_RESULTSA, UINT, nMaxFit, 32, 4, 4);
1647 }
1648
1649 static void test_pack_GCP_RESULTSW(void)
1650 {
1651     /* GCP_RESULTSW (pack 4) */
1652     TEST_TYPE(GCP_RESULTSW, 36, 4);
1653     TEST_FIELD(GCP_RESULTSW, DWORD, lStructSize, 0, 4, 4);
1654     TEST_FIELD(GCP_RESULTSW, LPWSTR, lpOutString, 4, 4, 4);
1655     TEST_FIELD(GCP_RESULTSW, UINT *, lpOrder, 8, 4, 4);
1656     TEST_FIELD(GCP_RESULTSW, INT *, lpDx, 12, 4, 4);
1657     TEST_FIELD(GCP_RESULTSW, INT *, lpCaretPos, 16, 4, 4);
1658     TEST_FIELD(GCP_RESULTSW, LPSTR, lpClass, 20, 4, 4);
1659     TEST_FIELD(GCP_RESULTSW, LPWSTR, lpGlyphs, 24, 4, 4);
1660     TEST_FIELD(GCP_RESULTSW, UINT, nGlyphs, 28, 4, 4);
1661     TEST_FIELD(GCP_RESULTSW, UINT, nMaxFit, 32, 4, 4);
1662 }
1663
1664 static void test_pack_GLYPHMETRICS(void)
1665 {
1666     /* GLYPHMETRICS (pack 4) */
1667     TEST_TYPE(GLYPHMETRICS, 20, 4);
1668     TEST_FIELD(GLYPHMETRICS, UINT, gmBlackBoxX, 0, 4, 4);
1669     TEST_FIELD(GLYPHMETRICS, UINT, gmBlackBoxY, 4, 4, 4);
1670     TEST_FIELD(GLYPHMETRICS, POINT, gmptGlyphOrigin, 8, 8, 4);
1671     TEST_FIELD(GLYPHMETRICS, SHORT, gmCellIncX, 16, 2, 2);
1672     TEST_FIELD(GLYPHMETRICS, SHORT, gmCellIncY, 18, 2, 2);
1673 }
1674
1675 static void test_pack_GOBJENUMPROC(void)
1676 {
1677     /* GOBJENUMPROC */
1678     TEST_TYPE(GOBJENUMPROC, 4, 4);
1679 }
1680
1681 static void test_pack_GRADIENT_RECT(void)
1682 {
1683     /* GRADIENT_RECT (pack 4) */
1684     TEST_TYPE(GRADIENT_RECT, 8, 4);
1685     TEST_FIELD(GRADIENT_RECT, ULONG, UpperLeft, 0, 4, 4);
1686     TEST_FIELD(GRADIENT_RECT, ULONG, LowerRight, 4, 4, 4);
1687 }
1688
1689 static void test_pack_GRADIENT_TRIANGLE(void)
1690 {
1691     /* GRADIENT_TRIANGLE (pack 4) */
1692     TEST_TYPE(GRADIENT_TRIANGLE, 12, 4);
1693     TEST_FIELD(GRADIENT_TRIANGLE, ULONG, Vertex1, 0, 4, 4);
1694     TEST_FIELD(GRADIENT_TRIANGLE, ULONG, Vertex2, 4, 4, 4);
1695     TEST_FIELD(GRADIENT_TRIANGLE, ULONG, Vertex3, 8, 4, 4);
1696 }
1697
1698 static void test_pack_HANDLETABLE(void)
1699 {
1700     /* HANDLETABLE (pack 4) */
1701     TEST_TYPE(HANDLETABLE, 4, 4);
1702     TEST_FIELD(HANDLETABLE, HGDIOBJ[1], objectHandle, 0, 4, 4);
1703 }
1704
1705 static void test_pack_ICMENUMPROCA(void)
1706 {
1707     /* ICMENUMPROCA */
1708     TEST_TYPE(ICMENUMPROCA, 4, 4);
1709 }
1710
1711 static void test_pack_ICMENUMPROCW(void)
1712 {
1713     /* ICMENUMPROCW */
1714     TEST_TYPE(ICMENUMPROCW, 4, 4);
1715 }
1716
1717 static void test_pack_KERNINGPAIR(void)
1718 {
1719     /* KERNINGPAIR (pack 4) */
1720     TEST_TYPE(KERNINGPAIR, 8, 4);
1721     TEST_FIELD(KERNINGPAIR, WORD, wFirst, 0, 2, 2);
1722     TEST_FIELD(KERNINGPAIR, WORD, wSecond, 2, 2, 2);
1723     TEST_FIELD(KERNINGPAIR, INT, iKernAmount, 4, 4, 4);
1724 }
1725
1726 static void test_pack_LCSCSTYPE(void)
1727 {
1728     /* LCSCSTYPE */
1729     TEST_TYPE(LCSCSTYPE, 4, 4);
1730 }
1731
1732 static void test_pack_LCSGAMUTMATCH(void)
1733 {
1734     /* LCSGAMUTMATCH */
1735     TEST_TYPE(LCSGAMUTMATCH, 4, 4);
1736 }
1737
1738 static void test_pack_LINEDDAPROC(void)
1739 {
1740     /* LINEDDAPROC */
1741     TEST_TYPE(LINEDDAPROC, 4, 4);
1742 }
1743
1744 static void test_pack_LOCALESIGNATURE(void)
1745 {
1746     /* LOCALESIGNATURE (pack 4) */
1747     TEST_TYPE(LOCALESIGNATURE, 32, 4);
1748     TEST_FIELD(LOCALESIGNATURE, DWORD[4], lsUsb, 0, 16, 4);
1749     TEST_FIELD(LOCALESIGNATURE, DWORD[2], lsCsbDefault, 16, 8, 4);
1750     TEST_FIELD(LOCALESIGNATURE, DWORD[2], lsCsbSupported, 24, 8, 4);
1751 }
1752
1753 static void test_pack_LOGBRUSH(void)
1754 {
1755     /* LOGBRUSH (pack 4) */
1756     TEST_TYPE(LOGBRUSH, 12, 4);
1757     TEST_FIELD(LOGBRUSH, UINT, lbStyle, 0, 4, 4);
1758     TEST_FIELD(LOGBRUSH, COLORREF, lbColor, 4, 4, 4);
1759     TEST_FIELD(LOGBRUSH, INT, lbHatch, 8, 4, 4);
1760 }
1761
1762 static void test_pack_LOGCOLORSPACEA(void)
1763 {
1764     /* LOGCOLORSPACEA (pack 4) */
1765     TEST_TYPE(LOGCOLORSPACEA, 328, 4);
1766     TEST_FIELD(LOGCOLORSPACEA, DWORD, lcsSignature, 0, 4, 4);
1767     TEST_FIELD(LOGCOLORSPACEA, DWORD, lcsVersion, 4, 4, 4);
1768     TEST_FIELD(LOGCOLORSPACEA, DWORD, lcsSize, 8, 4, 4);
1769     TEST_FIELD(LOGCOLORSPACEA, LCSCSTYPE, lcsCSType, 12, 4, 4);
1770     TEST_FIELD(LOGCOLORSPACEA, LCSGAMUTMATCH, lcsIntent, 16, 4, 4);
1771     TEST_FIELD(LOGCOLORSPACEA, CIEXYZTRIPLE, lcsEndpoints, 20, 36, 4);
1772     TEST_FIELD(LOGCOLORSPACEA, DWORD, lcsGammaRed, 56, 4, 4);
1773     TEST_FIELD(LOGCOLORSPACEA, DWORD, lcsGammaGreen, 60, 4, 4);
1774     TEST_FIELD(LOGCOLORSPACEA, DWORD, lcsGammaBlue, 64, 4, 4);
1775     TEST_FIELD(LOGCOLORSPACEA, CHAR[MAX_PATH], lcsFilename, 68, 260, 1);
1776 }
1777
1778 static void test_pack_LOGCOLORSPACEW(void)
1779 {
1780     /* LOGCOLORSPACEW (pack 4) */
1781     TEST_TYPE(LOGCOLORSPACEW, 588, 4);
1782     TEST_FIELD(LOGCOLORSPACEW, DWORD, lcsSignature, 0, 4, 4);
1783     TEST_FIELD(LOGCOLORSPACEW, DWORD, lcsVersion, 4, 4, 4);
1784     TEST_FIELD(LOGCOLORSPACEW, DWORD, lcsSize, 8, 4, 4);
1785     TEST_FIELD(LOGCOLORSPACEW, LCSCSTYPE, lcsCSType, 12, 4, 4);
1786     TEST_FIELD(LOGCOLORSPACEW, LCSGAMUTMATCH, lcsIntent, 16, 4, 4);
1787     TEST_FIELD(LOGCOLORSPACEW, CIEXYZTRIPLE, lcsEndpoints, 20, 36, 4);
1788     TEST_FIELD(LOGCOLORSPACEW, DWORD, lcsGammaRed, 56, 4, 4);
1789     TEST_FIELD(LOGCOLORSPACEW, DWORD, lcsGammaGreen, 60, 4, 4);
1790     TEST_FIELD(LOGCOLORSPACEW, DWORD, lcsGammaBlue, 64, 4, 4);
1791     TEST_FIELD(LOGCOLORSPACEW, WCHAR[MAX_PATH], lcsFilename, 68, 520, 2);
1792 }
1793
1794 static void test_pack_LOGFONTA(void)
1795 {
1796     /* LOGFONTA (pack 4) */
1797     TEST_TYPE(LOGFONTA, 60, 4);
1798     TEST_FIELD(LOGFONTA, LONG, lfHeight, 0, 4, 4);
1799     TEST_FIELD(LOGFONTA, LONG, lfWidth, 4, 4, 4);
1800     TEST_FIELD(LOGFONTA, LONG, lfEscapement, 8, 4, 4);
1801     TEST_FIELD(LOGFONTA, LONG, lfOrientation, 12, 4, 4);
1802     TEST_FIELD(LOGFONTA, LONG, lfWeight, 16, 4, 4);
1803     TEST_FIELD(LOGFONTA, BYTE, lfItalic, 20, 1, 1);
1804     TEST_FIELD(LOGFONTA, BYTE, lfUnderline, 21, 1, 1);
1805     TEST_FIELD(LOGFONTA, BYTE, lfStrikeOut, 22, 1, 1);
1806     TEST_FIELD(LOGFONTA, BYTE, lfCharSet, 23, 1, 1);
1807     TEST_FIELD(LOGFONTA, BYTE, lfOutPrecision, 24, 1, 1);
1808     TEST_FIELD(LOGFONTA, BYTE, lfClipPrecision, 25, 1, 1);
1809     TEST_FIELD(LOGFONTA, BYTE, lfQuality, 26, 1, 1);
1810     TEST_FIELD(LOGFONTA, BYTE, lfPitchAndFamily, 27, 1, 1);
1811     TEST_FIELD(LOGFONTA, CHAR[LF_FACESIZE], lfFaceName, 28, 32, 1);
1812 }
1813
1814 static void test_pack_LOGFONTW(void)
1815 {
1816     /* LOGFONTW (pack 4) */
1817     TEST_TYPE(LOGFONTW, 92, 4);
1818     TEST_FIELD(LOGFONTW, LONG, lfHeight, 0, 4, 4);
1819     TEST_FIELD(LOGFONTW, LONG, lfWidth, 4, 4, 4);
1820     TEST_FIELD(LOGFONTW, LONG, lfEscapement, 8, 4, 4);
1821     TEST_FIELD(LOGFONTW, LONG, lfOrientation, 12, 4, 4);
1822     TEST_FIELD(LOGFONTW, LONG, lfWeight, 16, 4, 4);
1823     TEST_FIELD(LOGFONTW, BYTE, lfItalic, 20, 1, 1);
1824     TEST_FIELD(LOGFONTW, BYTE, lfUnderline, 21, 1, 1);
1825     TEST_FIELD(LOGFONTW, BYTE, lfStrikeOut, 22, 1, 1);
1826     TEST_FIELD(LOGFONTW, BYTE, lfCharSet, 23, 1, 1);
1827     TEST_FIELD(LOGFONTW, BYTE, lfOutPrecision, 24, 1, 1);
1828     TEST_FIELD(LOGFONTW, BYTE, lfClipPrecision, 25, 1, 1);
1829     TEST_FIELD(LOGFONTW, BYTE, lfQuality, 26, 1, 1);
1830     TEST_FIELD(LOGFONTW, BYTE, lfPitchAndFamily, 27, 1, 1);
1831     TEST_FIELD(LOGFONTW, WCHAR[LF_FACESIZE], lfFaceName, 28, 64, 2);
1832 }
1833
1834 static void test_pack_LOGPEN(void)
1835 {
1836     /* LOGPEN (pack 4) */
1837     TEST_TYPE(LOGPEN, 16, 4);
1838     TEST_FIELD(LOGPEN, UINT, lopnStyle, 0, 4, 4);
1839     TEST_FIELD(LOGPEN, POINT, lopnWidth, 4, 8, 4);
1840     TEST_FIELD(LOGPEN, COLORREF, lopnColor, 12, 4, 4);
1841 }
1842
1843 static void test_pack_LPABC(void)
1844 {
1845     /* LPABC */
1846     TEST_TYPE(LPABC, 4, 4);
1847     TEST_TYPE_POINTER(LPABC, 12, 4);
1848 }
1849
1850 static void test_pack_LPABCFLOAT(void)
1851 {
1852     /* LPABCFLOAT */
1853     TEST_TYPE(LPABCFLOAT, 4, 4);
1854     TEST_TYPE_POINTER(LPABCFLOAT, 12, 4);
1855 }
1856
1857 static void test_pack_LPBITMAP(void)
1858 {
1859     /* LPBITMAP */
1860     TEST_TYPE(LPBITMAP, 4, 4);
1861     TEST_TYPE_POINTER(LPBITMAP, 24, 4);
1862 }
1863
1864 static void test_pack_LPBITMAPCOREHEADER(void)
1865 {
1866     /* LPBITMAPCOREHEADER */
1867     TEST_TYPE(LPBITMAPCOREHEADER, 4, 4);
1868     TEST_TYPE_POINTER(LPBITMAPCOREHEADER, 12, 4);
1869 }
1870
1871 static void test_pack_LPBITMAPCOREINFO(void)
1872 {
1873     /* LPBITMAPCOREINFO */
1874     TEST_TYPE(LPBITMAPCOREINFO, 4, 4);
1875     TEST_TYPE_POINTER(LPBITMAPCOREINFO, 16, 4);
1876 }
1877
1878 static void test_pack_LPBITMAPFILEHEADER(void)
1879 {
1880     /* LPBITMAPFILEHEADER */
1881     TEST_TYPE(LPBITMAPFILEHEADER, 4, 4);
1882     TEST_TYPE_POINTER(LPBITMAPFILEHEADER, 14, 2);
1883 }
1884
1885 static void test_pack_LPBITMAPINFO(void)
1886 {
1887     /* LPBITMAPINFO */
1888     TEST_TYPE(LPBITMAPINFO, 4, 4);
1889     TEST_TYPE_POINTER(LPBITMAPINFO, 44, 4);
1890 }
1891
1892 static void test_pack_LPBITMAPINFOHEADER(void)
1893 {
1894     /* LPBITMAPINFOHEADER */
1895     TEST_TYPE(LPBITMAPINFOHEADER, 4, 4);
1896     TEST_TYPE_POINTER(LPBITMAPINFOHEADER, 40, 4);
1897 }
1898
1899 static void test_pack_LPBITMAPV5HEADER(void)
1900 {
1901     /* LPBITMAPV5HEADER */
1902     TEST_TYPE(LPBITMAPV5HEADER, 4, 4);
1903     TEST_TYPE_POINTER(LPBITMAPV5HEADER, 124, 4);
1904 }
1905
1906 static void test_pack_LPCHARSETINFO(void)
1907 {
1908     /* LPCHARSETINFO */
1909     TEST_TYPE(LPCHARSETINFO, 4, 4);
1910     TEST_TYPE_POINTER(LPCHARSETINFO, 32, 4);
1911 }
1912
1913 static void test_pack_LPCIEXYZ(void)
1914 {
1915     /* LPCIEXYZ */
1916     TEST_TYPE(LPCIEXYZ, 4, 4);
1917     TEST_TYPE_POINTER(LPCIEXYZ, 12, 4);
1918 }
1919
1920 static void test_pack_LPCIEXYZTRIPLE(void)
1921 {
1922     /* LPCIEXYZTRIPLE */
1923     TEST_TYPE(LPCIEXYZTRIPLE, 4, 4);
1924     TEST_TYPE_POINTER(LPCIEXYZTRIPLE, 36, 4);
1925 }
1926
1927 static void test_pack_LPCOLORADJUSTMENT(void)
1928 {
1929     /* LPCOLORADJUSTMENT */
1930     TEST_TYPE(LPCOLORADJUSTMENT, 4, 4);
1931     TEST_TYPE_POINTER(LPCOLORADJUSTMENT, 24, 2);
1932 }
1933
1934 static void test_pack_LPDEVMODEA(void)
1935 {
1936     /* LPDEVMODEA */
1937     TEST_TYPE(LPDEVMODEA, 4, 4);
1938 }
1939
1940 static void test_pack_LPDEVMODEW(void)
1941 {
1942     /* LPDEVMODEW */
1943     TEST_TYPE(LPDEVMODEW, 4, 4);
1944 }
1945
1946 static void test_pack_LPDIBSECTION(void)
1947 {
1948     /* LPDIBSECTION */
1949     TEST_TYPE(LPDIBSECTION, 4, 4);
1950     TEST_TYPE_POINTER(LPDIBSECTION, 84, 4);
1951 }
1952
1953 static void test_pack_LPDISPLAY_DEVICEA(void)
1954 {
1955     /* LPDISPLAY_DEVICEA */
1956     TEST_TYPE(LPDISPLAY_DEVICEA, 4, 4);
1957     TEST_TYPE_POINTER(LPDISPLAY_DEVICEA, 424, 4);
1958 }
1959
1960 static void test_pack_LPDISPLAY_DEVICEW(void)
1961 {
1962     /* LPDISPLAY_DEVICEW */
1963     TEST_TYPE(LPDISPLAY_DEVICEW, 4, 4);
1964     TEST_TYPE_POINTER(LPDISPLAY_DEVICEW, 840, 4);
1965 }
1966
1967 static void test_pack_LPDOCINFOA(void)
1968 {
1969     /* LPDOCINFOA */
1970     TEST_TYPE(LPDOCINFOA, 4, 4);
1971     TEST_TYPE_POINTER(LPDOCINFOA, 20, 4);
1972 }
1973
1974 static void test_pack_LPDOCINFOW(void)
1975 {
1976     /* LPDOCINFOW */
1977     TEST_TYPE(LPDOCINFOW, 4, 4);
1978     TEST_TYPE_POINTER(LPDOCINFOW, 20, 4);
1979 }
1980
1981 static void test_pack_LPENHMETAHEADER(void)
1982 {
1983     /* LPENHMETAHEADER */
1984     TEST_TYPE(LPENHMETAHEADER, 4, 4);
1985     TEST_TYPE_POINTER(LPENHMETAHEADER, 108, 4);
1986 }
1987
1988 static void test_pack_LPENHMETARECORD(void)
1989 {
1990     /* LPENHMETARECORD */
1991     TEST_TYPE(LPENHMETARECORD, 4, 4);
1992     TEST_TYPE_POINTER(LPENHMETARECORD, 12, 4);
1993 }
1994
1995 static void test_pack_LPENUMLOGFONTA(void)
1996 {
1997     /* LPENUMLOGFONTA */
1998     TEST_TYPE(LPENUMLOGFONTA, 4, 4);
1999     TEST_TYPE_POINTER(LPENUMLOGFONTA, 156, 4);
2000 }
2001
2002 static void test_pack_LPENUMLOGFONTEXA(void)
2003 {
2004     /* LPENUMLOGFONTEXA */
2005     TEST_TYPE(LPENUMLOGFONTEXA, 4, 4);
2006     TEST_TYPE_POINTER(LPENUMLOGFONTEXA, 188, 4);
2007 }
2008
2009 static void test_pack_LPENUMLOGFONTEXW(void)
2010 {
2011     /* LPENUMLOGFONTEXW */
2012     TEST_TYPE(LPENUMLOGFONTEXW, 4, 4);
2013     TEST_TYPE_POINTER(LPENUMLOGFONTEXW, 348, 4);
2014 }
2015
2016 static void test_pack_LPENUMLOGFONTW(void)
2017 {
2018     /* LPENUMLOGFONTW */
2019     TEST_TYPE(LPENUMLOGFONTW, 4, 4);
2020     TEST_TYPE_POINTER(LPENUMLOGFONTW, 284, 4);
2021 }
2022
2023 static void test_pack_LPEXTLOGFONTA(void)
2024 {
2025     /* LPEXTLOGFONTA */
2026     TEST_TYPE(LPEXTLOGFONTA, 4, 4);
2027     TEST_TYPE_POINTER(LPEXTLOGFONTA, 192, 4);
2028 }
2029
2030 static void test_pack_LPEXTLOGFONTW(void)
2031 {
2032     /* LPEXTLOGFONTW */
2033     TEST_TYPE(LPEXTLOGFONTW, 4, 4);
2034     TEST_TYPE_POINTER(LPEXTLOGFONTW, 320, 4);
2035 }
2036
2037 static void test_pack_LPEXTLOGPEN(void)
2038 {
2039     /* LPEXTLOGPEN */
2040     TEST_TYPE(LPEXTLOGPEN, 4, 4);
2041     TEST_TYPE_POINTER(LPEXTLOGPEN, 28, 4);
2042 }
2043
2044 static void test_pack_LPFONTSIGNATURE(void)
2045 {
2046     /* LPFONTSIGNATURE */
2047     TEST_TYPE(LPFONTSIGNATURE, 4, 4);
2048     TEST_TYPE_POINTER(LPFONTSIGNATURE, 24, 4);
2049 }
2050
2051 static void test_pack_LPGCP_RESULTSA(void)
2052 {
2053     /* LPGCP_RESULTSA */
2054     TEST_TYPE(LPGCP_RESULTSA, 4, 4);
2055     TEST_TYPE_POINTER(LPGCP_RESULTSA, 36, 4);
2056 }
2057
2058 static void test_pack_LPGCP_RESULTSW(void)
2059 {
2060     /* LPGCP_RESULTSW */
2061     TEST_TYPE(LPGCP_RESULTSW, 4, 4);
2062     TEST_TYPE_POINTER(LPGCP_RESULTSW, 36, 4);
2063 }
2064
2065 static void test_pack_LPGLYPHMETRICS(void)
2066 {
2067     /* LPGLYPHMETRICS */
2068     TEST_TYPE(LPGLYPHMETRICS, 4, 4);
2069     TEST_TYPE_POINTER(LPGLYPHMETRICS, 20, 4);
2070 }
2071
2072 static void test_pack_LPGRADIENT_RECT(void)
2073 {
2074     /* LPGRADIENT_RECT */
2075     TEST_TYPE(LPGRADIENT_RECT, 4, 4);
2076     TEST_TYPE_POINTER(LPGRADIENT_RECT, 8, 4);
2077 }
2078
2079 static void test_pack_LPGRADIENT_TRIANGLE(void)
2080 {
2081     /* LPGRADIENT_TRIANGLE */
2082     TEST_TYPE(LPGRADIENT_TRIANGLE, 4, 4);
2083     TEST_TYPE_POINTER(LPGRADIENT_TRIANGLE, 12, 4);
2084 }
2085
2086 static void test_pack_LPHANDLETABLE(void)
2087 {
2088     /* LPHANDLETABLE */
2089     TEST_TYPE(LPHANDLETABLE, 4, 4);
2090     TEST_TYPE_POINTER(LPHANDLETABLE, 4, 4);
2091 }
2092
2093 static void test_pack_LPKERNINGPAIR(void)
2094 {
2095     /* LPKERNINGPAIR */
2096     TEST_TYPE(LPKERNINGPAIR, 4, 4);
2097     TEST_TYPE_POINTER(LPKERNINGPAIR, 8, 4);
2098 }
2099
2100 static void test_pack_LPLOCALESIGNATURE(void)
2101 {
2102     /* LPLOCALESIGNATURE */
2103     TEST_TYPE(LPLOCALESIGNATURE, 4, 4);
2104     TEST_TYPE_POINTER(LPLOCALESIGNATURE, 32, 4);
2105 }
2106
2107 static void test_pack_LPLOGBRUSH(void)
2108 {
2109     /* LPLOGBRUSH */
2110     TEST_TYPE(LPLOGBRUSH, 4, 4);
2111     TEST_TYPE_POINTER(LPLOGBRUSH, 12, 4);
2112 }
2113
2114 static void test_pack_LPLOGCOLORSPACEA(void)
2115 {
2116     /* LPLOGCOLORSPACEA */
2117     TEST_TYPE(LPLOGCOLORSPACEA, 4, 4);
2118     TEST_TYPE_POINTER(LPLOGCOLORSPACEA, 328, 4);
2119 }
2120
2121 static void test_pack_LPLOGCOLORSPACEW(void)
2122 {
2123     /* LPLOGCOLORSPACEW */
2124     TEST_TYPE(LPLOGCOLORSPACEW, 4, 4);
2125     TEST_TYPE_POINTER(LPLOGCOLORSPACEW, 588, 4);
2126 }
2127
2128 static void test_pack_LPLOGFONTA(void)
2129 {
2130     /* LPLOGFONTA */
2131     TEST_TYPE(LPLOGFONTA, 4, 4);
2132     TEST_TYPE_POINTER(LPLOGFONTA, 60, 4);
2133 }
2134
2135 static void test_pack_LPLOGFONTW(void)
2136 {
2137     /* LPLOGFONTW */
2138     TEST_TYPE(LPLOGFONTW, 4, 4);
2139     TEST_TYPE_POINTER(LPLOGFONTW, 92, 4);
2140 }
2141
2142 static void test_pack_LPLOGPEN(void)
2143 {
2144     /* LPLOGPEN */
2145     TEST_TYPE(LPLOGPEN, 4, 4);
2146     TEST_TYPE_POINTER(LPLOGPEN, 16, 4);
2147 }
2148
2149 static void test_pack_LPMAT2(void)
2150 {
2151     /* LPMAT2 */
2152     TEST_TYPE(LPMAT2, 4, 4);
2153     TEST_TYPE_POINTER(LPMAT2, 16, 2);
2154 }
2155
2156 static void test_pack_LPMETAFILEPICT(void)
2157 {
2158     /* LPMETAFILEPICT */
2159     TEST_TYPE(LPMETAFILEPICT, 4, 4);
2160     TEST_TYPE_POINTER(LPMETAFILEPICT, 16, 4);
2161 }
2162
2163 static void test_pack_LPMETAHEADER(void)
2164 {
2165     /* LPMETAHEADER */
2166     TEST_TYPE(LPMETAHEADER, 4, 4);
2167     TEST_TYPE_POINTER(LPMETAHEADER, 18, 2);
2168 }
2169
2170 static void test_pack_LPMETARECORD(void)
2171 {
2172     /* LPMETARECORD */
2173     TEST_TYPE(LPMETARECORD, 4, 4);
2174     TEST_TYPE_POINTER(LPMETARECORD, 8, 4);
2175 }
2176
2177 static void test_pack_LPNEWTEXTMETRICA(void)
2178 {
2179     /* LPNEWTEXTMETRICA */
2180     TEST_TYPE(LPNEWTEXTMETRICA, 4, 4);
2181     TEST_TYPE_POINTER(LPNEWTEXTMETRICA, 72, 4);
2182 }
2183
2184 static void test_pack_LPNEWTEXTMETRICW(void)
2185 {
2186     /* LPNEWTEXTMETRICW */
2187     TEST_TYPE(LPNEWTEXTMETRICW, 4, 4);
2188     TEST_TYPE_POINTER(LPNEWTEXTMETRICW, 76, 4);
2189 }
2190
2191 static void test_pack_LPOUTLINETEXTMETRICA(void)
2192 {
2193     /* LPOUTLINETEXTMETRICA */
2194     TEST_TYPE(LPOUTLINETEXTMETRICA, 4, 4);
2195     TEST_TYPE_POINTER(LPOUTLINETEXTMETRICA, 212, 4);
2196 }
2197
2198 static void test_pack_LPOUTLINETEXTMETRICW(void)
2199 {
2200     /* LPOUTLINETEXTMETRICW */
2201     TEST_TYPE(LPOUTLINETEXTMETRICW, 4, 4);
2202     TEST_TYPE_POINTER(LPOUTLINETEXTMETRICW, 216, 4);
2203 }
2204
2205 static void test_pack_LPPANOSE(void)
2206 {
2207     /* LPPANOSE */
2208     TEST_TYPE(LPPANOSE, 4, 4);
2209     TEST_TYPE_POINTER(LPPANOSE, 10, 1);
2210 }
2211
2212 static void test_pack_LPPELARRAY(void)
2213 {
2214     /* LPPELARRAY */
2215     TEST_TYPE(LPPELARRAY, 4, 4);
2216     TEST_TYPE_POINTER(LPPELARRAY, 20, 4);
2217 }
2218
2219 static void test_pack_LPPIXELFORMATDESCRIPTOR(void)
2220 {
2221     /* LPPIXELFORMATDESCRIPTOR */
2222     TEST_TYPE(LPPIXELFORMATDESCRIPTOR, 4, 4);
2223     TEST_TYPE_POINTER(LPPIXELFORMATDESCRIPTOR, 40, 4);
2224 }
2225
2226 static void test_pack_LPPOINTFX(void)
2227 {
2228     /* LPPOINTFX */
2229     TEST_TYPE(LPPOINTFX, 4, 4);
2230     TEST_TYPE_POINTER(LPPOINTFX, 8, 2);
2231 }
2232
2233 static void test_pack_LPPOLYTEXTA(void)
2234 {
2235     /* LPPOLYTEXTA */
2236     TEST_TYPE(LPPOLYTEXTA, 4, 4);
2237     TEST_TYPE_POINTER(LPPOLYTEXTA, 40, 4);
2238 }
2239
2240 static void test_pack_LPPOLYTEXTW(void)
2241 {
2242     /* LPPOLYTEXTW */
2243     TEST_TYPE(LPPOLYTEXTW, 4, 4);
2244     TEST_TYPE_POINTER(LPPOLYTEXTW, 40, 4);
2245 }
2246
2247 static void test_pack_LPRASTERIZER_STATUS(void)
2248 {
2249     /* LPRASTERIZER_STATUS */
2250     TEST_TYPE(LPRASTERIZER_STATUS, 4, 4);
2251     TEST_TYPE_POINTER(LPRASTERIZER_STATUS, 6, 2);
2252 }
2253
2254 static void test_pack_LPRGBQUAD(void)
2255 {
2256     /* LPRGBQUAD */
2257     TEST_TYPE(LPRGBQUAD, 4, 4);
2258     TEST_TYPE_POINTER(LPRGBQUAD, 4, 1);
2259 }
2260
2261 static void test_pack_LPRGNDATA(void)
2262 {
2263     /* LPRGNDATA */
2264     TEST_TYPE(LPRGNDATA, 4, 4);
2265     TEST_TYPE_POINTER(LPRGNDATA, 36, 4);
2266 }
2267
2268 static void test_pack_LPTEXTMETRICA(void)
2269 {
2270     /* LPTEXTMETRICA */
2271     TEST_TYPE(LPTEXTMETRICA, 4, 4);
2272     TEST_TYPE_POINTER(LPTEXTMETRICA, 56, 4);
2273 }
2274
2275 static void test_pack_LPTEXTMETRICW(void)
2276 {
2277     /* LPTEXTMETRICW */
2278     TEST_TYPE(LPTEXTMETRICW, 4, 4);
2279     TEST_TYPE_POINTER(LPTEXTMETRICW, 60, 4);
2280 }
2281
2282 static void test_pack_LPTRIVERTEX(void)
2283 {
2284     /* LPTRIVERTEX */
2285     TEST_TYPE(LPTRIVERTEX, 4, 4);
2286     TEST_TYPE_POINTER(LPTRIVERTEX, 16, 4);
2287 }
2288
2289 static void test_pack_LPTTPOLYCURVE(void)
2290 {
2291     /* LPTTPOLYCURVE */
2292     TEST_TYPE(LPTTPOLYCURVE, 4, 4);
2293     TEST_TYPE_POINTER(LPTTPOLYCURVE, 12, 2);
2294 }
2295
2296 static void test_pack_LPTTPOLYGONHEADER(void)
2297 {
2298     /* LPTTPOLYGONHEADER */
2299     TEST_TYPE(LPTTPOLYGONHEADER, 4, 4);
2300     TEST_TYPE_POINTER(LPTTPOLYGONHEADER, 16, 4);
2301 }
2302
2303 static void test_pack_LPXFORM(void)
2304 {
2305     /* LPXFORM */
2306     TEST_TYPE(LPXFORM, 4, 4);
2307     TEST_TYPE_POINTER(LPXFORM, 24, 4);
2308 }
2309
2310 static void test_pack_MAT2(void)
2311 {
2312     /* MAT2 (pack 4) */
2313     TEST_TYPE(MAT2, 16, 2);
2314     TEST_FIELD(MAT2, FIXED, eM11, 0, 4, 2);
2315     TEST_FIELD(MAT2, FIXED, eM12, 4, 4, 2);
2316     TEST_FIELD(MAT2, FIXED, eM21, 8, 4, 2);
2317     TEST_FIELD(MAT2, FIXED, eM22, 12, 4, 2);
2318 }
2319
2320 static void test_pack_METAFILEPICT(void)
2321 {
2322     /* METAFILEPICT (pack 4) */
2323     TEST_TYPE(METAFILEPICT, 16, 4);
2324     TEST_FIELD(METAFILEPICT, LONG, mm, 0, 4, 4);
2325     TEST_FIELD(METAFILEPICT, LONG, xExt, 4, 4, 4);
2326     TEST_FIELD(METAFILEPICT, LONG, yExt, 8, 4, 4);
2327     TEST_FIELD(METAFILEPICT, HMETAFILE, hMF, 12, 4, 4);
2328 }
2329
2330 static void test_pack_METAHEADER(void)
2331 {
2332     /* METAHEADER (pack 2) */
2333     TEST_TYPE(METAHEADER, 18, 2);
2334     TEST_FIELD(METAHEADER, WORD, mtType, 0, 2, 2);
2335     TEST_FIELD(METAHEADER, WORD, mtHeaderSize, 2, 2, 2);
2336     TEST_FIELD(METAHEADER, WORD, mtVersion, 4, 2, 2);
2337     TEST_FIELD(METAHEADER, DWORD, mtSize, 6, 4, 2);
2338     TEST_FIELD(METAHEADER, WORD, mtNoObjects, 10, 2, 2);
2339     TEST_FIELD(METAHEADER, DWORD, mtMaxRecord, 12, 4, 2);
2340     TEST_FIELD(METAHEADER, WORD, mtNoParameters, 16, 2, 2);
2341 }
2342
2343 static void test_pack_METARECORD(void)
2344 {
2345     /* METARECORD (pack 4) */
2346     TEST_TYPE(METARECORD, 8, 4);
2347     TEST_FIELD(METARECORD, DWORD, rdSize, 0, 4, 4);
2348     TEST_FIELD(METARECORD, WORD, rdFunction, 4, 2, 2);
2349     TEST_FIELD(METARECORD, WORD[1], rdParm, 6, 2, 2);
2350 }
2351
2352 static void test_pack_MFENUMPROC(void)
2353 {
2354     /* MFENUMPROC */
2355     TEST_TYPE(MFENUMPROC, 4, 4);
2356 }
2357
2358 static void test_pack_NEWTEXTMETRICA(void)
2359 {
2360     /* NEWTEXTMETRICA (pack 4) */
2361     TEST_TYPE(NEWTEXTMETRICA, 72, 4);
2362     TEST_FIELD(NEWTEXTMETRICA, LONG, tmHeight, 0, 4, 4);
2363     TEST_FIELD(NEWTEXTMETRICA, LONG, tmAscent, 4, 4, 4);
2364     TEST_FIELD(NEWTEXTMETRICA, LONG, tmDescent, 8, 4, 4);
2365     TEST_FIELD(NEWTEXTMETRICA, LONG, tmInternalLeading, 12, 4, 4);
2366     TEST_FIELD(NEWTEXTMETRICA, LONG, tmExternalLeading, 16, 4, 4);
2367     TEST_FIELD(NEWTEXTMETRICA, LONG, tmAveCharWidth, 20, 4, 4);
2368     TEST_FIELD(NEWTEXTMETRICA, LONG, tmMaxCharWidth, 24, 4, 4);
2369     TEST_FIELD(NEWTEXTMETRICA, LONG, tmWeight, 28, 4, 4);
2370     TEST_FIELD(NEWTEXTMETRICA, LONG, tmOverhang, 32, 4, 4);
2371     TEST_FIELD(NEWTEXTMETRICA, LONG, tmDigitizedAspectX, 36, 4, 4);
2372     TEST_FIELD(NEWTEXTMETRICA, LONG, tmDigitizedAspectY, 40, 4, 4);
2373     TEST_FIELD(NEWTEXTMETRICA, BYTE, tmFirstChar, 44, 1, 1);
2374     TEST_FIELD(NEWTEXTMETRICA, BYTE, tmLastChar, 45, 1, 1);
2375     TEST_FIELD(NEWTEXTMETRICA, BYTE, tmDefaultChar, 46, 1, 1);
2376     TEST_FIELD(NEWTEXTMETRICA, BYTE, tmBreakChar, 47, 1, 1);
2377     TEST_FIELD(NEWTEXTMETRICA, BYTE, tmItalic, 48, 1, 1);
2378     TEST_FIELD(NEWTEXTMETRICA, BYTE, tmUnderlined, 49, 1, 1);
2379     TEST_FIELD(NEWTEXTMETRICA, BYTE, tmStruckOut, 50, 1, 1);
2380     TEST_FIELD(NEWTEXTMETRICA, BYTE, tmPitchAndFamily, 51, 1, 1);
2381     TEST_FIELD(NEWTEXTMETRICA, BYTE, tmCharSet, 52, 1, 1);
2382     TEST_FIELD(NEWTEXTMETRICA, DWORD, ntmFlags, 56, 4, 4);
2383     TEST_FIELD(NEWTEXTMETRICA, UINT, ntmSizeEM, 60, 4, 4);
2384     TEST_FIELD(NEWTEXTMETRICA, UINT, ntmCellHeight, 64, 4, 4);
2385     TEST_FIELD(NEWTEXTMETRICA, UINT, ntmAvgWidth, 68, 4, 4);
2386 }
2387
2388 static void test_pack_NEWTEXTMETRICEXA(void)
2389 {
2390     /* NEWTEXTMETRICEXA (pack 4) */
2391     TEST_TYPE(NEWTEXTMETRICEXA, 96, 4);
2392     TEST_FIELD(NEWTEXTMETRICEXA, NEWTEXTMETRICA, ntmTm, 0, 72, 4);
2393     TEST_FIELD(NEWTEXTMETRICEXA, FONTSIGNATURE, ntmFontSig, 72, 24, 4);
2394 }
2395
2396 static void test_pack_NEWTEXTMETRICEXW(void)
2397 {
2398     /* NEWTEXTMETRICEXW (pack 4) */
2399     TEST_TYPE(NEWTEXTMETRICEXW, 100, 4);
2400     TEST_FIELD(NEWTEXTMETRICEXW, NEWTEXTMETRICW, ntmTm, 0, 76, 4);
2401     TEST_FIELD(NEWTEXTMETRICEXW, FONTSIGNATURE, ntmFontSig, 76, 24, 4);
2402 }
2403
2404 static void test_pack_NEWTEXTMETRICW(void)
2405 {
2406     /* NEWTEXTMETRICW (pack 4) */
2407     TEST_TYPE(NEWTEXTMETRICW, 76, 4);
2408     TEST_FIELD(NEWTEXTMETRICW, LONG, tmHeight, 0, 4, 4);
2409     TEST_FIELD(NEWTEXTMETRICW, LONG, tmAscent, 4, 4, 4);
2410     TEST_FIELD(NEWTEXTMETRICW, LONG, tmDescent, 8, 4, 4);
2411     TEST_FIELD(NEWTEXTMETRICW, LONG, tmInternalLeading, 12, 4, 4);
2412     TEST_FIELD(NEWTEXTMETRICW, LONG, tmExternalLeading, 16, 4, 4);
2413     TEST_FIELD(NEWTEXTMETRICW, LONG, tmAveCharWidth, 20, 4, 4);
2414     TEST_FIELD(NEWTEXTMETRICW, LONG, tmMaxCharWidth, 24, 4, 4);
2415     TEST_FIELD(NEWTEXTMETRICW, LONG, tmWeight, 28, 4, 4);
2416     TEST_FIELD(NEWTEXTMETRICW, LONG, tmOverhang, 32, 4, 4);
2417     TEST_FIELD(NEWTEXTMETRICW, LONG, tmDigitizedAspectX, 36, 4, 4);
2418     TEST_FIELD(NEWTEXTMETRICW, LONG, tmDigitizedAspectY, 40, 4, 4);
2419     TEST_FIELD(NEWTEXTMETRICW, WCHAR, tmFirstChar, 44, 2, 2);
2420     TEST_FIELD(NEWTEXTMETRICW, WCHAR, tmLastChar, 46, 2, 2);
2421     TEST_FIELD(NEWTEXTMETRICW, WCHAR, tmDefaultChar, 48, 2, 2);
2422     TEST_FIELD(NEWTEXTMETRICW, WCHAR, tmBreakChar, 50, 2, 2);
2423     TEST_FIELD(NEWTEXTMETRICW, BYTE, tmItalic, 52, 1, 1);
2424     TEST_FIELD(NEWTEXTMETRICW, BYTE, tmUnderlined, 53, 1, 1);
2425     TEST_FIELD(NEWTEXTMETRICW, BYTE, tmStruckOut, 54, 1, 1);
2426     TEST_FIELD(NEWTEXTMETRICW, BYTE, tmPitchAndFamily, 55, 1, 1);
2427     TEST_FIELD(NEWTEXTMETRICW, BYTE, tmCharSet, 56, 1, 1);
2428     TEST_FIELD(NEWTEXTMETRICW, DWORD, ntmFlags, 60, 4, 4);
2429     TEST_FIELD(NEWTEXTMETRICW, UINT, ntmSizeEM, 64, 4, 4);
2430     TEST_FIELD(NEWTEXTMETRICW, UINT, ntmCellHeight, 68, 4, 4);
2431     TEST_FIELD(NEWTEXTMETRICW, UINT, ntmAvgWidth, 72, 4, 4);
2432 }
2433
2434 static void test_pack_NPEXTLOGPEN(void)
2435 {
2436     /* NPEXTLOGPEN */
2437     TEST_TYPE(NPEXTLOGPEN, 4, 4);
2438     TEST_TYPE_POINTER(NPEXTLOGPEN, 28, 4);
2439 }
2440
2441 static void test_pack_OLDFONTENUMPROC(void)
2442 {
2443     /* OLDFONTENUMPROC */
2444     TEST_TYPE(OLDFONTENUMPROC, 4, 4);
2445 }
2446
2447 static void test_pack_OLDFONTENUMPROCA(void)
2448 {
2449     /* OLDFONTENUMPROCA */
2450     TEST_TYPE(OLDFONTENUMPROCA, 4, 4);
2451 }
2452
2453 static void test_pack_OLDFONTENUMPROCW(void)
2454 {
2455     /* OLDFONTENUMPROCW */
2456     TEST_TYPE(OLDFONTENUMPROCW, 4, 4);
2457 }
2458
2459 static void test_pack_OUTLINETEXTMETRICA(void)
2460 {
2461     /* OUTLINETEXTMETRICA (pack 4) */
2462     TEST_TYPE(OUTLINETEXTMETRICA, 212, 4);
2463     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmSize, 0, 4, 4);
2464     TEST_FIELD(OUTLINETEXTMETRICA, TEXTMETRICA, otmTextMetrics, 4, 56, 4);
2465     TEST_FIELD(OUTLINETEXTMETRICA, BYTE, otmFiller, 60, 1, 1);
2466     TEST_FIELD(OUTLINETEXTMETRICA, PANOSE, otmPanoseNumber, 61, 10, 1);
2467     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmfsSelection, 72, 4, 4);
2468     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmfsType, 76, 4, 4);
2469     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmsCharSlopeRise, 80, 4, 4);
2470     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmsCharSlopeRun, 84, 4, 4);
2471     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmItalicAngle, 88, 4, 4);
2472     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmEMSquare, 92, 4, 4);
2473     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmAscent, 96, 4, 4);
2474     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmDescent, 100, 4, 4);
2475     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmLineGap, 104, 4, 4);
2476     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmsCapEmHeight, 108, 4, 4);
2477     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmsXHeight, 112, 4, 4);
2478     TEST_FIELD(OUTLINETEXTMETRICA, RECT, otmrcFontBox, 116, 16, 4);
2479     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmMacAscent, 132, 4, 4);
2480     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmMacDescent, 136, 4, 4);
2481     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmMacLineGap, 140, 4, 4);
2482     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmusMinimumPPEM, 144, 4, 4);
2483     TEST_FIELD(OUTLINETEXTMETRICA, POINT, otmptSubscriptSize, 148, 8, 4);
2484     TEST_FIELD(OUTLINETEXTMETRICA, POINT, otmptSubscriptOffset, 156, 8, 4);
2485     TEST_FIELD(OUTLINETEXTMETRICA, POINT, otmptSuperscriptSize, 164, 8, 4);
2486     TEST_FIELD(OUTLINETEXTMETRICA, POINT, otmptSuperscriptOffset, 172, 8, 4);
2487     TEST_FIELD(OUTLINETEXTMETRICA, UINT, otmsStrikeoutSize, 180, 4, 4);
2488     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmsStrikeoutPosition, 184, 4, 4);
2489     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmsUnderscoreSize, 188, 4, 4);
2490     TEST_FIELD(OUTLINETEXTMETRICA, INT, otmsUnderscorePosition, 192, 4, 4);
2491     TEST_FIELD(OUTLINETEXTMETRICA, LPSTR, otmpFamilyName, 196, 4, 4);
2492     TEST_FIELD(OUTLINETEXTMETRICA, LPSTR, otmpFaceName, 200, 4, 4);
2493     TEST_FIELD(OUTLINETEXTMETRICA, LPSTR, otmpStyleName, 204, 4, 4);
2494     TEST_FIELD(OUTLINETEXTMETRICA, LPSTR, otmpFullName, 208, 4, 4);
2495 }
2496
2497 static void test_pack_OUTLINETEXTMETRICW(void)
2498 {
2499     /* OUTLINETEXTMETRICW (pack 4) */
2500     TEST_TYPE(OUTLINETEXTMETRICW, 216, 4);
2501     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmSize, 0, 4, 4);
2502     TEST_FIELD(OUTLINETEXTMETRICW, TEXTMETRICW, otmTextMetrics, 4, 60, 4);
2503     TEST_FIELD(OUTLINETEXTMETRICW, BYTE, otmFiller, 64, 1, 1);
2504     TEST_FIELD(OUTLINETEXTMETRICW, PANOSE, otmPanoseNumber, 65, 10, 1);
2505     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmfsSelection, 76, 4, 4);
2506     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmfsType, 80, 4, 4);
2507     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmsCharSlopeRise, 84, 4, 4);
2508     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmsCharSlopeRun, 88, 4, 4);
2509     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmItalicAngle, 92, 4, 4);
2510     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmEMSquare, 96, 4, 4);
2511     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmAscent, 100, 4, 4);
2512     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmDescent, 104, 4, 4);
2513     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmLineGap, 108, 4, 4);
2514     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmsCapEmHeight, 112, 4, 4);
2515     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmsXHeight, 116, 4, 4);
2516     TEST_FIELD(OUTLINETEXTMETRICW, RECT, otmrcFontBox, 120, 16, 4);
2517     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmMacAscent, 136, 4, 4);
2518     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmMacDescent, 140, 4, 4);
2519     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmMacLineGap, 144, 4, 4);
2520     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmusMinimumPPEM, 148, 4, 4);
2521     TEST_FIELD(OUTLINETEXTMETRICW, POINT, otmptSubscriptSize, 152, 8, 4);
2522     TEST_FIELD(OUTLINETEXTMETRICW, POINT, otmptSubscriptOffset, 160, 8, 4);
2523     TEST_FIELD(OUTLINETEXTMETRICW, POINT, otmptSuperscriptSize, 168, 8, 4);
2524     TEST_FIELD(OUTLINETEXTMETRICW, POINT, otmptSuperscriptOffset, 176, 8, 4);
2525     TEST_FIELD(OUTLINETEXTMETRICW, UINT, otmsStrikeoutSize, 184, 4, 4);
2526     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmsStrikeoutPosition, 188, 4, 4);
2527     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmsUnderscoreSize, 192, 4, 4);
2528     TEST_FIELD(OUTLINETEXTMETRICW, INT, otmsUnderscorePosition, 196, 4, 4);
2529     TEST_FIELD(OUTLINETEXTMETRICW, LPSTR, otmpFamilyName, 200, 4, 4);
2530     TEST_FIELD(OUTLINETEXTMETRICW, LPSTR, otmpFaceName, 204, 4, 4);
2531     TEST_FIELD(OUTLINETEXTMETRICW, LPSTR, otmpStyleName, 208, 4, 4);
2532     TEST_FIELD(OUTLINETEXTMETRICW, LPSTR, otmpFullName, 212, 4, 4);
2533 }
2534
2535 static void test_pack_PABC(void)
2536 {
2537     /* PABC */
2538     TEST_TYPE(PABC, 4, 4);
2539     TEST_TYPE_POINTER(PABC, 12, 4);
2540 }
2541
2542 static void test_pack_PABCFLOAT(void)
2543 {
2544     /* PABCFLOAT */
2545     TEST_TYPE(PABCFLOAT, 4, 4);
2546     TEST_TYPE_POINTER(PABCFLOAT, 12, 4);
2547 }
2548
2549 static void test_pack_PANOSE(void)
2550 {
2551     /* PANOSE (pack 4) */
2552     TEST_TYPE(PANOSE, 10, 1);
2553     TEST_FIELD(PANOSE, BYTE, bFamilyType, 0, 1, 1);
2554     TEST_FIELD(PANOSE, BYTE, bSerifStyle, 1, 1, 1);
2555     TEST_FIELD(PANOSE, BYTE, bWeight, 2, 1, 1);
2556     TEST_FIELD(PANOSE, BYTE, bProportion, 3, 1, 1);
2557     TEST_FIELD(PANOSE, BYTE, bContrast, 4, 1, 1);
2558     TEST_FIELD(PANOSE, BYTE, bStrokeVariation, 5, 1, 1);
2559     TEST_FIELD(PANOSE, BYTE, bArmStyle, 6, 1, 1);
2560     TEST_FIELD(PANOSE, BYTE, bLetterform, 7, 1, 1);
2561     TEST_FIELD(PANOSE, BYTE, bMidline, 8, 1, 1);
2562     TEST_FIELD(PANOSE, BYTE, bXHeight, 9, 1, 1);
2563 }
2564
2565 static void test_pack_PATTERN(void)
2566 {
2567     /* PATTERN */
2568     TEST_TYPE(PATTERN, 12, 4);
2569 }
2570
2571 static void test_pack_PBITMAP(void)
2572 {
2573     /* PBITMAP */
2574     TEST_TYPE(PBITMAP, 4, 4);
2575     TEST_TYPE_POINTER(PBITMAP, 24, 4);
2576 }
2577
2578 static void test_pack_PBITMAPCOREHEADER(void)
2579 {
2580     /* PBITMAPCOREHEADER */
2581     TEST_TYPE(PBITMAPCOREHEADER, 4, 4);
2582     TEST_TYPE_POINTER(PBITMAPCOREHEADER, 12, 4);
2583 }
2584
2585 static void test_pack_PBITMAPCOREINFO(void)
2586 {
2587     /* PBITMAPCOREINFO */
2588     TEST_TYPE(PBITMAPCOREINFO, 4, 4);
2589     TEST_TYPE_POINTER(PBITMAPCOREINFO, 16, 4);
2590 }
2591
2592 static void test_pack_PBITMAPFILEHEADER(void)
2593 {
2594     /* PBITMAPFILEHEADER */
2595     TEST_TYPE(PBITMAPFILEHEADER, 4, 4);
2596     TEST_TYPE_POINTER(PBITMAPFILEHEADER, 14, 2);
2597 }
2598
2599 static void test_pack_PBITMAPINFO(void)
2600 {
2601     /* PBITMAPINFO */
2602     TEST_TYPE(PBITMAPINFO, 4, 4);
2603     TEST_TYPE_POINTER(PBITMAPINFO, 44, 4);
2604 }
2605
2606 static void test_pack_PBITMAPINFOHEADER(void)
2607 {
2608     /* PBITMAPINFOHEADER */
2609     TEST_TYPE(PBITMAPINFOHEADER, 4, 4);
2610     TEST_TYPE_POINTER(PBITMAPINFOHEADER, 40, 4);
2611 }
2612
2613 static void test_pack_PBITMAPV4HEADER(void)
2614 {
2615     /* PBITMAPV4HEADER */
2616     TEST_TYPE(PBITMAPV4HEADER, 4, 4);
2617     TEST_TYPE_POINTER(PBITMAPV4HEADER, 108, 4);
2618 }
2619
2620 static void test_pack_PBITMAPV5HEADER(void)
2621 {
2622     /* PBITMAPV5HEADER */
2623     TEST_TYPE(PBITMAPV5HEADER, 4, 4);
2624     TEST_TYPE_POINTER(PBITMAPV5HEADER, 124, 4);
2625 }
2626
2627 static void test_pack_PBLENDFUNCTION(void)
2628 {
2629     /* PBLENDFUNCTION */
2630     TEST_TYPE(PBLENDFUNCTION, 4, 4);
2631     TEST_TYPE_POINTER(PBLENDFUNCTION, 4, 1);
2632 }
2633
2634 static void test_pack_PCHARSETINFO(void)
2635 {
2636     /* PCHARSETINFO */
2637     TEST_TYPE(PCHARSETINFO, 4, 4);
2638     TEST_TYPE_POINTER(PCHARSETINFO, 32, 4);
2639 }
2640
2641 static void test_pack_PCOLORADJUSTMENT(void)
2642 {
2643     /* PCOLORADJUSTMENT */
2644     TEST_TYPE(PCOLORADJUSTMENT, 4, 4);
2645     TEST_TYPE_POINTER(PCOLORADJUSTMENT, 24, 2);
2646 }
2647
2648 static void test_pack_PDEVMODEA(void)
2649 {
2650     /* PDEVMODEA */
2651     TEST_TYPE(PDEVMODEA, 4, 4);
2652 }
2653
2654 static void test_pack_PDEVMODEW(void)
2655 {
2656     /* PDEVMODEW */
2657     TEST_TYPE(PDEVMODEW, 4, 4);
2658 }
2659
2660 static void test_pack_PDIBSECTION(void)
2661 {
2662     /* PDIBSECTION */
2663     TEST_TYPE(PDIBSECTION, 4, 4);
2664     TEST_TYPE_POINTER(PDIBSECTION, 84, 4);
2665 }
2666
2667 static void test_pack_PDISPLAY_DEVICEA(void)
2668 {
2669     /* PDISPLAY_DEVICEA */
2670     TEST_TYPE(PDISPLAY_DEVICEA, 4, 4);
2671     TEST_TYPE_POINTER(PDISPLAY_DEVICEA, 424, 4);
2672 }
2673
2674 static void test_pack_PDISPLAY_DEVICEW(void)
2675 {
2676     /* PDISPLAY_DEVICEW */
2677     TEST_TYPE(PDISPLAY_DEVICEW, 4, 4);
2678     TEST_TYPE_POINTER(PDISPLAY_DEVICEW, 840, 4);
2679 }
2680
2681 static void test_pack_PELARRAY(void)
2682 {
2683     /* PELARRAY (pack 4) */
2684     TEST_TYPE(PELARRAY, 20, 4);
2685     TEST_FIELD(PELARRAY, LONG, paXCount, 0, 4, 4);
2686     TEST_FIELD(PELARRAY, LONG, paYCount, 4, 4, 4);
2687     TEST_FIELD(PELARRAY, LONG, paXExt, 8, 4, 4);
2688     TEST_FIELD(PELARRAY, LONG, paYExt, 12, 4, 4);
2689     TEST_FIELD(PELARRAY, BYTE, paRGBs, 16, 1, 1);
2690 }
2691
2692 static void test_pack_PEMR(void)
2693 {
2694     /* PEMR */
2695     TEST_TYPE(PEMR, 4, 4);
2696     TEST_TYPE_POINTER(PEMR, 8, 4);
2697 }
2698
2699 static void test_pack_PEMRABORTPATH(void)
2700 {
2701     /* PEMRABORTPATH */
2702     TEST_TYPE(PEMRABORTPATH, 4, 4);
2703     TEST_TYPE_POINTER(PEMRABORTPATH, 8, 4);
2704 }
2705
2706 static void test_pack_PEMRANGLEARC(void)
2707 {
2708     /* PEMRANGLEARC */
2709     TEST_TYPE(PEMRANGLEARC, 4, 4);
2710     TEST_TYPE_POINTER(PEMRANGLEARC, 28, 4);
2711 }
2712
2713 static void test_pack_PEMRARC(void)
2714 {
2715     /* PEMRARC */
2716     TEST_TYPE(PEMRARC, 4, 4);
2717     TEST_TYPE_POINTER(PEMRARC, 40, 4);
2718 }
2719
2720 static void test_pack_PEMRARCTO(void)
2721 {
2722     /* PEMRARCTO */
2723     TEST_TYPE(PEMRARCTO, 4, 4);
2724     TEST_TYPE_POINTER(PEMRARCTO, 40, 4);
2725 }
2726
2727 static void test_pack_PEMRBEGINPATH(void)
2728 {
2729     /* PEMRBEGINPATH */
2730     TEST_TYPE(PEMRBEGINPATH, 4, 4);
2731     TEST_TYPE_POINTER(PEMRBEGINPATH, 8, 4);
2732 }
2733
2734 static void test_pack_PEMRBITBLT(void)
2735 {
2736     /* PEMRBITBLT */
2737     TEST_TYPE(PEMRBITBLT, 4, 4);
2738     TEST_TYPE_POINTER(PEMRBITBLT, 100, 4);
2739 }
2740
2741 static void test_pack_PEMRCHORD(void)
2742 {
2743     /* PEMRCHORD */
2744     TEST_TYPE(PEMRCHORD, 4, 4);
2745     TEST_TYPE_POINTER(PEMRCHORD, 40, 4);
2746 }
2747
2748 static void test_pack_PEMRCLOSEFIGURE(void)
2749 {
2750     /* PEMRCLOSEFIGURE */
2751     TEST_TYPE(PEMRCLOSEFIGURE, 4, 4);
2752     TEST_TYPE_POINTER(PEMRCLOSEFIGURE, 8, 4);
2753 }
2754
2755 static void test_pack_PEMRCREATEBRUSHINDIRECT(void)
2756 {
2757     /* PEMRCREATEBRUSHINDIRECT */
2758     TEST_TYPE(PEMRCREATEBRUSHINDIRECT, 4, 4);
2759     TEST_TYPE_POINTER(PEMRCREATEBRUSHINDIRECT, 24, 4);
2760 }
2761
2762 static void test_pack_PEMRCREATECOLORSPACE(void)
2763 {
2764     /* PEMRCREATECOLORSPACE */
2765     TEST_TYPE(PEMRCREATECOLORSPACE, 4, 4);
2766     TEST_TYPE_POINTER(PEMRCREATECOLORSPACE, 340, 4);
2767 }
2768
2769 static void test_pack_PEMRCREATECOLORSPACEW(void)
2770 {
2771     /* PEMRCREATECOLORSPACEW */
2772     TEST_TYPE(PEMRCREATECOLORSPACEW, 4, 4);
2773     TEST_TYPE_POINTER(PEMRCREATECOLORSPACEW, 612, 4);
2774 }
2775
2776 static void test_pack_PEMRCREATEDIBPATTERNBRUSHPT(void)
2777 {
2778     /* PEMRCREATEDIBPATTERNBRUSHPT */
2779     TEST_TYPE(PEMRCREATEDIBPATTERNBRUSHPT, 4, 4);
2780     TEST_TYPE_POINTER(PEMRCREATEDIBPATTERNBRUSHPT, 32, 4);
2781 }
2782
2783 static void test_pack_PEMRCREATEMONOBRUSH(void)
2784 {
2785     /* PEMRCREATEMONOBRUSH */
2786     TEST_TYPE(PEMRCREATEMONOBRUSH, 4, 4);
2787     TEST_TYPE_POINTER(PEMRCREATEMONOBRUSH, 32, 4);
2788 }
2789
2790 static void test_pack_PEMRCREATEPALETTE(void)
2791 {
2792     /* PEMRCREATEPALETTE */
2793     TEST_TYPE(PEMRCREATEPALETTE, 4, 4);
2794     TEST_TYPE_POINTER(PEMRCREATEPALETTE, 20, 4);
2795 }
2796
2797 static void test_pack_PEMRCREATEPEN(void)
2798 {
2799     /* PEMRCREATEPEN */
2800     TEST_TYPE(PEMRCREATEPEN, 4, 4);
2801     TEST_TYPE_POINTER(PEMRCREATEPEN, 28, 4);
2802 }
2803
2804 static void test_pack_PEMRDELETECOLORSPACE(void)
2805 {
2806     /* PEMRDELETECOLORSPACE */
2807     TEST_TYPE(PEMRDELETECOLORSPACE, 4, 4);
2808     TEST_TYPE_POINTER(PEMRDELETECOLORSPACE, 12, 4);
2809 }
2810
2811 static void test_pack_PEMRDELETEOBJECT(void)
2812 {
2813     /* PEMRDELETEOBJECT */
2814     TEST_TYPE(PEMRDELETEOBJECT, 4, 4);
2815     TEST_TYPE_POINTER(PEMRDELETEOBJECT, 12, 4);
2816 }
2817
2818 static void test_pack_PEMRELLIPSE(void)
2819 {
2820     /* PEMRELLIPSE */
2821     TEST_TYPE(PEMRELLIPSE, 4, 4);
2822     TEST_TYPE_POINTER(PEMRELLIPSE, 24, 4);
2823 }
2824
2825 static void test_pack_PEMRENDPATH(void)
2826 {
2827     /* PEMRENDPATH */
2828     TEST_TYPE(PEMRENDPATH, 4, 4);
2829     TEST_TYPE_POINTER(PEMRENDPATH, 8, 4);
2830 }
2831
2832 static void test_pack_PEMREOF(void)
2833 {
2834     /* PEMREOF */
2835     TEST_TYPE(PEMREOF, 4, 4);
2836     TEST_TYPE_POINTER(PEMREOF, 20, 4);
2837 }
2838
2839 static void test_pack_PEMREXCLUDECLIPRECT(void)
2840 {
2841     /* PEMREXCLUDECLIPRECT */
2842     TEST_TYPE(PEMREXCLUDECLIPRECT, 4, 4);
2843     TEST_TYPE_POINTER(PEMREXCLUDECLIPRECT, 24, 4);
2844 }
2845
2846 static void test_pack_PEMREXTCREATEFONTINDIRECTW(void)
2847 {
2848     /* PEMREXTCREATEFONTINDIRECTW */
2849     TEST_TYPE(PEMREXTCREATEFONTINDIRECTW, 4, 4);
2850     TEST_TYPE_POINTER(PEMREXTCREATEFONTINDIRECTW, 332, 4);
2851 }
2852
2853 static void test_pack_PEMREXTCREATEPEN(void)
2854 {
2855     /* PEMREXTCREATEPEN */
2856     TEST_TYPE(PEMREXTCREATEPEN, 4, 4);
2857     TEST_TYPE_POINTER(PEMREXTCREATEPEN, 56, 4);
2858 }
2859
2860 static void test_pack_PEMREXTFLOODFILL(void)
2861 {
2862     /* PEMREXTFLOODFILL */
2863     TEST_TYPE(PEMREXTFLOODFILL, 4, 4);
2864     TEST_TYPE_POINTER(PEMREXTFLOODFILL, 24, 4);
2865 }
2866
2867 static void test_pack_PEMREXTSELECTCLIPRGN(void)
2868 {
2869     /* PEMREXTSELECTCLIPRGN */
2870     TEST_TYPE(PEMREXTSELECTCLIPRGN, 4, 4);
2871     TEST_TYPE_POINTER(PEMREXTSELECTCLIPRGN, 20, 4);
2872 }
2873
2874 static void test_pack_PEMREXTTEXTOUTA(void)
2875 {
2876     /* PEMREXTTEXTOUTA */
2877     TEST_TYPE(PEMREXTTEXTOUTA, 4, 4);
2878     TEST_TYPE_POINTER(PEMREXTTEXTOUTA, 76, 4);
2879 }
2880
2881 static void test_pack_PEMREXTTEXTOUTW(void)
2882 {
2883     /* PEMREXTTEXTOUTW */
2884     TEST_TYPE(PEMREXTTEXTOUTW, 4, 4);
2885     TEST_TYPE_POINTER(PEMREXTTEXTOUTW, 76, 4);
2886 }
2887
2888 static void test_pack_PEMRFILLPATH(void)
2889 {
2890     /* PEMRFILLPATH */
2891     TEST_TYPE(PEMRFILLPATH, 4, 4);
2892     TEST_TYPE_POINTER(PEMRFILLPATH, 24, 4);
2893 }
2894
2895 static void test_pack_PEMRFILLRGN(void)
2896 {
2897     /* PEMRFILLRGN */
2898     TEST_TYPE(PEMRFILLRGN, 4, 4);
2899     TEST_TYPE_POINTER(PEMRFILLRGN, 36, 4);
2900 }
2901
2902 static void test_pack_PEMRFLATTENPATH(void)
2903 {
2904     /* PEMRFLATTENPATH */
2905     TEST_TYPE(PEMRFLATTENPATH, 4, 4);
2906     TEST_TYPE_POINTER(PEMRFLATTENPATH, 8, 4);
2907 }
2908
2909 static void test_pack_PEMRFORMAT(void)
2910 {
2911     /* PEMRFORMAT */
2912     TEST_TYPE(PEMRFORMAT, 4, 4);
2913     TEST_TYPE_POINTER(PEMRFORMAT, 16, 4);
2914 }
2915
2916 static void test_pack_PEMRFRAMERGN(void)
2917 {
2918     /* PEMRFRAMERGN */
2919     TEST_TYPE(PEMRFRAMERGN, 4, 4);
2920     TEST_TYPE_POINTER(PEMRFRAMERGN, 44, 4);
2921 }
2922
2923 static void test_pack_PEMRGDICOMMENT(void)
2924 {
2925     /* PEMRGDICOMMENT */
2926     TEST_TYPE(PEMRGDICOMMENT, 4, 4);
2927     TEST_TYPE_POINTER(PEMRGDICOMMENT, 16, 4);
2928 }
2929
2930 static void test_pack_PEMRGLSBOUNDEDRECORD(void)
2931 {
2932     /* PEMRGLSBOUNDEDRECORD */
2933     TEST_TYPE(PEMRGLSBOUNDEDRECORD, 4, 4);
2934     TEST_TYPE_POINTER(PEMRGLSBOUNDEDRECORD, 32, 4);
2935 }
2936
2937 static void test_pack_PEMRGLSRECORD(void)
2938 {
2939     /* PEMRGLSRECORD */
2940     TEST_TYPE(PEMRGLSRECORD, 4, 4);
2941     TEST_TYPE_POINTER(PEMRGLSRECORD, 16, 4);
2942 }
2943
2944 static void test_pack_PEMRINTERSECTCLIPRECT(void)
2945 {
2946     /* PEMRINTERSECTCLIPRECT */
2947     TEST_TYPE(PEMRINTERSECTCLIPRECT, 4, 4);
2948     TEST_TYPE_POINTER(PEMRINTERSECTCLIPRECT, 24, 4);
2949 }
2950
2951 static void test_pack_PEMRINVERTRGN(void)
2952 {
2953     /* PEMRINVERTRGN */
2954     TEST_TYPE(PEMRINVERTRGN, 4, 4);
2955     TEST_TYPE_POINTER(PEMRINVERTRGN, 32, 4);
2956 }
2957
2958 static void test_pack_PEMRLINETO(void)
2959 {
2960     /* PEMRLINETO */
2961     TEST_TYPE(PEMRLINETO, 4, 4);
2962     TEST_TYPE_POINTER(PEMRLINETO, 16, 4);
2963 }
2964
2965 static void test_pack_PEMRMASKBLT(void)
2966 {
2967     /* PEMRMASKBLT */
2968     TEST_TYPE(PEMRMASKBLT, 4, 4);
2969     TEST_TYPE_POINTER(PEMRMASKBLT, 128, 4);
2970 }
2971
2972 static void test_pack_PEMRMODIFYWORLDTRANSFORM(void)
2973 {
2974     /* PEMRMODIFYWORLDTRANSFORM */
2975     TEST_TYPE(PEMRMODIFYWORLDTRANSFORM, 4, 4);
2976     TEST_TYPE_POINTER(PEMRMODIFYWORLDTRANSFORM, 36, 4);
2977 }
2978
2979 static void test_pack_PEMRMOVETOEX(void)
2980 {
2981     /* PEMRMOVETOEX */
2982     TEST_TYPE(PEMRMOVETOEX, 4, 4);
2983     TEST_TYPE_POINTER(PEMRMOVETOEX, 16, 4);
2984 }
2985
2986 static void test_pack_PEMROFFSETCLIPRGN(void)
2987 {
2988     /* PEMROFFSETCLIPRGN */
2989     TEST_TYPE(PEMROFFSETCLIPRGN, 4, 4);
2990     TEST_TYPE_POINTER(PEMROFFSETCLIPRGN, 16, 4);
2991 }
2992
2993 static void test_pack_PEMRPAINTRGN(void)
2994 {
2995     /* PEMRPAINTRGN */
2996     TEST_TYPE(PEMRPAINTRGN, 4, 4);
2997     TEST_TYPE_POINTER(PEMRPAINTRGN, 32, 4);
2998 }
2999
3000 static void test_pack_PEMRPIE(void)
3001 {
3002     /* PEMRPIE */
3003     TEST_TYPE(PEMRPIE, 4, 4);
3004     TEST_TYPE_POINTER(PEMRPIE, 40, 4);
3005 }
3006
3007 static void test_pack_PEMRPIXELFORMAT(void)
3008 {
3009     /* PEMRPIXELFORMAT */
3010     TEST_TYPE(PEMRPIXELFORMAT, 4, 4);
3011     TEST_TYPE_POINTER(PEMRPIXELFORMAT, 48, 4);
3012 }
3013
3014 static void test_pack_PEMRPLGBLT(void)
3015 {
3016     /* PEMRPLGBLT */
3017     TEST_TYPE(PEMRPLGBLT, 4, 4);
3018     TEST_TYPE_POINTER(PEMRPLGBLT, 140, 4);
3019 }
3020
3021 static void test_pack_PEMRPOLYBEZIER(void)
3022 {
3023     /* PEMRPOLYBEZIER */
3024     TEST_TYPE(PEMRPOLYBEZIER, 4, 4);
3025     TEST_TYPE_POINTER(PEMRPOLYBEZIER, 36, 4);
3026 }
3027
3028 static void test_pack_PEMRPOLYBEZIER16(void)
3029 {
3030     /* PEMRPOLYBEZIER16 */
3031     TEST_TYPE(PEMRPOLYBEZIER16, 4, 4);
3032     TEST_TYPE_POINTER(PEMRPOLYBEZIER16, 32, 4);
3033 }
3034
3035 static void test_pack_PEMRPOLYBEZIERTO(void)
3036 {
3037     /* PEMRPOLYBEZIERTO */
3038     TEST_TYPE(PEMRPOLYBEZIERTO, 4, 4);
3039     TEST_TYPE_POINTER(PEMRPOLYBEZIERTO, 36, 4);
3040 }
3041
3042 static void test_pack_PEMRPOLYBEZIERTO16(void)
3043 {
3044     /* PEMRPOLYBEZIERTO16 */
3045     TEST_TYPE(PEMRPOLYBEZIERTO16, 4, 4);
3046     TEST_TYPE_POINTER(PEMRPOLYBEZIERTO16, 32, 4);
3047 }
3048
3049 static void test_pack_PEMRPOLYDRAW(void)
3050 {
3051     /* PEMRPOLYDRAW */
3052     TEST_TYPE(PEMRPOLYDRAW, 4, 4);
3053     TEST_TYPE_POINTER(PEMRPOLYDRAW, 40, 4);
3054 }
3055
3056 static void test_pack_PEMRPOLYDRAW16(void)
3057 {
3058     /* PEMRPOLYDRAW16 */
3059     TEST_TYPE(PEMRPOLYDRAW16, 4, 4);
3060     TEST_TYPE_POINTER(PEMRPOLYDRAW16, 36, 4);
3061 }
3062
3063 static void test_pack_PEMRPOLYGON(void)
3064 {
3065     /* PEMRPOLYGON */
3066     TEST_TYPE(PEMRPOLYGON, 4, 4);
3067     TEST_TYPE_POINTER(PEMRPOLYGON, 36, 4);
3068 }
3069
3070 static void test_pack_PEMRPOLYGON16(void)
3071 {
3072     /* PEMRPOLYGON16 */
3073     TEST_TYPE(PEMRPOLYGON16, 4, 4);
3074     TEST_TYPE_POINTER(PEMRPOLYGON16, 32, 4);
3075 }
3076
3077 static void test_pack_PEMRPOLYLINE(void)
3078 {
3079     /* PEMRPOLYLINE */
3080     TEST_TYPE(PEMRPOLYLINE, 4, 4);
3081     TEST_TYPE_POINTER(PEMRPOLYLINE, 36, 4);
3082 }
3083
3084 static void test_pack_PEMRPOLYLINE16(void)
3085 {
3086     /* PEMRPOLYLINE16 */
3087     TEST_TYPE(PEMRPOLYLINE16, 4, 4);
3088     TEST_TYPE_POINTER(PEMRPOLYLINE16, 32, 4);
3089 }
3090
3091 static void test_pack_PEMRPOLYLINETO(void)
3092 {
3093     /* PEMRPOLYLINETO */
3094     TEST_TYPE(PEMRPOLYLINETO, 4, 4);
3095     TEST_TYPE_POINTER(PEMRPOLYLINETO, 36, 4);
3096 }
3097
3098 static void test_pack_PEMRPOLYLINETO16(void)
3099 {
3100     /* PEMRPOLYLINETO16 */
3101     TEST_TYPE(PEMRPOLYLINETO16, 4, 4);
3102     TEST_TYPE_POINTER(PEMRPOLYLINETO16, 32, 4);
3103 }
3104
3105 static void test_pack_PEMRPOLYPOLYGON(void)
3106 {
3107     /* PEMRPOLYPOLYGON */
3108     TEST_TYPE(PEMRPOLYPOLYGON, 4, 4);
3109     TEST_TYPE_POINTER(PEMRPOLYPOLYGON, 44, 4);
3110 }
3111
3112 static void test_pack_PEMRPOLYPOLYGON16(void)
3113 {
3114     /* PEMRPOLYPOLYGON16 */
3115     TEST_TYPE(PEMRPOLYPOLYGON16, 4, 4);
3116     TEST_TYPE_POINTER(PEMRPOLYPOLYGON16, 40, 4);
3117 }
3118
3119 static void test_pack_PEMRPOLYPOLYLINE(void)
3120 {
3121     /* PEMRPOLYPOLYLINE */
3122     TEST_TYPE(PEMRPOLYPOLYLINE, 4, 4);
3123     TEST_TYPE_POINTER(PEMRPOLYPOLYLINE, 44, 4);
3124 }
3125
3126 static void test_pack_PEMRPOLYPOLYLINE16(void)
3127 {
3128     /* PEMRPOLYPOLYLINE16 */
3129     TEST_TYPE(PEMRPOLYPOLYLINE16, 4, 4);
3130     TEST_TYPE_POINTER(PEMRPOLYPOLYLINE16, 40, 4);
3131 }
3132
3133 static void test_pack_PEMRPOLYTEXTOUTA(void)
3134 {
3135     /* PEMRPOLYTEXTOUTA */
3136     TEST_TYPE(PEMRPOLYTEXTOUTA, 4, 4);
3137     TEST_TYPE_POINTER(PEMRPOLYTEXTOUTA, 80, 4);
3138 }
3139
3140 static void test_pack_PEMRPOLYTEXTOUTW(void)
3141 {
3142     /* PEMRPOLYTEXTOUTW */
3143     TEST_TYPE(PEMRPOLYTEXTOUTW, 4, 4);
3144     TEST_TYPE_POINTER(PEMRPOLYTEXTOUTW, 80, 4);
3145 }
3146
3147 static void test_pack_PEMRREALIZEPALETTE(void)
3148 {
3149     /* PEMRREALIZEPALETTE */
3150     TEST_TYPE(PEMRREALIZEPALETTE, 4, 4);
3151     TEST_TYPE_POINTER(PEMRREALIZEPALETTE, 8, 4);
3152 }
3153
3154 static void test_pack_PEMRRECTANGLE(void)
3155 {
3156     /* PEMRRECTANGLE */
3157     TEST_TYPE(PEMRRECTANGLE, 4, 4);
3158     TEST_TYPE_POINTER(PEMRRECTANGLE, 24, 4);
3159 }
3160
3161 static void test_pack_PEMRRESIZEPALETTE(void)
3162 {
3163     /* PEMRRESIZEPALETTE */
3164     TEST_TYPE(PEMRRESIZEPALETTE, 4, 4);
3165     TEST_TYPE_POINTER(PEMRRESIZEPALETTE, 16, 4);
3166 }
3167
3168 static void test_pack_PEMRRESTOREDC(void)
3169 {
3170     /* PEMRRESTOREDC */
3171     TEST_TYPE(PEMRRESTOREDC, 4, 4);
3172     TEST_TYPE_POINTER(PEMRRESTOREDC, 12, 4);
3173 }
3174
3175 static void test_pack_PEMRROUNDRECT(void)
3176 {
3177     /* PEMRROUNDRECT */
3178     TEST_TYPE(PEMRROUNDRECT, 4, 4);
3179     TEST_TYPE_POINTER(PEMRROUNDRECT, 32, 4);
3180 }
3181
3182 static void test_pack_PEMRSAVEDC(void)
3183 {
3184     /* PEMRSAVEDC */
3185     TEST_TYPE(PEMRSAVEDC, 4, 4);
3186     TEST_TYPE_POINTER(PEMRSAVEDC, 8, 4);
3187 }
3188
3189 static void test_pack_PEMRSCALEVIEWPORTEXTEX(void)
3190 {
3191     /* PEMRSCALEVIEWPORTEXTEX */
3192     TEST_TYPE(PEMRSCALEVIEWPORTEXTEX, 4, 4);
3193     TEST_TYPE_POINTER(PEMRSCALEVIEWPORTEXTEX, 24, 4);
3194 }
3195
3196 static void test_pack_PEMRSCALEWINDOWEXTEX(void)
3197 {
3198     /* PEMRSCALEWINDOWEXTEX */
3199     TEST_TYPE(PEMRSCALEWINDOWEXTEX, 4, 4);
3200     TEST_TYPE_POINTER(PEMRSCALEWINDOWEXTEX, 24, 4);
3201 }
3202
3203 static void test_pack_PEMRSELECTCLIPPATH(void)
3204 {
3205     /* PEMRSELECTCLIPPATH */
3206     TEST_TYPE(PEMRSELECTCLIPPATH, 4, 4);
3207     TEST_TYPE_POINTER(PEMRSELECTCLIPPATH, 12, 4);
3208 }
3209
3210 static void test_pack_PEMRSELECTCOLORSPACE(void)
3211 {
3212     /* PEMRSELECTCOLORSPACE */
3213     TEST_TYPE(PEMRSELECTCOLORSPACE, 4, 4);
3214     TEST_TYPE_POINTER(PEMRSELECTCOLORSPACE, 12, 4);
3215 }
3216
3217 static void test_pack_PEMRSELECTOBJECT(void)
3218 {
3219     /* PEMRSELECTOBJECT */
3220     TEST_TYPE(PEMRSELECTOBJECT, 4, 4);
3221     TEST_TYPE_POINTER(PEMRSELECTOBJECT, 12, 4);
3222 }
3223
3224 static void test_pack_PEMRSELECTPALETTE(void)
3225 {
3226     /* PEMRSELECTPALETTE */
3227     TEST_TYPE(PEMRSELECTPALETTE, 4, 4);
3228     TEST_TYPE_POINTER(PEMRSELECTPALETTE, 12, 4);
3229 }
3230
3231 static void test_pack_PEMRSETARCDIRECTION(void)
3232 {
3233     /* PEMRSETARCDIRECTION */
3234     TEST_TYPE(PEMRSETARCDIRECTION, 4, 4);
3235     TEST_TYPE_POINTER(PEMRSETARCDIRECTION, 12, 4);
3236 }
3237
3238 static void test_pack_PEMRSETBKCOLOR(void)
3239 {
3240     /* PEMRSETBKCOLOR */
3241     TEST_TYPE(PEMRSETBKCOLOR, 4, 4);
3242     TEST_TYPE_POINTER(PEMRSETBKCOLOR, 12, 4);
3243 }
3244
3245 static void test_pack_PEMRSETBKMODE(void)
3246 {
3247     /* PEMRSETBKMODE */
3248     TEST_TYPE(PEMRSETBKMODE, 4, 4);
3249     TEST_TYPE_POINTER(PEMRSETBKMODE, 12, 4);
3250 }
3251
3252 static void test_pack_PEMRSETBRUSHORGEX(void)
3253 {
3254     /* PEMRSETBRUSHORGEX */
3255     TEST_TYPE(PEMRSETBRUSHORGEX, 4, 4);
3256     TEST_TYPE_POINTER(PEMRSETBRUSHORGEX, 16, 4);
3257 }
3258
3259 static void test_pack_PEMRSETCOLORADJUSTMENT(void)
3260 {
3261     /* PEMRSETCOLORADJUSTMENT */
3262     TEST_TYPE(PEMRSETCOLORADJUSTMENT, 4, 4);
3263     TEST_TYPE_POINTER(PEMRSETCOLORADJUSTMENT, 32, 4);
3264 }
3265
3266 static void test_pack_PEMRSETCOLORSPACE(void)
3267 {
3268     /* PEMRSETCOLORSPACE */
3269     TEST_TYPE(PEMRSETCOLORSPACE, 4, 4);
3270     TEST_TYPE_POINTER(PEMRSETCOLORSPACE, 12, 4);
3271 }
3272
3273 static void test_pack_PEMRSETDIBITSTODEVICE(void)
3274 {
3275     /* PEMRSETDIBITSTODEVICE */
3276     TEST_TYPE(PEMRSETDIBITSTODEVICE, 4, 4);
3277     TEST_TYPE_POINTER(PEMRSETDIBITSTODEVICE, 76, 4);
3278 }
3279
3280 static void test_pack_PEMRSETICMMODE(void)
3281 {
3282     /* PEMRSETICMMODE */
3283     TEST_TYPE(PEMRSETICMMODE, 4, 4);
3284     TEST_TYPE_POINTER(PEMRSETICMMODE, 12, 4);
3285 }
3286
3287 static void test_pack_PEMRSETLAYOUT(void)
3288 {
3289     /* PEMRSETLAYOUT */
3290     TEST_TYPE(PEMRSETLAYOUT, 4, 4);
3291     TEST_TYPE_POINTER(PEMRSETLAYOUT, 12, 4);
3292 }
3293
3294 static void test_pack_PEMRSETMAPMODE(void)
3295 {
3296     /* PEMRSETMAPMODE */
3297     TEST_TYPE(PEMRSETMAPMODE, 4, 4);
3298     TEST_TYPE_POINTER(PEMRSETMAPMODE, 12, 4);
3299 }
3300
3301 static void test_pack_PEMRSETMAPPERFLAGS(void)
3302 {
3303     /* PEMRSETMAPPERFLAGS */
3304     TEST_TYPE(PEMRSETMAPPERFLAGS, 4, 4);
3305     TEST_TYPE_POINTER(PEMRSETMAPPERFLAGS, 12, 4);
3306 }
3307
3308 static void test_pack_PEMRSETMETARGN(void)
3309 {
3310     /* PEMRSETMETARGN */
3311     TEST_TYPE(PEMRSETMETARGN, 4, 4);
3312     TEST_TYPE_POINTER(PEMRSETMETARGN, 8, 4);
3313 }
3314
3315 static void test_pack_PEMRSETMITERLIMIT(void)
3316 {
3317     /* PEMRSETMITERLIMIT */
3318     TEST_TYPE(PEMRSETMITERLIMIT, 4, 4);
3319     TEST_TYPE_POINTER(PEMRSETMITERLIMIT, 12, 4);
3320 }
3321
3322 static void test_pack_PEMRSETPALETTEENTRIES(void)
3323 {
3324     /* PEMRSETPALETTEENTRIES */
3325     TEST_TYPE(PEMRSETPALETTEENTRIES, 4, 4);
3326     TEST_TYPE_POINTER(PEMRSETPALETTEENTRIES, 24, 4);
3327 }
3328
3329 static void test_pack_PEMRSETPIXELV(void)
3330 {
3331     /* PEMRSETPIXELV */
3332     TEST_TYPE(PEMRSETPIXELV, 4, 4);
3333     TEST_TYPE_POINTER(PEMRSETPIXELV, 20, 4);
3334 }
3335
3336 static void test_pack_PEMRSETPOLYFILLMODE(void)
3337 {
3338     /* PEMRSETPOLYFILLMODE */
3339     TEST_TYPE(PEMRSETPOLYFILLMODE, 4, 4);
3340     TEST_TYPE_POINTER(PEMRSETPOLYFILLMODE, 12, 4);
3341 }
3342
3343 static void test_pack_PEMRSETROP2(void)
3344 {
3345     /* PEMRSETROP2 */
3346     TEST_TYPE(PEMRSETROP2, 4, 4);
3347     TEST_TYPE_POINTER(PEMRSETROP2, 12, 4);
3348 }
3349
3350 static void test_pack_PEMRSETSTRETCHBLTMODE(void)
3351 {
3352     /* PEMRSETSTRETCHBLTMODE */
3353     TEST_TYPE(PEMRSETSTRETCHBLTMODE, 4, 4);
3354     TEST_TYPE_POINTER(PEMRSETSTRETCHBLTMODE, 12, 4);
3355 }
3356
3357 static void test_pack_PEMRSETTEXTALIGN(void)
3358 {
3359     /* PEMRSETTEXTALIGN */
3360     TEST_TYPE(PEMRSETTEXTALIGN, 4, 4);
3361     TEST_TYPE_POINTER(PEMRSETTEXTALIGN, 12, 4);
3362 }
3363
3364 static void test_pack_PEMRSETTEXTCOLOR(void)
3365 {
3366     /* PEMRSETTEXTCOLOR */
3367     TEST_TYPE(PEMRSETTEXTCOLOR, 4, 4);
3368     TEST_TYPE_POINTER(PEMRSETTEXTCOLOR, 12, 4);
3369 }
3370
3371 static void test_pack_PEMRSETVIEWPORTEXTEX(void)
3372 {
3373     /* PEMRSETVIEWPORTEXTEX */
3374     TEST_TYPE(PEMRSETVIEWPORTEXTEX, 4, 4);
3375     TEST_TYPE_POINTER(PEMRSETVIEWPORTEXTEX, 16, 4);
3376 }
3377
3378 static void test_pack_PEMRSETVIEWPORTORGEX(void)
3379 {
3380     /* PEMRSETVIEWPORTORGEX */
3381     TEST_TYPE(PEMRSETVIEWPORTORGEX, 4, 4);
3382     TEST_TYPE_POINTER(PEMRSETVIEWPORTORGEX, 16, 4);
3383 }
3384
3385 static void test_pack_PEMRSETWINDOWEXTEX(void)
3386 {
3387     /* PEMRSETWINDOWEXTEX */
3388     TEST_TYPE(PEMRSETWINDOWEXTEX, 4, 4);
3389     TEST_TYPE_POINTER(PEMRSETWINDOWEXTEX, 16, 4);
3390 }
3391
3392 static void test_pack_PEMRSETWINDOWORGEX(void)
3393 {
3394     /* PEMRSETWINDOWORGEX */
3395     TEST_TYPE(PEMRSETWINDOWORGEX, 4, 4);
3396     TEST_TYPE_POINTER(PEMRSETWINDOWORGEX, 16, 4);
3397 }
3398
3399 static void test_pack_PEMRSETWORLDTRANSFORM(void)
3400 {
3401     /* PEMRSETWORLDTRANSFORM */
3402     TEST_TYPE(PEMRSETWORLDTRANSFORM, 4, 4);
3403     TEST_TYPE_POINTER(PEMRSETWORLDTRANSFORM, 32, 4);
3404 }
3405
3406 static void test_pack_PEMRSTRETCHBLT(void)
3407 {
3408     /* PEMRSTRETCHBLT */
3409     TEST_TYPE(PEMRSTRETCHBLT, 4, 4);
3410     TEST_TYPE_POINTER(PEMRSTRETCHBLT, 108, 4);
3411 }
3412
3413 static void test_pack_PEMRSTRETCHDIBITS(void)
3414 {
3415     /* PEMRSTRETCHDIBITS */
3416     TEST_TYPE(PEMRSTRETCHDIBITS, 4, 4);
3417     TEST_TYPE_POINTER(PEMRSTRETCHDIBITS, 80, 4);
3418 }
3419
3420 static void test_pack_PEMRSTROKEANDFILLPATH(void)
3421 {
3422     /* PEMRSTROKEANDFILLPATH */
3423     TEST_TYPE(PEMRSTROKEANDFILLPATH, 4, 4);
3424     TEST_TYPE_POINTER(PEMRSTROKEANDFILLPATH, 24, 4);
3425 }
3426
3427 static void test_pack_PEMRSTROKEPATH(void)
3428 {
3429     /* PEMRSTROKEPATH */
3430     TEST_TYPE(PEMRSTROKEPATH, 4, 4);
3431     TEST_TYPE_POINTER(PEMRSTROKEPATH, 24, 4);
3432 }
3433
3434 static void test_pack_PEMRTEXT(void)
3435 {
3436     /* PEMRTEXT */
3437     TEST_TYPE(PEMRTEXT, 4, 4);
3438     TEST_TYPE_POINTER(PEMRTEXT, 40, 4);
3439 }
3440
3441 static void test_pack_PEMRWIDENPATH(void)
3442 {
3443     /* PEMRWIDENPATH */
3444     TEST_TYPE(PEMRWIDENPATH, 4, 4);
3445     TEST_TYPE_POINTER(PEMRWIDENPATH, 8, 4);
3446 }
3447
3448 static void test_pack_PENHMETAHEADER(void)
3449 {
3450     /* PENHMETAHEADER */
3451     TEST_TYPE(PENHMETAHEADER, 4, 4);
3452     TEST_TYPE_POINTER(PENHMETAHEADER, 108, 4);
3453 }
3454
3455 static void test_pack_PEXTLOGFONTA(void)
3456 {
3457     /* PEXTLOGFONTA */
3458     TEST_TYPE(PEXTLOGFONTA, 4, 4);
3459     TEST_TYPE_POINTER(PEXTLOGFONTA, 192, 4);
3460 }
3461
3462 static void test_pack_PEXTLOGFONTW(void)
3463 {
3464     /* PEXTLOGFONTW */
3465     TEST_TYPE(PEXTLOGFONTW, 4, 4);
3466     TEST_TYPE_POINTER(PEXTLOGFONTW, 320, 4);
3467 }
3468
3469 static void test_pack_PEXTLOGPEN(void)
3470 {
3471     /* PEXTLOGPEN */
3472     TEST_TYPE(PEXTLOGPEN, 4, 4);
3473     TEST_TYPE_POINTER(PEXTLOGPEN, 28, 4);
3474 }
3475
3476 static void test_pack_PFONTSIGNATURE(void)
3477 {
3478     /* PFONTSIGNATURE */
3479     TEST_TYPE(PFONTSIGNATURE, 4, 4);
3480     TEST_TYPE_POINTER(PFONTSIGNATURE, 24, 4);
3481 }
3482
3483 static void test_pack_PGRADIENT_RECT(void)
3484 {
3485     /* PGRADIENT_RECT */
3486     TEST_TYPE(PGRADIENT_RECT, 4, 4);
3487     TEST_TYPE_POINTER(PGRADIENT_RECT, 8, 4);
3488 }
3489
3490 static void test_pack_PGRADIENT_TRIANGLE(void)
3491 {
3492     /* PGRADIENT_TRIANGLE */
3493     TEST_TYPE(PGRADIENT_TRIANGLE, 4, 4);
3494     TEST_TYPE_POINTER(PGRADIENT_TRIANGLE, 12, 4);
3495 }
3496
3497 static void test_pack_PHANDLETABLE(void)
3498 {
3499     /* PHANDLETABLE */
3500     TEST_TYPE(PHANDLETABLE, 4, 4);
3501     TEST_TYPE_POINTER(PHANDLETABLE, 4, 4);
3502 }
3503
3504 static void test_pack_PIXELFORMATDESCRIPTOR(void)
3505 {
3506     /* PIXELFORMATDESCRIPTOR (pack 4) */
3507     TEST_TYPE(PIXELFORMATDESCRIPTOR, 40, 4);
3508     TEST_FIELD(PIXELFORMATDESCRIPTOR, WORD, nSize, 0, 2, 2);
3509     TEST_FIELD(PIXELFORMATDESCRIPTOR, WORD, nVersion, 2, 2, 2);
3510     TEST_FIELD(PIXELFORMATDESCRIPTOR, DWORD, dwFlags, 4, 4, 4);
3511     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, iPixelType, 8, 1, 1);
3512     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cColorBits, 9, 1, 1);
3513     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cRedBits, 10, 1, 1);
3514     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cRedShift, 11, 1, 1);
3515     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cGreenBits, 12, 1, 1);
3516     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cGreenShift, 13, 1, 1);
3517     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cBlueBits, 14, 1, 1);
3518     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cBlueShift, 15, 1, 1);
3519     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cAlphaBits, 16, 1, 1);
3520     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cAlphaShift, 17, 1, 1);
3521     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cAccumBits, 18, 1, 1);
3522     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cAccumRedBits, 19, 1, 1);
3523     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cAccumGreenBits, 20, 1, 1);
3524     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cAccumBlueBits, 21, 1, 1);
3525     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cAccumAlphaBits, 22, 1, 1);
3526     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cDepthBits, 23, 1, 1);
3527     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cStencilBits, 24, 1, 1);
3528     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, cAuxBuffers, 25, 1, 1);
3529     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, iLayerType, 26, 1, 1);
3530     TEST_FIELD(PIXELFORMATDESCRIPTOR, BYTE, bReserved, 27, 1, 1);
3531     TEST_FIELD(PIXELFORMATDESCRIPTOR, DWORD, dwLayerMask, 28, 4, 4);
3532     TEST_FIELD(PIXELFORMATDESCRIPTOR, DWORD, dwVisibleMask, 32, 4, 4);
3533     TEST_FIELD(PIXELFORMATDESCRIPTOR, DWORD, dwDamageMask, 36, 4, 4);
3534 }
3535
3536 static void test_pack_PLOCALESIGNATURE(void)
3537 {
3538     /* PLOCALESIGNATURE */
3539     TEST_TYPE(PLOCALESIGNATURE, 4, 4);
3540     TEST_TYPE_POINTER(PLOCALESIGNATURE, 32, 4);
3541 }
3542
3543 static void test_pack_PLOGBRUSH(void)
3544 {
3545     /* PLOGBRUSH */
3546     TEST_TYPE(PLOGBRUSH, 4, 4);
3547     TEST_TYPE_POINTER(PLOGBRUSH, 12, 4);
3548 }
3549
3550 static void test_pack_PLOGFONTA(void)
3551 {
3552     /* PLOGFONTA */
3553     TEST_TYPE(PLOGFONTA, 4, 4);
3554     TEST_TYPE_POINTER(PLOGFONTA, 60, 4);
3555 }
3556
3557 static void test_pack_PLOGFONTW(void)
3558 {
3559     /* PLOGFONTW */
3560     TEST_TYPE(PLOGFONTW, 4, 4);
3561     TEST_TYPE_POINTER(PLOGFONTW, 92, 4);
3562 }
3563
3564 static void test_pack_PMETAHEADER(void)
3565 {
3566     /* PMETAHEADER */
3567     TEST_TYPE(PMETAHEADER, 4, 4);
3568     TEST_TYPE_POINTER(PMETAHEADER, 18, 2);
3569 }
3570
3571 static void test_pack_PMETARECORD(void)
3572 {
3573     /* PMETARECORD */
3574     TEST_TYPE(PMETARECORD, 4, 4);
3575     TEST_TYPE_POINTER(PMETARECORD, 8, 4);
3576 }
3577
3578 static void test_pack_PNEWTEXTMETRICA(void)
3579 {
3580     /* PNEWTEXTMETRICA */
3581     TEST_TYPE(PNEWTEXTMETRICA, 4, 4);
3582     TEST_TYPE_POINTER(PNEWTEXTMETRICA, 72, 4);
3583 }
3584
3585 static void test_pack_PNEWTEXTMETRICW(void)
3586 {
3587     /* PNEWTEXTMETRICW */
3588     TEST_TYPE(PNEWTEXTMETRICW, 4, 4);
3589     TEST_TYPE_POINTER(PNEWTEXTMETRICW, 76, 4);
3590 }
3591
3592 static void test_pack_POINTFX(void)
3593 {
3594     /* POINTFX (pack 4) */
3595     TEST_TYPE(POINTFX, 8, 2);
3596     TEST_FIELD(POINTFX, FIXED, x, 0, 4, 2);
3597     TEST_FIELD(POINTFX, FIXED, y, 4, 4, 2);
3598 }
3599
3600 static void test_pack_POLYTEXTA(void)
3601 {
3602     /* POLYTEXTA (pack 4) */
3603     TEST_TYPE(POLYTEXTA, 40, 4);
3604     TEST_FIELD(POLYTEXTA, INT, x, 0, 4, 4);
3605     TEST_FIELD(POLYTEXTA, INT, y, 4, 4, 4);
3606     TEST_FIELD(POLYTEXTA, UINT, n, 8, 4, 4);
3607     TEST_FIELD(POLYTEXTA, LPCSTR, lpstr, 12, 4, 4);
3608     TEST_FIELD(POLYTEXTA, UINT, uiFlags, 16, 4, 4);
3609     TEST_FIELD(POLYTEXTA, RECT, rcl, 20, 16, 4);
3610     TEST_FIELD(POLYTEXTA, INT *, pdx, 36, 4, 4);
3611 }
3612
3613 static void test_pack_POLYTEXTW(void)
3614 {
3615     /* POLYTEXTW (pack 4) */
3616     TEST_TYPE(POLYTEXTW, 40, 4);
3617     TEST_FIELD(POLYTEXTW, INT, x, 0, 4, 4);
3618     TEST_FIELD(POLYTEXTW, INT, y, 4, 4, 4);
3619     TEST_FIELD(POLYTEXTW, UINT, n, 8, 4, 4);
3620     TEST_FIELD(POLYTEXTW, LPCWSTR, lpstr, 12, 4, 4);
3621     TEST_FIELD(POLYTEXTW, UINT, uiFlags, 16, 4, 4);
3622     TEST_FIELD(POLYTEXTW, RECT, rcl, 20, 16, 4);
3623     TEST_FIELD(POLYTEXTW, INT *, pdx, 36, 4, 4);
3624 }
3625
3626 static void test_pack_POUTLINETEXTMETRICA(void)
3627 {
3628     /* POUTLINETEXTMETRICA */
3629     TEST_TYPE(POUTLINETEXTMETRICA, 4, 4);
3630     TEST_TYPE_POINTER(POUTLINETEXTMETRICA, 212, 4);
3631 }
3632
3633 static void test_pack_POUTLINETEXTMETRICW(void)
3634 {
3635     /* POUTLINETEXTMETRICW */
3636     TEST_TYPE(POUTLINETEXTMETRICW, 4, 4);
3637     TEST_TYPE_POINTER(POUTLINETEXTMETRICW, 216, 4);
3638 }
3639
3640 static void test_pack_PPELARRAY(void)
3641 {
3642     /* PPELARRAY */
3643     TEST_TYPE(PPELARRAY, 4, 4);
3644     TEST_TYPE_POINTER(PPELARRAY, 20, 4);
3645 }
3646
3647 static void test_pack_PPIXELFORMATDESCRIPTOR(void)
3648 {
3649     /* PPIXELFORMATDESCRIPTOR */
3650     TEST_TYPE(PPIXELFORMATDESCRIPTOR, 4, 4);
3651     TEST_TYPE_POINTER(PPIXELFORMATDESCRIPTOR, 40, 4);
3652 }
3653
3654 static void test_pack_PPOLYTEXTA(void)
3655 {
3656     /* PPOLYTEXTA */
3657     TEST_TYPE(PPOLYTEXTA, 4, 4);
3658     TEST_TYPE_POINTER(PPOLYTEXTA, 40, 4);
3659 }
3660
3661 static void test_pack_PPOLYTEXTW(void)
3662 {
3663     /* PPOLYTEXTW */
3664     TEST_TYPE(PPOLYTEXTW, 4, 4);
3665     TEST_TYPE_POINTER(PPOLYTEXTW, 40, 4);
3666 }
3667
3668 static void test_pack_PRGNDATA(void)
3669 {
3670     /* PRGNDATA */
3671     TEST_TYPE(PRGNDATA, 4, 4);
3672     TEST_TYPE_POINTER(PRGNDATA, 36, 4);
3673 }
3674
3675 static void test_pack_PRGNDATAHEADER(void)
3676 {
3677     /* PRGNDATAHEADER */
3678     TEST_TYPE(PRGNDATAHEADER, 4, 4);
3679     TEST_TYPE_POINTER(PRGNDATAHEADER, 32, 4);
3680 }
3681
3682 static void test_pack_PTEXTMETRICA(void)
3683 {
3684     /* PTEXTMETRICA */
3685     TEST_TYPE(PTEXTMETRICA, 4, 4);
3686     TEST_TYPE_POINTER(PTEXTMETRICA, 56, 4);
3687 }
3688
3689 static void test_pack_PTEXTMETRICW(void)
3690 {
3691     /* PTEXTMETRICW */
3692     TEST_TYPE(PTEXTMETRICW, 4, 4);
3693     TEST_TYPE_POINTER(PTEXTMETRICW, 60, 4);
3694 }
3695
3696 static void test_pack_PTRIVERTEX(void)
3697 {
3698     /* PTRIVERTEX */
3699     TEST_TYPE(PTRIVERTEX, 4, 4);
3700     TEST_TYPE_POINTER(PTRIVERTEX, 16, 4);
3701 }
3702
3703 static void test_pack_PXFORM(void)
3704 {
3705     /* PXFORM */
3706     TEST_TYPE(PXFORM, 4, 4);
3707     TEST_TYPE_POINTER(PXFORM, 24, 4);
3708 }
3709
3710 static void test_pack_RASTERIZER_STATUS(void)
3711 {
3712     /* RASTERIZER_STATUS (pack 4) */
3713     TEST_TYPE(RASTERIZER_STATUS, 6, 2);
3714     TEST_FIELD(RASTERIZER_STATUS, SHORT, nSize, 0, 2, 2);
3715     TEST_FIELD(RASTERIZER_STATUS, SHORT, wFlags, 2, 2, 2);
3716     TEST_FIELD(RASTERIZER_STATUS, SHORT, nLanguageID, 4, 2, 2);
3717 }
3718
3719 static void test_pack_RGBQUAD(void)
3720 {
3721     /* RGBQUAD (pack 4) */
3722     TEST_TYPE(RGBQUAD, 4, 1);
3723     TEST_FIELD(RGBQUAD, BYTE, rgbBlue, 0, 1, 1);
3724     TEST_FIELD(RGBQUAD, BYTE, rgbGreen, 1, 1, 1);
3725     TEST_FIELD(RGBQUAD, BYTE, rgbRed, 2, 1, 1);
3726     TEST_FIELD(RGBQUAD, BYTE, rgbReserved, 3, 1, 1);
3727 }
3728
3729 static void test_pack_RGBTRIPLE(void)
3730 {
3731     /* RGBTRIPLE (pack 4) */
3732     TEST_TYPE(RGBTRIPLE, 3, 1);
3733     TEST_FIELD(RGBTRIPLE, BYTE, rgbtBlue, 0, 1, 1);
3734     TEST_FIELD(RGBTRIPLE, BYTE, rgbtGreen, 1, 1, 1);
3735     TEST_FIELD(RGBTRIPLE, BYTE, rgbtRed, 2, 1, 1);
3736 }
3737
3738 static void test_pack_RGNDATA(void)
3739 {
3740     /* RGNDATA (pack 4) */
3741     TEST_TYPE(RGNDATA, 36, 4);
3742     TEST_FIELD(RGNDATA, RGNDATAHEADER, rdh, 0, 32, 4);
3743     TEST_FIELD(RGNDATA, char[1], Buffer, 32, 1, 1);
3744 }
3745
3746 static void test_pack_RGNDATAHEADER(void)
3747 {
3748     /* RGNDATAHEADER (pack 4) */
3749     TEST_TYPE(RGNDATAHEADER, 32, 4);
3750     TEST_FIELD(RGNDATAHEADER, DWORD, dwSize, 0, 4, 4);
3751     TEST_FIELD(RGNDATAHEADER, DWORD, iType, 4, 4, 4);
3752     TEST_FIELD(RGNDATAHEADER, DWORD, nCount, 8, 4, 4);
3753     TEST_FIELD(RGNDATAHEADER, DWORD, nRgnSize, 12, 4, 4);
3754     TEST_FIELD(RGNDATAHEADER, RECT, rcBound, 16, 16, 4);
3755 }
3756
3757 static void test_pack_TEXTMETRICA(void)
3758 {
3759     /* TEXTMETRICA (pack 4) */
3760     TEST_TYPE(TEXTMETRICA, 56, 4);
3761     TEST_FIELD(TEXTMETRICA, LONG, tmHeight, 0, 4, 4);
3762     TEST_FIELD(TEXTMETRICA, LONG, tmAscent, 4, 4, 4);
3763     TEST_FIELD(TEXTMETRICA, LONG, tmDescent, 8, 4, 4);
3764     TEST_FIELD(TEXTMETRICA, LONG, tmInternalLeading, 12, 4, 4);
3765     TEST_FIELD(TEXTMETRICA, LONG, tmExternalLeading, 16, 4, 4);
3766     TEST_FIELD(TEXTMETRICA, LONG, tmAveCharWidth, 20, 4, 4);
3767     TEST_FIELD(TEXTMETRICA, LONG, tmMaxCharWidth, 24, 4, 4);
3768     TEST_FIELD(TEXTMETRICA, LONG, tmWeight, 28, 4, 4);
3769     TEST_FIELD(TEXTMETRICA, LONG, tmOverhang, 32, 4, 4);
3770     TEST_FIELD(TEXTMETRICA, LONG, tmDigitizedAspectX, 36, 4, 4);
3771     TEST_FIELD(TEXTMETRICA, LONG, tmDigitizedAspectY, 40, 4, 4);
3772     TEST_FIELD(TEXTMETRICA, BYTE, tmFirstChar, 44, 1, 1);
3773     TEST_FIELD(TEXTMETRICA, BYTE, tmLastChar, 45, 1, 1);
3774     TEST_FIELD(TEXTMETRICA, BYTE, tmDefaultChar, 46, 1, 1);
3775     TEST_FIELD(TEXTMETRICA, BYTE, tmBreakChar, 47, 1, 1);
3776     TEST_FIELD(TEXTMETRICA, BYTE, tmItalic, 48, 1, 1);
3777     TEST_FIELD(TEXTMETRICA, BYTE, tmUnderlined, 49, 1, 1);
3778     TEST_FIELD(TEXTMETRICA, BYTE, tmStruckOut, 50, 1, 1);
3779     TEST_FIELD(TEXTMETRICA, BYTE, tmPitchAndFamily, 51, 1, 1);
3780     TEST_FIELD(TEXTMETRICA, BYTE, tmCharSet, 52, 1, 1);
3781 }
3782
3783 static void test_pack_TEXTMETRICW(void)
3784 {
3785     /* TEXTMETRICW (pack 4) */
3786     TEST_TYPE(TEXTMETRICW, 60, 4);
3787     TEST_FIELD(TEXTMETRICW, LONG, tmHeight, 0, 4, 4);
3788     TEST_FIELD(TEXTMETRICW, LONG, tmAscent, 4, 4, 4);
3789     TEST_FIELD(TEXTMETRICW, LONG, tmDescent, 8, 4, 4);
3790     TEST_FIELD(TEXTMETRICW, LONG, tmInternalLeading, 12, 4, 4);
3791     TEST_FIELD(TEXTMETRICW, LONG, tmExternalLeading, 16, 4, 4);
3792     TEST_FIELD(TEXTMETRICW, LONG, tmAveCharWidth, 20, 4, 4);
3793     TEST_FIELD(TEXTMETRICW, LONG, tmMaxCharWidth, 24, 4, 4);
3794     TEST_FIELD(TEXTMETRICW, LONG, tmWeight, 28, 4, 4);
3795     TEST_FIELD(TEXTMETRICW, LONG, tmOverhang, 32, 4, 4);
3796     TEST_FIELD(TEXTMETRICW, LONG, tmDigitizedAspectX, 36, 4, 4);
3797     TEST_FIELD(TEXTMETRICW, LONG, tmDigitizedAspectY, 40, 4, 4);
3798     TEST_FIELD(TEXTMETRICW, WCHAR, tmFirstChar, 44, 2, 2);
3799     TEST_FIELD(TEXTMETRICW, WCHAR, tmLastChar, 46, 2, 2);
3800     TEST_FIELD(TEXTMETRICW, WCHAR, tmDefaultChar, 48, 2, 2);
3801     TEST_FIELD(TEXTMETRICW, WCHAR, tmBreakChar, 50, 2, 2);
3802     TEST_FIELD(TEXTMETRICW, BYTE, tmItalic, 52, 1, 1);
3803     TEST_FIELD(TEXTMETRICW, BYTE, tmUnderlined, 53, 1, 1);
3804     TEST_FIELD(TEXTMETRICW, BYTE, tmStruckOut, 54, 1, 1);
3805     TEST_FIELD(TEXTMETRICW, BYTE, tmPitchAndFamily, 55, 1, 1);
3806     TEST_FIELD(TEXTMETRICW, BYTE, tmCharSet, 56, 1, 1);
3807 }
3808
3809 static void test_pack_TRIVERTEX(void)
3810 {
3811     /* TRIVERTEX (pack 4) */
3812     TEST_TYPE(TRIVERTEX, 16, 4);
3813     TEST_FIELD(TRIVERTEX, LONG, x, 0, 4, 4);
3814     TEST_FIELD(TRIVERTEX, LONG, y, 4, 4, 4);
3815     TEST_FIELD(TRIVERTEX, COLOR16, Red, 8, 2, 2);
3816     TEST_FIELD(TRIVERTEX, COLOR16, Green, 10, 2, 2);
3817     TEST_FIELD(TRIVERTEX, COLOR16, Blue, 12, 2, 2);
3818     TEST_FIELD(TRIVERTEX, COLOR16, Alpha, 14, 2, 2);
3819 }
3820
3821 static void test_pack_TTPOLYCURVE(void)
3822 {
3823     /* TTPOLYCURVE (pack 4) */
3824     TEST_TYPE(TTPOLYCURVE, 12, 2);
3825     TEST_FIELD(TTPOLYCURVE, WORD, wType, 0, 2, 2);
3826     TEST_FIELD(TTPOLYCURVE, WORD, cpfx, 2, 2, 2);
3827     TEST_FIELD(TTPOLYCURVE, POINTFX[1], apfx, 4, 8, 2);
3828 }
3829
3830 static void test_pack_TTPOLYGONHEADER(void)
3831 {
3832     /* TTPOLYGONHEADER (pack 4) */
3833     TEST_TYPE(TTPOLYGONHEADER, 16, 4);
3834     TEST_FIELD(TTPOLYGONHEADER, DWORD, cb, 0, 4, 4);
3835     TEST_FIELD(TTPOLYGONHEADER, DWORD, dwType, 4, 4, 4);
3836     TEST_FIELD(TTPOLYGONHEADER, POINTFX, pfxStart, 8, 8, 2);
3837 }
3838
3839 static void test_pack_XFORM(void)
3840 {
3841     /* XFORM (pack 4) */
3842     TEST_TYPE(XFORM, 24, 4);
3843     TEST_FIELD(XFORM, FLOAT, eM11, 0, 4, 4);
3844     TEST_FIELD(XFORM, FLOAT, eM12, 4, 4, 4);
3845     TEST_FIELD(XFORM, FLOAT, eM21, 8, 4, 4);
3846     TEST_FIELD(XFORM, FLOAT, eM22, 12, 4, 4);
3847     TEST_FIELD(XFORM, FLOAT, eDx, 16, 4, 4);
3848     TEST_FIELD(XFORM, FLOAT, eDy, 20, 4, 4);
3849 }
3850
3851 static void test_pack(void)
3852 {
3853     test_pack_ABC();
3854     test_pack_ABCFLOAT();
3855     test_pack_ABORTPROC();
3856     test_pack_BITMAP();
3857     test_pack_BITMAPCOREHEADER();
3858     test_pack_BITMAPCOREINFO();
3859     test_pack_BITMAPFILEHEADER();
3860     test_pack_BITMAPINFO();
3861     test_pack_BITMAPINFOHEADER();
3862     test_pack_BITMAPV4HEADER();
3863     test_pack_BITMAPV5HEADER();
3864     test_pack_BLENDFUNCTION();
3865     test_pack_CHARSETINFO();
3866     test_pack_CIEXYZ();
3867     test_pack_CIEXYZTRIPLE();
3868     test_pack_COLOR16();
3869     test_pack_COLORADJUSTMENT();
3870     test_pack_DEVMODEA();
3871     test_pack_DEVMODEW();
3872     test_pack_DIBSECTION();
3873     test_pack_DISPLAY_DEVICEA();
3874     test_pack_DISPLAY_DEVICEW();
3875     test_pack_DOCINFOA();
3876     test_pack_DOCINFOW();
3877     test_pack_EMR();
3878     test_pack_EMRABORTPATH();
3879     test_pack_EMRANGLEARC();
3880     test_pack_EMRARC();
3881     test_pack_EMRARCTO();
3882     test_pack_EMRBEGINPATH();
3883     test_pack_EMRBITBLT();
3884     test_pack_EMRCHORD();
3885     test_pack_EMRCLOSEFIGURE();
3886     test_pack_EMRCREATEBRUSHINDIRECT();
3887     test_pack_EMRCREATECOLORSPACE();
3888     test_pack_EMRCREATECOLORSPACEW();
3889     test_pack_EMRCREATEDIBPATTERNBRUSHPT();
3890     test_pack_EMRCREATEMONOBRUSH();
3891     test_pack_EMRCREATEPEN();
3892     test_pack_EMRDELETECOLORSPACE();
3893     test_pack_EMRDELETEOBJECT();
3894     test_pack_EMRELLIPSE();
3895     test_pack_EMRENDPATH();
3896     test_pack_EMREOF();
3897     test_pack_EMREXCLUDECLIPRECT();
3898     test_pack_EMREXTCREATEFONTINDIRECTW();
3899     test_pack_EMREXTCREATEPEN();
3900     test_pack_EMREXTFLOODFILL();
3901     test_pack_EMREXTSELECTCLIPRGN();
3902     test_pack_EMREXTTEXTOUTA();
3903     test_pack_EMREXTTEXTOUTW();
3904     test_pack_EMRFILLPATH();
3905     test_pack_EMRFILLRGN();
3906     test_pack_EMRFLATTENPATH();
3907     test_pack_EMRFORMAT();
3908     test_pack_EMRFRAMERGN();
3909     test_pack_EMRGDICOMMENT();
3910     test_pack_EMRGLSBOUNDEDRECORD();
3911     test_pack_EMRGLSRECORD();
3912     test_pack_EMRINTERSECTCLIPRECT();
3913     test_pack_EMRINVERTRGN();
3914     test_pack_EMRLINETO();
3915     test_pack_EMRMASKBLT();
3916     test_pack_EMRMODIFYWORLDTRANSFORM();
3917     test_pack_EMRMOVETOEX();
3918     test_pack_EMROFFSETCLIPRGN();
3919     test_pack_EMRPAINTRGN();
3920     test_pack_EMRPIE();
3921     test_pack_EMRPIXELFORMAT();
3922     test_pack_EMRPLGBLT();
3923     test_pack_EMRPOLYBEZIER();
3924     test_pack_EMRPOLYBEZIER16();
3925     test_pack_EMRPOLYBEZIERTO();
3926     test_pack_EMRPOLYBEZIERTO16();
3927     test_pack_EMRPOLYDRAW();
3928     test_pack_EMRPOLYDRAW16();
3929     test_pack_EMRPOLYGON();
3930     test_pack_EMRPOLYGON16();
3931     test_pack_EMRPOLYLINE();
3932     test_pack_EMRPOLYLINE16();
3933     test_pack_EMRPOLYLINETO();
3934     test_pack_EMRPOLYLINETO16();
3935     test_pack_EMRPOLYPOLYGON();
3936     test_pack_EMRPOLYPOLYGON16();
3937     test_pack_EMRPOLYPOLYLINE();
3938     test_pack_EMRPOLYPOLYLINE16();
3939     test_pack_EMRPOLYTEXTOUTA();
3940     test_pack_EMRPOLYTEXTOUTW();
3941     test_pack_EMRREALIZEPALETTE();
3942     test_pack_EMRRECTANGLE();
3943     test_pack_EMRRESIZEPALETTE();
3944     test_pack_EMRRESTOREDC();
3945     test_pack_EMRROUNDRECT();
3946     test_pack_EMRSAVEDC();
3947     test_pack_EMRSCALEVIEWPORTEXTEX();
3948     test_pack_EMRSCALEWINDOWEXTEX();
3949     test_pack_EMRSELECTCLIPPATH();
3950     test_pack_EMRSELECTCOLORSPACE();
3951     test_pack_EMRSELECTOBJECT();
3952     test_pack_EMRSELECTPALETTE();
3953     test_pack_EMRSETARCDIRECTION();
3954     test_pack_EMRSETBKCOLOR();
3955     test_pack_EMRSETBKMODE();
3956     test_pack_EMRSETBRUSHORGEX();
3957     test_pack_EMRSETCOLORADJUSTMENT();
3958     test_pack_EMRSETCOLORSPACE();
3959     test_pack_EMRSETDIBITSTODEVICE();
3960     test_pack_EMRSETICMMODE();
3961     test_pack_EMRSETLAYOUT();
3962     test_pack_EMRSETMAPMODE();
3963     test_pack_EMRSETMAPPERFLAGS();
3964     test_pack_EMRSETMETARGN();
3965     test_pack_EMRSETMITERLIMIT();
3966     test_pack_EMRSETPIXELV();
3967     test_pack_EMRSETPOLYFILLMODE();
3968     test_pack_EMRSETROP2();
3969     test_pack_EMRSETSTRETCHBLTMODE();
3970     test_pack_EMRSETTEXTALIGN();
3971     test_pack_EMRSETTEXTCOLOR();
3972     test_pack_EMRSETVIEWPORTEXTEX();
3973     test_pack_EMRSETVIEWPORTORGEX();
3974     test_pack_EMRSETWINDOWEXTEX();
3975     test_pack_EMRSETWINDOWORGEX();
3976     test_pack_EMRSETWORLDTRANSFORM();
3977     test_pack_EMRSTRETCHBLT();
3978     test_pack_EMRSTRETCHDIBITS();
3979     test_pack_EMRSTROKEANDFILLPATH();
3980     test_pack_EMRSTROKEPATH();
3981     test_pack_EMRTEXT();
3982     test_pack_EMRWIDENPATH();
3983     test_pack_ENHMETAHEADER();
3984     test_pack_ENHMETARECORD();
3985     test_pack_ENHMFENUMPROC();
3986     test_pack_ENUMLOGFONTA();
3987     test_pack_ENUMLOGFONTEXA();
3988     test_pack_ENUMLOGFONTEXW();
3989     test_pack_ENUMLOGFONTW();
3990     test_pack_EXTLOGFONTA();
3991     test_pack_EXTLOGFONTW();
3992     test_pack_EXTLOGPEN();
3993     test_pack_FIXED();
3994     test_pack_FONTENUMPROCA();
3995     test_pack_FONTENUMPROCW();
3996     test_pack_FONTSIGNATURE();
3997     test_pack_FXPT16DOT16();
3998     test_pack_FXPT2DOT30();
3999     test_pack_GCP_RESULTSA();
4000     test_pack_GCP_RESULTSW();
4001     test_pack_GLYPHMETRICS();
4002     test_pack_GOBJENUMPROC();
4003     test_pack_GRADIENT_RECT();
4004     test_pack_GRADIENT_TRIANGLE();
4005     test_pack_HANDLETABLE();
4006     test_pack_ICMENUMPROCA();
4007     test_pack_ICMENUMPROCW();
4008     test_pack_KERNINGPAIR();
4009     test_pack_LCSCSTYPE();
4010     test_pack_LCSGAMUTMATCH();
4011     test_pack_LINEDDAPROC();
4012     test_pack_LOCALESIGNATURE();
4013     test_pack_LOGBRUSH();
4014     test_pack_LOGCOLORSPACEA();
4015     test_pack_LOGCOLORSPACEW();
4016     test_pack_LOGFONTA();
4017     test_pack_LOGFONTW();
4018     test_pack_LOGPEN();
4019     test_pack_LPABC();
4020     test_pack_LPABCFLOAT();
4021     test_pack_LPBITMAP();
4022     test_pack_LPBITMAPCOREHEADER();
4023     test_pack_LPBITMAPCOREINFO();
4024     test_pack_LPBITMAPFILEHEADER();
4025     test_pack_LPBITMAPINFO();
4026     test_pack_LPBITMAPINFOHEADER();
4027     test_pack_LPBITMAPV5HEADER();
4028     test_pack_LPCHARSETINFO();
4029     test_pack_LPCIEXYZ();
4030     test_pack_LPCIEXYZTRIPLE();
4031     test_pack_LPCOLORADJUSTMENT();
4032     test_pack_LPDEVMODEA();
4033     test_pack_LPDEVMODEW();
4034     test_pack_LPDIBSECTION();
4035     test_pack_LPDISPLAY_DEVICEA();
4036     test_pack_LPDISPLAY_DEVICEW();
4037     test_pack_LPDOCINFOA();
4038     test_pack_LPDOCINFOW();
4039     test_pack_LPENHMETAHEADER();
4040     test_pack_LPENHMETARECORD();
4041     test_pack_LPENUMLOGFONTA();
4042     test_pack_LPENUMLOGFONTEXA();
4043     test_pack_LPENUMLOGFONTEXW();
4044     test_pack_LPENUMLOGFONTW();
4045     test_pack_LPEXTLOGFONTA();
4046     test_pack_LPEXTLOGFONTW();
4047     test_pack_LPEXTLOGPEN();
4048     test_pack_LPFONTSIGNATURE();
4049     test_pack_LPGCP_RESULTSA();
4050     test_pack_LPGCP_RESULTSW();
4051     test_pack_LPGLYPHMETRICS();
4052     test_pack_LPGRADIENT_RECT();
4053     test_pack_LPGRADIENT_TRIANGLE();
4054     test_pack_LPHANDLETABLE();
4055     test_pack_LPKERNINGPAIR();
4056     test_pack_LPLOCALESIGNATURE();
4057     test_pack_LPLOGBRUSH();
4058     test_pack_LPLOGCOLORSPACEA();
4059     test_pack_LPLOGCOLORSPACEW();
4060     test_pack_LPLOGFONTA();
4061     test_pack_LPLOGFONTW();
4062     test_pack_LPLOGPEN();
4063     test_pack_LPMAT2();
4064     test_pack_LPMETAFILEPICT();
4065     test_pack_LPMETAHEADER();
4066     test_pack_LPMETARECORD();
4067     test_pack_LPNEWTEXTMETRICA();
4068     test_pack_LPNEWTEXTMETRICW();
4069     test_pack_LPOUTLINETEXTMETRICA();
4070     test_pack_LPOUTLINETEXTMETRICW();
4071     test_pack_LPPANOSE();
4072     test_pack_LPPELARRAY();
4073     test_pack_LPPIXELFORMATDESCRIPTOR();
4074     test_pack_LPPOINTFX();
4075     test_pack_LPPOLYTEXTA();
4076     test_pack_LPPOLYTEXTW();
4077     test_pack_LPRASTERIZER_STATUS();
4078     test_pack_LPRGBQUAD();
4079     test_pack_LPRGNDATA();
4080     test_pack_LPTEXTMETRICA();
4081     test_pack_LPTEXTMETRICW();
4082     test_pack_LPTRIVERTEX();
4083     test_pack_LPTTPOLYCURVE();
4084     test_pack_LPTTPOLYGONHEADER();
4085     test_pack_LPXFORM();
4086     test_pack_MAT2();
4087     test_pack_METAFILEPICT();
4088     test_pack_METAHEADER();
4089     test_pack_METARECORD();
4090     test_pack_MFENUMPROC();
4091     test_pack_NEWTEXTMETRICA();
4092     test_pack_NEWTEXTMETRICEXA();
4093     test_pack_NEWTEXTMETRICEXW();
4094     test_pack_NEWTEXTMETRICW();
4095     test_pack_NPEXTLOGPEN();
4096     test_pack_OLDFONTENUMPROC();
4097     test_pack_OLDFONTENUMPROCA();
4098     test_pack_OLDFONTENUMPROCW();
4099     test_pack_OUTLINETEXTMETRICA();
4100     test_pack_OUTLINETEXTMETRICW();
4101     test_pack_PABC();
4102     test_pack_PABCFLOAT();
4103     test_pack_PANOSE();
4104     test_pack_PATTERN();
4105     test_pack_PBITMAP();
4106     test_pack_PBITMAPCOREHEADER();
4107     test_pack_PBITMAPCOREINFO();
4108     test_pack_PBITMAPFILEHEADER();
4109     test_pack_PBITMAPINFO();
4110     test_pack_PBITMAPINFOHEADER();
4111     test_pack_PBITMAPV4HEADER();
4112     test_pack_PBITMAPV5HEADER();
4113     test_pack_PBLENDFUNCTION();
4114     test_pack_PCHARSETINFO();
4115     test_pack_PCOLORADJUSTMENT();
4116     test_pack_PDEVMODEA();
4117     test_pack_PDEVMODEW();
4118     test_pack_PDIBSECTION();
4119     test_pack_PDISPLAY_DEVICEA();
4120     test_pack_PDISPLAY_DEVICEW();
4121     test_pack_PELARRAY();
4122     test_pack_PEMR();
4123     test_pack_PEMRABORTPATH();
4124     test_pack_PEMRANGLEARC();
4125     test_pack_PEMRARC();
4126     test_pack_PEMRARCTO();
4127     test_pack_PEMRBEGINPATH();
4128     test_pack_PEMRBITBLT();
4129     test_pack_PEMRCHORD();
4130     test_pack_PEMRCLOSEFIGURE();
4131     test_pack_PEMRCREATEBRUSHINDIRECT();
4132     test_pack_PEMRCREATECOLORSPACE();
4133     test_pack_PEMRCREATECOLORSPACEW();
4134     test_pack_PEMRCREATEDIBPATTERNBRUSHPT();
4135     test_pack_PEMRCREATEMONOBRUSH();
4136     test_pack_PEMRCREATEPALETTE();
4137     test_pack_PEMRCREATEPEN();
4138     test_pack_PEMRDELETECOLORSPACE();
4139     test_pack_PEMRDELETEOBJECT();
4140     test_pack_PEMRELLIPSE();
4141     test_pack_PEMRENDPATH();
4142     test_pack_PEMREOF();
4143     test_pack_PEMREXCLUDECLIPRECT();
4144     test_pack_PEMREXTCREATEFONTINDIRECTW();
4145     test_pack_PEMREXTCREATEPEN();
4146     test_pack_PEMREXTFLOODFILL();
4147     test_pack_PEMREXTSELECTCLIPRGN();
4148     test_pack_PEMREXTTEXTOUTA();
4149     test_pack_PEMREXTTEXTOUTW();
4150     test_pack_PEMRFILLPATH();
4151     test_pack_PEMRFILLRGN();
4152     test_pack_PEMRFLATTENPATH();
4153     test_pack_PEMRFORMAT();
4154     test_pack_PEMRFRAMERGN();
4155     test_pack_PEMRGDICOMMENT();
4156     test_pack_PEMRGLSBOUNDEDRECORD();
4157     test_pack_PEMRGLSRECORD();
4158     test_pack_PEMRINTERSECTCLIPRECT();
4159     test_pack_PEMRINVERTRGN();
4160     test_pack_PEMRLINETO();
4161     test_pack_PEMRMASKBLT();
4162     test_pack_PEMRMODIFYWORLDTRANSFORM();
4163     test_pack_PEMRMOVETOEX();
4164     test_pack_PEMROFFSETCLIPRGN();
4165     test_pack_PEMRPAINTRGN();
4166     test_pack_PEMRPIE();
4167     test_pack_PEMRPIXELFORMAT();
4168     test_pack_PEMRPLGBLT();
4169     test_pack_PEMRPOLYBEZIER();
4170     test_pack_PEMRPOLYBEZIER16();
4171     test_pack_PEMRPOLYBEZIERTO();
4172     test_pack_PEMRPOLYBEZIERTO16();
4173     test_pack_PEMRPOLYDRAW();
4174     test_pack_PEMRPOLYDRAW16();
4175     test_pack_PEMRPOLYGON();
4176     test_pack_PEMRPOLYGON16();
4177     test_pack_PEMRPOLYLINE();
4178     test_pack_PEMRPOLYLINE16();
4179     test_pack_PEMRPOLYLINETO();
4180     test_pack_PEMRPOLYLINETO16();
4181     test_pack_PEMRPOLYPOLYGON();
4182     test_pack_PEMRPOLYPOLYGON16();
4183     test_pack_PEMRPOLYPOLYLINE();
4184     test_pack_PEMRPOLYPOLYLINE16();
4185     test_pack_PEMRPOLYTEXTOUTA();
4186     test_pack_PEMRPOLYTEXTOUTW();
4187     test_pack_PEMRREALIZEPALETTE();
4188     test_pack_PEMRRECTANGLE();
4189     test_pack_PEMRRESIZEPALETTE();
4190     test_pack_PEMRRESTOREDC();
4191     test_pack_PEMRROUNDRECT();
4192     test_pack_PEMRSAVEDC();
4193     test_pack_PEMRSCALEVIEWPORTEXTEX();
4194     test_pack_PEMRSCALEWINDOWEXTEX();
4195     test_pack_PEMRSELECTCLIPPATH();
4196     test_pack_PEMRSELECTCOLORSPACE();
4197     test_pack_PEMRSELECTOBJECT();
4198     test_pack_PEMRSELECTPALETTE();
4199     test_pack_PEMRSETARCDIRECTION();
4200     test_pack_PEMRSETBKCOLOR();
4201     test_pack_PEMRSETBKMODE();
4202     test_pack_PEMRSETBRUSHORGEX();
4203     test_pack_PEMRSETCOLORADJUSTMENT();
4204     test_pack_PEMRSETCOLORSPACE();
4205     test_pack_PEMRSETDIBITSTODEVICE();
4206     test_pack_PEMRSETICMMODE();
4207     test_pack_PEMRSETLAYOUT();
4208     test_pack_PEMRSETMAPMODE();
4209     test_pack_PEMRSETMAPPERFLAGS();
4210     test_pack_PEMRSETMETARGN();
4211     test_pack_PEMRSETMITERLIMIT();
4212     test_pack_PEMRSETPALETTEENTRIES();
4213     test_pack_PEMRSETPIXELV();
4214     test_pack_PEMRSETPOLYFILLMODE();
4215     test_pack_PEMRSETROP2();
4216     test_pack_PEMRSETSTRETCHBLTMODE();
4217     test_pack_PEMRSETTEXTALIGN();
4218     test_pack_PEMRSETTEXTCOLOR();
4219     test_pack_PEMRSETVIEWPORTEXTEX();
4220     test_pack_PEMRSETVIEWPORTORGEX();
4221     test_pack_PEMRSETWINDOWEXTEX();
4222     test_pack_PEMRSETWINDOWORGEX();
4223     test_pack_PEMRSETWORLDTRANSFORM();
4224     test_pack_PEMRSTRETCHBLT();
4225     test_pack_PEMRSTRETCHDIBITS();
4226     test_pack_PEMRSTROKEANDFILLPATH();
4227     test_pack_PEMRSTROKEPATH();
4228     test_pack_PEMRTEXT();
4229     test_pack_PEMRWIDENPATH();
4230     test_pack_PENHMETAHEADER();
4231     test_pack_PEXTLOGFONTA();
4232     test_pack_PEXTLOGFONTW();
4233     test_pack_PEXTLOGPEN();
4234     test_pack_PFONTSIGNATURE();
4235     test_pack_PGRADIENT_RECT();
4236     test_pack_PGRADIENT_TRIANGLE();
4237     test_pack_PHANDLETABLE();
4238     test_pack_PIXELFORMATDESCRIPTOR();
4239     test_pack_PLOCALESIGNATURE();
4240     test_pack_PLOGBRUSH();
4241     test_pack_PLOGFONTA();
4242     test_pack_PLOGFONTW();
4243     test_pack_PMETAHEADER();
4244     test_pack_PMETARECORD();
4245     test_pack_PNEWTEXTMETRICA();
4246     test_pack_PNEWTEXTMETRICW();
4247     test_pack_POINTFX();
4248     test_pack_POLYTEXTA();
4249     test_pack_POLYTEXTW();
4250     test_pack_POUTLINETEXTMETRICA();
4251     test_pack_POUTLINETEXTMETRICW();
4252     test_pack_PPELARRAY();
4253     test_pack_PPIXELFORMATDESCRIPTOR();
4254     test_pack_PPOLYTEXTA();
4255     test_pack_PPOLYTEXTW();
4256     test_pack_PRGNDATA();
4257     test_pack_PRGNDATAHEADER();
4258     test_pack_PTEXTMETRICA();
4259     test_pack_PTEXTMETRICW();
4260     test_pack_PTRIVERTEX();
4261     test_pack_PXFORM();
4262     test_pack_RASTERIZER_STATUS();
4263     test_pack_RGBQUAD();
4264     test_pack_RGBTRIPLE();
4265     test_pack_RGNDATA();
4266     test_pack_RGNDATAHEADER();
4267     test_pack_TEXTMETRICA();
4268     test_pack_TEXTMETRICW();
4269     test_pack_TRIVERTEX();
4270     test_pack_TTPOLYCURVE();
4271     test_pack_TTPOLYGONHEADER();
4272     test_pack_XFORM();
4273 }
4274
4275 START_TEST(generated)
4276 {
4277     test_pack();
4278 }