/* File generated automatically from tools/winapi/tests.dat; do not edit! */
/* This file can be copied, modified and distributed without restriction. */

/*
 * Unit tests for data structure packing
 */

#define WINVER 0x0501
#define _WIN32_IE 0x0501
#define _WIN32_WINNT 0x0501

#define WINE_NOWINSOCK

#include "windows.h"

#include "wine/test.h"

/***********************************************************************
 * Compatibility macros
 */

#define DWORD_PTR UINT_PTR
#define LONG_PTR INT_PTR
#define ULONG_PTR UINT_PTR

/***********************************************************************
 * Windows API extension
 */

#if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
# define _TYPE_ALIGNMENT(type) __alignof(type)
#elif defined(__GNUC__)
# define _TYPE_ALIGNMENT(type) __alignof__(type)
#else
/*
 * FIXME: May not be possible without a compiler extension
 *        (if type is not just a name that is, otherwise the normal
 *         TYPE_ALIGNMENT can be used)
 */
#endif

#if defined(TYPE_ALIGNMENT) && defined(_MSC_VER) && _MSC_VER >= 800 && !defined(__cplusplus)
#pragma warning(disable:4116)
#endif

#if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
# define TYPE_ALIGNMENT _TYPE_ALIGNMENT
#endif

/***********************************************************************
 * Test helper macros
 */

#define TEST_TYPE_SIZE(type, size)             C_ASSERT(sizeof(type) == size);

#ifdef TYPE_ALIGNMENT
# define TEST_TYPE_ALIGN(type, align)          C_ASSERT(TYPE_ALIGNMENT(type) == align);
#else
# define TEST_TYPE_ALIGN(type, align)
#endif

#ifdef _TYPE_ALIGNMENT
# define TEST_TARGET_ALIGN(type, align)        C_ASSERT(_TYPE_ALIGNMENT(*(type)0) == align);
# define TEST_FIELD_ALIGN(type, field, align)  C_ASSERT(_TYPE_ALIGNMENT(((type*)0)->field) == align);
#else
# define TEST_TARGET_ALIGN(type, align)
# define TEST_FIELD_ALIGN(type, field, align)
#endif

#define TEST_FIELD_OFFSET(type, field, offset) C_ASSERT(FIELD_OFFSET(type, field) == offset);

#define TEST_TARGET_SIZE(type, size)            TEST_TYPE_SIZE(*(type)0, size)
#define TEST_FIELD_SIZE(type, field, size)      TEST_TYPE_SIZE((((type*)0)->field), size)
#define TEST_TYPE_SIGNED(type)                  C_ASSERT((type) -1 < 0);
#define TEST_TYPE_UNSIGNED(type)                C_ASSERT((type) -1 > 0);


#ifdef _WIN64

static void test_pack_ABC(void)
{
    /* ABC */
    TEST_TYPE_SIZE   (ABC, 12)
    TEST_TYPE_ALIGN  (ABC, 4)
    TEST_FIELD_SIZE  (ABC, abcA, 4)
    TEST_FIELD_ALIGN (ABC, abcA, 4)
    TEST_FIELD_OFFSET(ABC, abcA, 0)
    TEST_FIELD_SIZE  (ABC, abcB, 4)
    TEST_FIELD_ALIGN (ABC, abcB, 4)
    TEST_FIELD_OFFSET(ABC, abcB, 4)
    TEST_FIELD_SIZE  (ABC, abcC, 4)
    TEST_FIELD_ALIGN (ABC, abcC, 4)
    TEST_FIELD_OFFSET(ABC, abcC, 8)
}

static void test_pack_ABCFLOAT(void)
{
    /* ABCFLOAT */
    TEST_TYPE_SIZE   (ABCFLOAT, 12)
    TEST_TYPE_ALIGN  (ABCFLOAT, 4)
    TEST_FIELD_SIZE  (ABCFLOAT, abcfA, 4)
    TEST_FIELD_ALIGN (ABCFLOAT, abcfA, 4)
    TEST_FIELD_OFFSET(ABCFLOAT, abcfA, 0)
    TEST_FIELD_SIZE  (ABCFLOAT, abcfB, 4)
    TEST_FIELD_ALIGN (ABCFLOAT, abcfB, 4)
    TEST_FIELD_OFFSET(ABCFLOAT, abcfB, 4)
    TEST_FIELD_SIZE  (ABCFLOAT, abcfC, 4)
    TEST_FIELD_ALIGN (ABCFLOAT, abcfC, 4)
    TEST_FIELD_OFFSET(ABCFLOAT, abcfC, 8)
}

static void test_pack_ABORTPROC(void)
{
    /* ABORTPROC */
    TEST_TYPE_SIZE   (ABORTPROC, 8)
    TEST_TYPE_ALIGN  (ABORTPROC, 8)
}

static void test_pack_BITMAP(void)
{
    /* BITMAP */
    TEST_TYPE_SIZE   (BITMAP, 32)
    TEST_TYPE_ALIGN  (BITMAP, 8)
    TEST_FIELD_SIZE  (BITMAP, bmType, 4)
    TEST_FIELD_ALIGN (BITMAP, bmType, 4)
    TEST_FIELD_OFFSET(BITMAP, bmType, 0)
    TEST_FIELD_SIZE  (BITMAP, bmWidth, 4)
    TEST_FIELD_ALIGN (BITMAP, bmWidth, 4)
    TEST_FIELD_OFFSET(BITMAP, bmWidth, 4)
    TEST_FIELD_SIZE  (BITMAP, bmHeight, 4)
    TEST_FIELD_ALIGN (BITMAP, bmHeight, 4)
    TEST_FIELD_OFFSET(BITMAP, bmHeight, 8)
    TEST_FIELD_SIZE  (BITMAP, bmWidthBytes, 4)
    TEST_FIELD_ALIGN (BITMAP, bmWidthBytes, 4)
    TEST_FIELD_OFFSET(BITMAP, bmWidthBytes, 12)
    TEST_FIELD_SIZE  (BITMAP, bmPlanes, 2)
    TEST_FIELD_ALIGN (BITMAP, bmPlanes, 2)
    TEST_FIELD_OFFSET(BITMAP, bmPlanes, 16)
    TEST_FIELD_SIZE  (BITMAP, bmBitsPixel, 2)
    TEST_FIELD_ALIGN (BITMAP, bmBitsPixel, 2)
    TEST_FIELD_OFFSET(BITMAP, bmBitsPixel, 18)
    TEST_FIELD_SIZE  (BITMAP, bmBits, 8)
    TEST_FIELD_ALIGN (BITMAP, bmBits, 8)
    TEST_FIELD_OFFSET(BITMAP, bmBits, 24)
}

static void test_pack_BITMAPCOREHEADER(void)
{
    /* BITMAPCOREHEADER */
    TEST_TYPE_SIZE   (BITMAPCOREHEADER, 12)
    TEST_TYPE_ALIGN  (BITMAPCOREHEADER, 4)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcSize, 4)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcSize, 4)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcSize, 0)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcWidth, 2)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcWidth, 2)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcWidth, 4)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcHeight, 2)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcHeight, 2)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcHeight, 6)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcPlanes, 2)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcPlanes, 2)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcPlanes, 8)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcBitCount, 2)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcBitCount, 2)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcBitCount, 10)
}

static void test_pack_BITMAPCOREINFO(void)
{
    /* BITMAPCOREINFO */
    TEST_TYPE_SIZE   (BITMAPCOREINFO, 16)
    TEST_TYPE_ALIGN  (BITMAPCOREINFO, 4)
    TEST_FIELD_SIZE  (BITMAPCOREINFO, bmciHeader, 12)
    TEST_FIELD_ALIGN (BITMAPCOREINFO, bmciHeader, 4)
    TEST_FIELD_OFFSET(BITMAPCOREINFO, bmciHeader, 0)
    TEST_FIELD_SIZE  (BITMAPCOREINFO, bmciColors, 3)
    TEST_FIELD_ALIGN (BITMAPCOREINFO, bmciColors, 1)
    TEST_FIELD_OFFSET(BITMAPCOREINFO, bmciColors, 12)
}

static void test_pack_BITMAPFILEHEADER(void)
{
    /* BITMAPFILEHEADER (pack 2) */
    TEST_TYPE_SIZE   (BITMAPFILEHEADER, 14)
    TEST_TYPE_ALIGN  (BITMAPFILEHEADER, 2)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfType, 2)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfType, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfType, 0)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfSize, 4)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfSize, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfSize, 2)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfReserved1, 2)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfReserved1, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfReserved1, 6)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfReserved2, 2)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfReserved2, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfReserved2, 8)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfOffBits, 4)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfOffBits, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfOffBits, 10)
}

static void test_pack_BITMAPINFO(void)
{
    /* BITMAPINFO */
    TEST_TYPE_SIZE   (BITMAPINFO, 44)
    TEST_TYPE_ALIGN  (BITMAPINFO, 4)
    TEST_FIELD_SIZE  (BITMAPINFO, bmiHeader, 40)
    TEST_FIELD_ALIGN (BITMAPINFO, bmiHeader, 4)
    TEST_FIELD_OFFSET(BITMAPINFO, bmiHeader, 0)
    TEST_FIELD_SIZE  (BITMAPINFO, bmiColors, 4)
    TEST_FIELD_ALIGN (BITMAPINFO, bmiColors, 1)
    TEST_FIELD_OFFSET(BITMAPINFO, bmiColors, 40)
}

static void test_pack_BITMAPINFOHEADER(void)
{
    /* BITMAPINFOHEADER */
    TEST_TYPE_SIZE   (BITMAPINFOHEADER, 40)
    TEST_TYPE_ALIGN  (BITMAPINFOHEADER, 4)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biSize, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biSize, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biSize, 0)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biWidth, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biWidth, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biWidth, 4)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biHeight, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biHeight, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biHeight, 8)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biPlanes, 2)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biPlanes, 2)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biPlanes, 12)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biBitCount, 2)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biBitCount, 2)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biBitCount, 14)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biCompression, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biCompression, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biCompression, 16)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biSizeImage, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biSizeImage, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biSizeImage, 20)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biXPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biXPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biXPelsPerMeter, 24)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biYPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biYPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biYPelsPerMeter, 28)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biClrUsed, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biClrUsed, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biClrUsed, 32)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biClrImportant, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biClrImportant, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biClrImportant, 36)
}

static void test_pack_BITMAPV4HEADER(void)
{
    /* BITMAPV4HEADER */
    TEST_TYPE_SIZE   (BITMAPV4HEADER, 108)
    TEST_TYPE_ALIGN  (BITMAPV4HEADER, 4)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Size, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Size, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Size, 0)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Width, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Width, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Width, 4)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Height, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Height, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Height, 8)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Planes, 2)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Planes, 2)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Planes, 12)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4BitCount, 2)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4BitCount, 2)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4BitCount, 14)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4V4Compression, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4V4Compression, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4V4Compression, 16)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4SizeImage, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4SizeImage, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4SizeImage, 20)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4XPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4XPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4XPelsPerMeter, 24)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4YPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4YPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4YPelsPerMeter, 28)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4ClrUsed, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4ClrUsed, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4ClrUsed, 32)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4ClrImportant, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4ClrImportant, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4ClrImportant, 36)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4RedMask, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4RedMask, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4RedMask, 40)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4GreenMask, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4GreenMask, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4GreenMask, 44)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4BlueMask, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4BlueMask, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4BlueMask, 48)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4AlphaMask, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4AlphaMask, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4AlphaMask, 52)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4CSType, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4CSType, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4CSType, 56)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Endpoints, 36)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Endpoints, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Endpoints, 60)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4GammaRed, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4GammaRed, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4GammaRed, 96)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4GammaGreen, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4GammaGreen, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4GammaGreen, 100)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4GammaBlue, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4GammaBlue, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4GammaBlue, 104)
}

static void test_pack_BITMAPV5HEADER(void)
{
    /* BITMAPV5HEADER */
    TEST_TYPE_SIZE   (BITMAPV5HEADER, 124)
    TEST_TYPE_ALIGN  (BITMAPV5HEADER, 4)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Size, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Size, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Size, 0)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Width, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Width, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Width, 4)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Height, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Height, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Height, 8)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Planes, 2)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Planes, 2)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Planes, 12)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5BitCount, 2)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5BitCount, 2)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5BitCount, 14)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Compression, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Compression, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Compression, 16)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5SizeImage, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5SizeImage, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5SizeImage, 20)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5XPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5XPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5XPelsPerMeter, 24)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5YPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5YPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5YPelsPerMeter, 28)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5ClrUsed, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5ClrUsed, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5ClrUsed, 32)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5ClrImportant, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5ClrImportant, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5ClrImportant, 36)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5RedMask, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5RedMask, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5RedMask, 40)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5GreenMask, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5GreenMask, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5GreenMask, 44)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5BlueMask, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5BlueMask, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5BlueMask, 48)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5AlphaMask, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5AlphaMask, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5AlphaMask, 52)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5CSType, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5CSType, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5CSType, 56)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Endpoints, 36)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Endpoints, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Endpoints, 60)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5GammaRed, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5GammaRed, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5GammaRed, 96)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5GammaGreen, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5GammaGreen, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5GammaGreen, 100)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5GammaBlue, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5GammaBlue, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5GammaBlue, 104)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Intent, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Intent, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Intent, 108)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5ProfileData, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5ProfileData, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5ProfileData, 112)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5ProfileSize, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5ProfileSize, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5ProfileSize, 116)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Reserved, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Reserved, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Reserved, 120)
}

static void test_pack_BLENDFUNCTION(void)
{
    /* BLENDFUNCTION */
    TEST_TYPE_SIZE   (BLENDFUNCTION, 4)
    TEST_TYPE_ALIGN  (BLENDFUNCTION, 1)
    TEST_FIELD_SIZE  (BLENDFUNCTION, BlendOp, 1)
    TEST_FIELD_ALIGN (BLENDFUNCTION, BlendOp, 1)
    TEST_FIELD_OFFSET(BLENDFUNCTION, BlendOp, 0)
    TEST_FIELD_SIZE  (BLENDFUNCTION, BlendFlags, 1)
    TEST_FIELD_ALIGN (BLENDFUNCTION, BlendFlags, 1)
    TEST_FIELD_OFFSET(BLENDFUNCTION, BlendFlags, 1)
    TEST_FIELD_SIZE  (BLENDFUNCTION, SourceConstantAlpha, 1)
    TEST_FIELD_ALIGN (BLENDFUNCTION, SourceConstantAlpha, 1)
    TEST_FIELD_OFFSET(BLENDFUNCTION, SourceConstantAlpha, 2)
    TEST_FIELD_SIZE  (BLENDFUNCTION, AlphaFormat, 1)
    TEST_FIELD_ALIGN (BLENDFUNCTION, AlphaFormat, 1)
    TEST_FIELD_OFFSET(BLENDFUNCTION, AlphaFormat, 3)
}

static void test_pack_CHARSETINFO(void)
{
    /* CHARSETINFO */
    TEST_TYPE_SIZE   (CHARSETINFO, 32)
    TEST_TYPE_ALIGN  (CHARSETINFO, 4)
    TEST_FIELD_SIZE  (CHARSETINFO, ciCharset, 4)
    TEST_FIELD_ALIGN (CHARSETINFO, ciCharset, 4)
    TEST_FIELD_OFFSET(CHARSETINFO, ciCharset, 0)
    TEST_FIELD_SIZE  (CHARSETINFO, ciACP, 4)
    TEST_FIELD_ALIGN (CHARSETINFO, ciACP, 4)
    TEST_FIELD_OFFSET(CHARSETINFO, ciACP, 4)
    TEST_FIELD_SIZE  (CHARSETINFO, fs, 24)
    TEST_FIELD_ALIGN (CHARSETINFO, fs, 4)
    TEST_FIELD_OFFSET(CHARSETINFO, fs, 8)
}

static void test_pack_CIEXYZ(void)
{
    /* CIEXYZ */
    TEST_TYPE_SIZE   (CIEXYZ, 12)
    TEST_TYPE_ALIGN  (CIEXYZ, 4)
    TEST_FIELD_SIZE  (CIEXYZ, ciexyzX, 4)
    TEST_FIELD_ALIGN (CIEXYZ, ciexyzX, 4)
    TEST_FIELD_OFFSET(CIEXYZ, ciexyzX, 0)
    TEST_FIELD_SIZE  (CIEXYZ, ciexyzY, 4)
    TEST_FIELD_ALIGN (CIEXYZ, ciexyzY, 4)
    TEST_FIELD_OFFSET(CIEXYZ, ciexyzY, 4)
    TEST_FIELD_SIZE  (CIEXYZ, ciexyzZ, 4)
    TEST_FIELD_ALIGN (CIEXYZ, ciexyzZ, 4)
    TEST_FIELD_OFFSET(CIEXYZ, ciexyzZ, 8)
}

static void test_pack_CIEXYZTRIPLE(void)
{
    /* CIEXYZTRIPLE */
    TEST_TYPE_SIZE   (CIEXYZTRIPLE, 36)
    TEST_TYPE_ALIGN  (CIEXYZTRIPLE, 4)
    TEST_FIELD_SIZE  (CIEXYZTRIPLE, ciexyzRed, 12)
    TEST_FIELD_ALIGN (CIEXYZTRIPLE, ciexyzRed, 4)
    TEST_FIELD_OFFSET(CIEXYZTRIPLE, ciexyzRed, 0)
    TEST_FIELD_SIZE  (CIEXYZTRIPLE, ciexyzGreen, 12)
    TEST_FIELD_ALIGN (CIEXYZTRIPLE, ciexyzGreen, 4)
    TEST_FIELD_OFFSET(CIEXYZTRIPLE, ciexyzGreen, 12)
    TEST_FIELD_SIZE  (CIEXYZTRIPLE, ciexyzBlue, 12)
    TEST_FIELD_ALIGN (CIEXYZTRIPLE, ciexyzBlue, 4)
    TEST_FIELD_OFFSET(CIEXYZTRIPLE, ciexyzBlue, 24)
}

static void test_pack_COLOR16(void)
{
    /* COLOR16 */
    TEST_TYPE_SIZE   (COLOR16, 2)
    TEST_TYPE_ALIGN  (COLOR16, 2)
}

static void test_pack_COLORADJUSTMENT(void)
{
    /* COLORADJUSTMENT */
    TEST_TYPE_SIZE   (COLORADJUSTMENT, 24)
    TEST_TYPE_ALIGN  (COLORADJUSTMENT, 2)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caSize, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caSize, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caSize, 0)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caFlags, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caFlags, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caFlags, 2)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caIlluminantIndex, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caIlluminantIndex, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caIlluminantIndex, 4)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caRedGamma, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caRedGamma, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caRedGamma, 6)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caGreenGamma, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caGreenGamma, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caGreenGamma, 8)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caBlueGamma, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caBlueGamma, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caBlueGamma, 10)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caReferenceBlack, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caReferenceBlack, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caReferenceBlack, 12)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caReferenceWhite, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caReferenceWhite, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caReferenceWhite, 14)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caContrast, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caContrast, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caContrast, 16)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caBrightness, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caBrightness, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caBrightness, 18)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caColorfulness, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caColorfulness, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caColorfulness, 20)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caRedGreenTint, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caRedGreenTint, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caRedGreenTint, 22)
}

static void test_pack_DEVMODEA(void)
{
    /* DEVMODEA */
    TEST_FIELD_SIZE  (DEVMODEA, dmDeviceName, 32)
    TEST_FIELD_ALIGN (DEVMODEA, dmDeviceName, 1)
    TEST_FIELD_OFFSET(DEVMODEA, dmDeviceName, 0)
    TEST_FIELD_SIZE  (DEVMODEA, dmSpecVersion, 2)
    TEST_FIELD_ALIGN (DEVMODEA, dmSpecVersion, 2)
    TEST_FIELD_OFFSET(DEVMODEA, dmSpecVersion, 32)
    TEST_FIELD_SIZE  (DEVMODEA, dmDriverVersion, 2)
    TEST_FIELD_ALIGN (DEVMODEA, dmDriverVersion, 2)
    TEST_FIELD_OFFSET(DEVMODEA, dmDriverVersion, 34)
    TEST_FIELD_SIZE  (DEVMODEA, dmSize, 2)
    TEST_FIELD_ALIGN (DEVMODEA, dmSize, 2)
    TEST_FIELD_OFFSET(DEVMODEA, dmSize, 36)
    TEST_FIELD_SIZE  (DEVMODEA, dmDriverExtra, 2)
    TEST_FIELD_ALIGN (DEVMODEA, dmDriverExtra, 2)
    TEST_FIELD_OFFSET(DEVMODEA, dmDriverExtra, 38)
    TEST_FIELD_SIZE  (DEVMODEA, dmFields, 4)
    TEST_FIELD_ALIGN (DEVMODEA, dmFields, 4)
    TEST_FIELD_OFFSET(DEVMODEA, dmFields, 40)
}

static void test_pack_DEVMODEW(void)
{
    /* DEVMODEW */
    TEST_FIELD_SIZE  (DEVMODEW, dmDeviceName, 64)
    TEST_FIELD_ALIGN (DEVMODEW, dmDeviceName, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmDeviceName, 0)
    TEST_FIELD_SIZE  (DEVMODEW, dmSpecVersion, 2)
    TEST_FIELD_ALIGN (DEVMODEW, dmSpecVersion, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmSpecVersion, 64)
    TEST_FIELD_SIZE  (DEVMODEW, dmDriverVersion, 2)
    TEST_FIELD_ALIGN (DEVMODEW, dmDriverVersion, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmDriverVersion, 66)
    TEST_FIELD_SIZE  (DEVMODEW, dmSize, 2)
    TEST_FIELD_ALIGN (DEVMODEW, dmSize, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmSize, 68)
    TEST_FIELD_SIZE  (DEVMODEW, dmDriverExtra, 2)
    TEST_FIELD_ALIGN (DEVMODEW, dmDriverExtra, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmDriverExtra, 70)
    TEST_FIELD_SIZE  (DEVMODEW, dmFields, 4)
    TEST_FIELD_ALIGN (DEVMODEW, dmFields, 4)
    TEST_FIELD_OFFSET(DEVMODEW, dmFields, 72)
}

static void test_pack_DIBSECTION(void)
{
    /* DIBSECTION */
    TEST_TYPE_SIZE   (DIBSECTION, 104)
    TEST_TYPE_ALIGN  (DIBSECTION, 8)
    TEST_FIELD_SIZE  (DIBSECTION, dsBm, 32)
    TEST_FIELD_ALIGN (DIBSECTION, dsBm, 8)
    TEST_FIELD_OFFSET(DIBSECTION, dsBm, 0)
    TEST_FIELD_SIZE  (DIBSECTION, dsBmih, 40)
    TEST_FIELD_ALIGN (DIBSECTION, dsBmih, 4)
    TEST_FIELD_OFFSET(DIBSECTION, dsBmih, 32)
    TEST_FIELD_SIZE  (DIBSECTION, dsBitfields, 12)
    TEST_FIELD_ALIGN (DIBSECTION, dsBitfields, 4)
    TEST_FIELD_OFFSET(DIBSECTION, dsBitfields, 72)
    TEST_FIELD_SIZE  (DIBSECTION, dshSection, 8)
    TEST_FIELD_ALIGN (DIBSECTION, dshSection, 8)
    TEST_FIELD_OFFSET(DIBSECTION, dshSection, 88)
    TEST_FIELD_SIZE  (DIBSECTION, dsOffset, 4)
    TEST_FIELD_ALIGN (DIBSECTION, dsOffset, 4)
    TEST_FIELD_OFFSET(DIBSECTION, dsOffset, 96)
}

static void test_pack_DISPLAY_DEVICEA(void)
{
    /* DISPLAY_DEVICEA */
    TEST_TYPE_SIZE   (DISPLAY_DEVICEA, 424)
    TEST_TYPE_ALIGN  (DISPLAY_DEVICEA, 4)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, cb, 4)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, cb, 4)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, cb, 0)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, DeviceName, 32)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, DeviceName, 1)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, DeviceName, 4)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, DeviceString, 128)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, DeviceString, 1)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, DeviceString, 36)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, StateFlags, 4)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, StateFlags, 4)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, StateFlags, 164)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, DeviceID, 128)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, DeviceID, 1)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, DeviceID, 168)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, DeviceKey, 128)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, DeviceKey, 1)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, DeviceKey, 296)
}

static void test_pack_DISPLAY_DEVICEW(void)
{
    /* DISPLAY_DEVICEW */
    TEST_TYPE_SIZE   (DISPLAY_DEVICEW, 840)
    TEST_TYPE_ALIGN  (DISPLAY_DEVICEW, 4)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, cb, 4)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, cb, 4)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, cb, 0)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, DeviceName, 64)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, DeviceName, 2)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, DeviceName, 4)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, DeviceString, 256)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, DeviceString, 2)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, DeviceString, 68)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, StateFlags, 4)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, StateFlags, 4)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, StateFlags, 324)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, DeviceID, 256)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, DeviceID, 2)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, DeviceID, 328)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, DeviceKey, 256)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, DeviceKey, 2)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, DeviceKey, 584)
}

static void test_pack_DOCINFOA(void)
{
    /* DOCINFOA */
    TEST_TYPE_SIZE   (DOCINFOA, 40)
    TEST_TYPE_ALIGN  (DOCINFOA, 8)
    TEST_FIELD_SIZE  (DOCINFOA, cbSize, 4)
    TEST_FIELD_ALIGN (DOCINFOA, cbSize, 4)
    TEST_FIELD_OFFSET(DOCINFOA, cbSize, 0)
    TEST_FIELD_SIZE  (DOCINFOA, lpszDocName, 8)
    TEST_FIELD_ALIGN (DOCINFOA, lpszDocName, 8)
    TEST_FIELD_OFFSET(DOCINFOA, lpszDocName, 8)
    TEST_FIELD_SIZE  (DOCINFOA, lpszOutput, 8)
    TEST_FIELD_ALIGN (DOCINFOA, lpszOutput, 8)
    TEST_FIELD_OFFSET(DOCINFOA, lpszOutput, 16)
    TEST_FIELD_SIZE  (DOCINFOA, lpszDatatype, 8)
    TEST_FIELD_ALIGN (DOCINFOA, lpszDatatype, 8)
    TEST_FIELD_OFFSET(DOCINFOA, lpszDatatype, 24)
    TEST_FIELD_SIZE  (DOCINFOA, fwType, 4)
    TEST_FIELD_ALIGN (DOCINFOA, fwType, 4)
    TEST_FIELD_OFFSET(DOCINFOA, fwType, 32)
}

static void test_pack_DOCINFOW(void)
{
    /* DOCINFOW */
    TEST_TYPE_SIZE   (DOCINFOW, 40)
    TEST_TYPE_ALIGN  (DOCINFOW, 8)
    TEST_FIELD_SIZE  (DOCINFOW, cbSize, 4)
    TEST_FIELD_ALIGN (DOCINFOW, cbSize, 4)
    TEST_FIELD_OFFSET(DOCINFOW, cbSize, 0)
    TEST_FIELD_SIZE  (DOCINFOW, lpszDocName, 8)
    TEST_FIELD_ALIGN (DOCINFOW, lpszDocName, 8)
    TEST_FIELD_OFFSET(DOCINFOW, lpszDocName, 8)
    TEST_FIELD_SIZE  (DOCINFOW, lpszOutput, 8)
    TEST_FIELD_ALIGN (DOCINFOW, lpszOutput, 8)
    TEST_FIELD_OFFSET(DOCINFOW, lpszOutput, 16)
    TEST_FIELD_SIZE  (DOCINFOW, lpszDatatype, 8)
    TEST_FIELD_ALIGN (DOCINFOW, lpszDatatype, 8)
    TEST_FIELD_OFFSET(DOCINFOW, lpszDatatype, 24)
    TEST_FIELD_SIZE  (DOCINFOW, fwType, 4)
    TEST_FIELD_ALIGN (DOCINFOW, fwType, 4)
    TEST_FIELD_OFFSET(DOCINFOW, fwType, 32)
}

static void test_pack_EMR(void)
{
    /* EMR */
    TEST_TYPE_SIZE   (EMR, 8)
    TEST_TYPE_ALIGN  (EMR, 4)
    TEST_FIELD_SIZE  (EMR, iType, 4)
    TEST_FIELD_ALIGN (EMR, iType, 4)
    TEST_FIELD_OFFSET(EMR, iType, 0)
    TEST_FIELD_SIZE  (EMR, nSize, 4)
    TEST_FIELD_ALIGN (EMR, nSize, 4)
    TEST_FIELD_OFFSET(EMR, nSize, 4)
}

static void test_pack_EMRABORTPATH(void)
{
    /* EMRABORTPATH */
    TEST_TYPE_SIZE   (EMRABORTPATH, 8)
    TEST_TYPE_ALIGN  (EMRABORTPATH, 4)
    TEST_FIELD_SIZE  (EMRABORTPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRABORTPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRABORTPATH, emr, 0)
}

static void test_pack_EMRANGLEARC(void)
{
    /* EMRANGLEARC */
    TEST_TYPE_SIZE   (EMRANGLEARC, 28)
    TEST_TYPE_ALIGN  (EMRANGLEARC, 4)
    TEST_FIELD_SIZE  (EMRANGLEARC, emr, 8)
    TEST_FIELD_ALIGN (EMRANGLEARC, emr, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, emr, 0)
    TEST_FIELD_SIZE  (EMRANGLEARC, ptlCenter, 8)
    TEST_FIELD_ALIGN (EMRANGLEARC, ptlCenter, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, ptlCenter, 8)
    TEST_FIELD_SIZE  (EMRANGLEARC, nRadius, 4)
    TEST_FIELD_ALIGN (EMRANGLEARC, nRadius, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, nRadius, 16)
    TEST_FIELD_SIZE  (EMRANGLEARC, eStartAngle, 4)
    TEST_FIELD_ALIGN (EMRANGLEARC, eStartAngle, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, eStartAngle, 20)
    TEST_FIELD_SIZE  (EMRANGLEARC, eSweepAngle, 4)
    TEST_FIELD_ALIGN (EMRANGLEARC, eSweepAngle, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, eSweepAngle, 24)
}

static void test_pack_EMRARC(void)
{
    /* EMRARC */
    TEST_TYPE_SIZE   (EMRARC, 40)
    TEST_TYPE_ALIGN  (EMRARC, 4)
    TEST_FIELD_SIZE  (EMRARC, emr, 8)
    TEST_FIELD_ALIGN (EMRARC, emr, 4)
    TEST_FIELD_OFFSET(EMRARC, emr, 0)
    TEST_FIELD_SIZE  (EMRARC, rclBox, 16)
    TEST_FIELD_ALIGN (EMRARC, rclBox, 4)
    TEST_FIELD_OFFSET(EMRARC, rclBox, 8)
    TEST_FIELD_SIZE  (EMRARC, ptlStart, 8)
    TEST_FIELD_ALIGN (EMRARC, ptlStart, 4)
    TEST_FIELD_OFFSET(EMRARC, ptlStart, 24)
    TEST_FIELD_SIZE  (EMRARC, ptlEnd, 8)
    TEST_FIELD_ALIGN (EMRARC, ptlEnd, 4)
    TEST_FIELD_OFFSET(EMRARC, ptlEnd, 32)
}

static void test_pack_EMRARCTO(void)
{
    /* EMRARCTO */
    TEST_TYPE_SIZE   (EMRARCTO, 40)
    TEST_TYPE_ALIGN  (EMRARCTO, 4)
    TEST_FIELD_SIZE  (EMRARCTO, emr, 8)
    TEST_FIELD_ALIGN (EMRARCTO, emr, 4)
    TEST_FIELD_OFFSET(EMRARCTO, emr, 0)
    TEST_FIELD_SIZE  (EMRARCTO, rclBox, 16)
    TEST_FIELD_ALIGN (EMRARCTO, rclBox, 4)
    TEST_FIELD_OFFSET(EMRARCTO, rclBox, 8)
    TEST_FIELD_SIZE  (EMRARCTO, ptlStart, 8)
    TEST_FIELD_ALIGN (EMRARCTO, ptlStart, 4)
    TEST_FIELD_OFFSET(EMRARCTO, ptlStart, 24)
    TEST_FIELD_SIZE  (EMRARCTO, ptlEnd, 8)
    TEST_FIELD_ALIGN (EMRARCTO, ptlEnd, 4)
    TEST_FIELD_OFFSET(EMRARCTO, ptlEnd, 32)
}

static void test_pack_EMRBEGINPATH(void)
{
    /* EMRBEGINPATH */
    TEST_TYPE_SIZE   (EMRBEGINPATH, 8)
    TEST_TYPE_ALIGN  (EMRBEGINPATH, 4)
    TEST_FIELD_SIZE  (EMRBEGINPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRBEGINPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRBEGINPATH, emr, 0)
}

static void test_pack_EMRBITBLT(void)
{
    /* EMRBITBLT */
    TEST_TYPE_SIZE   (EMRBITBLT, 100)
    TEST_TYPE_ALIGN  (EMRBITBLT, 4)
    TEST_FIELD_SIZE  (EMRBITBLT, emr, 8)
    TEST_FIELD_ALIGN (EMRBITBLT, emr, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, emr, 0)
    TEST_FIELD_SIZE  (EMRBITBLT, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRBITBLT, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRBITBLT, xDest, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, xDest, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, xDest, 24)
    TEST_FIELD_SIZE  (EMRBITBLT, yDest, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, yDest, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, yDest, 28)
    TEST_FIELD_SIZE  (EMRBITBLT, cxDest, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, cxDest, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, cxDest, 32)
    TEST_FIELD_SIZE  (EMRBITBLT, cyDest, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, cyDest, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, cyDest, 36)
    TEST_FIELD_SIZE  (EMRBITBLT, dwRop, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, dwRop, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, dwRop, 40)
    TEST_FIELD_SIZE  (EMRBITBLT, xSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, xSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, xSrc, 44)
    TEST_FIELD_SIZE  (EMRBITBLT, ySrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, ySrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, ySrc, 48)
    TEST_FIELD_SIZE  (EMRBITBLT, xformSrc, 24)
    TEST_FIELD_ALIGN (EMRBITBLT, xformSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, xformSrc, 52)
    TEST_FIELD_SIZE  (EMRBITBLT, crBkColorSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, crBkColorSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, crBkColorSrc, 76)
    TEST_FIELD_SIZE  (EMRBITBLT, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, iUsageSrc, 80)
    TEST_FIELD_SIZE  (EMRBITBLT, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, offBmiSrc, 84)
    TEST_FIELD_SIZE  (EMRBITBLT, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, cbBmiSrc, 88)
    TEST_FIELD_SIZE  (EMRBITBLT, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, offBitsSrc, 92)
    TEST_FIELD_SIZE  (EMRBITBLT, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, cbBitsSrc, 96)
}

static void test_pack_EMRCHORD(void)
{
    /* EMRCHORD */
    TEST_TYPE_SIZE   (EMRCHORD, 40)
    TEST_TYPE_ALIGN  (EMRCHORD, 4)
    TEST_FIELD_SIZE  (EMRCHORD, emr, 8)
    TEST_FIELD_ALIGN (EMRCHORD, emr, 4)
    TEST_FIELD_OFFSET(EMRCHORD, emr, 0)
    TEST_FIELD_SIZE  (EMRCHORD, rclBox, 16)
    TEST_FIELD_ALIGN (EMRCHORD, rclBox, 4)
    TEST_FIELD_OFFSET(EMRCHORD, rclBox, 8)
    TEST_FIELD_SIZE  (EMRCHORD, ptlStart, 8)
    TEST_FIELD_ALIGN (EMRCHORD, ptlStart, 4)
    TEST_FIELD_OFFSET(EMRCHORD, ptlStart, 24)
    TEST_FIELD_SIZE  (EMRCHORD, ptlEnd, 8)
    TEST_FIELD_ALIGN (EMRCHORD, ptlEnd, 4)
    TEST_FIELD_OFFSET(EMRCHORD, ptlEnd, 32)
}

static void test_pack_EMRCLOSEFIGURE(void)
{
    /* EMRCLOSEFIGURE */
    TEST_TYPE_SIZE   (EMRCLOSEFIGURE, 8)
    TEST_TYPE_ALIGN  (EMRCLOSEFIGURE, 4)
    TEST_FIELD_SIZE  (EMRCLOSEFIGURE, emr, 8)
    TEST_FIELD_ALIGN (EMRCLOSEFIGURE, emr, 4)
    TEST_FIELD_OFFSET(EMRCLOSEFIGURE, emr, 0)
}

static void test_pack_EMRCREATEBRUSHINDIRECT(void)
{
    /* EMRCREATEBRUSHINDIRECT */
    TEST_TYPE_SIZE   (EMRCREATEBRUSHINDIRECT, 24)
    TEST_TYPE_ALIGN  (EMRCREATEBRUSHINDIRECT, 4)
    TEST_FIELD_SIZE  (EMRCREATEBRUSHINDIRECT, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATEBRUSHINDIRECT, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATEBRUSHINDIRECT, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATEBRUSHINDIRECT, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRCREATEBRUSHINDIRECT, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRCREATEBRUSHINDIRECT, ihBrush, 8)
    TEST_FIELD_SIZE  (EMRCREATEBRUSHINDIRECT, lb, 12)
    TEST_FIELD_ALIGN (EMRCREATEBRUSHINDIRECT, lb, 4)
    TEST_FIELD_OFFSET(EMRCREATEBRUSHINDIRECT, lb, 12)
}

static void test_pack_EMRCREATECOLORSPACE(void)
{
    /* EMRCREATECOLORSPACE */
    TEST_TYPE_SIZE   (EMRCREATECOLORSPACE, 340)
    TEST_TYPE_ALIGN  (EMRCREATECOLORSPACE, 4)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACE, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACE, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACE, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACE, ihCS, 4)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACE, ihCS, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACE, ihCS, 8)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACE, lcs, 328)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACE, lcs, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACE, lcs, 12)
}

static void test_pack_EMRCREATECOLORSPACEW(void)
{
    /* EMRCREATECOLORSPACEW */
    TEST_TYPE_SIZE   (EMRCREATECOLORSPACEW, 612)
    TEST_TYPE_ALIGN  (EMRCREATECOLORSPACEW, 4)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, ihCS, 4)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, ihCS, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, ihCS, 8)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, lcs, 588)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, lcs, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, lcs, 12)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, dwFlags, 4)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, dwFlags, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, dwFlags, 600)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, cbData, 4)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, cbData, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, cbData, 604)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, Data, 1)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, Data, 1)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, Data, 608)
}

static void test_pack_EMRCREATEDIBPATTERNBRUSHPT(void)
{
    /* EMRCREATEDIBPATTERNBRUSHPT */
    TEST_TYPE_SIZE   (EMRCREATEDIBPATTERNBRUSHPT, 32)
    TEST_TYPE_ALIGN  (EMRCREATEDIBPATTERNBRUSHPT, 4)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, ihBrush, 8)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, iUsage, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, iUsage, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, iUsage, 12)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, offBmi, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, offBmi, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, offBmi, 16)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, cbBmi, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, cbBmi, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, cbBmi, 20)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, offBits, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, offBits, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, offBits, 24)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, cbBits, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, cbBits, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, cbBits, 28)
}

static void test_pack_EMRCREATEMONOBRUSH(void)
{
    /* EMRCREATEMONOBRUSH */
    TEST_TYPE_SIZE   (EMRCREATEMONOBRUSH, 32)
    TEST_TYPE_ALIGN  (EMRCREATEMONOBRUSH, 4)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, ihBrush, 8)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, iUsage, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, iUsage, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, iUsage, 12)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, offBmi, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, offBmi, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, offBmi, 16)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, cbBmi, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, cbBmi, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, cbBmi, 20)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, offBits, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, offBits, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, offBits, 24)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, cbBits, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, cbBits, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, cbBits, 28)
}

static void test_pack_EMRCREATEPEN(void)
{
    /* EMRCREATEPEN */
    TEST_TYPE_SIZE   (EMRCREATEPEN, 28)
    TEST_TYPE_ALIGN  (EMRCREATEPEN, 4)
    TEST_FIELD_SIZE  (EMRCREATEPEN, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATEPEN, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATEPEN, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATEPEN, ihPen, 4)
    TEST_FIELD_ALIGN (EMRCREATEPEN, ihPen, 4)
    TEST_FIELD_OFFSET(EMRCREATEPEN, ihPen, 8)
    TEST_FIELD_SIZE  (EMRCREATEPEN, lopn, 16)
    TEST_FIELD_ALIGN (EMRCREATEPEN, lopn, 4)
    TEST_FIELD_OFFSET(EMRCREATEPEN, lopn, 12)
}

static void test_pack_EMRDELETECOLORSPACE(void)
{
    /* EMRDELETECOLORSPACE */
    TEST_TYPE_SIZE   (EMRDELETECOLORSPACE, 12)
    TEST_TYPE_ALIGN  (EMRDELETECOLORSPACE, 4)
    TEST_FIELD_SIZE  (EMRDELETECOLORSPACE, emr, 8)
    TEST_FIELD_ALIGN (EMRDELETECOLORSPACE, emr, 4)
    TEST_FIELD_OFFSET(EMRDELETECOLORSPACE, emr, 0)
    TEST_FIELD_SIZE  (EMRDELETECOLORSPACE, ihCS, 4)
    TEST_FIELD_ALIGN (EMRDELETECOLORSPACE, ihCS, 4)
    TEST_FIELD_OFFSET(EMRDELETECOLORSPACE, ihCS, 8)
}

static void test_pack_EMRDELETEOBJECT(void)
{
    /* EMRDELETEOBJECT */
    TEST_TYPE_SIZE   (EMRDELETEOBJECT, 12)
    TEST_TYPE_ALIGN  (EMRDELETEOBJECT, 4)
    TEST_FIELD_SIZE  (EMRDELETEOBJECT, emr, 8)
    TEST_FIELD_ALIGN (EMRDELETEOBJECT, emr, 4)
    TEST_FIELD_OFFSET(EMRDELETEOBJECT, emr, 0)
    TEST_FIELD_SIZE  (EMRDELETEOBJECT, ihObject, 4)
    TEST_FIELD_ALIGN (EMRDELETEOBJECT, ihObject, 4)
    TEST_FIELD_OFFSET(EMRDELETEOBJECT, ihObject, 8)
}

static void test_pack_EMRELLIPSE(void)
{
    /* EMRELLIPSE */
    TEST_TYPE_SIZE   (EMRELLIPSE, 24)
    TEST_TYPE_ALIGN  (EMRELLIPSE, 4)
    TEST_FIELD_SIZE  (EMRELLIPSE, emr, 8)
    TEST_FIELD_ALIGN (EMRELLIPSE, emr, 4)
    TEST_FIELD_OFFSET(EMRELLIPSE, emr, 0)
    TEST_FIELD_SIZE  (EMRELLIPSE, rclBox, 16)
    TEST_FIELD_ALIGN (EMRELLIPSE, rclBox, 4)
    TEST_FIELD_OFFSET(EMRELLIPSE, rclBox, 8)
}

static void test_pack_EMRENDPATH(void)
{
    /* EMRENDPATH */
    TEST_TYPE_SIZE   (EMRENDPATH, 8)
    TEST_TYPE_ALIGN  (EMRENDPATH, 4)
    TEST_FIELD_SIZE  (EMRENDPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRENDPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRENDPATH, emr, 0)
}

static void test_pack_EMREOF(void)
{
    /* EMREOF */
    TEST_TYPE_SIZE   (EMREOF, 20)
    TEST_TYPE_ALIGN  (EMREOF, 4)
    TEST_FIELD_SIZE  (EMREOF, emr, 8)
    TEST_FIELD_ALIGN (EMREOF, emr, 4)
    TEST_FIELD_OFFSET(EMREOF, emr, 0)
    TEST_FIELD_SIZE  (EMREOF, nPalEntries, 4)
    TEST_FIELD_ALIGN (EMREOF, nPalEntries, 4)
    TEST_FIELD_OFFSET(EMREOF, nPalEntries, 8)
    TEST_FIELD_SIZE  (EMREOF, offPalEntries, 4)
    TEST_FIELD_ALIGN (EMREOF, offPalEntries, 4)
    TEST_FIELD_OFFSET(EMREOF, offPalEntries, 12)
    TEST_FIELD_SIZE  (EMREOF, nSizeLast, 4)
    TEST_FIELD_ALIGN (EMREOF, nSizeLast, 4)
    TEST_FIELD_OFFSET(EMREOF, nSizeLast, 16)
}

static void test_pack_EMREXCLUDECLIPRECT(void)
{
    /* EMREXCLUDECLIPRECT */
    TEST_TYPE_SIZE   (EMREXCLUDECLIPRECT, 24)
    TEST_TYPE_ALIGN  (EMREXCLUDECLIPRECT, 4)
    TEST_FIELD_SIZE  (EMREXCLUDECLIPRECT, emr, 8)
    TEST_FIELD_ALIGN (EMREXCLUDECLIPRECT, emr, 4)
    TEST_FIELD_OFFSET(EMREXCLUDECLIPRECT, emr, 0)
    TEST_FIELD_SIZE  (EMREXCLUDECLIPRECT, rclClip, 16)
    TEST_FIELD_ALIGN (EMREXCLUDECLIPRECT, rclClip, 4)
    TEST_FIELD_OFFSET(EMREXCLUDECLIPRECT, rclClip, 8)
}

static void test_pack_EMREXTCREATEFONTINDIRECTW(void)
{
    /* EMREXTCREATEFONTINDIRECTW */
    TEST_TYPE_SIZE   (EMREXTCREATEFONTINDIRECTW, 332)
    TEST_TYPE_ALIGN  (EMREXTCREATEFONTINDIRECTW, 4)
    TEST_FIELD_SIZE  (EMREXTCREATEFONTINDIRECTW, emr, 8)
    TEST_FIELD_ALIGN (EMREXTCREATEFONTINDIRECTW, emr, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEFONTINDIRECTW, emr, 0)
    TEST_FIELD_SIZE  (EMREXTCREATEFONTINDIRECTW, ihFont, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEFONTINDIRECTW, ihFont, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEFONTINDIRECTW, ihFont, 8)
    TEST_FIELD_SIZE  (EMREXTCREATEFONTINDIRECTW, elfw, 320)
    TEST_FIELD_ALIGN (EMREXTCREATEFONTINDIRECTW, elfw, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEFONTINDIRECTW, elfw, 12)
}

static void test_pack_EMREXTCREATEPEN(void)
{
    /* EMREXTCREATEPEN */
    TEST_TYPE_SIZE   (EMREXTCREATEPEN, 64)
    TEST_TYPE_ALIGN  (EMREXTCREATEPEN, 8)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, emr, 8)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, emr, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, emr, 0)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, ihPen, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, ihPen, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, ihPen, 8)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, offBmi, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, offBmi, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, offBmi, 12)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, cbBmi, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, cbBmi, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, cbBmi, 16)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, offBits, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, offBits, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, offBits, 20)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, cbBits, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, cbBits, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, cbBits, 24)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, elp, 32)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, elp, 8)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, elp, 32)
}

static void test_pack_EMREXTFLOODFILL(void)
{
    /* EMREXTFLOODFILL */
    TEST_TYPE_SIZE   (EMREXTFLOODFILL, 24)
    TEST_TYPE_ALIGN  (EMREXTFLOODFILL, 4)
    TEST_FIELD_SIZE  (EMREXTFLOODFILL, emr, 8)
    TEST_FIELD_ALIGN (EMREXTFLOODFILL, emr, 4)
    TEST_FIELD_OFFSET(EMREXTFLOODFILL, emr, 0)
    TEST_FIELD_SIZE  (EMREXTFLOODFILL, ptlStart, 8)
    TEST_FIELD_ALIGN (EMREXTFLOODFILL, ptlStart, 4)
    TEST_FIELD_OFFSET(EMREXTFLOODFILL, ptlStart, 8)
    TEST_FIELD_SIZE  (EMREXTFLOODFILL, crColor, 4)
    TEST_FIELD_ALIGN (EMREXTFLOODFILL, crColor, 4)
    TEST_FIELD_OFFSET(EMREXTFLOODFILL, crColor, 16)
    TEST_FIELD_SIZE  (EMREXTFLOODFILL, iMode, 4)
    TEST_FIELD_ALIGN (EMREXTFLOODFILL, iMode, 4)
    TEST_FIELD_OFFSET(EMREXTFLOODFILL, iMode, 20)
}

static void test_pack_EMREXTSELECTCLIPRGN(void)
{
    /* EMREXTSELECTCLIPRGN */
    TEST_TYPE_SIZE   (EMREXTSELECTCLIPRGN, 20)
    TEST_TYPE_ALIGN  (EMREXTSELECTCLIPRGN, 4)
    TEST_FIELD_SIZE  (EMREXTSELECTCLIPRGN, emr, 8)
    TEST_FIELD_ALIGN (EMREXTSELECTCLIPRGN, emr, 4)
    TEST_FIELD_OFFSET(EMREXTSELECTCLIPRGN, emr, 0)
    TEST_FIELD_SIZE  (EMREXTSELECTCLIPRGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMREXTSELECTCLIPRGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMREXTSELECTCLIPRGN, cbRgnData, 8)
    TEST_FIELD_SIZE  (EMREXTSELECTCLIPRGN, iMode, 4)
    TEST_FIELD_ALIGN (EMREXTSELECTCLIPRGN, iMode, 4)
    TEST_FIELD_OFFSET(EMREXTSELECTCLIPRGN, iMode, 12)
    TEST_FIELD_SIZE  (EMREXTSELECTCLIPRGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMREXTSELECTCLIPRGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMREXTSELECTCLIPRGN, RgnData, 16)
}

static void test_pack_EMREXTTEXTOUTA(void)
{
    /* EMREXTTEXTOUTA */
    TEST_TYPE_SIZE   (EMREXTTEXTOUTA, 76)
    TEST_TYPE_ALIGN  (EMREXTTEXTOUTA, 4)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, emr, 8)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, emr, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, emr, 0)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, rclBounds, 16)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, rclBounds, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, rclBounds, 8)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, iGraphicsMode, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, iGraphicsMode, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, iGraphicsMode, 24)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, exScale, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, exScale, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, exScale, 28)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, eyScale, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, eyScale, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, eyScale, 32)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, emrtext, 40)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, emrtext, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, emrtext, 36)
}

static void test_pack_EMREXTTEXTOUTW(void)
{
    /* EMREXTTEXTOUTW */
    TEST_TYPE_SIZE   (EMREXTTEXTOUTW, 76)
    TEST_TYPE_ALIGN  (EMREXTTEXTOUTW, 4)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, emr, 8)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, emr, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, emr, 0)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, rclBounds, 16)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, rclBounds, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, rclBounds, 8)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, iGraphicsMode, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, iGraphicsMode, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, iGraphicsMode, 24)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, exScale, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, exScale, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, exScale, 28)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, eyScale, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, eyScale, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, eyScale, 32)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, emrtext, 40)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, emrtext, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, emrtext, 36)
}

static void test_pack_EMRFILLPATH(void)
{
    /* EMRFILLPATH */
    TEST_TYPE_SIZE   (EMRFILLPATH, 24)
    TEST_TYPE_ALIGN  (EMRFILLPATH, 4)
    TEST_FIELD_SIZE  (EMRFILLPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRFILLPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRFILLPATH, emr, 0)
    TEST_FIELD_SIZE  (EMRFILLPATH, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRFILLPATH, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRFILLPATH, rclBounds, 8)
}

static void test_pack_EMRFILLRGN(void)
{
    /* EMRFILLRGN */
    TEST_TYPE_SIZE   (EMRFILLRGN, 36)
    TEST_TYPE_ALIGN  (EMRFILLRGN, 4)
    TEST_FIELD_SIZE  (EMRFILLRGN, emr, 8)
    TEST_FIELD_ALIGN (EMRFILLRGN, emr, 4)
    TEST_FIELD_OFFSET(EMRFILLRGN, emr, 0)
    TEST_FIELD_SIZE  (EMRFILLRGN, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRFILLRGN, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRFILLRGN, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRFILLRGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMRFILLRGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMRFILLRGN, cbRgnData, 24)
    TEST_FIELD_SIZE  (EMRFILLRGN, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRFILLRGN, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRFILLRGN, ihBrush, 28)
    TEST_FIELD_SIZE  (EMRFILLRGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMRFILLRGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMRFILLRGN, RgnData, 32)
}

static void test_pack_EMRFLATTENPATH(void)
{
    /* EMRFLATTENPATH */
    TEST_TYPE_SIZE   (EMRFLATTENPATH, 8)
    TEST_TYPE_ALIGN  (EMRFLATTENPATH, 4)
    TEST_FIELD_SIZE  (EMRFLATTENPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRFLATTENPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRFLATTENPATH, emr, 0)
}

static void test_pack_EMRFORMAT(void)
{
    /* EMRFORMAT */
    TEST_TYPE_SIZE   (EMRFORMAT, 16)
    TEST_TYPE_ALIGN  (EMRFORMAT, 4)
    TEST_FIELD_SIZE  (EMRFORMAT, dSignature, 4)
    TEST_FIELD_ALIGN (EMRFORMAT, dSignature, 4)
    TEST_FIELD_OFFSET(EMRFORMAT, dSignature, 0)
    TEST_FIELD_SIZE  (EMRFORMAT, nVersion, 4)
    TEST_FIELD_ALIGN (EMRFORMAT, nVersion, 4)
    TEST_FIELD_OFFSET(EMRFORMAT, nVersion, 4)
    TEST_FIELD_SIZE  (EMRFORMAT, cbData, 4)
    TEST_FIELD_ALIGN (EMRFORMAT, cbData, 4)
    TEST_FIELD_OFFSET(EMRFORMAT, cbData, 8)
    TEST_FIELD_SIZE  (EMRFORMAT, offData, 4)
    TEST_FIELD_ALIGN (EMRFORMAT, offData, 4)
    TEST_FIELD_OFFSET(EMRFORMAT, offData, 12)
}

static void test_pack_EMRFRAMERGN(void)
{
    /* EMRFRAMERGN */
    TEST_TYPE_SIZE   (EMRFRAMERGN, 44)
    TEST_TYPE_ALIGN  (EMRFRAMERGN, 4)
    TEST_FIELD_SIZE  (EMRFRAMERGN, emr, 8)
    TEST_FIELD_ALIGN (EMRFRAMERGN, emr, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, emr, 0)
    TEST_FIELD_SIZE  (EMRFRAMERGN, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRFRAMERGN, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRFRAMERGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMRFRAMERGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, cbRgnData, 24)
    TEST_FIELD_SIZE  (EMRFRAMERGN, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRFRAMERGN, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, ihBrush, 28)
    TEST_FIELD_SIZE  (EMRFRAMERGN, szlStroke, 8)
    TEST_FIELD_ALIGN (EMRFRAMERGN, szlStroke, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, szlStroke, 32)
    TEST_FIELD_SIZE  (EMRFRAMERGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMRFRAMERGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMRFRAMERGN, RgnData, 40)
}

static void test_pack_EMRGDICOMMENT(void)
{
    /* EMRGDICOMMENT */
    TEST_TYPE_SIZE   (EMRGDICOMMENT, 16)
    TEST_TYPE_ALIGN  (EMRGDICOMMENT, 4)
    TEST_FIELD_SIZE  (EMRGDICOMMENT, emr, 8)
    TEST_FIELD_ALIGN (EMRGDICOMMENT, emr, 4)
    TEST_FIELD_OFFSET(EMRGDICOMMENT, emr, 0)
    TEST_FIELD_SIZE  (EMRGDICOMMENT, cbData, 4)
    TEST_FIELD_ALIGN (EMRGDICOMMENT, cbData, 4)
    TEST_FIELD_OFFSET(EMRGDICOMMENT, cbData, 8)
    TEST_FIELD_SIZE  (EMRGDICOMMENT, Data, 1)
    TEST_FIELD_ALIGN (EMRGDICOMMENT, Data, 1)
    TEST_FIELD_OFFSET(EMRGDICOMMENT, Data, 12)
}

static void test_pack_EMRGLSBOUNDEDRECORD(void)
{
    /* EMRGLSBOUNDEDRECORD */
    TEST_TYPE_SIZE   (EMRGLSBOUNDEDRECORD, 32)
    TEST_TYPE_ALIGN  (EMRGLSBOUNDEDRECORD, 4)
    TEST_FIELD_SIZE  (EMRGLSBOUNDEDRECORD, emr, 8)
    TEST_FIELD_ALIGN (EMRGLSBOUNDEDRECORD, emr, 4)
    TEST_FIELD_OFFSET(EMRGLSBOUNDEDRECORD, emr, 0)
    TEST_FIELD_SIZE  (EMRGLSBOUNDEDRECORD, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRGLSBOUNDEDRECORD, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRGLSBOUNDEDRECORD, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRGLSBOUNDEDRECORD, cbData, 4)
    TEST_FIELD_ALIGN (EMRGLSBOUNDEDRECORD, cbData, 4)
    TEST_FIELD_OFFSET(EMRGLSBOUNDEDRECORD, cbData, 24)
    TEST_FIELD_SIZE  (EMRGLSBOUNDEDRECORD, Data, 1)
    TEST_FIELD_ALIGN (EMRGLSBOUNDEDRECORD, Data, 1)
    TEST_FIELD_OFFSET(EMRGLSBOUNDEDRECORD, Data, 28)
}

static void test_pack_EMRGLSRECORD(void)
{
    /* EMRGLSRECORD */
    TEST_TYPE_SIZE   (EMRGLSRECORD, 16)
    TEST_TYPE_ALIGN  (EMRGLSRECORD, 4)
    TEST_FIELD_SIZE  (EMRGLSRECORD, emr, 8)
    TEST_FIELD_ALIGN (EMRGLSRECORD, emr, 4)
    TEST_FIELD_OFFSET(EMRGLSRECORD, emr, 0)
    TEST_FIELD_SIZE  (EMRGLSRECORD, cbData, 4)
    TEST_FIELD_ALIGN (EMRGLSRECORD, cbData, 4)
    TEST_FIELD_OFFSET(EMRGLSRECORD, cbData, 8)
    TEST_FIELD_SIZE  (EMRGLSRECORD, Data, 1)
    TEST_FIELD_ALIGN (EMRGLSRECORD, Data, 1)
    TEST_FIELD_OFFSET(EMRGLSRECORD, Data, 12)
}

static void test_pack_EMRINTERSECTCLIPRECT(void)
{
    /* EMRINTERSECTCLIPRECT */
    TEST_TYPE_SIZE   (EMRINTERSECTCLIPRECT, 24)
    TEST_TYPE_ALIGN  (EMRINTERSECTCLIPRECT, 4)
    TEST_FIELD_SIZE  (EMRINTERSECTCLIPRECT, emr, 8)
    TEST_FIELD_ALIGN (EMRINTERSECTCLIPRECT, emr, 4)
    TEST_FIELD_OFFSET(EMRINTERSECTCLIPRECT, emr, 0)
    TEST_FIELD_SIZE  (EMRINTERSECTCLIPRECT, rclClip, 16)
    TEST_FIELD_ALIGN (EMRINTERSECTCLIPRECT, rclClip, 4)
    TEST_FIELD_OFFSET(EMRINTERSECTCLIPRECT, rclClip, 8)
}

static void test_pack_EMRINVERTRGN(void)
{
    /* EMRINVERTRGN */
    TEST_TYPE_SIZE   (EMRINVERTRGN, 32)
    TEST_TYPE_ALIGN  (EMRINVERTRGN, 4)
    TEST_FIELD_SIZE  (EMRINVERTRGN, emr, 8)
    TEST_FIELD_ALIGN (EMRINVERTRGN, emr, 4)
    TEST_FIELD_OFFSET(EMRINVERTRGN, emr, 0)
    TEST_FIELD_SIZE  (EMRINVERTRGN, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRINVERTRGN, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRINVERTRGN, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRINVERTRGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMRINVERTRGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMRINVERTRGN, cbRgnData, 24)
    TEST_FIELD_SIZE  (EMRINVERTRGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMRINVERTRGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMRINVERTRGN, RgnData, 28)
}

static void test_pack_EMRLINETO(void)
{
    /* EMRLINETO */
    TEST_TYPE_SIZE   (EMRLINETO, 16)
    TEST_TYPE_ALIGN  (EMRLINETO, 4)
    TEST_FIELD_SIZE  (EMRLINETO, emr, 8)
    TEST_FIELD_ALIGN (EMRLINETO, emr, 4)
    TEST_FIELD_OFFSET(EMRLINETO, emr, 0)
    TEST_FIELD_SIZE  (EMRLINETO, ptl, 8)
    TEST_FIELD_ALIGN (EMRLINETO, ptl, 4)
    TEST_FIELD_OFFSET(EMRLINETO, ptl, 8)
}

static void test_pack_EMRMASKBLT(void)
{
    /* EMRMASKBLT */
    TEST_TYPE_SIZE   (EMRMASKBLT, 128)
    TEST_TYPE_ALIGN  (EMRMASKBLT, 4)
    TEST_FIELD_SIZE  (EMRMASKBLT, emr, 8)
    TEST_FIELD_ALIGN (EMRMASKBLT, emr, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, emr, 0)
    TEST_FIELD_SIZE  (EMRMASKBLT, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRMASKBLT, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRMASKBLT, xDest, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, xDest, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, xDest, 24)
    TEST_FIELD_SIZE  (EMRMASKBLT, yDest, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, yDest, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, yDest, 28)
    TEST_FIELD_SIZE  (EMRMASKBLT, cxDest, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cxDest, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cxDest, 32)
    TEST_FIELD_SIZE  (EMRMASKBLT, cyDest, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cyDest, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cyDest, 36)
    TEST_FIELD_SIZE  (EMRMASKBLT, dwRop, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, dwRop, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, dwRop, 40)
    TEST_FIELD_SIZE  (EMRMASKBLT, xSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, xSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, xSrc, 44)
    TEST_FIELD_SIZE  (EMRMASKBLT, ySrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, ySrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, ySrc, 48)
    TEST_FIELD_SIZE  (EMRMASKBLT, xformSrc, 24)
    TEST_FIELD_ALIGN (EMRMASKBLT, xformSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, xformSrc, 52)
    TEST_FIELD_SIZE  (EMRMASKBLT, crBkColorSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, crBkColorSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, crBkColorSrc, 76)
    TEST_FIELD_SIZE  (EMRMASKBLT, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, iUsageSrc, 80)
    TEST_FIELD_SIZE  (EMRMASKBLT, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, offBmiSrc, 84)
    TEST_FIELD_SIZE  (EMRMASKBLT, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cbBmiSrc, 88)
    TEST_FIELD_SIZE  (EMRMASKBLT, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, offBitsSrc, 92)
    TEST_FIELD_SIZE  (EMRMASKBLT, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cbBitsSrc, 96)
    TEST_FIELD_SIZE  (EMRMASKBLT, xMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, xMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, xMask, 100)
    TEST_FIELD_SIZE  (EMRMASKBLT, yMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, yMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, yMask, 104)
    TEST_FIELD_SIZE  (EMRMASKBLT, iUsageMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, iUsageMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, iUsageMask, 108)
    TEST_FIELD_SIZE  (EMRMASKBLT, offBmiMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, offBmiMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, offBmiMask, 112)
    TEST_FIELD_SIZE  (EMRMASKBLT, cbBmiMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cbBmiMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cbBmiMask, 116)
    TEST_FIELD_SIZE  (EMRMASKBLT, offBitsMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, offBitsMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, offBitsMask, 120)
    TEST_FIELD_SIZE  (EMRMASKBLT, cbBitsMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cbBitsMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cbBitsMask, 124)
}

static void test_pack_EMRMODIFYWORLDTRANSFORM(void)
{
    /* EMRMODIFYWORLDTRANSFORM */
    TEST_TYPE_SIZE   (EMRMODIFYWORLDTRANSFORM, 36)
    TEST_TYPE_ALIGN  (EMRMODIFYWORLDTRANSFORM, 4)
    TEST_FIELD_SIZE  (EMRMODIFYWORLDTRANSFORM, emr, 8)
    TEST_FIELD_ALIGN (EMRMODIFYWORLDTRANSFORM, emr, 4)
    TEST_FIELD_OFFSET(EMRMODIFYWORLDTRANSFORM, emr, 0)
    TEST_FIELD_SIZE  (EMRMODIFYWORLDTRANSFORM, xform, 24)
    TEST_FIELD_ALIGN (EMRMODIFYWORLDTRANSFORM, xform, 4)
    TEST_FIELD_OFFSET(EMRMODIFYWORLDTRANSFORM, xform, 8)
    TEST_FIELD_SIZE  (EMRMODIFYWORLDTRANSFORM, iMode, 4)
    TEST_FIELD_ALIGN (EMRMODIFYWORLDTRANSFORM, iMode, 4)
    TEST_FIELD_OFFSET(EMRMODIFYWORLDTRANSFORM, iMode, 32)
}

static void test_pack_EMRMOVETOEX(void)
{
    /* EMRMOVETOEX */
    TEST_TYPE_SIZE   (EMRMOVETOEX, 16)
    TEST_TYPE_ALIGN  (EMRMOVETOEX, 4)
    TEST_FIELD_SIZE  (EMRMOVETOEX, emr, 8)
    TEST_FIELD_ALIGN (EMRMOVETOEX, emr, 4)
    TEST_FIELD_OFFSET(EMRMOVETOEX, emr, 0)
    TEST_FIELD_SIZE  (EMRMOVETOEX, ptl, 8)
    TEST_FIELD_ALIGN (EMRMOVETOEX, ptl, 4)
    TEST_FIELD_OFFSET(EMRMOVETOEX, ptl, 8)
}

static void test_pack_EMROFFSETCLIPRGN(void)
{
    /* EMROFFSETCLIPRGN */
    TEST_TYPE_SIZE   (EMROFFSETCLIPRGN, 16)
    TEST_TYPE_ALIGN  (EMROFFSETCLIPRGN, 4)
    TEST_FIELD_SIZE  (EMROFFSETCLIPRGN, emr, 8)
    TEST_FIELD_ALIGN (EMROFFSETCLIPRGN, emr, 4)
    TEST_FIELD_OFFSET(EMROFFSETCLIPRGN, emr, 0)
    TEST_FIELD_SIZE  (EMROFFSETCLIPRGN, ptlOffset, 8)
    TEST_FIELD_ALIGN (EMROFFSETCLIPRGN, ptlOffset, 4)
    TEST_FIELD_OFFSET(EMROFFSETCLIPRGN, ptlOffset, 8)
}

static void test_pack_EMRPAINTRGN(void)
{
    /* EMRPAINTRGN */
    TEST_TYPE_SIZE   (EMRPAINTRGN, 32)
    TEST_TYPE_ALIGN  (EMRPAINTRGN, 4)
    TEST_FIELD_SIZE  (EMRPAINTRGN, emr, 8)
    TEST_FIELD_ALIGN (EMRPAINTRGN, emr, 4)
    TEST_FIELD_OFFSET(EMRPAINTRGN, emr, 0)
    TEST_FIELD_SIZE  (EMRPAINTRGN, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPAINTRGN, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPAINTRGN, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPAINTRGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMRPAINTRGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMRPAINTRGN, cbRgnData, 24)
    TEST_FIELD_SIZE  (EMRPAINTRGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMRPAINTRGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMRPAINTRGN, RgnData, 28)
}

static void test_pack_EMRPIE(void)
{
    /* EMRPIE */
    TEST_TYPE_SIZE   (EMRPIE, 40)
    TEST_TYPE_ALIGN  (EMRPIE, 4)
    TEST_FIELD_SIZE  (EMRPIE, emr, 8)
    TEST_FIELD_ALIGN (EMRPIE, emr, 4)
    TEST_FIELD_OFFSET(EMRPIE, emr, 0)
    TEST_FIELD_SIZE  (EMRPIE, rclBox, 16)
    TEST_FIELD_ALIGN (EMRPIE, rclBox, 4)
    TEST_FIELD_OFFSET(EMRPIE, rclBox, 8)
    TEST_FIELD_SIZE  (EMRPIE, ptlStart, 8)
    TEST_FIELD_ALIGN (EMRPIE, ptlStart, 4)
    TEST_FIELD_OFFSET(EMRPIE, ptlStart, 24)
    TEST_FIELD_SIZE  (EMRPIE, ptlEnd, 8)
    TEST_FIELD_ALIGN (EMRPIE, ptlEnd, 4)
    TEST_FIELD_OFFSET(EMRPIE, ptlEnd, 32)
}

static void test_pack_EMRPIXELFORMAT(void)
{
    /* EMRPIXELFORMAT */
    TEST_TYPE_SIZE   (EMRPIXELFORMAT, 48)
    TEST_TYPE_ALIGN  (EMRPIXELFORMAT, 4)
    TEST_FIELD_SIZE  (EMRPIXELFORMAT, emr, 8)
    TEST_FIELD_ALIGN (EMRPIXELFORMAT, emr, 4)
    TEST_FIELD_OFFSET(EMRPIXELFORMAT, emr, 0)
    TEST_FIELD_SIZE  (EMRPIXELFORMAT, pfd, 40)
    TEST_FIELD_ALIGN (EMRPIXELFORMAT, pfd, 4)
    TEST_FIELD_OFFSET(EMRPIXELFORMAT, pfd, 8)
}

static void test_pack_EMRPLGBLT(void)
{
    /* EMRPLGBLT */
    TEST_TYPE_SIZE   (EMRPLGBLT, 140)
    TEST_TYPE_ALIGN  (EMRPLGBLT, 4)
    TEST_FIELD_SIZE  (EMRPLGBLT, emr, 8)
    TEST_FIELD_ALIGN (EMRPLGBLT, emr, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, emr, 0)
    TEST_FIELD_SIZE  (EMRPLGBLT, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPLGBLT, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPLGBLT, aptlDest, 24)
    TEST_FIELD_ALIGN (EMRPLGBLT, aptlDest, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, aptlDest, 24)
    TEST_FIELD_SIZE  (EMRPLGBLT, xSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, xSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, xSrc, 48)
    TEST_FIELD_SIZE  (EMRPLGBLT, ySrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, ySrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, ySrc, 52)
    TEST_FIELD_SIZE  (EMRPLGBLT, cxSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cxSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cxSrc, 56)
    TEST_FIELD_SIZE  (EMRPLGBLT, cySrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cySrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cySrc, 60)
    TEST_FIELD_SIZE  (EMRPLGBLT, xformSrc, 24)
    TEST_FIELD_ALIGN (EMRPLGBLT, xformSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, xformSrc, 64)
    TEST_FIELD_SIZE  (EMRPLGBLT, crBkColorSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, crBkColorSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, crBkColorSrc, 88)
    TEST_FIELD_SIZE  (EMRPLGBLT, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, iUsageSrc, 92)
    TEST_FIELD_SIZE  (EMRPLGBLT, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, offBmiSrc, 96)
    TEST_FIELD_SIZE  (EMRPLGBLT, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cbBmiSrc, 100)
    TEST_FIELD_SIZE  (EMRPLGBLT, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, offBitsSrc, 104)
    TEST_FIELD_SIZE  (EMRPLGBLT, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cbBitsSrc, 108)
    TEST_FIELD_SIZE  (EMRPLGBLT, xMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, xMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, xMask, 112)
    TEST_FIELD_SIZE  (EMRPLGBLT, yMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, yMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, yMask, 116)
    TEST_FIELD_SIZE  (EMRPLGBLT, iUsageMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, iUsageMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, iUsageMask, 120)
    TEST_FIELD_SIZE  (EMRPLGBLT, offBmiMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, offBmiMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, offBmiMask, 124)
    TEST_FIELD_SIZE  (EMRPLGBLT, cbBmiMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cbBmiMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cbBmiMask, 128)
    TEST_FIELD_SIZE  (EMRPLGBLT, offBitsMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, offBitsMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, offBitsMask, 132)
    TEST_FIELD_SIZE  (EMRPLGBLT, cbBitsMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cbBitsMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cbBitsMask, 136)
}

static void test_pack_EMRPOLYBEZIER(void)
{
    /* EMRPOLYBEZIER */
    TEST_TYPE_SIZE   (EMRPOLYBEZIER, 36)
    TEST_TYPE_ALIGN  (EMRPOLYBEZIER, 4)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER, aptl, 28)
}

static void test_pack_EMRPOLYBEZIER16(void)
{
    /* EMRPOLYBEZIER16 */
    TEST_TYPE_SIZE   (EMRPOLYBEZIER16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYBEZIER16, 4)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER16, apts, 28)
}

static void test_pack_EMRPOLYBEZIERTO(void)
{
    /* EMRPOLYBEZIERTO */
    TEST_TYPE_SIZE   (EMRPOLYBEZIERTO, 36)
    TEST_TYPE_ALIGN  (EMRPOLYBEZIERTO, 4)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO, aptl, 28)
}

static void test_pack_EMRPOLYBEZIERTO16(void)
{
    /* EMRPOLYBEZIERTO16 */
    TEST_TYPE_SIZE   (EMRPOLYBEZIERTO16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYBEZIERTO16, 4)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO16, apts, 28)
}

static void test_pack_EMRPOLYDRAW(void)
{
    /* EMRPOLYDRAW */
    TEST_TYPE_SIZE   (EMRPOLYDRAW, 40)
    TEST_TYPE_ALIGN  (EMRPOLYDRAW, 4)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, aptl, 28)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, abTypes, 1)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, abTypes, 1)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, abTypes, 36)
}

static void test_pack_EMRPOLYDRAW16(void)
{
    /* EMRPOLYDRAW16 */
    TEST_TYPE_SIZE   (EMRPOLYDRAW16, 36)
    TEST_TYPE_ALIGN  (EMRPOLYDRAW16, 4)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, apts, 28)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, abTypes, 1)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, abTypes, 1)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, abTypes, 32)
}

static void test_pack_EMRPOLYGON(void)
{
    /* EMRPOLYGON */
    TEST_TYPE_SIZE   (EMRPOLYGON, 36)
    TEST_TYPE_ALIGN  (EMRPOLYGON, 4)
    TEST_FIELD_SIZE  (EMRPOLYGON, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYGON, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYGON, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYGON, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYGON, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYGON, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYGON, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYGON, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON, aptl, 28)
}

static void test_pack_EMRPOLYGON16(void)
{
    /* EMRPOLYGON16 */
    TEST_TYPE_SIZE   (EMRPOLYGON16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYGON16, 4)
    TEST_FIELD_SIZE  (EMRPOLYGON16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYGON16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYGON16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYGON16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYGON16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYGON16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYGON16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYGON16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYGON16, apts, 28)
}

static void test_pack_EMRPOLYLINE(void)
{
    /* EMRPOLYLINE */
    TEST_TYPE_SIZE   (EMRPOLYLINE, 36)
    TEST_TYPE_ALIGN  (EMRPOLYLINE, 4)
    TEST_FIELD_SIZE  (EMRPOLYLINE, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINE, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYLINE, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYLINE, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYLINE, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINE, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYLINE, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINE, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE, aptl, 28)
}

static void test_pack_EMRPOLYLINE16(void)
{
    /* EMRPOLYLINE16 */
    TEST_TYPE_SIZE   (EMRPOLYLINE16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYLINE16, 4)
    TEST_FIELD_SIZE  (EMRPOLYLINE16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINE16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYLINE16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYLINE16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYLINE16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINE16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYLINE16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINE16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYLINE16, apts, 28)
}

static void test_pack_EMRPOLYLINETO(void)
{
    /* EMRPOLYLINETO */
    TEST_TYPE_SIZE   (EMRPOLYLINETO, 36)
    TEST_TYPE_ALIGN  (EMRPOLYLINETO, 4)
    TEST_FIELD_SIZE  (EMRPOLYLINETO, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINETO, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYLINETO, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYLINETO, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYLINETO, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINETO, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYLINETO, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINETO, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO, aptl, 28)
}

static void test_pack_EMRPOLYLINETO16(void)
{
    /* EMRPOLYLINETO16 */
    TEST_TYPE_SIZE   (EMRPOLYLINETO16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYLINETO16, 4)
    TEST_FIELD_SIZE  (EMRPOLYLINETO16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINETO16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYLINETO16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYLINETO16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYLINETO16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINETO16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYLINETO16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINETO16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYLINETO16, apts, 28)
}

static void test_pack_EMRPOLYPOLYGON(void)
{
    /* EMRPOLYPOLYGON */
    TEST_TYPE_SIZE   (EMRPOLYPOLYGON, 44)
    TEST_TYPE_ALIGN  (EMRPOLYPOLYGON, 4)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, nPolys, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, nPolys, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, nPolys, 24)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, cptl, 28)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, aPolyCounts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, aPolyCounts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, aPolyCounts, 32)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, aptl, 36)
}

static void test_pack_EMRPOLYPOLYGON16(void)
{
    /* EMRPOLYPOLYGON16 */
    TEST_TYPE_SIZE   (EMRPOLYPOLYGON16, 40)
    TEST_TYPE_ALIGN  (EMRPOLYPOLYGON16, 4)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, nPolys, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, nPolys, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, nPolys, 24)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, cpts, 28)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, aPolyCounts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, aPolyCounts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, aPolyCounts, 32)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, apts, 36)
}

static void test_pack_EMRPOLYPOLYLINE(void)
{
    /* EMRPOLYPOLYLINE */
    TEST_TYPE_SIZE   (EMRPOLYPOLYLINE, 44)
    TEST_TYPE_ALIGN  (EMRPOLYPOLYLINE, 4)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, nPolys, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, nPolys, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, nPolys, 24)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, cptl, 28)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, aPolyCounts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, aPolyCounts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, aPolyCounts, 32)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, aptl, 36)
}

static void test_pack_EMRPOLYPOLYLINE16(void)
{
    /* EMRPOLYPOLYLINE16 */
    TEST_TYPE_SIZE   (EMRPOLYPOLYLINE16, 40)
    TEST_TYPE_ALIGN  (EMRPOLYPOLYLINE16, 4)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, nPolys, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, nPolys, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, nPolys, 24)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, cpts, 28)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, aPolyCounts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, aPolyCounts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, aPolyCounts, 32)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, apts, 36)
}

static void test_pack_EMRPOLYTEXTOUTA(void)
{
    /* EMRPOLYTEXTOUTA */
    TEST_TYPE_SIZE   (EMRPOLYTEXTOUTA, 80)
    TEST_TYPE_ALIGN  (EMRPOLYTEXTOUTA, 4)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, iGraphicsMode, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, iGraphicsMode, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, iGraphicsMode, 24)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, exScale, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, exScale, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, exScale, 28)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, eyScale, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, eyScale, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, eyScale, 32)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, cStrings, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, cStrings, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, cStrings, 36)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, aemrtext, 40)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, aemrtext, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, aemrtext, 40)
}

static void test_pack_EMRPOLYTEXTOUTW(void)
{
    /* EMRPOLYTEXTOUTW */
    TEST_TYPE_SIZE   (EMRPOLYTEXTOUTW, 80)
    TEST_TYPE_ALIGN  (EMRPOLYTEXTOUTW, 4)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, iGraphicsMode, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, iGraphicsMode, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, iGraphicsMode, 24)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, exScale, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, exScale, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, exScale, 28)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, eyScale, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, eyScale, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, eyScale, 32)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, cStrings, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, cStrings, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, cStrings, 36)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, aemrtext, 40)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, aemrtext, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, aemrtext, 40)
}

static void test_pack_EMRREALIZEPALETTE(void)
{
    /* EMRREALIZEPALETTE */
    TEST_TYPE_SIZE   (EMRREALIZEPALETTE, 8)
    TEST_TYPE_ALIGN  (EMRREALIZEPALETTE, 4)
    TEST_FIELD_SIZE  (EMRREALIZEPALETTE, emr, 8)
    TEST_FIELD_ALIGN (EMRREALIZEPALETTE, emr, 4)
    TEST_FIELD_OFFSET(EMRREALIZEPALETTE, emr, 0)
}

static void test_pack_EMRRECTANGLE(void)
{
    /* EMRRECTANGLE */
    TEST_TYPE_SIZE   (EMRRECTANGLE, 24)
    TEST_TYPE_ALIGN  (EMRRECTANGLE, 4)
    TEST_FIELD_SIZE  (EMRRECTANGLE, emr, 8)
    TEST_FIELD_ALIGN (EMRRECTANGLE, emr, 4)
    TEST_FIELD_OFFSET(EMRRECTANGLE, emr, 0)
    TEST_FIELD_SIZE  (EMRRECTANGLE, rclBox, 16)
    TEST_FIELD_ALIGN (EMRRECTANGLE, rclBox, 4)
    TEST_FIELD_OFFSET(EMRRECTANGLE, rclBox, 8)
}

static void test_pack_EMRRESIZEPALETTE(void)
{
    /* EMRRESIZEPALETTE */
    TEST_TYPE_SIZE   (EMRRESIZEPALETTE, 16)
    TEST_TYPE_ALIGN  (EMRRESIZEPALETTE, 4)
    TEST_FIELD_SIZE  (EMRRESIZEPALETTE, emr, 8)
    TEST_FIELD_ALIGN (EMRRESIZEPALETTE, emr, 4)
    TEST_FIELD_OFFSET(EMRRESIZEPALETTE, emr, 0)
    TEST_FIELD_SIZE  (EMRRESIZEPALETTE, ihPal, 4)
    TEST_FIELD_ALIGN (EMRRESIZEPALETTE, ihPal, 4)
    TEST_FIELD_OFFSET(EMRRESIZEPALETTE, ihPal, 8)
    TEST_FIELD_SIZE  (EMRRESIZEPALETTE, cEntries, 4)
    TEST_FIELD_ALIGN (EMRRESIZEPALETTE, cEntries, 4)
    TEST_FIELD_OFFSET(EMRRESIZEPALETTE, cEntries, 12)
}

static void test_pack_EMRRESTOREDC(void)
{
    /* EMRRESTOREDC */
    TEST_TYPE_SIZE   (EMRRESTOREDC, 12)
    TEST_TYPE_ALIGN  (EMRRESTOREDC, 4)
    TEST_FIELD_SIZE  (EMRRESTOREDC, emr, 8)
    TEST_FIELD_ALIGN (EMRRESTOREDC, emr, 4)
    TEST_FIELD_OFFSET(EMRRESTOREDC, emr, 0)
    TEST_FIELD_SIZE  (EMRRESTOREDC, iRelative, 4)
    TEST_FIELD_ALIGN (EMRRESTOREDC, iRelative, 4)
    TEST_FIELD_OFFSET(EMRRESTOREDC, iRelative, 8)
}

static void test_pack_EMRROUNDRECT(void)
{
    /* EMRROUNDRECT */
    TEST_TYPE_SIZE   (EMRROUNDRECT, 32)
    TEST_TYPE_ALIGN  (EMRROUNDRECT, 4)
    TEST_FIELD_SIZE  (EMRROUNDRECT, emr, 8)
    TEST_FIELD_ALIGN (EMRROUNDRECT, emr, 4)
    TEST_FIELD_OFFSET(EMRROUNDRECT, emr, 0)
    TEST_FIELD_SIZE  (EMRROUNDRECT, rclBox, 16)
    TEST_FIELD_ALIGN (EMRROUNDRECT, rclBox, 4)
    TEST_FIELD_OFFSET(EMRROUNDRECT, rclBox, 8)
    TEST_FIELD_SIZE  (EMRROUNDRECT, szlCorner, 8)
    TEST_FIELD_ALIGN (EMRROUNDRECT, szlCorner, 4)
    TEST_FIELD_OFFSET(EMRROUNDRECT, szlCorner, 24)
}

static void test_pack_EMRSAVEDC(void)
{
    /* EMRSAVEDC */
    TEST_TYPE_SIZE   (EMRSAVEDC, 8)
    TEST_TYPE_ALIGN  (EMRSAVEDC, 4)
    TEST_FIELD_SIZE  (EMRSAVEDC, emr, 8)
    TEST_FIELD_ALIGN (EMRSAVEDC, emr, 4)
    TEST_FIELD_OFFSET(EMRSAVEDC, emr, 0)
}

static void test_pack_EMRSCALEVIEWPORTEXTEX(void)
{
    /* EMRSCALEVIEWPORTEXTEX */
    TEST_TYPE_SIZE   (EMRSCALEVIEWPORTEXTEX, 24)
    TEST_TYPE_ALIGN  (EMRSCALEVIEWPORTEXTEX, 4)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, xNum, 4)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, xNum, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, xNum, 8)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, xDenom, 4)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, xDenom, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, xDenom, 12)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, yNum, 4)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, yNum, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, yNum, 16)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, yDenom, 4)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, yDenom, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, yDenom, 20)
}

static void test_pack_EMRSCALEWINDOWEXTEX(void)
{
    /* EMRSCALEWINDOWEXTEX */
    TEST_TYPE_SIZE   (EMRSCALEWINDOWEXTEX, 24)
    TEST_TYPE_ALIGN  (EMRSCALEWINDOWEXTEX, 4)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, xNum, 4)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, xNum, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, xNum, 8)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, xDenom, 4)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, xDenom, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, xDenom, 12)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, yNum, 4)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, yNum, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, yNum, 16)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, yDenom, 4)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, yDenom, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, yDenom, 20)
}

static void test_pack_EMRSELECTCLIPPATH(void)
{
    /* EMRSELECTCLIPPATH */
    TEST_TYPE_SIZE   (EMRSELECTCLIPPATH, 12)
    TEST_TYPE_ALIGN  (EMRSELECTCLIPPATH, 4)
    TEST_FIELD_SIZE  (EMRSELECTCLIPPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRSELECTCLIPPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRSELECTCLIPPATH, emr, 0)
    TEST_FIELD_SIZE  (EMRSELECTCLIPPATH, iMode, 4)
    TEST_FIELD_ALIGN (EMRSELECTCLIPPATH, iMode, 4)
    TEST_FIELD_OFFSET(EMRSELECTCLIPPATH, iMode, 8)
}

static void test_pack_EMRSELECTCOLORSPACE(void)
{
    /* EMRSELECTCOLORSPACE */
    TEST_TYPE_SIZE   (EMRSELECTCOLORSPACE, 12)
    TEST_TYPE_ALIGN  (EMRSELECTCOLORSPACE, 4)
    TEST_FIELD_SIZE  (EMRSELECTCOLORSPACE, emr, 8)
    TEST_FIELD_ALIGN (EMRSELECTCOLORSPACE, emr, 4)
    TEST_FIELD_OFFSET(EMRSELECTCOLORSPACE, emr, 0)
    TEST_FIELD_SIZE  (EMRSELECTCOLORSPACE, ihCS, 4)
    TEST_FIELD_ALIGN (EMRSELECTCOLORSPACE, ihCS, 4)
    TEST_FIELD_OFFSET(EMRSELECTCOLORSPACE, ihCS, 8)
}

static void test_pack_EMRSELECTOBJECT(void)
{
    /* EMRSELECTOBJECT */
    TEST_TYPE_SIZE   (EMRSELECTOBJECT, 12)
    TEST_TYPE_ALIGN  (EMRSELECTOBJECT, 4)
    TEST_FIELD_SIZE  (EMRSELECTOBJECT, emr, 8)
    TEST_FIELD_ALIGN (EMRSELECTOBJECT, emr, 4)
    TEST_FIELD_OFFSET(EMRSELECTOBJECT, emr, 0)
    TEST_FIELD_SIZE  (EMRSELECTOBJECT, ihObject, 4)
    TEST_FIELD_ALIGN (EMRSELECTOBJECT, ihObject, 4)
    TEST_FIELD_OFFSET(EMRSELECTOBJECT, ihObject, 8)
}

static void test_pack_EMRSELECTPALETTE(void)
{
    /* EMRSELECTPALETTE */
    TEST_TYPE_SIZE   (EMRSELECTPALETTE, 12)
    TEST_TYPE_ALIGN  (EMRSELECTPALETTE, 4)
    TEST_FIELD_SIZE  (EMRSELECTPALETTE, emr, 8)
    TEST_FIELD_ALIGN (EMRSELECTPALETTE, emr, 4)
    TEST_FIELD_OFFSET(EMRSELECTPALETTE, emr, 0)
    TEST_FIELD_SIZE  (EMRSELECTPALETTE, ihPal, 4)
    TEST_FIELD_ALIGN (EMRSELECTPALETTE, ihPal, 4)
    TEST_FIELD_OFFSET(EMRSELECTPALETTE, ihPal, 8)
}

static void test_pack_EMRSETARCDIRECTION(void)
{
    /* EMRSETARCDIRECTION */
    TEST_TYPE_SIZE   (EMRSETARCDIRECTION, 12)
    TEST_TYPE_ALIGN  (EMRSETARCDIRECTION, 4)
    TEST_FIELD_SIZE  (EMRSETARCDIRECTION, emr, 8)
    TEST_FIELD_ALIGN (EMRSETARCDIRECTION, emr, 4)
    TEST_FIELD_OFFSET(EMRSETARCDIRECTION, emr, 0)
    TEST_FIELD_SIZE  (EMRSETARCDIRECTION, iArcDirection, 4)
    TEST_FIELD_ALIGN (EMRSETARCDIRECTION, iArcDirection, 4)
    TEST_FIELD_OFFSET(EMRSETARCDIRECTION, iArcDirection, 8)
}

static void test_pack_EMRSETBKCOLOR(void)
{
    /* EMRSETBKCOLOR */
    TEST_TYPE_SIZE   (EMRSETBKCOLOR, 12)
    TEST_TYPE_ALIGN  (EMRSETBKCOLOR, 4)
    TEST_FIELD_SIZE  (EMRSETBKCOLOR, emr, 8)
    TEST_FIELD_ALIGN (EMRSETBKCOLOR, emr, 4)
    TEST_FIELD_OFFSET(EMRSETBKCOLOR, emr, 0)
    TEST_FIELD_SIZE  (EMRSETBKCOLOR, crColor, 4)
    TEST_FIELD_ALIGN (EMRSETBKCOLOR, crColor, 4)
    TEST_FIELD_OFFSET(EMRSETBKCOLOR, crColor, 8)
}

static void test_pack_EMRSETBKMODE(void)
{
    /* EMRSETBKMODE */
    TEST_TYPE_SIZE   (EMRSETBKMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETBKMODE, 4)
    TEST_FIELD_SIZE  (EMRSETBKMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETBKMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETBKMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETBKMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETBKMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETBKMODE, iMode, 8)
}

static void test_pack_EMRSETBRUSHORGEX(void)
{
    /* EMRSETBRUSHORGEX */
    TEST_TYPE_SIZE   (EMRSETBRUSHORGEX, 16)
    TEST_TYPE_ALIGN  (EMRSETBRUSHORGEX, 4)
    TEST_FIELD_SIZE  (EMRSETBRUSHORGEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETBRUSHORGEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETBRUSHORGEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETBRUSHORGEX, ptlOrigin, 8)
    TEST_FIELD_ALIGN (EMRSETBRUSHORGEX, ptlOrigin, 4)
    TEST_FIELD_OFFSET(EMRSETBRUSHORGEX, ptlOrigin, 8)
}

static void test_pack_EMRSETCOLORADJUSTMENT(void)
{
    /* EMRSETCOLORADJUSTMENT */
    TEST_TYPE_SIZE   (EMRSETCOLORADJUSTMENT, 32)
    TEST_TYPE_ALIGN  (EMRSETCOLORADJUSTMENT, 4)
    TEST_FIELD_SIZE  (EMRSETCOLORADJUSTMENT, emr, 8)
    TEST_FIELD_ALIGN (EMRSETCOLORADJUSTMENT, emr, 4)
    TEST_FIELD_OFFSET(EMRSETCOLORADJUSTMENT, emr, 0)
    TEST_FIELD_SIZE  (EMRSETCOLORADJUSTMENT, ColorAdjustment, 24)
    TEST_FIELD_ALIGN (EMRSETCOLORADJUSTMENT, ColorAdjustment, 2)
    TEST_FIELD_OFFSET(EMRSETCOLORADJUSTMENT, ColorAdjustment, 8)
}

static void test_pack_EMRSETCOLORSPACE(void)
{
    /* EMRSETCOLORSPACE */
    TEST_TYPE_SIZE   (EMRSETCOLORSPACE, 12)
    TEST_TYPE_ALIGN  (EMRSETCOLORSPACE, 4)
    TEST_FIELD_SIZE  (EMRSETCOLORSPACE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETCOLORSPACE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETCOLORSPACE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETCOLORSPACE, ihCS, 4)
    TEST_FIELD_ALIGN (EMRSETCOLORSPACE, ihCS, 4)
    TEST_FIELD_OFFSET(EMRSETCOLORSPACE, ihCS, 8)
}

static void test_pack_EMRSETDIBITSTODEVICE(void)
{
    /* EMRSETDIBITSTODEVICE */
    TEST_TYPE_SIZE   (EMRSETDIBITSTODEVICE, 76)
    TEST_TYPE_ALIGN  (EMRSETDIBITSTODEVICE, 4)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, xDest, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, xDest, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, xDest, 24)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, yDest, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, yDest, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, yDest, 28)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, xSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, xSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, xSrc, 32)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, ySrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, ySrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, ySrc, 36)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cxSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cxSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cxSrc, 40)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cySrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cySrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cySrc, 44)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, offBmiSrc, 48)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cbBmiSrc, 52)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, offBitsSrc, 56)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cbBitsSrc, 60)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, iUsageSrc, 64)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, iStartScan, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, iStartScan, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, iStartScan, 68)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cScans, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cScans, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cScans, 72)
}

static void test_pack_EMRSETICMMODE(void)
{
    /* EMRSETICMMODE */
    TEST_TYPE_SIZE   (EMRSETICMMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETICMMODE, 4)
    TEST_FIELD_SIZE  (EMRSETICMMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETICMMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETICMMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETICMMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETICMMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETICMMODE, iMode, 8)
}

static void test_pack_EMRSETLAYOUT(void)
{
    /* EMRSETLAYOUT */
    TEST_TYPE_SIZE   (EMRSETLAYOUT, 12)
    TEST_TYPE_ALIGN  (EMRSETLAYOUT, 4)
    TEST_FIELD_SIZE  (EMRSETLAYOUT, emr, 8)
    TEST_FIELD_ALIGN (EMRSETLAYOUT, emr, 4)
    TEST_FIELD_OFFSET(EMRSETLAYOUT, emr, 0)
    TEST_FIELD_SIZE  (EMRSETLAYOUT, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETLAYOUT, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETLAYOUT, iMode, 8)
}

static void test_pack_EMRSETMAPMODE(void)
{
    /* EMRSETMAPMODE */
    TEST_TYPE_SIZE   (EMRSETMAPMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETMAPMODE, 4)
    TEST_FIELD_SIZE  (EMRSETMAPMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETMAPMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETMAPMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETMAPMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETMAPMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETMAPMODE, iMode, 8)
}

static void test_pack_EMRSETMAPPERFLAGS(void)
{
    /* EMRSETMAPPERFLAGS */
    TEST_TYPE_SIZE   (EMRSETMAPPERFLAGS, 12)
    TEST_TYPE_ALIGN  (EMRSETMAPPERFLAGS, 4)
    TEST_FIELD_SIZE  (EMRSETMAPPERFLAGS, emr, 8)
    TEST_FIELD_ALIGN (EMRSETMAPPERFLAGS, emr, 4)
    TEST_FIELD_OFFSET(EMRSETMAPPERFLAGS, emr, 0)
    TEST_FIELD_SIZE  (EMRSETMAPPERFLAGS, dwFlags, 4)
    TEST_FIELD_ALIGN (EMRSETMAPPERFLAGS, dwFlags, 4)
    TEST_FIELD_OFFSET(EMRSETMAPPERFLAGS, dwFlags, 8)
}

static void test_pack_EMRSETMETARGN(void)
{
    /* EMRSETMETARGN */
    TEST_TYPE_SIZE   (EMRSETMETARGN, 8)
    TEST_TYPE_ALIGN  (EMRSETMETARGN, 4)
    TEST_FIELD_SIZE  (EMRSETMETARGN, emr, 8)
    TEST_FIELD_ALIGN (EMRSETMETARGN, emr, 4)
    TEST_FIELD_OFFSET(EMRSETMETARGN, emr, 0)
}

static void test_pack_EMRSETMITERLIMIT(void)
{
    /* EMRSETMITERLIMIT */
    TEST_TYPE_SIZE   (EMRSETMITERLIMIT, 12)
    TEST_TYPE_ALIGN  (EMRSETMITERLIMIT, 4)
    TEST_FIELD_SIZE  (EMRSETMITERLIMIT, emr, 8)
    TEST_FIELD_ALIGN (EMRSETMITERLIMIT, emr, 4)
    TEST_FIELD_OFFSET(EMRSETMITERLIMIT, emr, 0)
    TEST_FIELD_SIZE  (EMRSETMITERLIMIT, eMiterLimit, 4)
    TEST_FIELD_ALIGN (EMRSETMITERLIMIT, eMiterLimit, 4)
    TEST_FIELD_OFFSET(EMRSETMITERLIMIT, eMiterLimit, 8)
}

static void test_pack_EMRSETPIXELV(void)
{
    /* EMRSETPIXELV */
    TEST_TYPE_SIZE   (EMRSETPIXELV, 20)
    TEST_TYPE_ALIGN  (EMRSETPIXELV, 4)
    TEST_FIELD_SIZE  (EMRSETPIXELV, emr, 8)
    TEST_FIELD_ALIGN (EMRSETPIXELV, emr, 4)
    TEST_FIELD_OFFSET(EMRSETPIXELV, emr, 0)
    TEST_FIELD_SIZE  (EMRSETPIXELV, ptlPixel, 8)
    TEST_FIELD_ALIGN (EMRSETPIXELV, ptlPixel, 4)
    TEST_FIELD_OFFSET(EMRSETPIXELV, ptlPixel, 8)
    TEST_FIELD_SIZE  (EMRSETPIXELV, crColor, 4)
    TEST_FIELD_ALIGN (EMRSETPIXELV, crColor, 4)
    TEST_FIELD_OFFSET(EMRSETPIXELV, crColor, 16)
}

static void test_pack_EMRSETPOLYFILLMODE(void)
{
    /* EMRSETPOLYFILLMODE */
    TEST_TYPE_SIZE   (EMRSETPOLYFILLMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETPOLYFILLMODE, 4)
    TEST_FIELD_SIZE  (EMRSETPOLYFILLMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETPOLYFILLMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETPOLYFILLMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETPOLYFILLMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETPOLYFILLMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETPOLYFILLMODE, iMode, 8)
}

static void test_pack_EMRSETROP2(void)
{
    /* EMRSETROP2 */
    TEST_TYPE_SIZE   (EMRSETROP2, 12)
    TEST_TYPE_ALIGN  (EMRSETROP2, 4)
    TEST_FIELD_SIZE  (EMRSETROP2, emr, 8)
    TEST_FIELD_ALIGN (EMRSETROP2, emr, 4)
    TEST_FIELD_OFFSET(EMRSETROP2, emr, 0)
    TEST_FIELD_SIZE  (EMRSETROP2, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETROP2, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETROP2, iMode, 8)
}

static void test_pack_EMRSETSTRETCHBLTMODE(void)
{
    /* EMRSETSTRETCHBLTMODE */
    TEST_TYPE_SIZE   (EMRSETSTRETCHBLTMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETSTRETCHBLTMODE, 4)
    TEST_FIELD_SIZE  (EMRSETSTRETCHBLTMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETSTRETCHBLTMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETSTRETCHBLTMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETSTRETCHBLTMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETSTRETCHBLTMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETSTRETCHBLTMODE, iMode, 8)
}

static void test_pack_EMRSETTEXTALIGN(void)
{
    /* EMRSETTEXTALIGN */
    TEST_TYPE_SIZE   (EMRSETTEXTALIGN, 12)
    TEST_TYPE_ALIGN  (EMRSETTEXTALIGN, 4)
    TEST_FIELD_SIZE  (EMRSETTEXTALIGN, emr, 8)
    TEST_FIELD_ALIGN (EMRSETTEXTALIGN, emr, 4)
    TEST_FIELD_OFFSET(EMRSETTEXTALIGN, emr, 0)
    TEST_FIELD_SIZE  (EMRSETTEXTALIGN, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETTEXTALIGN, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETTEXTALIGN, iMode, 8)
}

static void test_pack_EMRSETTEXTCOLOR(void)
{
    /* EMRSETTEXTCOLOR */
    TEST_TYPE_SIZE   (EMRSETTEXTCOLOR, 12)
    TEST_TYPE_ALIGN  (EMRSETTEXTCOLOR, 4)
    TEST_FIELD_SIZE  (EMRSETTEXTCOLOR, emr, 8)
    TEST_FIELD_ALIGN (EMRSETTEXTCOLOR, emr, 4)
    TEST_FIELD_OFFSET(EMRSETTEXTCOLOR, emr, 0)
    TEST_FIELD_SIZE  (EMRSETTEXTCOLOR, crColor, 4)
    TEST_FIELD_ALIGN (EMRSETTEXTCOLOR, crColor, 4)
    TEST_FIELD_OFFSET(EMRSETTEXTCOLOR, crColor, 8)
}

static void test_pack_EMRSETVIEWPORTEXTEX(void)
{
    /* EMRSETVIEWPORTEXTEX */
    TEST_TYPE_SIZE   (EMRSETVIEWPORTEXTEX, 16)
    TEST_TYPE_ALIGN  (EMRSETVIEWPORTEXTEX, 4)
    TEST_FIELD_SIZE  (EMRSETVIEWPORTEXTEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETVIEWPORTEXTEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETVIEWPORTEXTEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETVIEWPORTEXTEX, szlExtent, 8)
    TEST_FIELD_ALIGN (EMRSETVIEWPORTEXTEX, szlExtent, 4)
    TEST_FIELD_OFFSET(EMRSETVIEWPORTEXTEX, szlExtent, 8)
}

static void test_pack_EMRSETVIEWPORTORGEX(void)
{
    /* EMRSETVIEWPORTORGEX */
    TEST_TYPE_SIZE   (EMRSETVIEWPORTORGEX, 16)
    TEST_TYPE_ALIGN  (EMRSETVIEWPORTORGEX, 4)
    TEST_FIELD_SIZE  (EMRSETVIEWPORTORGEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETVIEWPORTORGEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETVIEWPORTORGEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETVIEWPORTORGEX, ptlOrigin, 8)
    TEST_FIELD_ALIGN (EMRSETVIEWPORTORGEX, ptlOrigin, 4)
    TEST_FIELD_OFFSET(EMRSETVIEWPORTORGEX, ptlOrigin, 8)
}

static void test_pack_EMRSETWINDOWEXTEX(void)
{
    /* EMRSETWINDOWEXTEX */
    TEST_TYPE_SIZE   (EMRSETWINDOWEXTEX, 16)
    TEST_TYPE_ALIGN  (EMRSETWINDOWEXTEX, 4)
    TEST_FIELD_SIZE  (EMRSETWINDOWEXTEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETWINDOWEXTEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETWINDOWEXTEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETWINDOWEXTEX, szlExtent, 8)
    TEST_FIELD_ALIGN (EMRSETWINDOWEXTEX, szlExtent, 4)
    TEST_FIELD_OFFSET(EMRSETWINDOWEXTEX, szlExtent, 8)
}

static void test_pack_EMRSETWINDOWORGEX(void)
{
    /* EMRSETWINDOWORGEX */
    TEST_TYPE_SIZE   (EMRSETWINDOWORGEX, 16)
    TEST_TYPE_ALIGN  (EMRSETWINDOWORGEX, 4)
    TEST_FIELD_SIZE  (EMRSETWINDOWORGEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETWINDOWORGEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETWINDOWORGEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETWINDOWORGEX, ptlOrigin, 8)
    TEST_FIELD_ALIGN (EMRSETWINDOWORGEX, ptlOrigin, 4)
    TEST_FIELD_OFFSET(EMRSETWINDOWORGEX, ptlOrigin, 8)
}

static void test_pack_EMRSETWORLDTRANSFORM(void)
{
    /* EMRSETWORLDTRANSFORM */
    TEST_TYPE_SIZE   (EMRSETWORLDTRANSFORM, 32)
    TEST_TYPE_ALIGN  (EMRSETWORLDTRANSFORM, 4)
    TEST_FIELD_SIZE  (EMRSETWORLDTRANSFORM, emr, 8)
    TEST_FIELD_ALIGN (EMRSETWORLDTRANSFORM, emr, 4)
    TEST_FIELD_OFFSET(EMRSETWORLDTRANSFORM, emr, 0)
    TEST_FIELD_SIZE  (EMRSETWORLDTRANSFORM, xform, 24)
    TEST_FIELD_ALIGN (EMRSETWORLDTRANSFORM, xform, 4)
    TEST_FIELD_OFFSET(EMRSETWORLDTRANSFORM, xform, 8)
}

static void test_pack_EMRSTRETCHBLT(void)
{
    /* EMRSTRETCHBLT */
    TEST_TYPE_SIZE   (EMRSTRETCHBLT, 108)
    TEST_TYPE_ALIGN  (EMRSTRETCHBLT, 4)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, emr, 8)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, emr, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, emr, 0)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, xDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, xDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, xDest, 24)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, yDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, yDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, yDest, 28)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cxDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cxDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cxDest, 32)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cyDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cyDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cyDest, 36)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, dwRop, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, dwRop, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, dwRop, 40)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, xSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, xSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, xSrc, 44)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, ySrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, ySrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, ySrc, 48)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, xformSrc, 24)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, xformSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, xformSrc, 52)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, crBkColorSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, crBkColorSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, crBkColorSrc, 76)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, iUsageSrc, 80)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, offBmiSrc, 84)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cbBmiSrc, 88)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, offBitsSrc, 92)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cbBitsSrc, 96)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cxSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cxSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cxSrc, 100)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cySrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cySrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cySrc, 104)
}

static void test_pack_EMRSTRETCHDIBITS(void)
{
    /* EMRSTRETCHDIBITS */
    TEST_TYPE_SIZE   (EMRSTRETCHDIBITS, 80)
    TEST_TYPE_ALIGN  (EMRSTRETCHDIBITS, 4)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, emr, 8)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, emr, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, emr, 0)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, xDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, xDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, xDest, 24)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, yDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, yDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, yDest, 28)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, xSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, xSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, xSrc, 32)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, ySrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, ySrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, ySrc, 36)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cxSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cxSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cxSrc, 40)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cySrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cySrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cySrc, 44)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, offBmiSrc, 48)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cbBmiSrc, 52)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, offBitsSrc, 56)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cbBitsSrc, 60)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, iUsageSrc, 64)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, dwRop, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, dwRop, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, dwRop, 68)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cxDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cxDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cxDest, 72)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cyDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cyDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cyDest, 76)
}

static void test_pack_EMRSTROKEANDFILLPATH(void)
{
    /* EMRSTROKEANDFILLPATH */
    TEST_TYPE_SIZE   (EMRSTROKEANDFILLPATH, 24)
    TEST_TYPE_ALIGN  (EMRSTROKEANDFILLPATH, 4)
    TEST_FIELD_SIZE  (EMRSTROKEANDFILLPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRSTROKEANDFILLPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRSTROKEANDFILLPATH, emr, 0)
    TEST_FIELD_SIZE  (EMRSTROKEANDFILLPATH, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSTROKEANDFILLPATH, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSTROKEANDFILLPATH, rclBounds, 8)
}

static void test_pack_EMRSTROKEPATH(void)
{
    /* EMRSTROKEPATH */
    TEST_TYPE_SIZE   (EMRSTROKEPATH, 24)
    TEST_TYPE_ALIGN  (EMRSTROKEPATH, 4)
    TEST_FIELD_SIZE  (EMRSTROKEPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRSTROKEPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRSTROKEPATH, emr, 0)
    TEST_FIELD_SIZE  (EMRSTROKEPATH, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSTROKEPATH, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSTROKEPATH, rclBounds, 8)
}

static void test_pack_EMRTEXT(void)
{
    /* EMRTEXT */
    TEST_TYPE_SIZE   (EMRTEXT, 40)
    TEST_TYPE_ALIGN  (EMRTEXT, 4)
    TEST_FIELD_SIZE  (EMRTEXT, ptlReference, 8)
    TEST_FIELD_ALIGN (EMRTEXT, ptlReference, 4)
    TEST_FIELD_OFFSET(EMRTEXT, ptlReference, 0)
    TEST_FIELD_SIZE  (EMRTEXT, nChars, 4)
    TEST_FIELD_ALIGN (EMRTEXT, nChars, 4)
    TEST_FIELD_OFFSET(EMRTEXT, nChars, 8)
    TEST_FIELD_SIZE  (EMRTEXT, offString, 4)
    TEST_FIELD_ALIGN (EMRTEXT, offString, 4)
    TEST_FIELD_OFFSET(EMRTEXT, offString, 12)
    TEST_FIELD_SIZE  (EMRTEXT, fOptions, 4)
    TEST_FIELD_ALIGN (EMRTEXT, fOptions, 4)
    TEST_FIELD_OFFSET(EMRTEXT, fOptions, 16)
    TEST_FIELD_SIZE  (EMRTEXT, rcl, 16)
    TEST_FIELD_ALIGN (EMRTEXT, rcl, 4)
    TEST_FIELD_OFFSET(EMRTEXT, rcl, 20)
    TEST_FIELD_SIZE  (EMRTEXT, offDx, 4)
    TEST_FIELD_ALIGN (EMRTEXT, offDx, 4)
    TEST_FIELD_OFFSET(EMRTEXT, offDx, 36)
}

static void test_pack_EMRWIDENPATH(void)
{
    /* EMRWIDENPATH */
    TEST_TYPE_SIZE   (EMRWIDENPATH, 8)
    TEST_TYPE_ALIGN  (EMRWIDENPATH, 4)
    TEST_FIELD_SIZE  (EMRWIDENPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRWIDENPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRWIDENPATH, emr, 0)
}

static void test_pack_ENHMETAHEADER(void)
{
    /* ENHMETAHEADER */
    TEST_TYPE_SIZE   (ENHMETAHEADER, 108)
    TEST_TYPE_ALIGN  (ENHMETAHEADER, 4)
    TEST_FIELD_SIZE  (ENHMETAHEADER, iType, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, iType, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, iType, 0)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nSize, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nSize, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nSize, 4)
    TEST_FIELD_SIZE  (ENHMETAHEADER, rclBounds, 16)
    TEST_FIELD_ALIGN (ENHMETAHEADER, rclBounds, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, rclBounds, 8)
    TEST_FIELD_SIZE  (ENHMETAHEADER, rclFrame, 16)
    TEST_FIELD_ALIGN (ENHMETAHEADER, rclFrame, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, rclFrame, 24)
    TEST_FIELD_SIZE  (ENHMETAHEADER, dSignature, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, dSignature, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, dSignature, 40)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nVersion, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nVersion, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nVersion, 44)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nBytes, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nBytes, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nBytes, 48)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nRecords, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nRecords, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nRecords, 52)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nHandles, 2)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nHandles, 2)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nHandles, 56)
    TEST_FIELD_SIZE  (ENHMETAHEADER, sReserved, 2)
    TEST_FIELD_ALIGN (ENHMETAHEADER, sReserved, 2)
    TEST_FIELD_OFFSET(ENHMETAHEADER, sReserved, 58)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nDescription, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nDescription, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nDescription, 60)
    TEST_FIELD_SIZE  (ENHMETAHEADER, offDescription, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, offDescription, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, offDescription, 64)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nPalEntries, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nPalEntries, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nPalEntries, 68)
    TEST_FIELD_SIZE  (ENHMETAHEADER, szlDevice, 8)
    TEST_FIELD_ALIGN (ENHMETAHEADER, szlDevice, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, szlDevice, 72)
    TEST_FIELD_SIZE  (ENHMETAHEADER, szlMillimeters, 8)
    TEST_FIELD_ALIGN (ENHMETAHEADER, szlMillimeters, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, szlMillimeters, 80)
    TEST_FIELD_SIZE  (ENHMETAHEADER, cbPixelFormat, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, cbPixelFormat, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, cbPixelFormat, 88)
    TEST_FIELD_SIZE  (ENHMETAHEADER, offPixelFormat, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, offPixelFormat, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, offPixelFormat, 92)
    TEST_FIELD_SIZE  (ENHMETAHEADER, bOpenGL, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, bOpenGL, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, bOpenGL, 96)
    TEST_FIELD_SIZE  (ENHMETAHEADER, szlMicrometers, 8)
    TEST_FIELD_ALIGN (ENHMETAHEADER, szlMicrometers, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, szlMicrometers, 100)
}

static void test_pack_ENHMETARECORD(void)
{
    /* ENHMETARECORD */
    TEST_TYPE_SIZE   (ENHMETARECORD, 12)
    TEST_TYPE_ALIGN  (ENHMETARECORD, 4)
    TEST_FIELD_SIZE  (ENHMETARECORD, iType, 4)
    TEST_FIELD_ALIGN (ENHMETARECORD, iType, 4)
    TEST_FIELD_OFFSET(ENHMETARECORD, iType, 0)
    TEST_FIELD_SIZE  (ENHMETARECORD, nSize, 4)
    TEST_FIELD_ALIGN (ENHMETARECORD, nSize, 4)
    TEST_FIELD_OFFSET(ENHMETARECORD, nSize, 4)
    TEST_FIELD_SIZE  (ENHMETARECORD, dParm, 4)
    TEST_FIELD_ALIGN (ENHMETARECORD, dParm, 4)
    TEST_FIELD_OFFSET(ENHMETARECORD, dParm, 8)
}

static void test_pack_ENHMFENUMPROC(void)
{
    /* ENHMFENUMPROC */
    TEST_TYPE_SIZE   (ENHMFENUMPROC, 8)
    TEST_TYPE_ALIGN  (ENHMFENUMPROC, 8)
}

static void test_pack_ENUMLOGFONTA(void)
{
    /* ENUMLOGFONTA */
    TEST_TYPE_SIZE   (ENUMLOGFONTA, 156)
    TEST_TYPE_ALIGN  (ENUMLOGFONTA, 4)
    TEST_FIELD_SIZE  (ENUMLOGFONTA, elfLogFont, 60)
    TEST_FIELD_ALIGN (ENUMLOGFONTA, elfLogFont, 4)
    TEST_FIELD_OFFSET(ENUMLOGFONTA, elfLogFont, 0)
    TEST_FIELD_SIZE  (ENUMLOGFONTA, elfFullName, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTA, elfFullName, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTA, elfFullName, 60)
    TEST_FIELD_SIZE  (ENUMLOGFONTA, elfStyle, 32)
    TEST_FIELD_ALIGN (ENUMLOGFONTA, elfStyle, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTA, elfStyle, 124)
}

static void test_pack_ENUMLOGFONTEXA(void)
{
    /* ENUMLOGFONTEXA */
    TEST_TYPE_SIZE   (ENUMLOGFONTEXA, 188)
    TEST_TYPE_ALIGN  (ENUMLOGFONTEXA, 4)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXA, elfLogFont, 60)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXA, elfLogFont, 4)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXA, elfLogFont, 0)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXA, elfFullName, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXA, elfFullName, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXA, elfFullName, 60)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXA, elfStyle, 32)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXA, elfStyle, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXA, elfStyle, 124)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXA, elfScript, 32)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXA, elfScript, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXA, elfScript, 156)
}

static void test_pack_ENUMLOGFONTEXW(void)
{
    /* ENUMLOGFONTEXW */
    TEST_TYPE_SIZE   (ENUMLOGFONTEXW, 348)
    TEST_TYPE_ALIGN  (ENUMLOGFONTEXW, 4)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXW, elfLogFont, 92)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXW, elfLogFont, 4)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXW, elfLogFont, 0)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXW, elfFullName, 128)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXW, elfFullName, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXW, elfFullName, 92)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXW, elfStyle, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXW, elfStyle, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXW, elfStyle, 220)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXW, elfScript, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXW, elfScript, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXW, elfScript, 284)
}

static void test_pack_ENUMLOGFONTW(void)
{
    /* ENUMLOGFONTW */
    TEST_TYPE_SIZE   (ENUMLOGFONTW, 284)
    TEST_TYPE_ALIGN  (ENUMLOGFONTW, 4)
    TEST_FIELD_SIZE  (ENUMLOGFONTW, elfLogFont, 92)
    TEST_FIELD_ALIGN (ENUMLOGFONTW, elfLogFont, 4)
    TEST_FIELD_OFFSET(ENUMLOGFONTW, elfLogFont, 0)
    TEST_FIELD_SIZE  (ENUMLOGFONTW, elfFullName, 128)
    TEST_FIELD_ALIGN (ENUMLOGFONTW, elfFullName, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTW, elfFullName, 92)
    TEST_FIELD_SIZE  (ENUMLOGFONTW, elfStyle, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTW, elfStyle, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTW, elfStyle, 220)
}

static void test_pack_EXTLOGFONTA(void)
{
    /* EXTLOGFONTA */
    TEST_TYPE_SIZE   (EXTLOGFONTA, 192)
    TEST_TYPE_ALIGN  (EXTLOGFONTA, 4)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfLogFont, 60)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfLogFont, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfLogFont, 0)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfFullName, 64)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfFullName, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfFullName, 60)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfStyle, 32)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfStyle, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfStyle, 124)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfVersion, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfVersion, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfVersion, 156)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfStyleSize, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfStyleSize, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfStyleSize, 160)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfMatch, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfMatch, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfMatch, 164)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfReserved, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfReserved, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfReserved, 168)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfVendorId, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfVendorId, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfVendorId, 172)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfCulture, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfCulture, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfCulture, 176)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfPanose, 10)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfPanose, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfPanose, 180)
}

static void test_pack_EXTLOGFONTW(void)
{
    /* EXTLOGFONTW */
    TEST_TYPE_SIZE   (EXTLOGFONTW, 320)
    TEST_TYPE_ALIGN  (EXTLOGFONTW, 4)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfLogFont, 92)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfLogFont, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfLogFont, 0)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfFullName, 128)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfFullName, 2)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfFullName, 92)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfStyle, 64)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfStyle, 2)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfStyle, 220)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfVersion, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfVersion, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfVersion, 284)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfStyleSize, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfStyleSize, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfStyleSize, 288)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfMatch, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfMatch, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfMatch, 292)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfReserved, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfReserved, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfReserved, 296)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfVendorId, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfVendorId, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfVendorId, 300)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfCulture, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfCulture, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfCulture, 304)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfPanose, 10)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfPanose, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfPanose, 308)
}

static void test_pack_EXTLOGPEN(void)
{
    /* EXTLOGPEN */
    TEST_TYPE_SIZE   (EXTLOGPEN, 32)
    TEST_TYPE_ALIGN  (EXTLOGPEN, 8)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpPenStyle, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpPenStyle, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpPenStyle, 0)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpWidth, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpWidth, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpWidth, 4)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpBrushStyle, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpBrushStyle, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpBrushStyle, 8)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpColor, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpColor, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpColor, 12)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpHatch, 8)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpHatch, 8)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpHatch, 16)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpNumEntries, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpNumEntries, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpNumEntries, 24)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpStyleEntry, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpStyleEntry, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpStyleEntry, 28)
}

static void test_pack_FIXED(void)
{
    /* FIXED */
    TEST_TYPE_SIZE   (FIXED, 4)
    TEST_TYPE_ALIGN  (FIXED, 2)
    TEST_FIELD_SIZE  (FIXED, fract, 2)
    TEST_FIELD_ALIGN (FIXED, fract, 2)
    TEST_FIELD_OFFSET(FIXED, fract, 0)
    TEST_FIELD_SIZE  (FIXED, value, 2)
    TEST_FIELD_ALIGN (FIXED, value, 2)
    TEST_FIELD_OFFSET(FIXED, value, 2)
}

static void test_pack_FONTENUMPROCA(void)
{
    /* FONTENUMPROCA */
    TEST_TYPE_SIZE   (FONTENUMPROCA, 8)
    TEST_TYPE_ALIGN  (FONTENUMPROCA, 8)
}

static void test_pack_FONTENUMPROCW(void)
{
    /* FONTENUMPROCW */
    TEST_TYPE_SIZE   (FONTENUMPROCW, 8)
    TEST_TYPE_ALIGN  (FONTENUMPROCW, 8)
}

static void test_pack_FONTSIGNATURE(void)
{
    /* FONTSIGNATURE */
    TEST_TYPE_SIZE   (FONTSIGNATURE, 24)
    TEST_TYPE_ALIGN  (FONTSIGNATURE, 4)
    TEST_FIELD_SIZE  (FONTSIGNATURE, fsUsb, 16)
    TEST_FIELD_ALIGN (FONTSIGNATURE, fsUsb, 4)
    TEST_FIELD_OFFSET(FONTSIGNATURE, fsUsb, 0)
    TEST_FIELD_SIZE  (FONTSIGNATURE, fsCsb, 8)
    TEST_FIELD_ALIGN (FONTSIGNATURE, fsCsb, 4)
    TEST_FIELD_OFFSET(FONTSIGNATURE, fsCsb, 16)
}

static void test_pack_FXPT16DOT16(void)
{
    /* FXPT16DOT16 */
    TEST_TYPE_SIZE   (FXPT16DOT16, 4)
    TEST_TYPE_ALIGN  (FXPT16DOT16, 4)
}

static void test_pack_FXPT2DOT30(void)
{
    /* FXPT2DOT30 */
    TEST_TYPE_SIZE   (FXPT2DOT30, 4)
    TEST_TYPE_ALIGN  (FXPT2DOT30, 4)
}

static void test_pack_GCP_RESULTSA(void)
{
    /* GCP_RESULTSA */
    TEST_TYPE_SIZE   (GCP_RESULTSA, 64)
    TEST_TYPE_ALIGN  (GCP_RESULTSA, 8)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lStructSize, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lStructSize, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lStructSize, 0)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpOutString, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpOutString, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpOutString, 8)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpOrder, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpOrder, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpOrder, 16)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpDx, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpDx, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpDx, 24)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpCaretPos, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpCaretPos, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpCaretPos, 32)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpClass, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpClass, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpClass, 40)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpGlyphs, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpGlyphs, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpGlyphs, 48)
    TEST_FIELD_SIZE  (GCP_RESULTSA, nGlyphs, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, nGlyphs, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, nGlyphs, 56)
    TEST_FIELD_SIZE  (GCP_RESULTSA, nMaxFit, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, nMaxFit, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, nMaxFit, 60)
}

static void test_pack_GCP_RESULTSW(void)
{
    /* GCP_RESULTSW */
    TEST_TYPE_SIZE   (GCP_RESULTSW, 64)
    TEST_TYPE_ALIGN  (GCP_RESULTSW, 8)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lStructSize, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lStructSize, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lStructSize, 0)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpOutString, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpOutString, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpOutString, 8)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpOrder, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpOrder, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpOrder, 16)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpDx, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpDx, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpDx, 24)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpCaretPos, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpCaretPos, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpCaretPos, 32)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpClass, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpClass, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpClass, 40)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpGlyphs, 8)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpGlyphs, 8)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpGlyphs, 48)
    TEST_FIELD_SIZE  (GCP_RESULTSW, nGlyphs, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, nGlyphs, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, nGlyphs, 56)
    TEST_FIELD_SIZE  (GCP_RESULTSW, nMaxFit, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, nMaxFit, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, nMaxFit, 60)
}

static void test_pack_GLYPHMETRICS(void)
{
    /* GLYPHMETRICS */
    TEST_TYPE_SIZE   (GLYPHMETRICS, 20)
    TEST_TYPE_ALIGN  (GLYPHMETRICS, 4)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmBlackBoxX, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmBlackBoxX, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmBlackBoxX, 0)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmBlackBoxY, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmBlackBoxY, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmBlackBoxY, 4)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmptGlyphOrigin, 8)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmptGlyphOrigin, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmptGlyphOrigin, 8)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmCellIncX, 2)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmCellIncX, 2)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmCellIncX, 16)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmCellIncY, 2)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmCellIncY, 2)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmCellIncY, 18)
}

static void test_pack_GLYPHMETRICSFLOAT(void)
{
    /* GLYPHMETRICSFLOAT */
    TEST_TYPE_SIZE   (GLYPHMETRICSFLOAT, 24)
    TEST_TYPE_ALIGN  (GLYPHMETRICSFLOAT, 4)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfBlackBoxX, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfBlackBoxX, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfBlackBoxX, 0)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfBlackBoxY, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfBlackBoxY, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfBlackBoxY, 4)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfptGlyphOrigin, 8)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfptGlyphOrigin, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfptGlyphOrigin, 8)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfCellIncX, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfCellIncX, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfCellIncX, 16)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfCellIncY, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfCellIncY, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfCellIncY, 20)
}

static void test_pack_GOBJENUMPROC(void)
{
    /* GOBJENUMPROC */
    TEST_TYPE_SIZE   (GOBJENUMPROC, 8)
    TEST_TYPE_ALIGN  (GOBJENUMPROC, 8)
}

static void test_pack_GRADIENT_RECT(void)
{
    /* GRADIENT_RECT */
    TEST_TYPE_SIZE   (GRADIENT_RECT, 8)
    TEST_TYPE_ALIGN  (GRADIENT_RECT, 4)
    TEST_FIELD_SIZE  (GRADIENT_RECT, UpperLeft, 4)
    TEST_FIELD_ALIGN (GRADIENT_RECT, UpperLeft, 4)
    TEST_FIELD_OFFSET(GRADIENT_RECT, UpperLeft, 0)
    TEST_FIELD_SIZE  (GRADIENT_RECT, LowerRight, 4)
    TEST_FIELD_ALIGN (GRADIENT_RECT, LowerRight, 4)
    TEST_FIELD_OFFSET(GRADIENT_RECT, LowerRight, 4)
}

static void test_pack_GRADIENT_TRIANGLE(void)
{
    /* GRADIENT_TRIANGLE */
    TEST_TYPE_SIZE   (GRADIENT_TRIANGLE, 12)
    TEST_TYPE_ALIGN  (GRADIENT_TRIANGLE, 4)
    TEST_FIELD_SIZE  (GRADIENT_TRIANGLE, Vertex1, 4)
    TEST_FIELD_ALIGN (GRADIENT_TRIANGLE, Vertex1, 4)
    TEST_FIELD_OFFSET(GRADIENT_TRIANGLE, Vertex1, 0)
    TEST_FIELD_SIZE  (GRADIENT_TRIANGLE, Vertex2, 4)
    TEST_FIELD_ALIGN (GRADIENT_TRIANGLE, Vertex2, 4)
    TEST_FIELD_OFFSET(GRADIENT_TRIANGLE, Vertex2, 4)
    TEST_FIELD_SIZE  (GRADIENT_TRIANGLE, Vertex3, 4)
    TEST_FIELD_ALIGN (GRADIENT_TRIANGLE, Vertex3, 4)
    TEST_FIELD_OFFSET(GRADIENT_TRIANGLE, Vertex3, 8)
}

static void test_pack_HANDLETABLE(void)
{
    /* HANDLETABLE */
    TEST_TYPE_SIZE   (HANDLETABLE, 8)
    TEST_TYPE_ALIGN  (HANDLETABLE, 8)
    TEST_FIELD_SIZE  (HANDLETABLE, objectHandle, 8)
    TEST_FIELD_ALIGN (HANDLETABLE, objectHandle, 8)
    TEST_FIELD_OFFSET(HANDLETABLE, objectHandle, 0)
}

static void test_pack_ICMENUMPROCA(void)
{
    /* ICMENUMPROCA */
    TEST_TYPE_SIZE   (ICMENUMPROCA, 8)
    TEST_TYPE_ALIGN  (ICMENUMPROCA, 8)
}

static void test_pack_ICMENUMPROCW(void)
{
    /* ICMENUMPROCW */
    TEST_TYPE_SIZE   (ICMENUMPROCW, 8)
    TEST_TYPE_ALIGN  (ICMENUMPROCW, 8)
}

static void test_pack_KERNINGPAIR(void)
{
    /* KERNINGPAIR */
    TEST_TYPE_SIZE   (KERNINGPAIR, 8)
    TEST_TYPE_ALIGN  (KERNINGPAIR, 4)
    TEST_FIELD_SIZE  (KERNINGPAIR, wFirst, 2)
    TEST_FIELD_ALIGN (KERNINGPAIR, wFirst, 2)
    TEST_FIELD_OFFSET(KERNINGPAIR, wFirst, 0)
    TEST_FIELD_SIZE  (KERNINGPAIR, wSecond, 2)
    TEST_FIELD_ALIGN (KERNINGPAIR, wSecond, 2)
    TEST_FIELD_OFFSET(KERNINGPAIR, wSecond, 2)
    TEST_FIELD_SIZE  (KERNINGPAIR, iKernAmount, 4)
    TEST_FIELD_ALIGN (KERNINGPAIR, iKernAmount, 4)
    TEST_FIELD_OFFSET(KERNINGPAIR, iKernAmount, 4)
}

static void test_pack_LAYERPLANEDESCRIPTOR(void)
{
    /* LAYERPLANEDESCRIPTOR */
    TEST_TYPE_SIZE   (LAYERPLANEDESCRIPTOR, 32)
    TEST_TYPE_ALIGN  (LAYERPLANEDESCRIPTOR, 4)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, nSize, 2)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, nSize, 2)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, nSize, 0)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, nVersion, 2)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, nVersion, 2)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, nVersion, 2)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, iPixelType, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, iPixelType, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, iPixelType, 8)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cColorBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cColorBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cColorBits, 9)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cRedBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cRedBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cRedBits, 10)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cRedShift, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cRedShift, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cRedShift, 11)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cGreenBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cGreenBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cGreenBits, 12)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cGreenShift, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cGreenShift, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cGreenShift, 13)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cBlueBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cBlueBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cBlueBits, 14)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cBlueShift, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cBlueShift, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cBlueShift, 15)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAlphaBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAlphaBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAlphaBits, 16)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAlphaShift, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAlphaShift, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAlphaShift, 17)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumBits, 18)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumRedBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumRedBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumRedBits, 19)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumGreenBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumGreenBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumGreenBits, 20)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumBlueBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumBlueBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumBlueBits, 21)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumAlphaBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumAlphaBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumAlphaBits, 22)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cDepthBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cDepthBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cDepthBits, 23)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cStencilBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cStencilBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cStencilBits, 24)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAuxBuffers, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAuxBuffers, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAuxBuffers, 25)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, iLayerPlane, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, iLayerPlane, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, iLayerPlane, 26)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, bReserved, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, bReserved, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, bReserved, 27)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, crTransparent, 4)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, crTransparent, 4)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, crTransparent, 28)
}

static void test_pack_LCSCSTYPE(void)
{
    /* LCSCSTYPE */
    TEST_TYPE_SIZE   (LCSCSTYPE, 4)
    TEST_TYPE_ALIGN  (LCSCSTYPE, 4)
}

static void test_pack_LCSGAMUTMATCH(void)
{
    /* LCSGAMUTMATCH */
    TEST_TYPE_SIZE   (LCSGAMUTMATCH, 4)
    TEST_TYPE_ALIGN  (LCSGAMUTMATCH, 4)
}

static void test_pack_LINEDDAPROC(void)
{
    /* LINEDDAPROC */
    TEST_TYPE_SIZE   (LINEDDAPROC, 8)
    TEST_TYPE_ALIGN  (LINEDDAPROC, 8)
}

static void test_pack_LOCALESIGNATURE(void)
{
    /* LOCALESIGNATURE */
    TEST_TYPE_SIZE   (LOCALESIGNATURE, 32)
    TEST_TYPE_ALIGN  (LOCALESIGNATURE, 4)
    TEST_FIELD_SIZE  (LOCALESIGNATURE, lsUsb, 16)
    TEST_FIELD_ALIGN (LOCALESIGNATURE, lsUsb, 4)
    TEST_FIELD_OFFSET(LOCALESIGNATURE, lsUsb, 0)
    TEST_FIELD_SIZE  (LOCALESIGNATURE, lsCsbDefault, 8)
    TEST_FIELD_ALIGN (LOCALESIGNATURE, lsCsbDefault, 4)
    TEST_FIELD_OFFSET(LOCALESIGNATURE, lsCsbDefault, 16)
    TEST_FIELD_SIZE  (LOCALESIGNATURE, lsCsbSupported, 8)
    TEST_FIELD_ALIGN (LOCALESIGNATURE, lsCsbSupported, 4)
    TEST_FIELD_OFFSET(LOCALESIGNATURE, lsCsbSupported, 24)
}

static void test_pack_LOGBRUSH(void)
{
    /* LOGBRUSH */
    TEST_TYPE_SIZE   (LOGBRUSH, 16)
    TEST_TYPE_ALIGN  (LOGBRUSH, 8)
    TEST_FIELD_SIZE  (LOGBRUSH, lbStyle, 4)
    TEST_FIELD_ALIGN (LOGBRUSH, lbStyle, 4)
    TEST_FIELD_OFFSET(LOGBRUSH, lbStyle, 0)
    TEST_FIELD_SIZE  (LOGBRUSH, lbColor, 4)
    TEST_FIELD_ALIGN (LOGBRUSH, lbColor, 4)
    TEST_FIELD_OFFSET(LOGBRUSH, lbColor, 4)
    TEST_FIELD_SIZE  (LOGBRUSH, lbHatch, 8)
    TEST_FIELD_ALIGN (LOGBRUSH, lbHatch, 8)
    TEST_FIELD_OFFSET(LOGBRUSH, lbHatch, 8)
}

static void test_pack_LOGCOLORSPACEA(void)
{
    /* LOGCOLORSPACEA */
    TEST_TYPE_SIZE   (LOGCOLORSPACEA, 328)
    TEST_TYPE_ALIGN  (LOGCOLORSPACEA, 4)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsSignature, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsSignature, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsSignature, 0)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsVersion, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsVersion, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsVersion, 4)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsSize, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsSize, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsSize, 8)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsCSType, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsCSType, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsCSType, 12)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsIntent, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsIntent, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsIntent, 16)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsEndpoints, 36)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsEndpoints, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsEndpoints, 20)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsGammaRed, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsGammaRed, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsGammaRed, 56)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsGammaGreen, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsGammaGreen, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsGammaGreen, 60)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsGammaBlue, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsGammaBlue, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsGammaBlue, 64)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsFilename, 260)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsFilename, 1)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsFilename, 68)
}

static void test_pack_LOGCOLORSPACEW(void)
{
    /* LOGCOLORSPACEW */
    TEST_TYPE_SIZE   (LOGCOLORSPACEW, 588)
    TEST_TYPE_ALIGN  (LOGCOLORSPACEW, 4)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsSignature, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsSignature, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsSignature, 0)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsVersion, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsVersion, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsVersion, 4)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsSize, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsSize, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsSize, 8)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsCSType, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsCSType, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsCSType, 12)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsIntent, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsIntent, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsIntent, 16)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsEndpoints, 36)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsEndpoints, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsEndpoints, 20)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsGammaRed, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsGammaRed, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsGammaRed, 56)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsGammaGreen, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsGammaGreen, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsGammaGreen, 60)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsGammaBlue, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsGammaBlue, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsGammaBlue, 64)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsFilename, 520)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsFilename, 2)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsFilename, 68)
}

static void test_pack_LOGFONTA(void)
{
    /* LOGFONTA */
    TEST_TYPE_SIZE   (LOGFONTA, 60)
    TEST_TYPE_ALIGN  (LOGFONTA, 4)
    TEST_FIELD_SIZE  (LOGFONTA, lfHeight, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfHeight, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfHeight, 0)
    TEST_FIELD_SIZE  (LOGFONTA, lfWidth, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfWidth, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfWidth, 4)
    TEST_FIELD_SIZE  (LOGFONTA, lfEscapement, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfEscapement, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfEscapement, 8)
    TEST_FIELD_SIZE  (LOGFONTA, lfOrientation, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfOrientation, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfOrientation, 12)
    TEST_FIELD_SIZE  (LOGFONTA, lfWeight, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfWeight, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfWeight, 16)
    TEST_FIELD_SIZE  (LOGFONTA, lfItalic, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfItalic, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfItalic, 20)
    TEST_FIELD_SIZE  (LOGFONTA, lfUnderline, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfUnderline, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfUnderline, 21)
    TEST_FIELD_SIZE  (LOGFONTA, lfStrikeOut, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfStrikeOut, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfStrikeOut, 22)
    TEST_FIELD_SIZE  (LOGFONTA, lfCharSet, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfCharSet, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfCharSet, 23)
    TEST_FIELD_SIZE  (LOGFONTA, lfOutPrecision, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfOutPrecision, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfOutPrecision, 24)
    TEST_FIELD_SIZE  (LOGFONTA, lfClipPrecision, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfClipPrecision, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfClipPrecision, 25)
    TEST_FIELD_SIZE  (LOGFONTA, lfQuality, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfQuality, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfQuality, 26)
    TEST_FIELD_SIZE  (LOGFONTA, lfPitchAndFamily, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfPitchAndFamily, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfPitchAndFamily, 27)
    TEST_FIELD_SIZE  (LOGFONTA, lfFaceName, 32)
    TEST_FIELD_ALIGN (LOGFONTA, lfFaceName, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfFaceName, 28)
}

static void test_pack_LOGFONTW(void)
{
    /* LOGFONTW */
    TEST_TYPE_SIZE   (LOGFONTW, 92)
    TEST_TYPE_ALIGN  (LOGFONTW, 4)
    TEST_FIELD_SIZE  (LOGFONTW, lfHeight, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfHeight, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfHeight, 0)
    TEST_FIELD_SIZE  (LOGFONTW, lfWidth, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfWidth, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfWidth, 4)
    TEST_FIELD_SIZE  (LOGFONTW, lfEscapement, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfEscapement, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfEscapement, 8)
    TEST_FIELD_SIZE  (LOGFONTW, lfOrientation, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfOrientation, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfOrientation, 12)
    TEST_FIELD_SIZE  (LOGFONTW, lfWeight, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfWeight, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfWeight, 16)
    TEST_FIELD_SIZE  (LOGFONTW, lfItalic, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfItalic, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfItalic, 20)
    TEST_FIELD_SIZE  (LOGFONTW, lfUnderline, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfUnderline, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfUnderline, 21)
    TEST_FIELD_SIZE  (LOGFONTW, lfStrikeOut, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfStrikeOut, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfStrikeOut, 22)
    TEST_FIELD_SIZE  (LOGFONTW, lfCharSet, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfCharSet, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfCharSet, 23)
    TEST_FIELD_SIZE  (LOGFONTW, lfOutPrecision, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfOutPrecision, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfOutPrecision, 24)
    TEST_FIELD_SIZE  (LOGFONTW, lfClipPrecision, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfClipPrecision, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfClipPrecision, 25)
    TEST_FIELD_SIZE  (LOGFONTW, lfQuality, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfQuality, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfQuality, 26)
    TEST_FIELD_SIZE  (LOGFONTW, lfPitchAndFamily, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfPitchAndFamily, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfPitchAndFamily, 27)
    TEST_FIELD_SIZE  (LOGFONTW, lfFaceName, 64)
    TEST_FIELD_ALIGN (LOGFONTW, lfFaceName, 2)
    TEST_FIELD_OFFSET(LOGFONTW, lfFaceName, 28)
}

static void test_pack_LOGPEN(void)
{
    /* LOGPEN */
    TEST_TYPE_SIZE   (LOGPEN, 16)
    TEST_TYPE_ALIGN  (LOGPEN, 4)
    TEST_FIELD_SIZE  (LOGPEN, lopnStyle, 4)
    TEST_FIELD_ALIGN (LOGPEN, lopnStyle, 4)
    TEST_FIELD_OFFSET(LOGPEN, lopnStyle, 0)
    TEST_FIELD_SIZE  (LOGPEN, lopnWidth, 8)
    TEST_FIELD_ALIGN (LOGPEN, lopnWidth, 4)
    TEST_FIELD_OFFSET(LOGPEN, lopnWidth, 4)
    TEST_FIELD_SIZE  (LOGPEN, lopnColor, 4)
    TEST_FIELD_ALIGN (LOGPEN, lopnColor, 4)
    TEST_FIELD_OFFSET(LOGPEN, lopnColor, 12)
}

static void test_pack_LPABC(void)
{
    /* LPABC */
    TEST_TYPE_SIZE   (LPABC, 8)
    TEST_TYPE_ALIGN  (LPABC, 8)
    TEST_TARGET_SIZE (LPABC, 12)
    TEST_TARGET_ALIGN(LPABC, 4)
}

static void test_pack_LPABCFLOAT(void)
{
    /* LPABCFLOAT */
    TEST_TYPE_SIZE   (LPABCFLOAT, 8)
    TEST_TYPE_ALIGN  (LPABCFLOAT, 8)
    TEST_TARGET_SIZE (LPABCFLOAT, 12)
    TEST_TARGET_ALIGN(LPABCFLOAT, 4)
}

static void test_pack_LPBITMAP(void)
{
    /* LPBITMAP */
    TEST_TYPE_SIZE   (LPBITMAP, 8)
    TEST_TYPE_ALIGN  (LPBITMAP, 8)
    TEST_TARGET_SIZE (LPBITMAP, 32)
    TEST_TARGET_ALIGN(LPBITMAP, 8)
}

static void test_pack_LPBITMAPCOREHEADER(void)
{
    /* LPBITMAPCOREHEADER */
    TEST_TYPE_SIZE   (LPBITMAPCOREHEADER, 8)
    TEST_TYPE_ALIGN  (LPBITMAPCOREHEADER, 8)
    TEST_TARGET_SIZE (LPBITMAPCOREHEADER, 12)
    TEST_TARGET_ALIGN(LPBITMAPCOREHEADER, 4)
}

static void test_pack_LPBITMAPCOREINFO(void)
{
    /* LPBITMAPCOREINFO */
    TEST_TYPE_SIZE   (LPBITMAPCOREINFO, 8)
    TEST_TYPE_ALIGN  (LPBITMAPCOREINFO, 8)
    TEST_TARGET_SIZE (LPBITMAPCOREINFO, 16)
    TEST_TARGET_ALIGN(LPBITMAPCOREINFO, 4)
}

static void test_pack_LPBITMAPFILEHEADER(void)
{
    /* LPBITMAPFILEHEADER */
    TEST_TYPE_SIZE   (LPBITMAPFILEHEADER, 8)
    TEST_TYPE_ALIGN  (LPBITMAPFILEHEADER, 8)
    TEST_TARGET_SIZE (LPBITMAPFILEHEADER, 14)
    TEST_TARGET_ALIGN(LPBITMAPFILEHEADER, 2)
}

static void test_pack_LPBITMAPINFO(void)
{
    /* LPBITMAPINFO */
    TEST_TYPE_SIZE   (LPBITMAPINFO, 8)
    TEST_TYPE_ALIGN  (LPBITMAPINFO, 8)
    TEST_TARGET_SIZE (LPBITMAPINFO, 44)
    TEST_TARGET_ALIGN(LPBITMAPINFO, 4)
}

static void test_pack_LPBITMAPINFOHEADER(void)
{
    /* LPBITMAPINFOHEADER */
    TEST_TYPE_SIZE   (LPBITMAPINFOHEADER, 8)
    TEST_TYPE_ALIGN  (LPBITMAPINFOHEADER, 8)
    TEST_TARGET_SIZE (LPBITMAPINFOHEADER, 40)
    TEST_TARGET_ALIGN(LPBITMAPINFOHEADER, 4)
}

static void test_pack_LPBITMAPV5HEADER(void)
{
    /* LPBITMAPV5HEADER */
    TEST_TYPE_SIZE   (LPBITMAPV5HEADER, 8)
    TEST_TYPE_ALIGN  (LPBITMAPV5HEADER, 8)
    TEST_TARGET_SIZE (LPBITMAPV5HEADER, 124)
    TEST_TARGET_ALIGN(LPBITMAPV5HEADER, 4)
}

static void test_pack_LPCHARSETINFO(void)
{
    /* LPCHARSETINFO */
    TEST_TYPE_SIZE   (LPCHARSETINFO, 8)
    TEST_TYPE_ALIGN  (LPCHARSETINFO, 8)
    TEST_TARGET_SIZE (LPCHARSETINFO, 32)
    TEST_TARGET_ALIGN(LPCHARSETINFO, 4)
}

static void test_pack_LPCIEXYZ(void)
{
    /* LPCIEXYZ */
    TEST_TYPE_SIZE   (LPCIEXYZ, 8)
    TEST_TYPE_ALIGN  (LPCIEXYZ, 8)
    TEST_TARGET_SIZE (LPCIEXYZ, 12)
    TEST_TARGET_ALIGN(LPCIEXYZ, 4)
}

static void test_pack_LPCIEXYZTRIPLE(void)
{
    /* LPCIEXYZTRIPLE */
    TEST_TYPE_SIZE   (LPCIEXYZTRIPLE, 8)
    TEST_TYPE_ALIGN  (LPCIEXYZTRIPLE, 8)
    TEST_TARGET_SIZE (LPCIEXYZTRIPLE, 36)
    TEST_TARGET_ALIGN(LPCIEXYZTRIPLE, 4)
}

static void test_pack_LPCOLORADJUSTMENT(void)
{
    /* LPCOLORADJUSTMENT */
    TEST_TYPE_SIZE   (LPCOLORADJUSTMENT, 8)
    TEST_TYPE_ALIGN  (LPCOLORADJUSTMENT, 8)
    TEST_TARGET_SIZE (LPCOLORADJUSTMENT, 24)
    TEST_TARGET_ALIGN(LPCOLORADJUSTMENT, 2)
}

static void test_pack_LPDEVMODEA(void)
{
    /* LPDEVMODEA */
    TEST_TYPE_SIZE   (LPDEVMODEA, 8)
    TEST_TYPE_ALIGN  (LPDEVMODEA, 8)
}

static void test_pack_LPDEVMODEW(void)
{
    /* LPDEVMODEW */
    TEST_TYPE_SIZE   (LPDEVMODEW, 8)
    TEST_TYPE_ALIGN  (LPDEVMODEW, 8)
}

static void test_pack_LPDIBSECTION(void)
{
    /* LPDIBSECTION */
    TEST_TYPE_SIZE   (LPDIBSECTION, 8)
    TEST_TYPE_ALIGN  (LPDIBSECTION, 8)
    TEST_TARGET_SIZE (LPDIBSECTION, 104)
    TEST_TARGET_ALIGN(LPDIBSECTION, 8)
}

static void test_pack_LPDISPLAY_DEVICEA(void)
{
    /* LPDISPLAY_DEVICEA */
    TEST_TYPE_SIZE   (LPDISPLAY_DEVICEA, 8)
    TEST_TYPE_ALIGN  (LPDISPLAY_DEVICEA, 8)
    TEST_TARGET_SIZE (LPDISPLAY_DEVICEA, 424)
    TEST_TARGET_ALIGN(LPDISPLAY_DEVICEA, 4)
}

static void test_pack_LPDISPLAY_DEVICEW(void)
{
    /* LPDISPLAY_DEVICEW */
    TEST_TYPE_SIZE   (LPDISPLAY_DEVICEW, 8)
    TEST_TYPE_ALIGN  (LPDISPLAY_DEVICEW, 8)
    TEST_TARGET_SIZE (LPDISPLAY_DEVICEW, 840)
    TEST_TARGET_ALIGN(LPDISPLAY_DEVICEW, 4)
}

static void test_pack_LPDOCINFOA(void)
{
    /* LPDOCINFOA */
    TEST_TYPE_SIZE   (LPDOCINFOA, 8)
    TEST_TYPE_ALIGN  (LPDOCINFOA, 8)
    TEST_TARGET_SIZE (LPDOCINFOA, 40)
    TEST_TARGET_ALIGN(LPDOCINFOA, 8)
}

static void test_pack_LPDOCINFOW(void)
{
    /* LPDOCINFOW */
    TEST_TYPE_SIZE   (LPDOCINFOW, 8)
    TEST_TYPE_ALIGN  (LPDOCINFOW, 8)
    TEST_TARGET_SIZE (LPDOCINFOW, 40)
    TEST_TARGET_ALIGN(LPDOCINFOW, 8)
}

static void test_pack_LPENHMETAHEADER(void)
{
    /* LPENHMETAHEADER */
    TEST_TYPE_SIZE   (LPENHMETAHEADER, 8)
    TEST_TYPE_ALIGN  (LPENHMETAHEADER, 8)
    TEST_TARGET_SIZE (LPENHMETAHEADER, 108)
    TEST_TARGET_ALIGN(LPENHMETAHEADER, 4)
}

static void test_pack_LPENHMETARECORD(void)
{
    /* LPENHMETARECORD */
    TEST_TYPE_SIZE   (LPENHMETARECORD, 8)
    TEST_TYPE_ALIGN  (LPENHMETARECORD, 8)
    TEST_TARGET_SIZE (LPENHMETARECORD, 12)
    TEST_TARGET_ALIGN(LPENHMETARECORD, 4)
}

static void test_pack_LPENUMLOGFONTA(void)
{
    /* LPENUMLOGFONTA */
    TEST_TYPE_SIZE   (LPENUMLOGFONTA, 8)
    TEST_TYPE_ALIGN  (LPENUMLOGFONTA, 8)
    TEST_TARGET_SIZE (LPENUMLOGFONTA, 156)
    TEST_TARGET_ALIGN(LPENUMLOGFONTA, 4)
}

static void test_pack_LPENUMLOGFONTEXA(void)
{
    /* LPENUMLOGFONTEXA */
    TEST_TYPE_SIZE   (LPENUMLOGFONTEXA, 8)
    TEST_TYPE_ALIGN  (LPENUMLOGFONTEXA, 8)
    TEST_TARGET_SIZE (LPENUMLOGFONTEXA, 188)
    TEST_TARGET_ALIGN(LPENUMLOGFONTEXA, 4)
}

static void test_pack_LPENUMLOGFONTEXW(void)
{
    /* LPENUMLOGFONTEXW */
    TEST_TYPE_SIZE   (LPENUMLOGFONTEXW, 8)
    TEST_TYPE_ALIGN  (LPENUMLOGFONTEXW, 8)
    TEST_TARGET_SIZE (LPENUMLOGFONTEXW, 348)
    TEST_TARGET_ALIGN(LPENUMLOGFONTEXW, 4)
}

static void test_pack_LPENUMLOGFONTW(void)
{
    /* LPENUMLOGFONTW */
    TEST_TYPE_SIZE   (LPENUMLOGFONTW, 8)
    TEST_TYPE_ALIGN  (LPENUMLOGFONTW, 8)
    TEST_TARGET_SIZE (LPENUMLOGFONTW, 284)
    TEST_TARGET_ALIGN(LPENUMLOGFONTW, 4)
}

static void test_pack_LPEXTLOGFONTA(void)
{
    /* LPEXTLOGFONTA */
    TEST_TYPE_SIZE   (LPEXTLOGFONTA, 8)
    TEST_TYPE_ALIGN  (LPEXTLOGFONTA, 8)
    TEST_TARGET_SIZE (LPEXTLOGFONTA, 192)
    TEST_TARGET_ALIGN(LPEXTLOGFONTA, 4)
}

static void test_pack_LPEXTLOGFONTW(void)
{
    /* LPEXTLOGFONTW */
    TEST_TYPE_SIZE   (LPEXTLOGFONTW, 8)
    TEST_TYPE_ALIGN  (LPEXTLOGFONTW, 8)
    TEST_TARGET_SIZE (LPEXTLOGFONTW, 320)
    TEST_TARGET_ALIGN(LPEXTLOGFONTW, 4)
}

static void test_pack_LPEXTLOGPEN(void)
{
    /* LPEXTLOGPEN */
    TEST_TYPE_SIZE   (LPEXTLOGPEN, 8)
    TEST_TYPE_ALIGN  (LPEXTLOGPEN, 8)
    TEST_TARGET_SIZE (LPEXTLOGPEN, 32)
    TEST_TARGET_ALIGN(LPEXTLOGPEN, 8)
}

static void test_pack_LPFONTSIGNATURE(void)
{
    /* LPFONTSIGNATURE */
    TEST_TYPE_SIZE   (LPFONTSIGNATURE, 8)
    TEST_TYPE_ALIGN  (LPFONTSIGNATURE, 8)
    TEST_TARGET_SIZE (LPFONTSIGNATURE, 24)
    TEST_TARGET_ALIGN(LPFONTSIGNATURE, 4)
}

static void test_pack_LPGCP_RESULTSA(void)
{
    /* LPGCP_RESULTSA */
    TEST_TYPE_SIZE   (LPGCP_RESULTSA, 8)
    TEST_TYPE_ALIGN  (LPGCP_RESULTSA, 8)
    TEST_TARGET_SIZE (LPGCP_RESULTSA, 64)
    TEST_TARGET_ALIGN(LPGCP_RESULTSA, 8)
}

static void test_pack_LPGCP_RESULTSW(void)
{
    /* LPGCP_RESULTSW */
    TEST_TYPE_SIZE   (LPGCP_RESULTSW, 8)
    TEST_TYPE_ALIGN  (LPGCP_RESULTSW, 8)
    TEST_TARGET_SIZE (LPGCP_RESULTSW, 64)
    TEST_TARGET_ALIGN(LPGCP_RESULTSW, 8)
}

static void test_pack_LPGLYPHMETRICS(void)
{
    /* LPGLYPHMETRICS */
    TEST_TYPE_SIZE   (LPGLYPHMETRICS, 8)
    TEST_TYPE_ALIGN  (LPGLYPHMETRICS, 8)
    TEST_TARGET_SIZE (LPGLYPHMETRICS, 20)
    TEST_TARGET_ALIGN(LPGLYPHMETRICS, 4)
}

static void test_pack_LPGLYPHMETRICSFLOAT(void)
{
    /* LPGLYPHMETRICSFLOAT */
    TEST_TYPE_SIZE   (LPGLYPHMETRICSFLOAT, 8)
    TEST_TYPE_ALIGN  (LPGLYPHMETRICSFLOAT, 8)
    TEST_TARGET_SIZE (LPGLYPHMETRICSFLOAT, 24)
    TEST_TARGET_ALIGN(LPGLYPHMETRICSFLOAT, 4)
}

static void test_pack_LPGRADIENT_RECT(void)
{
    /* LPGRADIENT_RECT */
    TEST_TYPE_SIZE   (LPGRADIENT_RECT, 8)
    TEST_TYPE_ALIGN  (LPGRADIENT_RECT, 8)
    TEST_TARGET_SIZE (LPGRADIENT_RECT, 8)
    TEST_TARGET_ALIGN(LPGRADIENT_RECT, 4)
}

static void test_pack_LPGRADIENT_TRIANGLE(void)
{
    /* LPGRADIENT_TRIANGLE */
    TEST_TYPE_SIZE   (LPGRADIENT_TRIANGLE, 8)
    TEST_TYPE_ALIGN  (LPGRADIENT_TRIANGLE, 8)
    TEST_TARGET_SIZE (LPGRADIENT_TRIANGLE, 12)
    TEST_TARGET_ALIGN(LPGRADIENT_TRIANGLE, 4)
}

static void test_pack_LPHANDLETABLE(void)
{
    /* LPHANDLETABLE */
    TEST_TYPE_SIZE   (LPHANDLETABLE, 8)
    TEST_TYPE_ALIGN  (LPHANDLETABLE, 8)
    TEST_TARGET_SIZE (LPHANDLETABLE, 8)
    TEST_TARGET_ALIGN(LPHANDLETABLE, 8)
}

static void test_pack_LPKERNINGPAIR(void)
{
    /* LPKERNINGPAIR */
    TEST_TYPE_SIZE   (LPKERNINGPAIR, 8)
    TEST_TYPE_ALIGN  (LPKERNINGPAIR, 8)
    TEST_TARGET_SIZE (LPKERNINGPAIR, 8)
    TEST_TARGET_ALIGN(LPKERNINGPAIR, 4)
}

static void test_pack_LPLAYERPLANEDESCRIPTOR(void)
{
    /* LPLAYERPLANEDESCRIPTOR */
    TEST_TYPE_SIZE   (LPLAYERPLANEDESCRIPTOR, 8)
    TEST_TYPE_ALIGN  (LPLAYERPLANEDESCRIPTOR, 8)
    TEST_TARGET_SIZE (LPLAYERPLANEDESCRIPTOR, 32)
    TEST_TARGET_ALIGN(LPLAYERPLANEDESCRIPTOR, 4)
}

static void test_pack_LPLOCALESIGNATURE(void)
{
    /* LPLOCALESIGNATURE */
    TEST_TYPE_SIZE   (LPLOCALESIGNATURE, 8)
    TEST_TYPE_ALIGN  (LPLOCALESIGNATURE, 8)
    TEST_TARGET_SIZE (LPLOCALESIGNATURE, 32)
    TEST_TARGET_ALIGN(LPLOCALESIGNATURE, 4)
}

static void test_pack_LPLOGBRUSH(void)
{
    /* LPLOGBRUSH */
    TEST_TYPE_SIZE   (LPLOGBRUSH, 8)
    TEST_TYPE_ALIGN  (LPLOGBRUSH, 8)
    TEST_TARGET_SIZE (LPLOGBRUSH, 16)
    TEST_TARGET_ALIGN(LPLOGBRUSH, 8)
}

static void test_pack_LPLOGCOLORSPACEA(void)
{
    /* LPLOGCOLORSPACEA */
    TEST_TYPE_SIZE   (LPLOGCOLORSPACEA, 8)
    TEST_TYPE_ALIGN  (LPLOGCOLORSPACEA, 8)
    TEST_TARGET_SIZE (LPLOGCOLORSPACEA, 328)
    TEST_TARGET_ALIGN(LPLOGCOLORSPACEA, 4)
}

static void test_pack_LPLOGCOLORSPACEW(void)
{
    /* LPLOGCOLORSPACEW */
    TEST_TYPE_SIZE   (LPLOGCOLORSPACEW, 8)
    TEST_TYPE_ALIGN  (LPLOGCOLORSPACEW, 8)
    TEST_TARGET_SIZE (LPLOGCOLORSPACEW, 588)
    TEST_TARGET_ALIGN(LPLOGCOLORSPACEW, 4)
}

static void test_pack_LPLOGFONTA(void)
{
    /* LPLOGFONTA */
    TEST_TYPE_SIZE   (LPLOGFONTA, 8)
    TEST_TYPE_ALIGN  (LPLOGFONTA, 8)
    TEST_TARGET_SIZE (LPLOGFONTA, 60)
    TEST_TARGET_ALIGN(LPLOGFONTA, 4)
}

static void test_pack_LPLOGFONTW(void)
{
    /* LPLOGFONTW */
    TEST_TYPE_SIZE   (LPLOGFONTW, 8)
    TEST_TYPE_ALIGN  (LPLOGFONTW, 8)
    TEST_TARGET_SIZE (LPLOGFONTW, 92)
    TEST_TARGET_ALIGN(LPLOGFONTW, 4)
}

static void test_pack_LPLOGPEN(void)
{
    /* LPLOGPEN */
    TEST_TYPE_SIZE   (LPLOGPEN, 8)
    TEST_TYPE_ALIGN  (LPLOGPEN, 8)
    TEST_TARGET_SIZE (LPLOGPEN, 16)
    TEST_TARGET_ALIGN(LPLOGPEN, 4)
}

static void test_pack_LPMAT2(void)
{
    /* LPMAT2 */
    TEST_TYPE_SIZE   (LPMAT2, 8)
    TEST_TYPE_ALIGN  (LPMAT2, 8)
    TEST_TARGET_SIZE (LPMAT2, 16)
    TEST_TARGET_ALIGN(LPMAT2, 2)
}

static void test_pack_LPMETAFILEPICT(void)
{
    /* LPMETAFILEPICT */
    TEST_TYPE_SIZE   (LPMETAFILEPICT, 8)
    TEST_TYPE_ALIGN  (LPMETAFILEPICT, 8)
    TEST_TARGET_SIZE (LPMETAFILEPICT, 24)
    TEST_TARGET_ALIGN(LPMETAFILEPICT, 8)
}

static void test_pack_LPMETAHEADER(void)
{
    /* LPMETAHEADER */
    TEST_TYPE_SIZE   (LPMETAHEADER, 8)
    TEST_TYPE_ALIGN  (LPMETAHEADER, 8)
    TEST_TARGET_SIZE (LPMETAHEADER, 18)
    TEST_TARGET_ALIGN(LPMETAHEADER, 2)
}

static void test_pack_LPMETARECORD(void)
{
    /* LPMETARECORD */
    TEST_TYPE_SIZE   (LPMETARECORD, 8)
    TEST_TYPE_ALIGN  (LPMETARECORD, 8)
    TEST_TARGET_SIZE (LPMETARECORD, 8)
    TEST_TARGET_ALIGN(LPMETARECORD, 4)
}

static void test_pack_LPNEWTEXTMETRICA(void)
{
    /* LPNEWTEXTMETRICA */
    TEST_TYPE_SIZE   (LPNEWTEXTMETRICA, 8)
    TEST_TYPE_ALIGN  (LPNEWTEXTMETRICA, 8)
    TEST_TARGET_SIZE (LPNEWTEXTMETRICA, 72)
    TEST_TARGET_ALIGN(LPNEWTEXTMETRICA, 4)
}

static void test_pack_LPNEWTEXTMETRICW(void)
{
    /* LPNEWTEXTMETRICW */
    TEST_TYPE_SIZE   (LPNEWTEXTMETRICW, 8)
    TEST_TYPE_ALIGN  (LPNEWTEXTMETRICW, 8)
    TEST_TARGET_SIZE (LPNEWTEXTMETRICW, 76)
    TEST_TARGET_ALIGN(LPNEWTEXTMETRICW, 4)
}

static void test_pack_LPOUTLINETEXTMETRICA(void)
{
    /* LPOUTLINETEXTMETRICA */
    TEST_TYPE_SIZE   (LPOUTLINETEXTMETRICA, 8)
    TEST_TYPE_ALIGN  (LPOUTLINETEXTMETRICA, 8)
    TEST_TARGET_SIZE (LPOUTLINETEXTMETRICA, 232)
    TEST_TARGET_ALIGN(LPOUTLINETEXTMETRICA, 8)
}

static void test_pack_LPOUTLINETEXTMETRICW(void)
{
    /* LPOUTLINETEXTMETRICW */
    TEST_TYPE_SIZE   (LPOUTLINETEXTMETRICW, 8)
    TEST_TYPE_ALIGN  (LPOUTLINETEXTMETRICW, 8)
    TEST_TARGET_SIZE (LPOUTLINETEXTMETRICW, 232)
    TEST_TARGET_ALIGN(LPOUTLINETEXTMETRICW, 8)
}

static void test_pack_LPPANOSE(void)
{
    /* LPPANOSE */
    TEST_TYPE_SIZE   (LPPANOSE, 8)
    TEST_TYPE_ALIGN  (LPPANOSE, 8)
    TEST_TARGET_SIZE (LPPANOSE, 10)
    TEST_TARGET_ALIGN(LPPANOSE, 1)
}

static void test_pack_LPPELARRAY(void)
{
    /* LPPELARRAY */
    TEST_TYPE_SIZE   (LPPELARRAY, 8)
    TEST_TYPE_ALIGN  (LPPELARRAY, 8)
    TEST_TARGET_SIZE (LPPELARRAY, 20)
    TEST_TARGET_ALIGN(LPPELARRAY, 4)
}

static void test_pack_LPPIXELFORMATDESCRIPTOR(void)
{
    /* LPPIXELFORMATDESCRIPTOR */
    TEST_TYPE_SIZE   (LPPIXELFORMATDESCRIPTOR, 8)
    TEST_TYPE_ALIGN  (LPPIXELFORMATDESCRIPTOR, 8)
    TEST_TARGET_SIZE (LPPIXELFORMATDESCRIPTOR, 40)
    TEST_TARGET_ALIGN(LPPIXELFORMATDESCRIPTOR, 4)
}

static void test_pack_LPPOINTFX(void)
{
    /* LPPOINTFX */
    TEST_TYPE_SIZE   (LPPOINTFX, 8)
    TEST_TYPE_ALIGN  (LPPOINTFX, 8)
    TEST_TARGET_SIZE (LPPOINTFX, 8)
    TEST_TARGET_ALIGN(LPPOINTFX, 2)
}

static void test_pack_LPPOLYTEXTA(void)
{
    /* LPPOLYTEXTA */
    TEST_TYPE_SIZE   (LPPOLYTEXTA, 8)
    TEST_TYPE_ALIGN  (LPPOLYTEXTA, 8)
    TEST_TARGET_SIZE (LPPOLYTEXTA, 56)
    TEST_TARGET_ALIGN(LPPOLYTEXTA, 8)
}

static void test_pack_LPPOLYTEXTW(void)
{
    /* LPPOLYTEXTW */
    TEST_TYPE_SIZE   (LPPOLYTEXTW, 8)
    TEST_TYPE_ALIGN  (LPPOLYTEXTW, 8)
    TEST_TARGET_SIZE (LPPOLYTEXTW, 56)
    TEST_TARGET_ALIGN(LPPOLYTEXTW, 8)
}

static void test_pack_LPRASTERIZER_STATUS(void)
{
    /* LPRASTERIZER_STATUS */
    TEST_TYPE_SIZE   (LPRASTERIZER_STATUS, 8)
    TEST_TYPE_ALIGN  (LPRASTERIZER_STATUS, 8)
    TEST_TARGET_SIZE (LPRASTERIZER_STATUS, 6)
    TEST_TARGET_ALIGN(LPRASTERIZER_STATUS, 2)
}

static void test_pack_LPRGBQUAD(void)
{
    /* LPRGBQUAD */
    TEST_TYPE_SIZE   (LPRGBQUAD, 8)
    TEST_TYPE_ALIGN  (LPRGBQUAD, 8)
    TEST_TARGET_SIZE (LPRGBQUAD, 4)
    TEST_TARGET_ALIGN(LPRGBQUAD, 1)
}

static void test_pack_LPRGNDATA(void)
{
    /* LPRGNDATA */
    TEST_TYPE_SIZE   (LPRGNDATA, 8)
    TEST_TYPE_ALIGN  (LPRGNDATA, 8)
    TEST_TARGET_SIZE (LPRGNDATA, 36)
    TEST_TARGET_ALIGN(LPRGNDATA, 4)
}

static void test_pack_LPTEXTMETRICA(void)
{
    /* LPTEXTMETRICA */
    TEST_TYPE_SIZE   (LPTEXTMETRICA, 8)
    TEST_TYPE_ALIGN  (LPTEXTMETRICA, 8)
    TEST_TARGET_SIZE (LPTEXTMETRICA, 56)
    TEST_TARGET_ALIGN(LPTEXTMETRICA, 4)
}

static void test_pack_LPTEXTMETRICW(void)
{
    /* LPTEXTMETRICW */
    TEST_TYPE_SIZE   (LPTEXTMETRICW, 8)
    TEST_TYPE_ALIGN  (LPTEXTMETRICW, 8)
    TEST_TARGET_SIZE (LPTEXTMETRICW, 60)
    TEST_TARGET_ALIGN(LPTEXTMETRICW, 4)
}

static void test_pack_LPTRIVERTEX(void)
{
    /* LPTRIVERTEX */
    TEST_TYPE_SIZE   (LPTRIVERTEX, 8)
    TEST_TYPE_ALIGN  (LPTRIVERTEX, 8)
    TEST_TARGET_SIZE (LPTRIVERTEX, 16)
    TEST_TARGET_ALIGN(LPTRIVERTEX, 4)
}

static void test_pack_LPTTPOLYCURVE(void)
{
    /* LPTTPOLYCURVE */
    TEST_TYPE_SIZE   (LPTTPOLYCURVE, 8)
    TEST_TYPE_ALIGN  (LPTTPOLYCURVE, 8)
    TEST_TARGET_SIZE (LPTTPOLYCURVE, 12)
    TEST_TARGET_ALIGN(LPTTPOLYCURVE, 2)
}

static void test_pack_LPTTPOLYGONHEADER(void)
{
    /* LPTTPOLYGONHEADER */
    TEST_TYPE_SIZE   (LPTTPOLYGONHEADER, 8)
    TEST_TYPE_ALIGN  (LPTTPOLYGONHEADER, 8)
    TEST_TARGET_SIZE (LPTTPOLYGONHEADER, 16)
    TEST_TARGET_ALIGN(LPTTPOLYGONHEADER, 4)
}

static void test_pack_LPXFORM(void)
{
    /* LPXFORM */
    TEST_TYPE_SIZE   (LPXFORM, 8)
    TEST_TYPE_ALIGN  (LPXFORM, 8)
    TEST_TARGET_SIZE (LPXFORM, 24)
    TEST_TARGET_ALIGN(LPXFORM, 4)
}

static void test_pack_MAT2(void)
{
    /* MAT2 */
    TEST_TYPE_SIZE   (MAT2, 16)
    TEST_TYPE_ALIGN  (MAT2, 2)
    TEST_FIELD_SIZE  (MAT2, eM11, 4)
    TEST_FIELD_ALIGN (MAT2, eM11, 2)
    TEST_FIELD_OFFSET(MAT2, eM11, 0)
    TEST_FIELD_SIZE  (MAT2, eM12, 4)
    TEST_FIELD_ALIGN (MAT2, eM12, 2)
    TEST_FIELD_OFFSET(MAT2, eM12, 4)
    TEST_FIELD_SIZE  (MAT2, eM21, 4)
    TEST_FIELD_ALIGN (MAT2, eM21, 2)
    TEST_FIELD_OFFSET(MAT2, eM21, 8)
    TEST_FIELD_SIZE  (MAT2, eM22, 4)
    TEST_FIELD_ALIGN (MAT2, eM22, 2)
    TEST_FIELD_OFFSET(MAT2, eM22, 12)
}

static void test_pack_METAFILEPICT(void)
{
    /* METAFILEPICT */
    TEST_TYPE_SIZE   (METAFILEPICT, 24)
    TEST_TYPE_ALIGN  (METAFILEPICT, 8)
    TEST_FIELD_SIZE  (METAFILEPICT, mm, 4)
    TEST_FIELD_ALIGN (METAFILEPICT, mm, 4)
    TEST_FIELD_OFFSET(METAFILEPICT, mm, 0)
    TEST_FIELD_SIZE  (METAFILEPICT, xExt, 4)
    TEST_FIELD_ALIGN (METAFILEPICT, xExt, 4)
    TEST_FIELD_OFFSET(METAFILEPICT, xExt, 4)
    TEST_FIELD_SIZE  (METAFILEPICT, yExt, 4)
    TEST_FIELD_ALIGN (METAFILEPICT, yExt, 4)
    TEST_FIELD_OFFSET(METAFILEPICT, yExt, 8)
    TEST_FIELD_SIZE  (METAFILEPICT, hMF, 8)
    TEST_FIELD_ALIGN (METAFILEPICT, hMF, 8)
    TEST_FIELD_OFFSET(METAFILEPICT, hMF, 16)
}

static void test_pack_METAHEADER(void)
{
    /* METAHEADER (pack 2) */
    TEST_TYPE_SIZE   (METAHEADER, 18)
    TEST_TYPE_ALIGN  (METAHEADER, 2)
    TEST_FIELD_SIZE  (METAHEADER, mtType, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtType, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtType, 0)
    TEST_FIELD_SIZE  (METAHEADER, mtHeaderSize, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtHeaderSize, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtHeaderSize, 2)
    TEST_FIELD_SIZE  (METAHEADER, mtVersion, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtVersion, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtVersion, 4)
    TEST_FIELD_SIZE  (METAHEADER, mtSize, 4)
    TEST_FIELD_ALIGN (METAHEADER, mtSize, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtSize, 6)
    TEST_FIELD_SIZE  (METAHEADER, mtNoObjects, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtNoObjects, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtNoObjects, 10)
    TEST_FIELD_SIZE  (METAHEADER, mtMaxRecord, 4)
    TEST_FIELD_ALIGN (METAHEADER, mtMaxRecord, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtMaxRecord, 12)
    TEST_FIELD_SIZE  (METAHEADER, mtNoParameters, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtNoParameters, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtNoParameters, 16)
}

static void test_pack_METARECORD(void)
{
    /* METARECORD */
    TEST_TYPE_SIZE   (METARECORD, 8)
    TEST_TYPE_ALIGN  (METARECORD, 4)
    TEST_FIELD_SIZE  (METARECORD, rdSize, 4)
    TEST_FIELD_ALIGN (METARECORD, rdSize, 4)
    TEST_FIELD_OFFSET(METARECORD, rdSize, 0)
    TEST_FIELD_SIZE  (METARECORD, rdFunction, 2)
    TEST_FIELD_ALIGN (METARECORD, rdFunction, 2)
    TEST_FIELD_OFFSET(METARECORD, rdFunction, 4)
    TEST_FIELD_SIZE  (METARECORD, rdParm, 2)
    TEST_FIELD_ALIGN (METARECORD, rdParm, 2)
    TEST_FIELD_OFFSET(METARECORD, rdParm, 6)
}

static void test_pack_MFENUMPROC(void)
{
    /* MFENUMPROC */
    TEST_TYPE_SIZE   (MFENUMPROC, 8)
    TEST_TYPE_ALIGN  (MFENUMPROC, 8)
}

static void test_pack_NEWTEXTMETRICA(void)
{
    /* NEWTEXTMETRICA */
    TEST_TYPE_SIZE   (NEWTEXTMETRICA, 72)
    TEST_TYPE_ALIGN  (NEWTEXTMETRICA, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmHeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmHeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmHeight, 0)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmAscent, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmAscent, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmAscent, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmDescent, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmDescent, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmDescent, 8)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmInternalLeading, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmInternalLeading, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmInternalLeading, 12)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmExternalLeading, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmExternalLeading, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmExternalLeading, 16)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmAveCharWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmAveCharWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmAveCharWidth, 20)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmMaxCharWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmMaxCharWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmMaxCharWidth, 24)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmWeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmWeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmWeight, 28)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmOverhang, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmOverhang, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmOverhang, 32)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmDigitizedAspectX, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmDigitizedAspectX, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmDigitizedAspectX, 36)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmDigitizedAspectY, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmDigitizedAspectY, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmDigitizedAspectY, 40)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmFirstChar, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmFirstChar, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmFirstChar, 44)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmLastChar, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmLastChar, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmLastChar, 45)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmDefaultChar, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmDefaultChar, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmDefaultChar, 46)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmBreakChar, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmBreakChar, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmBreakChar, 47)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmItalic, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmItalic, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmItalic, 48)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmUnderlined, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmUnderlined, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmUnderlined, 49)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmStruckOut, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmStruckOut, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmStruckOut, 50)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmPitchAndFamily, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmPitchAndFamily, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmPitchAndFamily, 51)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmCharSet, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmCharSet, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmCharSet, 52)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, ntmFlags, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, ntmFlags, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, ntmFlags, 56)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, ntmSizeEM, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, ntmSizeEM, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, ntmSizeEM, 60)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, ntmCellHeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, ntmCellHeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, ntmCellHeight, 64)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, ntmAvgWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, ntmAvgWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, ntmAvgWidth, 68)
}

static void test_pack_NEWTEXTMETRICEXA(void)
{
    /* NEWTEXTMETRICEXA */
    TEST_TYPE_SIZE   (NEWTEXTMETRICEXA, 96)
    TEST_TYPE_ALIGN  (NEWTEXTMETRICEXA, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICEXA, ntmTm, 72)
    TEST_FIELD_ALIGN (NEWTEXTMETRICEXA, ntmTm, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICEXA, ntmTm, 0)
    TEST_FIELD_SIZE  (NEWTEXTMETRICEXA, ntmFontSig, 24)
    TEST_FIELD_ALIGN (NEWTEXTMETRICEXA, ntmFontSig, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICEXA, ntmFontSig, 72)
}

static void test_pack_NEWTEXTMETRICEXW(void)
{
    /* NEWTEXTMETRICEXW */
    TEST_TYPE_SIZE   (NEWTEXTMETRICEXW, 100)
    TEST_TYPE_ALIGN  (NEWTEXTMETRICEXW, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICEXW, ntmTm, 76)
    TEST_FIELD_ALIGN (NEWTEXTMETRICEXW, ntmTm, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICEXW, ntmTm, 0)
    TEST_FIELD_SIZE  (NEWTEXTMETRICEXW, ntmFontSig, 24)
    TEST_FIELD_ALIGN (NEWTEXTMETRICEXW, ntmFontSig, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICEXW, ntmFontSig, 76)
}

static void test_pack_NEWTEXTMETRICW(void)
{
    /* NEWTEXTMETRICW */
    TEST_TYPE_SIZE   (NEWTEXTMETRICW, 76)
    TEST_TYPE_ALIGN  (NEWTEXTMETRICW, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmHeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmHeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmHeight, 0)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmAscent, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmAscent, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmAscent, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmDescent, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmDescent, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmDescent, 8)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmInternalLeading, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmInternalLeading, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmInternalLeading, 12)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmExternalLeading, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmExternalLeading, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmExternalLeading, 16)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmAveCharWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmAveCharWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmAveCharWidth, 20)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmMaxCharWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmMaxCharWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmMaxCharWidth, 24)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmWeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmWeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmWeight, 28)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmOverhang, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmOverhang, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmOverhang, 32)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmDigitizedAspectX, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmDigitizedAspectX, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmDigitizedAspectX, 36)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmDigitizedAspectY, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmDigitizedAspectY, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmDigitizedAspectY, 40)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmFirstChar, 2)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmFirstChar, 2)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmFirstChar, 44)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmLastChar, 2)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmLastChar, 2)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmLastChar, 46)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmDefaultChar, 2)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmDefaultChar, 2)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmDefaultChar, 48)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmBreakChar, 2)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmBreakChar, 2)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmBreakChar, 50)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmItalic, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmItalic, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmItalic, 52)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmUnderlined, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmUnderlined, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmUnderlined, 53)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmStruckOut, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmStruckOut, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmStruckOut, 54)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmPitchAndFamily, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmPitchAndFamily, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmPitchAndFamily, 55)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmCharSet, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmCharSet, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmCharSet, 56)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, ntmFlags, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, ntmFlags, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, ntmFlags, 60)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, ntmSizeEM, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, ntmSizeEM, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, ntmSizeEM, 64)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, ntmCellHeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, ntmCellHeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, ntmCellHeight, 68)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, ntmAvgWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, ntmAvgWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, ntmAvgWidth, 72)
}

static void test_pack_NPEXTLOGPEN(void)
{
    /* NPEXTLOGPEN */
    TEST_TYPE_SIZE   (NPEXTLOGPEN, 8)
    TEST_TYPE_ALIGN  (NPEXTLOGPEN, 8)
    TEST_TARGET_SIZE (NPEXTLOGPEN, 32)
    TEST_TARGET_ALIGN(NPEXTLOGPEN, 8)
}

static void test_pack_OLDFONTENUMPROC(void)
{
    /* OLDFONTENUMPROC */
    TEST_TYPE_SIZE   (OLDFONTENUMPROC, 8)
    TEST_TYPE_ALIGN  (OLDFONTENUMPROC, 8)
}

static void test_pack_OLDFONTENUMPROCA(void)
{
    /* OLDFONTENUMPROCA */
    TEST_TYPE_SIZE   (OLDFONTENUMPROCA, 8)
    TEST_TYPE_ALIGN  (OLDFONTENUMPROCA, 8)
}

static void test_pack_OLDFONTENUMPROCW(void)
{
    /* OLDFONTENUMPROCW */
    TEST_TYPE_SIZE   (OLDFONTENUMPROCW, 8)
    TEST_TYPE_ALIGN  (OLDFONTENUMPROCW, 8)
}

static void test_pack_OUTLINETEXTMETRICA(void)
{
    /* OUTLINETEXTMETRICA */
    TEST_TYPE_SIZE   (OUTLINETEXTMETRICA, 232)
    TEST_TYPE_ALIGN  (OUTLINETEXTMETRICA, 8)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmSize, 0)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmTextMetrics, 56)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmTextMetrics, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmTextMetrics, 4)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmFiller, 1)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmFiller, 1)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmFiller, 60)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmPanoseNumber, 10)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmPanoseNumber, 1)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmPanoseNumber, 61)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmfsSelection, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmfsSelection, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmfsSelection, 72)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmfsType, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmfsType, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmfsType, 76)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsCharSlopeRise, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsCharSlopeRise, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsCharSlopeRise, 80)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsCharSlopeRun, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsCharSlopeRun, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsCharSlopeRun, 84)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmItalicAngle, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmItalicAngle, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmItalicAngle, 88)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmEMSquare, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmEMSquare, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmEMSquare, 92)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmAscent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmAscent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmAscent, 96)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmDescent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmDescent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmDescent, 100)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmLineGap, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmLineGap, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmLineGap, 104)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsCapEmHeight, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsCapEmHeight, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsCapEmHeight, 108)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsXHeight, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsXHeight, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsXHeight, 112)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmrcFontBox, 16)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmrcFontBox, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmrcFontBox, 116)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmMacAscent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmMacAscent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmMacAscent, 132)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmMacDescent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmMacDescent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmMacDescent, 136)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmMacLineGap, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmMacLineGap, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmMacLineGap, 140)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmusMinimumPPEM, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmusMinimumPPEM, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmusMinimumPPEM, 144)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmptSubscriptSize, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmptSubscriptSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmptSubscriptSize, 148)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmptSubscriptOffset, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmptSubscriptOffset, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmptSubscriptOffset, 156)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmptSuperscriptSize, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmptSuperscriptSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmptSuperscriptSize, 164)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmptSuperscriptOffset, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmptSuperscriptOffset, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmptSuperscriptOffset, 172)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsStrikeoutSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsStrikeoutSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsStrikeoutSize, 180)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsStrikeoutPosition, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsStrikeoutPosition, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsStrikeoutPosition, 184)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsUnderscoreSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsUnderscoreSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsUnderscoreSize, 188)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsUnderscorePosition, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsUnderscorePosition, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsUnderscorePosition, 192)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmpFamilyName, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmpFamilyName, 8)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmpFamilyName, 200)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmpFaceName, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmpFaceName, 8)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmpFaceName, 208)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmpStyleName, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmpStyleName, 8)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmpStyleName, 216)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmpFullName, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmpFullName, 8)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmpFullName, 224)
}

static void test_pack_OUTLINETEXTMETRICW(void)
{
    /* OUTLINETEXTMETRICW */
    TEST_TYPE_SIZE   (OUTLINETEXTMETRICW, 232)
    TEST_TYPE_ALIGN  (OUTLINETEXTMETRICW, 8)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmSize, 0)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmTextMetrics, 60)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmTextMetrics, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmTextMetrics, 4)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmFiller, 1)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmFiller, 1)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmFiller, 64)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmPanoseNumber, 10)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmPanoseNumber, 1)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmPanoseNumber, 65)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmfsSelection, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmfsSelection, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmfsSelection, 76)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmfsType, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmfsType, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmfsType, 80)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsCharSlopeRise, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsCharSlopeRise, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsCharSlopeRise, 84)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsCharSlopeRun, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsCharSlopeRun, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsCharSlopeRun, 88)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmItalicAngle, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmItalicAngle, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmItalicAngle, 92)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmEMSquare, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmEMSquare, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmEMSquare, 96)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmAscent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmAscent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmAscent, 100)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmDescent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmDescent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmDescent, 104)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmLineGap, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmLineGap, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmLineGap, 108)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsCapEmHeight, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsCapEmHeight, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsCapEmHeight, 112)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsXHeight, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsXHeight, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsXHeight, 116)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmrcFontBox, 16)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmrcFontBox, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmrcFontBox, 120)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmMacAscent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmMacAscent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmMacAscent, 136)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmMacDescent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmMacDescent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmMacDescent, 140)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmMacLineGap, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmMacLineGap, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmMacLineGap, 144)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmusMinimumPPEM, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmusMinimumPPEM, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmusMinimumPPEM, 148)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmptSubscriptSize, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmptSubscriptSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmptSubscriptSize, 152)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmptSubscriptOffset, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmptSubscriptOffset, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmptSubscriptOffset, 160)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmptSuperscriptSize, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmptSuperscriptSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmptSuperscriptSize, 168)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmptSuperscriptOffset, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmptSuperscriptOffset, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmptSuperscriptOffset, 176)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsStrikeoutSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsStrikeoutSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsStrikeoutSize, 184)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsStrikeoutPosition, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsStrikeoutPosition, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsStrikeoutPosition, 188)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsUnderscoreSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsUnderscoreSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsUnderscoreSize, 192)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsUnderscorePosition, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsUnderscorePosition, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsUnderscorePosition, 196)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmpFamilyName, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmpFamilyName, 8)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmpFamilyName, 200)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmpFaceName, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmpFaceName, 8)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmpFaceName, 208)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmpStyleName, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmpStyleName, 8)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmpStyleName, 216)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmpFullName, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmpFullName, 8)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmpFullName, 224)
}

static void test_pack_PABC(void)
{
    /* PABC */
    TEST_TYPE_SIZE   (PABC, 8)
    TEST_TYPE_ALIGN  (PABC, 8)
    TEST_TARGET_SIZE (PABC, 12)
    TEST_TARGET_ALIGN(PABC, 4)
}

static void test_pack_PABCFLOAT(void)
{
    /* PABCFLOAT */
    TEST_TYPE_SIZE   (PABCFLOAT, 8)
    TEST_TYPE_ALIGN  (PABCFLOAT, 8)
    TEST_TARGET_SIZE (PABCFLOAT, 12)
    TEST_TARGET_ALIGN(PABCFLOAT, 4)
}

static void test_pack_PANOSE(void)
{
    /* PANOSE */
    TEST_TYPE_SIZE   (PANOSE, 10)
    TEST_TYPE_ALIGN  (PANOSE, 1)
    TEST_FIELD_SIZE  (PANOSE, bFamilyType, 1)
    TEST_FIELD_ALIGN (PANOSE, bFamilyType, 1)
    TEST_FIELD_OFFSET(PANOSE, bFamilyType, 0)
    TEST_FIELD_SIZE  (PANOSE, bSerifStyle, 1)
    TEST_FIELD_ALIGN (PANOSE, bSerifStyle, 1)
    TEST_FIELD_OFFSET(PANOSE, bSerifStyle, 1)
    TEST_FIELD_SIZE  (PANOSE, bWeight, 1)
    TEST_FIELD_ALIGN (PANOSE, bWeight, 1)
    TEST_FIELD_OFFSET(PANOSE, bWeight, 2)
    TEST_FIELD_SIZE  (PANOSE, bProportion, 1)
    TEST_FIELD_ALIGN (PANOSE, bProportion, 1)
    TEST_FIELD_OFFSET(PANOSE, bProportion, 3)
    TEST_FIELD_SIZE  (PANOSE, bContrast, 1)
    TEST_FIELD_ALIGN (PANOSE, bContrast, 1)
    TEST_FIELD_OFFSET(PANOSE, bContrast, 4)
    TEST_FIELD_SIZE  (PANOSE, bStrokeVariation, 1)
    TEST_FIELD_ALIGN (PANOSE, bStrokeVariation, 1)
    TEST_FIELD_OFFSET(PANOSE, bStrokeVariation, 5)
    TEST_FIELD_SIZE  (PANOSE, bArmStyle, 1)
    TEST_FIELD_ALIGN (PANOSE, bArmStyle, 1)
    TEST_FIELD_OFFSET(PANOSE, bArmStyle, 6)
    TEST_FIELD_SIZE  (PANOSE, bLetterform, 1)
    TEST_FIELD_ALIGN (PANOSE, bLetterform, 1)
    TEST_FIELD_OFFSET(PANOSE, bLetterform, 7)
    TEST_FIELD_SIZE  (PANOSE, bMidline, 1)
    TEST_FIELD_ALIGN (PANOSE, bMidline, 1)
    TEST_FIELD_OFFSET(PANOSE, bMidline, 8)
    TEST_FIELD_SIZE  (PANOSE, bXHeight, 1)
    TEST_FIELD_ALIGN (PANOSE, bXHeight, 1)
    TEST_FIELD_OFFSET(PANOSE, bXHeight, 9)
}

static void test_pack_PATTERN(void)
{
    /* PATTERN */
    TEST_TYPE_SIZE   (PATTERN, 16)
    TEST_TYPE_ALIGN  (PATTERN, 8)
}

static void test_pack_PBITMAP(void)
{
    /* PBITMAP */
    TEST_TYPE_SIZE   (PBITMAP, 8)
    TEST_TYPE_ALIGN  (PBITMAP, 8)
    TEST_TARGET_SIZE (PBITMAP, 32)
    TEST_TARGET_ALIGN(PBITMAP, 8)
}

static void test_pack_PBITMAPCOREHEADER(void)
{
    /* PBITMAPCOREHEADER */
    TEST_TYPE_SIZE   (PBITMAPCOREHEADER, 8)
    TEST_TYPE_ALIGN  (PBITMAPCOREHEADER, 8)
    TEST_TARGET_SIZE (PBITMAPCOREHEADER, 12)
    TEST_TARGET_ALIGN(PBITMAPCOREHEADER, 4)
}

static void test_pack_PBITMAPCOREINFO(void)
{
    /* PBITMAPCOREINFO */
    TEST_TYPE_SIZE   (PBITMAPCOREINFO, 8)
    TEST_TYPE_ALIGN  (PBITMAPCOREINFO, 8)
    TEST_TARGET_SIZE (PBITMAPCOREINFO, 16)
    TEST_TARGET_ALIGN(PBITMAPCOREINFO, 4)
}

static void test_pack_PBITMAPFILEHEADER(void)
{
    /* PBITMAPFILEHEADER */
    TEST_TYPE_SIZE   (PBITMAPFILEHEADER, 8)
    TEST_TYPE_ALIGN  (PBITMAPFILEHEADER, 8)
    TEST_TARGET_SIZE (PBITMAPFILEHEADER, 14)
    TEST_TARGET_ALIGN(PBITMAPFILEHEADER, 2)
}

static void test_pack_PBITMAPINFO(void)
{
    /* PBITMAPINFO */
    TEST_TYPE_SIZE   (PBITMAPINFO, 8)
    TEST_TYPE_ALIGN  (PBITMAPINFO, 8)
    TEST_TARGET_SIZE (PBITMAPINFO, 44)
    TEST_TARGET_ALIGN(PBITMAPINFO, 4)
}

static void test_pack_PBITMAPINFOHEADER(void)
{
    /* PBITMAPINFOHEADER */
    TEST_TYPE_SIZE   (PBITMAPINFOHEADER, 8)
    TEST_TYPE_ALIGN  (PBITMAPINFOHEADER, 8)
    TEST_TARGET_SIZE (PBITMAPINFOHEADER, 40)
    TEST_TARGET_ALIGN(PBITMAPINFOHEADER, 4)
}

static void test_pack_PBITMAPV4HEADER(void)
{
    /* PBITMAPV4HEADER */
    TEST_TYPE_SIZE   (PBITMAPV4HEADER, 8)
    TEST_TYPE_ALIGN  (PBITMAPV4HEADER, 8)
    TEST_TARGET_SIZE (PBITMAPV4HEADER, 108)
    TEST_TARGET_ALIGN(PBITMAPV4HEADER, 4)
}

static void test_pack_PBITMAPV5HEADER(void)
{
    /* PBITMAPV5HEADER */
    TEST_TYPE_SIZE   (PBITMAPV5HEADER, 8)
    TEST_TYPE_ALIGN  (PBITMAPV5HEADER, 8)
    TEST_TARGET_SIZE (PBITMAPV5HEADER, 124)
    TEST_TARGET_ALIGN(PBITMAPV5HEADER, 4)
}

static void test_pack_PBLENDFUNCTION(void)
{
    /* PBLENDFUNCTION */
    TEST_TYPE_SIZE   (PBLENDFUNCTION, 8)
    TEST_TYPE_ALIGN  (PBLENDFUNCTION, 8)
    TEST_TARGET_SIZE (PBLENDFUNCTION, 4)
    TEST_TARGET_ALIGN(PBLENDFUNCTION, 1)
}

static void test_pack_PCHARSETINFO(void)
{
    /* PCHARSETINFO */
    TEST_TYPE_SIZE   (PCHARSETINFO, 8)
    TEST_TYPE_ALIGN  (PCHARSETINFO, 8)
    TEST_TARGET_SIZE (PCHARSETINFO, 32)
    TEST_TARGET_ALIGN(PCHARSETINFO, 4)
}

static void test_pack_PCOLORADJUSTMENT(void)
{
    /* PCOLORADJUSTMENT */
    TEST_TYPE_SIZE   (PCOLORADJUSTMENT, 8)
    TEST_TYPE_ALIGN  (PCOLORADJUSTMENT, 8)
    TEST_TARGET_SIZE (PCOLORADJUSTMENT, 24)
    TEST_TARGET_ALIGN(PCOLORADJUSTMENT, 2)
}

static void test_pack_PDEVMODEA(void)
{
    /* PDEVMODEA */
    TEST_TYPE_SIZE   (PDEVMODEA, 8)
    TEST_TYPE_ALIGN  (PDEVMODEA, 8)
}

static void test_pack_PDEVMODEW(void)
{
    /* PDEVMODEW */
    TEST_TYPE_SIZE   (PDEVMODEW, 8)
    TEST_TYPE_ALIGN  (PDEVMODEW, 8)
}

static void test_pack_PDIBSECTION(void)
{
    /* PDIBSECTION */
    TEST_TYPE_SIZE   (PDIBSECTION, 8)
    TEST_TYPE_ALIGN  (PDIBSECTION, 8)
    TEST_TARGET_SIZE (PDIBSECTION, 104)
    TEST_TARGET_ALIGN(PDIBSECTION, 8)
}

static void test_pack_PDISPLAY_DEVICEA(void)
{
    /* PDISPLAY_DEVICEA */
    TEST_TYPE_SIZE   (PDISPLAY_DEVICEA, 8)
    TEST_TYPE_ALIGN  (PDISPLAY_DEVICEA, 8)
    TEST_TARGET_SIZE (PDISPLAY_DEVICEA, 424)
    TEST_TARGET_ALIGN(PDISPLAY_DEVICEA, 4)
}

static void test_pack_PDISPLAY_DEVICEW(void)
{
    /* PDISPLAY_DEVICEW */
    TEST_TYPE_SIZE   (PDISPLAY_DEVICEW, 8)
    TEST_TYPE_ALIGN  (PDISPLAY_DEVICEW, 8)
    TEST_TARGET_SIZE (PDISPLAY_DEVICEW, 840)
    TEST_TARGET_ALIGN(PDISPLAY_DEVICEW, 4)
}

static void test_pack_PELARRAY(void)
{
    /* PELARRAY */
    TEST_TYPE_SIZE   (PELARRAY, 20)
    TEST_TYPE_ALIGN  (PELARRAY, 4)
    TEST_FIELD_SIZE  (PELARRAY, paXCount, 4)
    TEST_FIELD_ALIGN (PELARRAY, paXCount, 4)
    TEST_FIELD_OFFSET(PELARRAY, paXCount, 0)
    TEST_FIELD_SIZE  (PELARRAY, paYCount, 4)
    TEST_FIELD_ALIGN (PELARRAY, paYCount, 4)
    TEST_FIELD_OFFSET(PELARRAY, paYCount, 4)
    TEST_FIELD_SIZE  (PELARRAY, paXExt, 4)
    TEST_FIELD_ALIGN (PELARRAY, paXExt, 4)
    TEST_FIELD_OFFSET(PELARRAY, paXExt, 8)
    TEST_FIELD_SIZE  (PELARRAY, paYExt, 4)
    TEST_FIELD_ALIGN (PELARRAY, paYExt, 4)
    TEST_FIELD_OFFSET(PELARRAY, paYExt, 12)
    TEST_FIELD_SIZE  (PELARRAY, paRGBs, 1)
    TEST_FIELD_ALIGN (PELARRAY, paRGBs, 1)
    TEST_FIELD_OFFSET(PELARRAY, paRGBs, 16)
}

static void test_pack_PEMR(void)
{
    /* PEMR */
    TEST_TYPE_SIZE   (PEMR, 8)
    TEST_TYPE_ALIGN  (PEMR, 8)
    TEST_TARGET_SIZE (PEMR, 8)
    TEST_TARGET_ALIGN(PEMR, 4)
}

static void test_pack_PEMRABORTPATH(void)
{
    /* PEMRABORTPATH */
    TEST_TYPE_SIZE   (PEMRABORTPATH, 8)
    TEST_TYPE_ALIGN  (PEMRABORTPATH, 8)
    TEST_TARGET_SIZE (PEMRABORTPATH, 8)
    TEST_TARGET_ALIGN(PEMRABORTPATH, 4)
}

static void test_pack_PEMRANGLEARC(void)
{
    /* PEMRANGLEARC */
    TEST_TYPE_SIZE   (PEMRANGLEARC, 8)
    TEST_TYPE_ALIGN  (PEMRANGLEARC, 8)
    TEST_TARGET_SIZE (PEMRANGLEARC, 28)
    TEST_TARGET_ALIGN(PEMRANGLEARC, 4)
}

static void test_pack_PEMRARC(void)
{
    /* PEMRARC */
    TEST_TYPE_SIZE   (PEMRARC, 8)
    TEST_TYPE_ALIGN  (PEMRARC, 8)
    TEST_TARGET_SIZE (PEMRARC, 40)
    TEST_TARGET_ALIGN(PEMRARC, 4)
}

static void test_pack_PEMRARCTO(void)
{
    /* PEMRARCTO */
    TEST_TYPE_SIZE   (PEMRARCTO, 8)
    TEST_TYPE_ALIGN  (PEMRARCTO, 8)
    TEST_TARGET_SIZE (PEMRARCTO, 40)
    TEST_TARGET_ALIGN(PEMRARCTO, 4)
}

static void test_pack_PEMRBEGINPATH(void)
{
    /* PEMRBEGINPATH */
    TEST_TYPE_SIZE   (PEMRBEGINPATH, 8)
    TEST_TYPE_ALIGN  (PEMRBEGINPATH, 8)
    TEST_TARGET_SIZE (PEMRBEGINPATH, 8)
    TEST_TARGET_ALIGN(PEMRBEGINPATH, 4)
}

static void test_pack_PEMRBITBLT(void)
{
    /* PEMRBITBLT */
    TEST_TYPE_SIZE   (PEMRBITBLT, 8)
    TEST_TYPE_ALIGN  (PEMRBITBLT, 8)
    TEST_TARGET_SIZE (PEMRBITBLT, 100)
    TEST_TARGET_ALIGN(PEMRBITBLT, 4)
}

static void test_pack_PEMRCHORD(void)
{
    /* PEMRCHORD */
    TEST_TYPE_SIZE   (PEMRCHORD, 8)
    TEST_TYPE_ALIGN  (PEMRCHORD, 8)
    TEST_TARGET_SIZE (PEMRCHORD, 40)
    TEST_TARGET_ALIGN(PEMRCHORD, 4)
}

static void test_pack_PEMRCLOSEFIGURE(void)
{
    /* PEMRCLOSEFIGURE */
    TEST_TYPE_SIZE   (PEMRCLOSEFIGURE, 8)
    TEST_TYPE_ALIGN  (PEMRCLOSEFIGURE, 8)
    TEST_TARGET_SIZE (PEMRCLOSEFIGURE, 8)
    TEST_TARGET_ALIGN(PEMRCLOSEFIGURE, 4)
}

static void test_pack_PEMRCREATEBRUSHINDIRECT(void)
{
    /* PEMRCREATEBRUSHINDIRECT */
    TEST_TYPE_SIZE   (PEMRCREATEBRUSHINDIRECT, 8)
    TEST_TYPE_ALIGN  (PEMRCREATEBRUSHINDIRECT, 8)
    TEST_TARGET_SIZE (PEMRCREATEBRUSHINDIRECT, 24)
    TEST_TARGET_ALIGN(PEMRCREATEBRUSHINDIRECT, 4)
}

static void test_pack_PEMRCREATECOLORSPACE(void)
{
    /* PEMRCREATECOLORSPACE */
    TEST_TYPE_SIZE   (PEMRCREATECOLORSPACE, 8)
    TEST_TYPE_ALIGN  (PEMRCREATECOLORSPACE, 8)
    TEST_TARGET_SIZE (PEMRCREATECOLORSPACE, 340)
    TEST_TARGET_ALIGN(PEMRCREATECOLORSPACE, 4)
}

static void test_pack_PEMRCREATECOLORSPACEW(void)
{
    /* PEMRCREATECOLORSPACEW */
    TEST_TYPE_SIZE   (PEMRCREATECOLORSPACEW, 8)
    TEST_TYPE_ALIGN  (PEMRCREATECOLORSPACEW, 8)
    TEST_TARGET_SIZE (PEMRCREATECOLORSPACEW, 612)
    TEST_TARGET_ALIGN(PEMRCREATECOLORSPACEW, 4)
}

static void test_pack_PEMRCREATEDIBPATTERNBRUSHPT(void)
{
    /* PEMRCREATEDIBPATTERNBRUSHPT */
    TEST_TYPE_SIZE   (PEMRCREATEDIBPATTERNBRUSHPT, 8)
    TEST_TYPE_ALIGN  (PEMRCREATEDIBPATTERNBRUSHPT, 8)
    TEST_TARGET_SIZE (PEMRCREATEDIBPATTERNBRUSHPT, 32)
    TEST_TARGET_ALIGN(PEMRCREATEDIBPATTERNBRUSHPT, 4)
}

static void test_pack_PEMRCREATEMONOBRUSH(void)
{
    /* PEMRCREATEMONOBRUSH */
    TEST_TYPE_SIZE   (PEMRCREATEMONOBRUSH, 8)
    TEST_TYPE_ALIGN  (PEMRCREATEMONOBRUSH, 8)
    TEST_TARGET_SIZE (PEMRCREATEMONOBRUSH, 32)
    TEST_TARGET_ALIGN(PEMRCREATEMONOBRUSH, 4)
}

static void test_pack_PEMRCREATEPALETTE(void)
{
    /* PEMRCREATEPALETTE */
    TEST_TYPE_SIZE   (PEMRCREATEPALETTE, 8)
    TEST_TYPE_ALIGN  (PEMRCREATEPALETTE, 8)
    TEST_TARGET_SIZE (PEMRCREATEPALETTE, 20)
    TEST_TARGET_ALIGN(PEMRCREATEPALETTE, 4)
}

static void test_pack_PEMRCREATEPEN(void)
{
    /* PEMRCREATEPEN */
    TEST_TYPE_SIZE   (PEMRCREATEPEN, 8)
    TEST_TYPE_ALIGN  (PEMRCREATEPEN, 8)
    TEST_TARGET_SIZE (PEMRCREATEPEN, 28)
    TEST_TARGET_ALIGN(PEMRCREATEPEN, 4)
}

static void test_pack_PEMRDELETECOLORSPACE(void)
{
    /* PEMRDELETECOLORSPACE */
    TEST_TYPE_SIZE   (PEMRDELETECOLORSPACE, 8)
    TEST_TYPE_ALIGN  (PEMRDELETECOLORSPACE, 8)
    TEST_TARGET_SIZE (PEMRDELETECOLORSPACE, 12)
    TEST_TARGET_ALIGN(PEMRDELETECOLORSPACE, 4)
}

static void test_pack_PEMRDELETEOBJECT(void)
{
    /* PEMRDELETEOBJECT */
    TEST_TYPE_SIZE   (PEMRDELETEOBJECT, 8)
    TEST_TYPE_ALIGN  (PEMRDELETEOBJECT, 8)
    TEST_TARGET_SIZE (PEMRDELETEOBJECT, 12)
    TEST_TARGET_ALIGN(PEMRDELETEOBJECT, 4)
}

static void test_pack_PEMRELLIPSE(void)
{
    /* PEMRELLIPSE */
    TEST_TYPE_SIZE   (PEMRELLIPSE, 8)
    TEST_TYPE_ALIGN  (PEMRELLIPSE, 8)
    TEST_TARGET_SIZE (PEMRELLIPSE, 24)
    TEST_TARGET_ALIGN(PEMRELLIPSE, 4)
}

static void test_pack_PEMRENDPATH(void)
{
    /* PEMRENDPATH */
    TEST_TYPE_SIZE   (PEMRENDPATH, 8)
    TEST_TYPE_ALIGN  (PEMRENDPATH, 8)
    TEST_TARGET_SIZE (PEMRENDPATH, 8)
    TEST_TARGET_ALIGN(PEMRENDPATH, 4)
}

static void test_pack_PEMREOF(void)
{
    /* PEMREOF */
    TEST_TYPE_SIZE   (PEMREOF, 8)
    TEST_TYPE_ALIGN  (PEMREOF, 8)
    TEST_TARGET_SIZE (PEMREOF, 20)
    TEST_TARGET_ALIGN(PEMREOF, 4)
}

static void test_pack_PEMREXCLUDECLIPRECT(void)
{
    /* PEMREXCLUDECLIPRECT */
    TEST_TYPE_SIZE   (PEMREXCLUDECLIPRECT, 8)
    TEST_TYPE_ALIGN  (PEMREXCLUDECLIPRECT, 8)
    TEST_TARGET_SIZE (PEMREXCLUDECLIPRECT, 24)
    TEST_TARGET_ALIGN(PEMREXCLUDECLIPRECT, 4)
}

static void test_pack_PEMREXTCREATEFONTINDIRECTW(void)
{
    /* PEMREXTCREATEFONTINDIRECTW */
    TEST_TYPE_SIZE   (PEMREXTCREATEFONTINDIRECTW, 8)
    TEST_TYPE_ALIGN  (PEMREXTCREATEFONTINDIRECTW, 8)
    TEST_TARGET_SIZE (PEMREXTCREATEFONTINDIRECTW, 332)
    TEST_TARGET_ALIGN(PEMREXTCREATEFONTINDIRECTW, 4)
}

static void test_pack_PEMREXTCREATEPEN(void)
{
    /* PEMREXTCREATEPEN */
    TEST_TYPE_SIZE   (PEMREXTCREATEPEN, 8)
    TEST_TYPE_ALIGN  (PEMREXTCREATEPEN, 8)
    TEST_TARGET_SIZE (PEMREXTCREATEPEN, 64)
    TEST_TARGET_ALIGN(PEMREXTCREATEPEN, 8)
}

static void test_pack_PEMREXTFLOODFILL(void)
{
    /* PEMREXTFLOODFILL */
    TEST_TYPE_SIZE   (PEMREXTFLOODFILL, 8)
    TEST_TYPE_ALIGN  (PEMREXTFLOODFILL, 8)
    TEST_TARGET_SIZE (PEMREXTFLOODFILL, 24)
    TEST_TARGET_ALIGN(PEMREXTFLOODFILL, 4)
}

static void test_pack_PEMREXTSELECTCLIPRGN(void)
{
    /* PEMREXTSELECTCLIPRGN */
    TEST_TYPE_SIZE   (PEMREXTSELECTCLIPRGN, 8)
    TEST_TYPE_ALIGN  (PEMREXTSELECTCLIPRGN, 8)
    TEST_TARGET_SIZE (PEMREXTSELECTCLIPRGN, 20)
    TEST_TARGET_ALIGN(PEMREXTSELECTCLIPRGN, 4)
}

static void test_pack_PEMREXTTEXTOUTA(void)
{
    /* PEMREXTTEXTOUTA */
    TEST_TYPE_SIZE   (PEMREXTTEXTOUTA, 8)
    TEST_TYPE_ALIGN  (PEMREXTTEXTOUTA, 8)
    TEST_TARGET_SIZE (PEMREXTTEXTOUTA, 76)
    TEST_TARGET_ALIGN(PEMREXTTEXTOUTA, 4)
}

static void test_pack_PEMREXTTEXTOUTW(void)
{
    /* PEMREXTTEXTOUTW */
    TEST_TYPE_SIZE   (PEMREXTTEXTOUTW, 8)
    TEST_TYPE_ALIGN  (PEMREXTTEXTOUTW, 8)
    TEST_TARGET_SIZE (PEMREXTTEXTOUTW, 76)
    TEST_TARGET_ALIGN(PEMREXTTEXTOUTW, 4)
}

static void test_pack_PEMRFILLPATH(void)
{
    /* PEMRFILLPATH */
    TEST_TYPE_SIZE   (PEMRFILLPATH, 8)
    TEST_TYPE_ALIGN  (PEMRFILLPATH, 8)
    TEST_TARGET_SIZE (PEMRFILLPATH, 24)
    TEST_TARGET_ALIGN(PEMRFILLPATH, 4)
}

static void test_pack_PEMRFILLRGN(void)
{
    /* PEMRFILLRGN */
    TEST_TYPE_SIZE   (PEMRFILLRGN, 8)
    TEST_TYPE_ALIGN  (PEMRFILLRGN, 8)
    TEST_TARGET_SIZE (PEMRFILLRGN, 36)
    TEST_TARGET_ALIGN(PEMRFILLRGN, 4)
}

static void test_pack_PEMRFLATTENPATH(void)
{
    /* PEMRFLATTENPATH */
    TEST_TYPE_SIZE   (PEMRFLATTENPATH, 8)
    TEST_TYPE_ALIGN  (PEMRFLATTENPATH, 8)
    TEST_TARGET_SIZE (PEMRFLATTENPATH, 8)
    TEST_TARGET_ALIGN(PEMRFLATTENPATH, 4)
}

static void test_pack_PEMRFORMAT(void)
{
    /* PEMRFORMAT */
    TEST_TYPE_SIZE   (PEMRFORMAT, 8)
    TEST_TYPE_ALIGN  (PEMRFORMAT, 8)
    TEST_TARGET_SIZE (PEMRFORMAT, 16)
    TEST_TARGET_ALIGN(PEMRFORMAT, 4)
}

static void test_pack_PEMRFRAMERGN(void)
{
    /* PEMRFRAMERGN */
    TEST_TYPE_SIZE   (PEMRFRAMERGN, 8)
    TEST_TYPE_ALIGN  (PEMRFRAMERGN, 8)
    TEST_TARGET_SIZE (PEMRFRAMERGN, 44)
    TEST_TARGET_ALIGN(PEMRFRAMERGN, 4)
}

static void test_pack_PEMRGDICOMMENT(void)
{
    /* PEMRGDICOMMENT */
    TEST_TYPE_SIZE   (PEMRGDICOMMENT, 8)
    TEST_TYPE_ALIGN  (PEMRGDICOMMENT, 8)
    TEST_TARGET_SIZE (PEMRGDICOMMENT, 16)
    TEST_TARGET_ALIGN(PEMRGDICOMMENT, 4)
}

static void test_pack_PEMRGLSBOUNDEDRECORD(void)
{
    /* PEMRGLSBOUNDEDRECORD */
    TEST_TYPE_SIZE   (PEMRGLSBOUNDEDRECORD, 8)
    TEST_TYPE_ALIGN  (PEMRGLSBOUNDEDRECORD, 8)
    TEST_TARGET_SIZE (PEMRGLSBOUNDEDRECORD, 32)
    TEST_TARGET_ALIGN(PEMRGLSBOUNDEDRECORD, 4)
}

static void test_pack_PEMRGLSRECORD(void)
{
    /* PEMRGLSRECORD */
    TEST_TYPE_SIZE   (PEMRGLSRECORD, 8)
    TEST_TYPE_ALIGN  (PEMRGLSRECORD, 8)
    TEST_TARGET_SIZE (PEMRGLSRECORD, 16)
    TEST_TARGET_ALIGN(PEMRGLSRECORD, 4)
}

static void test_pack_PEMRINTERSECTCLIPRECT(void)
{
    /* PEMRINTERSECTCLIPRECT */
    TEST_TYPE_SIZE   (PEMRINTERSECTCLIPRECT, 8)
    TEST_TYPE_ALIGN  (PEMRINTERSECTCLIPRECT, 8)
    TEST_TARGET_SIZE (PEMRINTERSECTCLIPRECT, 24)
    TEST_TARGET_ALIGN(PEMRINTERSECTCLIPRECT, 4)
}

static void test_pack_PEMRINVERTRGN(void)
{
    /* PEMRINVERTRGN */
    TEST_TYPE_SIZE   (PEMRINVERTRGN, 8)
    TEST_TYPE_ALIGN  (PEMRINVERTRGN, 8)
    TEST_TARGET_SIZE (PEMRINVERTRGN, 32)
    TEST_TARGET_ALIGN(PEMRINVERTRGN, 4)
}

static void test_pack_PEMRLINETO(void)
{
    /* PEMRLINETO */
    TEST_TYPE_SIZE   (PEMRLINETO, 8)
    TEST_TYPE_ALIGN  (PEMRLINETO, 8)
    TEST_TARGET_SIZE (PEMRLINETO, 16)
    TEST_TARGET_ALIGN(PEMRLINETO, 4)
}

static void test_pack_PEMRMASKBLT(void)
{
    /* PEMRMASKBLT */
    TEST_TYPE_SIZE   (PEMRMASKBLT, 8)
    TEST_TYPE_ALIGN  (PEMRMASKBLT, 8)
    TEST_TARGET_SIZE (PEMRMASKBLT, 128)
    TEST_TARGET_ALIGN(PEMRMASKBLT, 4)
}

static void test_pack_PEMRMODIFYWORLDTRANSFORM(void)
{
    /* PEMRMODIFYWORLDTRANSFORM */
    TEST_TYPE_SIZE   (PEMRMODIFYWORLDTRANSFORM, 8)
    TEST_TYPE_ALIGN  (PEMRMODIFYWORLDTRANSFORM, 8)
    TEST_TARGET_SIZE (PEMRMODIFYWORLDTRANSFORM, 36)
    TEST_TARGET_ALIGN(PEMRMODIFYWORLDTRANSFORM, 4)
}

static void test_pack_PEMRMOVETOEX(void)
{
    /* PEMRMOVETOEX */
    TEST_TYPE_SIZE   (PEMRMOVETOEX, 8)
    TEST_TYPE_ALIGN  (PEMRMOVETOEX, 8)
    TEST_TARGET_SIZE (PEMRMOVETOEX, 16)
    TEST_TARGET_ALIGN(PEMRMOVETOEX, 4)
}

static void test_pack_PEMROFFSETCLIPRGN(void)
{
    /* PEMROFFSETCLIPRGN */
    TEST_TYPE_SIZE   (PEMROFFSETCLIPRGN, 8)
    TEST_TYPE_ALIGN  (PEMROFFSETCLIPRGN, 8)
    TEST_TARGET_SIZE (PEMROFFSETCLIPRGN, 16)
    TEST_TARGET_ALIGN(PEMROFFSETCLIPRGN, 4)
}

static void test_pack_PEMRPAINTRGN(void)
{
    /* PEMRPAINTRGN */
    TEST_TYPE_SIZE   (PEMRPAINTRGN, 8)
    TEST_TYPE_ALIGN  (PEMRPAINTRGN, 8)
    TEST_TARGET_SIZE (PEMRPAINTRGN, 32)
    TEST_TARGET_ALIGN(PEMRPAINTRGN, 4)
}

static void test_pack_PEMRPIE(void)
{
    /* PEMRPIE */
    TEST_TYPE_SIZE   (PEMRPIE, 8)
    TEST_TYPE_ALIGN  (PEMRPIE, 8)
    TEST_TARGET_SIZE (PEMRPIE, 40)
    TEST_TARGET_ALIGN(PEMRPIE, 4)
}

static void test_pack_PEMRPIXELFORMAT(void)
{
    /* PEMRPIXELFORMAT */
    TEST_TYPE_SIZE   (PEMRPIXELFORMAT, 8)
    TEST_TYPE_ALIGN  (PEMRPIXELFORMAT, 8)
    TEST_TARGET_SIZE (PEMRPIXELFORMAT, 48)
    TEST_TARGET_ALIGN(PEMRPIXELFORMAT, 4)
}

static void test_pack_PEMRPLGBLT(void)
{
    /* PEMRPLGBLT */
    TEST_TYPE_SIZE   (PEMRPLGBLT, 8)
    TEST_TYPE_ALIGN  (PEMRPLGBLT, 8)
    TEST_TARGET_SIZE (PEMRPLGBLT, 140)
    TEST_TARGET_ALIGN(PEMRPLGBLT, 4)
}

static void test_pack_PEMRPOLYBEZIER(void)
{
    /* PEMRPOLYBEZIER */
    TEST_TYPE_SIZE   (PEMRPOLYBEZIER, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYBEZIER, 8)
    TEST_TARGET_SIZE (PEMRPOLYBEZIER, 36)
    TEST_TARGET_ALIGN(PEMRPOLYBEZIER, 4)
}

static void test_pack_PEMRPOLYBEZIER16(void)
{
    /* PEMRPOLYBEZIER16 */
    TEST_TYPE_SIZE   (PEMRPOLYBEZIER16, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYBEZIER16, 8)
    TEST_TARGET_SIZE (PEMRPOLYBEZIER16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYBEZIER16, 4)
}

static void test_pack_PEMRPOLYBEZIERTO(void)
{
    /* PEMRPOLYBEZIERTO */
    TEST_TYPE_SIZE   (PEMRPOLYBEZIERTO, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYBEZIERTO, 8)
    TEST_TARGET_SIZE (PEMRPOLYBEZIERTO, 36)
    TEST_TARGET_ALIGN(PEMRPOLYBEZIERTO, 4)
}

static void test_pack_PEMRPOLYBEZIERTO16(void)
{
    /* PEMRPOLYBEZIERTO16 */
    TEST_TYPE_SIZE   (PEMRPOLYBEZIERTO16, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYBEZIERTO16, 8)
    TEST_TARGET_SIZE (PEMRPOLYBEZIERTO16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYBEZIERTO16, 4)
}

static void test_pack_PEMRPOLYDRAW(void)
{
    /* PEMRPOLYDRAW */
    TEST_TYPE_SIZE   (PEMRPOLYDRAW, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYDRAW, 8)
    TEST_TARGET_SIZE (PEMRPOLYDRAW, 40)
    TEST_TARGET_ALIGN(PEMRPOLYDRAW, 4)
}

static void test_pack_PEMRPOLYDRAW16(void)
{
    /* PEMRPOLYDRAW16 */
    TEST_TYPE_SIZE   (PEMRPOLYDRAW16, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYDRAW16, 8)
    TEST_TARGET_SIZE (PEMRPOLYDRAW16, 36)
    TEST_TARGET_ALIGN(PEMRPOLYDRAW16, 4)
}

static void test_pack_PEMRPOLYGON(void)
{
    /* PEMRPOLYGON */
    TEST_TYPE_SIZE   (PEMRPOLYGON, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYGON, 8)
    TEST_TARGET_SIZE (PEMRPOLYGON, 36)
    TEST_TARGET_ALIGN(PEMRPOLYGON, 4)
}

static void test_pack_PEMRPOLYGON16(void)
{
    /* PEMRPOLYGON16 */
    TEST_TYPE_SIZE   (PEMRPOLYGON16, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYGON16, 8)
    TEST_TARGET_SIZE (PEMRPOLYGON16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYGON16, 4)
}

static void test_pack_PEMRPOLYLINE(void)
{
    /* PEMRPOLYLINE */
    TEST_TYPE_SIZE   (PEMRPOLYLINE, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYLINE, 8)
    TEST_TARGET_SIZE (PEMRPOLYLINE, 36)
    TEST_TARGET_ALIGN(PEMRPOLYLINE, 4)
}

static void test_pack_PEMRPOLYLINE16(void)
{
    /* PEMRPOLYLINE16 */
    TEST_TYPE_SIZE   (PEMRPOLYLINE16, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYLINE16, 8)
    TEST_TARGET_SIZE (PEMRPOLYLINE16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYLINE16, 4)
}

static void test_pack_PEMRPOLYLINETO(void)
{
    /* PEMRPOLYLINETO */
    TEST_TYPE_SIZE   (PEMRPOLYLINETO, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYLINETO, 8)
    TEST_TARGET_SIZE (PEMRPOLYLINETO, 36)
    TEST_TARGET_ALIGN(PEMRPOLYLINETO, 4)
}

static void test_pack_PEMRPOLYLINETO16(void)
{
    /* PEMRPOLYLINETO16 */
    TEST_TYPE_SIZE   (PEMRPOLYLINETO16, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYLINETO16, 8)
    TEST_TARGET_SIZE (PEMRPOLYLINETO16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYLINETO16, 4)
}

static void test_pack_PEMRPOLYPOLYGON(void)
{
    /* PEMRPOLYPOLYGON */
    TEST_TYPE_SIZE   (PEMRPOLYPOLYGON, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYPOLYGON, 8)
    TEST_TARGET_SIZE (PEMRPOLYPOLYGON, 44)
    TEST_TARGET_ALIGN(PEMRPOLYPOLYGON, 4)
}

static void test_pack_PEMRPOLYPOLYGON16(void)
{
    /* PEMRPOLYPOLYGON16 */
    TEST_TYPE_SIZE   (PEMRPOLYPOLYGON16, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYPOLYGON16, 8)
    TEST_TARGET_SIZE (PEMRPOLYPOLYGON16, 40)
    TEST_TARGET_ALIGN(PEMRPOLYPOLYGON16, 4)
}

static void test_pack_PEMRPOLYPOLYLINE(void)
{
    /* PEMRPOLYPOLYLINE */
    TEST_TYPE_SIZE   (PEMRPOLYPOLYLINE, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYPOLYLINE, 8)
    TEST_TARGET_SIZE (PEMRPOLYPOLYLINE, 44)
    TEST_TARGET_ALIGN(PEMRPOLYPOLYLINE, 4)
}

static void test_pack_PEMRPOLYPOLYLINE16(void)
{
    /* PEMRPOLYPOLYLINE16 */
    TEST_TYPE_SIZE   (PEMRPOLYPOLYLINE16, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYPOLYLINE16, 8)
    TEST_TARGET_SIZE (PEMRPOLYPOLYLINE16, 40)
    TEST_TARGET_ALIGN(PEMRPOLYPOLYLINE16, 4)
}

static void test_pack_PEMRPOLYTEXTOUTA(void)
{
    /* PEMRPOLYTEXTOUTA */
    TEST_TYPE_SIZE   (PEMRPOLYTEXTOUTA, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYTEXTOUTA, 8)
    TEST_TARGET_SIZE (PEMRPOLYTEXTOUTA, 80)
    TEST_TARGET_ALIGN(PEMRPOLYTEXTOUTA, 4)
}

static void test_pack_PEMRPOLYTEXTOUTW(void)
{
    /* PEMRPOLYTEXTOUTW */
    TEST_TYPE_SIZE   (PEMRPOLYTEXTOUTW, 8)
    TEST_TYPE_ALIGN  (PEMRPOLYTEXTOUTW, 8)
    TEST_TARGET_SIZE (PEMRPOLYTEXTOUTW, 80)
    TEST_TARGET_ALIGN(PEMRPOLYTEXTOUTW, 4)
}

static void test_pack_PEMRREALIZEPALETTE(void)
{
    /* PEMRREALIZEPALETTE */
    TEST_TYPE_SIZE   (PEMRREALIZEPALETTE, 8)
    TEST_TYPE_ALIGN  (PEMRREALIZEPALETTE, 8)
    TEST_TARGET_SIZE (PEMRREALIZEPALETTE, 8)
    TEST_TARGET_ALIGN(PEMRREALIZEPALETTE, 4)
}

static void test_pack_PEMRRECTANGLE(void)
{
    /* PEMRRECTANGLE */
    TEST_TYPE_SIZE   (PEMRRECTANGLE, 8)
    TEST_TYPE_ALIGN  (PEMRRECTANGLE, 8)
    TEST_TARGET_SIZE (PEMRRECTANGLE, 24)
    TEST_TARGET_ALIGN(PEMRRECTANGLE, 4)
}

static void test_pack_PEMRRESIZEPALETTE(void)
{
    /* PEMRRESIZEPALETTE */
    TEST_TYPE_SIZE   (PEMRRESIZEPALETTE, 8)
    TEST_TYPE_ALIGN  (PEMRRESIZEPALETTE, 8)
    TEST_TARGET_SIZE (PEMRRESIZEPALETTE, 16)
    TEST_TARGET_ALIGN(PEMRRESIZEPALETTE, 4)
}

static void test_pack_PEMRRESTOREDC(void)
{
    /* PEMRRESTOREDC */
    TEST_TYPE_SIZE   (PEMRRESTOREDC, 8)
    TEST_TYPE_ALIGN  (PEMRRESTOREDC, 8)
    TEST_TARGET_SIZE (PEMRRESTOREDC, 12)
    TEST_TARGET_ALIGN(PEMRRESTOREDC, 4)
}

static void test_pack_PEMRROUNDRECT(void)
{
    /* PEMRROUNDRECT */
    TEST_TYPE_SIZE   (PEMRROUNDRECT, 8)
    TEST_TYPE_ALIGN  (PEMRROUNDRECT, 8)
    TEST_TARGET_SIZE (PEMRROUNDRECT, 32)
    TEST_TARGET_ALIGN(PEMRROUNDRECT, 4)
}

static void test_pack_PEMRSAVEDC(void)
{
    /* PEMRSAVEDC */
    TEST_TYPE_SIZE   (PEMRSAVEDC, 8)
    TEST_TYPE_ALIGN  (PEMRSAVEDC, 8)
    TEST_TARGET_SIZE (PEMRSAVEDC, 8)
    TEST_TARGET_ALIGN(PEMRSAVEDC, 4)
}

static void test_pack_PEMRSCALEVIEWPORTEXTEX(void)
{
    /* PEMRSCALEVIEWPORTEXTEX */
    TEST_TYPE_SIZE   (PEMRSCALEVIEWPORTEXTEX, 8)
    TEST_TYPE_ALIGN  (PEMRSCALEVIEWPORTEXTEX, 8)
    TEST_TARGET_SIZE (PEMRSCALEVIEWPORTEXTEX, 24)
    TEST_TARGET_ALIGN(PEMRSCALEVIEWPORTEXTEX, 4)
}

static void test_pack_PEMRSCALEWINDOWEXTEX(void)
{
    /* PEMRSCALEWINDOWEXTEX */
    TEST_TYPE_SIZE   (PEMRSCALEWINDOWEXTEX, 8)
    TEST_TYPE_ALIGN  (PEMRSCALEWINDOWEXTEX, 8)
    TEST_TARGET_SIZE (PEMRSCALEWINDOWEXTEX, 24)
    TEST_TARGET_ALIGN(PEMRSCALEWINDOWEXTEX, 4)
}

static void test_pack_PEMRSELECTCLIPPATH(void)
{
    /* PEMRSELECTCLIPPATH */
    TEST_TYPE_SIZE   (PEMRSELECTCLIPPATH, 8)
    TEST_TYPE_ALIGN  (PEMRSELECTCLIPPATH, 8)
    TEST_TARGET_SIZE (PEMRSELECTCLIPPATH, 12)
    TEST_TARGET_ALIGN(PEMRSELECTCLIPPATH, 4)
}

static void test_pack_PEMRSELECTCOLORSPACE(void)
{
    /* PEMRSELECTCOLORSPACE */
    TEST_TYPE_SIZE   (PEMRSELECTCOLORSPACE, 8)
    TEST_TYPE_ALIGN  (PEMRSELECTCOLORSPACE, 8)
    TEST_TARGET_SIZE (PEMRSELECTCOLORSPACE, 12)
    TEST_TARGET_ALIGN(PEMRSELECTCOLORSPACE, 4)
}

static void test_pack_PEMRSELECTOBJECT(void)
{
    /* PEMRSELECTOBJECT */
    TEST_TYPE_SIZE   (PEMRSELECTOBJECT, 8)
    TEST_TYPE_ALIGN  (PEMRSELECTOBJECT, 8)
    TEST_TARGET_SIZE (PEMRSELECTOBJECT, 12)
    TEST_TARGET_ALIGN(PEMRSELECTOBJECT, 4)
}

static void test_pack_PEMRSELECTPALETTE(void)
{
    /* PEMRSELECTPALETTE */
    TEST_TYPE_SIZE   (PEMRSELECTPALETTE, 8)
    TEST_TYPE_ALIGN  (PEMRSELECTPALETTE, 8)
    TEST_TARGET_SIZE (PEMRSELECTPALETTE, 12)
    TEST_TARGET_ALIGN(PEMRSELECTPALETTE, 4)
}

static void test_pack_PEMRSETARCDIRECTION(void)
{
    /* PEMRSETARCDIRECTION */
    TEST_TYPE_SIZE   (PEMRSETARCDIRECTION, 8)
    TEST_TYPE_ALIGN  (PEMRSETARCDIRECTION, 8)
    TEST_TARGET_SIZE (PEMRSETARCDIRECTION, 12)
    TEST_TARGET_ALIGN(PEMRSETARCDIRECTION, 4)
}

static void test_pack_PEMRSETBKCOLOR(void)
{
    /* PEMRSETBKCOLOR */
    TEST_TYPE_SIZE   (PEMRSETBKCOLOR, 8)
    TEST_TYPE_ALIGN  (PEMRSETBKCOLOR, 8)
    TEST_TARGET_SIZE (PEMRSETBKCOLOR, 12)
    TEST_TARGET_ALIGN(PEMRSETBKCOLOR, 4)
}

static void test_pack_PEMRSETBKMODE(void)
{
    /* PEMRSETBKMODE */
    TEST_TYPE_SIZE   (PEMRSETBKMODE, 8)
    TEST_TYPE_ALIGN  (PEMRSETBKMODE, 8)
    TEST_TARGET_SIZE (PEMRSETBKMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETBKMODE, 4)
}

static void test_pack_PEMRSETBRUSHORGEX(void)
{
    /* PEMRSETBRUSHORGEX */
    TEST_TYPE_SIZE   (PEMRSETBRUSHORGEX, 8)
    TEST_TYPE_ALIGN  (PEMRSETBRUSHORGEX, 8)
    TEST_TARGET_SIZE (PEMRSETBRUSHORGEX, 16)
    TEST_TARGET_ALIGN(PEMRSETBRUSHORGEX, 4)
}

static void test_pack_PEMRSETCOLORADJUSTMENT(void)
{
    /* PEMRSETCOLORADJUSTMENT */
    TEST_TYPE_SIZE   (PEMRSETCOLORADJUSTMENT, 8)
    TEST_TYPE_ALIGN  (PEMRSETCOLORADJUSTMENT, 8)
    TEST_TARGET_SIZE (PEMRSETCOLORADJUSTMENT, 32)
    TEST_TARGET_ALIGN(PEMRSETCOLORADJUSTMENT, 4)
}

static void test_pack_PEMRSETCOLORSPACE(void)
{
    /* PEMRSETCOLORSPACE */
    TEST_TYPE_SIZE   (PEMRSETCOLORSPACE, 8)
    TEST_TYPE_ALIGN  (PEMRSETCOLORSPACE, 8)
    TEST_TARGET_SIZE (PEMRSETCOLORSPACE, 12)
    TEST_TARGET_ALIGN(PEMRSETCOLORSPACE, 4)
}

static void test_pack_PEMRSETDIBITSTODEVICE(void)
{
    /* PEMRSETDIBITSTODEVICE */
    TEST_TYPE_SIZE   (PEMRSETDIBITSTODEVICE, 8)
    TEST_TYPE_ALIGN  (PEMRSETDIBITSTODEVICE, 8)
    TEST_TARGET_SIZE (PEMRSETDIBITSTODEVICE, 76)
    TEST_TARGET_ALIGN(PEMRSETDIBITSTODEVICE, 4)
}

static void test_pack_PEMRSETICMMODE(void)
{
    /* PEMRSETICMMODE */
    TEST_TYPE_SIZE   (PEMRSETICMMODE, 8)
    TEST_TYPE_ALIGN  (PEMRSETICMMODE, 8)
    TEST_TARGET_SIZE (PEMRSETICMMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETICMMODE, 4)
}

static void test_pack_PEMRSETLAYOUT(void)
{
    /* PEMRSETLAYOUT */
    TEST_TYPE_SIZE   (PEMRSETLAYOUT, 8)
    TEST_TYPE_ALIGN  (PEMRSETLAYOUT, 8)
    TEST_TARGET_SIZE (PEMRSETLAYOUT, 12)
    TEST_TARGET_ALIGN(PEMRSETLAYOUT, 4)
}

static void test_pack_PEMRSETMAPMODE(void)
{
    /* PEMRSETMAPMODE */
    TEST_TYPE_SIZE   (PEMRSETMAPMODE, 8)
    TEST_TYPE_ALIGN  (PEMRSETMAPMODE, 8)
    TEST_TARGET_SIZE (PEMRSETMAPMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETMAPMODE, 4)
}

static void test_pack_PEMRSETMAPPERFLAGS(void)
{
    /* PEMRSETMAPPERFLAGS */
    TEST_TYPE_SIZE   (PEMRSETMAPPERFLAGS, 8)
    TEST_TYPE_ALIGN  (PEMRSETMAPPERFLAGS, 8)
    TEST_TARGET_SIZE (PEMRSETMAPPERFLAGS, 12)
    TEST_TARGET_ALIGN(PEMRSETMAPPERFLAGS, 4)
}

static void test_pack_PEMRSETMETARGN(void)
{
    /* PEMRSETMETARGN */
    TEST_TYPE_SIZE   (PEMRSETMETARGN, 8)
    TEST_TYPE_ALIGN  (PEMRSETMETARGN, 8)
    TEST_TARGET_SIZE (PEMRSETMETARGN, 8)
    TEST_TARGET_ALIGN(PEMRSETMETARGN, 4)
}

static void test_pack_PEMRSETMITERLIMIT(void)
{
    /* PEMRSETMITERLIMIT */
    TEST_TYPE_SIZE   (PEMRSETMITERLIMIT, 8)
    TEST_TYPE_ALIGN  (PEMRSETMITERLIMIT, 8)
    TEST_TARGET_SIZE (PEMRSETMITERLIMIT, 12)
    TEST_TARGET_ALIGN(PEMRSETMITERLIMIT, 4)
}

static void test_pack_PEMRSETPALETTEENTRIES(void)
{
    /* PEMRSETPALETTEENTRIES */
    TEST_TYPE_SIZE   (PEMRSETPALETTEENTRIES, 8)
    TEST_TYPE_ALIGN  (PEMRSETPALETTEENTRIES, 8)
    TEST_TARGET_SIZE (PEMRSETPALETTEENTRIES, 24)
    TEST_TARGET_ALIGN(PEMRSETPALETTEENTRIES, 4)
}

static void test_pack_PEMRSETPIXELV(void)
{
    /* PEMRSETPIXELV */
    TEST_TYPE_SIZE   (PEMRSETPIXELV, 8)
    TEST_TYPE_ALIGN  (PEMRSETPIXELV, 8)
    TEST_TARGET_SIZE (PEMRSETPIXELV, 20)
    TEST_TARGET_ALIGN(PEMRSETPIXELV, 4)
}

static void test_pack_PEMRSETPOLYFILLMODE(void)
{
    /* PEMRSETPOLYFILLMODE */
    TEST_TYPE_SIZE   (PEMRSETPOLYFILLMODE, 8)
    TEST_TYPE_ALIGN  (PEMRSETPOLYFILLMODE, 8)
    TEST_TARGET_SIZE (PEMRSETPOLYFILLMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETPOLYFILLMODE, 4)
}

static void test_pack_PEMRSETROP2(void)
{
    /* PEMRSETROP2 */
    TEST_TYPE_SIZE   (PEMRSETROP2, 8)
    TEST_TYPE_ALIGN  (PEMRSETROP2, 8)
    TEST_TARGET_SIZE (PEMRSETROP2, 12)
    TEST_TARGET_ALIGN(PEMRSETROP2, 4)
}

static void test_pack_PEMRSETSTRETCHBLTMODE(void)
{
    /* PEMRSETSTRETCHBLTMODE */
    TEST_TYPE_SIZE   (PEMRSETSTRETCHBLTMODE, 8)
    TEST_TYPE_ALIGN  (PEMRSETSTRETCHBLTMODE, 8)
    TEST_TARGET_SIZE (PEMRSETSTRETCHBLTMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETSTRETCHBLTMODE, 4)
}

static void test_pack_PEMRSETTEXTALIGN(void)
{
    /* PEMRSETTEXTALIGN */
    TEST_TYPE_SIZE   (PEMRSETTEXTALIGN, 8)
    TEST_TYPE_ALIGN  (PEMRSETTEXTALIGN, 8)
    TEST_TARGET_SIZE (PEMRSETTEXTALIGN, 12)
    TEST_TARGET_ALIGN(PEMRSETTEXTALIGN, 4)
}

static void test_pack_PEMRSETTEXTCOLOR(void)
{
    /* PEMRSETTEXTCOLOR */
    TEST_TYPE_SIZE   (PEMRSETTEXTCOLOR, 8)
    TEST_TYPE_ALIGN  (PEMRSETTEXTCOLOR, 8)
    TEST_TARGET_SIZE (PEMRSETTEXTCOLOR, 12)
    TEST_TARGET_ALIGN(PEMRSETTEXTCOLOR, 4)
}

static void test_pack_PEMRSETVIEWPORTEXTEX(void)
{
    /* PEMRSETVIEWPORTEXTEX */
    TEST_TYPE_SIZE   (PEMRSETVIEWPORTEXTEX, 8)
    TEST_TYPE_ALIGN  (PEMRSETVIEWPORTEXTEX, 8)
    TEST_TARGET_SIZE (PEMRSETVIEWPORTEXTEX, 16)
    TEST_TARGET_ALIGN(PEMRSETVIEWPORTEXTEX, 4)
}

static void test_pack_PEMRSETVIEWPORTORGEX(void)
{
    /* PEMRSETVIEWPORTORGEX */
    TEST_TYPE_SIZE   (PEMRSETVIEWPORTORGEX, 8)
    TEST_TYPE_ALIGN  (PEMRSETVIEWPORTORGEX, 8)
    TEST_TARGET_SIZE (PEMRSETVIEWPORTORGEX, 16)
    TEST_TARGET_ALIGN(PEMRSETVIEWPORTORGEX, 4)
}

static void test_pack_PEMRSETWINDOWEXTEX(void)
{
    /* PEMRSETWINDOWEXTEX */
    TEST_TYPE_SIZE   (PEMRSETWINDOWEXTEX, 8)
    TEST_TYPE_ALIGN  (PEMRSETWINDOWEXTEX, 8)
    TEST_TARGET_SIZE (PEMRSETWINDOWEXTEX, 16)
    TEST_TARGET_ALIGN(PEMRSETWINDOWEXTEX, 4)
}

static void test_pack_PEMRSETWINDOWORGEX(void)
{
    /* PEMRSETWINDOWORGEX */
    TEST_TYPE_SIZE   (PEMRSETWINDOWORGEX, 8)
    TEST_TYPE_ALIGN  (PEMRSETWINDOWORGEX, 8)
    TEST_TARGET_SIZE (PEMRSETWINDOWORGEX, 16)
    TEST_TARGET_ALIGN(PEMRSETWINDOWORGEX, 4)
}

static void test_pack_PEMRSETWORLDTRANSFORM(void)
{
    /* PEMRSETWORLDTRANSFORM */
    TEST_TYPE_SIZE   (PEMRSETWORLDTRANSFORM, 8)
    TEST_TYPE_ALIGN  (PEMRSETWORLDTRANSFORM, 8)
    TEST_TARGET_SIZE (PEMRSETWORLDTRANSFORM, 32)
    TEST_TARGET_ALIGN(PEMRSETWORLDTRANSFORM, 4)
}

static void test_pack_PEMRSTRETCHBLT(void)
{
    /* PEMRSTRETCHBLT */
    TEST_TYPE_SIZE   (PEMRSTRETCHBLT, 8)
    TEST_TYPE_ALIGN  (PEMRSTRETCHBLT, 8)
    TEST_TARGET_SIZE (PEMRSTRETCHBLT, 108)
    TEST_TARGET_ALIGN(PEMRSTRETCHBLT, 4)
}

static void test_pack_PEMRSTRETCHDIBITS(void)
{
    /* PEMRSTRETCHDIBITS */
    TEST_TYPE_SIZE   (PEMRSTRETCHDIBITS, 8)
    TEST_TYPE_ALIGN  (PEMRSTRETCHDIBITS, 8)
    TEST_TARGET_SIZE (PEMRSTRETCHDIBITS, 80)
    TEST_TARGET_ALIGN(PEMRSTRETCHDIBITS, 4)
}

static void test_pack_PEMRSTROKEANDFILLPATH(void)
{
    /* PEMRSTROKEANDFILLPATH */
    TEST_TYPE_SIZE   (PEMRSTROKEANDFILLPATH, 8)
    TEST_TYPE_ALIGN  (PEMRSTROKEANDFILLPATH, 8)
    TEST_TARGET_SIZE (PEMRSTROKEANDFILLPATH, 24)
    TEST_TARGET_ALIGN(PEMRSTROKEANDFILLPATH, 4)
}

static void test_pack_PEMRSTROKEPATH(void)
{
    /* PEMRSTROKEPATH */
    TEST_TYPE_SIZE   (PEMRSTROKEPATH, 8)
    TEST_TYPE_ALIGN  (PEMRSTROKEPATH, 8)
    TEST_TARGET_SIZE (PEMRSTROKEPATH, 24)
    TEST_TARGET_ALIGN(PEMRSTROKEPATH, 4)
}

static void test_pack_PEMRTEXT(void)
{
    /* PEMRTEXT */
    TEST_TYPE_SIZE   (PEMRTEXT, 8)
    TEST_TYPE_ALIGN  (PEMRTEXT, 8)
    TEST_TARGET_SIZE (PEMRTEXT, 40)
    TEST_TARGET_ALIGN(PEMRTEXT, 4)
}

static void test_pack_PEMRWIDENPATH(void)
{
    /* PEMRWIDENPATH */
    TEST_TYPE_SIZE   (PEMRWIDENPATH, 8)
    TEST_TYPE_ALIGN  (PEMRWIDENPATH, 8)
    TEST_TARGET_SIZE (PEMRWIDENPATH, 8)
    TEST_TARGET_ALIGN(PEMRWIDENPATH, 4)
}

static void test_pack_PENHMETAHEADER(void)
{
    /* PENHMETAHEADER */
    TEST_TYPE_SIZE   (PENHMETAHEADER, 8)
    TEST_TYPE_ALIGN  (PENHMETAHEADER, 8)
    TEST_TARGET_SIZE (PENHMETAHEADER, 108)
    TEST_TARGET_ALIGN(PENHMETAHEADER, 4)
}

static void test_pack_PEXTLOGFONTA(void)
{
    /* PEXTLOGFONTA */
    TEST_TYPE_SIZE   (PEXTLOGFONTA, 8)
    TEST_TYPE_ALIGN  (PEXTLOGFONTA, 8)
    TEST_TARGET_SIZE (PEXTLOGFONTA, 192)
    TEST_TARGET_ALIGN(PEXTLOGFONTA, 4)
}

static void test_pack_PEXTLOGFONTW(void)
{
    /* PEXTLOGFONTW */
    TEST_TYPE_SIZE   (PEXTLOGFONTW, 8)
    TEST_TYPE_ALIGN  (PEXTLOGFONTW, 8)
    TEST_TARGET_SIZE (PEXTLOGFONTW, 320)
    TEST_TARGET_ALIGN(PEXTLOGFONTW, 4)
}

static void test_pack_PEXTLOGPEN(void)
{
    /* PEXTLOGPEN */
    TEST_TYPE_SIZE   (PEXTLOGPEN, 8)
    TEST_TYPE_ALIGN  (PEXTLOGPEN, 8)
    TEST_TARGET_SIZE (PEXTLOGPEN, 32)
    TEST_TARGET_ALIGN(PEXTLOGPEN, 8)
}

static void test_pack_PFONTSIGNATURE(void)
{
    /* PFONTSIGNATURE */
    TEST_TYPE_SIZE   (PFONTSIGNATURE, 8)
    TEST_TYPE_ALIGN  (PFONTSIGNATURE, 8)
    TEST_TARGET_SIZE (PFONTSIGNATURE, 24)
    TEST_TARGET_ALIGN(PFONTSIGNATURE, 4)
}

static void test_pack_PGLYPHMETRICSFLOAT(void)
{
    /* PGLYPHMETRICSFLOAT */
    TEST_TYPE_SIZE   (PGLYPHMETRICSFLOAT, 8)
    TEST_TYPE_ALIGN  (PGLYPHMETRICSFLOAT, 8)
    TEST_TARGET_SIZE (PGLYPHMETRICSFLOAT, 24)
    TEST_TARGET_ALIGN(PGLYPHMETRICSFLOAT, 4)
}

static void test_pack_PGRADIENT_RECT(void)
{
    /* PGRADIENT_RECT */
    TEST_TYPE_SIZE   (PGRADIENT_RECT, 8)
    TEST_TYPE_ALIGN  (PGRADIENT_RECT, 8)
    TEST_TARGET_SIZE (PGRADIENT_RECT, 8)
    TEST_TARGET_ALIGN(PGRADIENT_RECT, 4)
}

static void test_pack_PGRADIENT_TRIANGLE(void)
{
    /* PGRADIENT_TRIANGLE */
    TEST_TYPE_SIZE   (PGRADIENT_TRIANGLE, 8)
    TEST_TYPE_ALIGN  (PGRADIENT_TRIANGLE, 8)
    TEST_TARGET_SIZE (PGRADIENT_TRIANGLE, 12)
    TEST_TARGET_ALIGN(PGRADIENT_TRIANGLE, 4)
}

static void test_pack_PHANDLETABLE(void)
{
    /* PHANDLETABLE */
    TEST_TYPE_SIZE   (PHANDLETABLE, 8)
    TEST_TYPE_ALIGN  (PHANDLETABLE, 8)
    TEST_TARGET_SIZE (PHANDLETABLE, 8)
    TEST_TARGET_ALIGN(PHANDLETABLE, 8)
}

static void test_pack_PIXELFORMATDESCRIPTOR(void)
{
    /* PIXELFORMATDESCRIPTOR */
    TEST_TYPE_SIZE   (PIXELFORMATDESCRIPTOR, 40)
    TEST_TYPE_ALIGN  (PIXELFORMATDESCRIPTOR, 4)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, nSize, 2)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, nSize, 2)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, nSize, 0)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, nVersion, 2)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, nVersion, 2)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, nVersion, 2)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, iPixelType, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, iPixelType, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, iPixelType, 8)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cColorBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cColorBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cColorBits, 9)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cRedBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cRedBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cRedBits, 10)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cRedShift, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cRedShift, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cRedShift, 11)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cGreenBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cGreenBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cGreenBits, 12)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cGreenShift, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cGreenShift, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cGreenShift, 13)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cBlueBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cBlueBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cBlueBits, 14)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cBlueShift, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cBlueShift, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cBlueShift, 15)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAlphaBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAlphaBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAlphaBits, 16)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAlphaShift, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAlphaShift, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAlphaShift, 17)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumBits, 18)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumRedBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumRedBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumRedBits, 19)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumGreenBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumGreenBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumGreenBits, 20)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumBlueBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumBlueBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumBlueBits, 21)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumAlphaBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumAlphaBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumAlphaBits, 22)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cDepthBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cDepthBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cDepthBits, 23)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cStencilBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cStencilBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cStencilBits, 24)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAuxBuffers, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAuxBuffers, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAuxBuffers, 25)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, iLayerType, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, iLayerType, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, iLayerType, 26)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, bReserved, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, bReserved, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, bReserved, 27)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, dwLayerMask, 4)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, dwLayerMask, 4)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, dwLayerMask, 28)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, dwVisibleMask, 4)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, dwVisibleMask, 4)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, dwVisibleMask, 32)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, dwDamageMask, 4)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, dwDamageMask, 4)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, dwDamageMask, 36)
}

static void test_pack_PLAYERPLANEDESCRIPTOR(void)
{
    /* PLAYERPLANEDESCRIPTOR */
    TEST_TYPE_SIZE   (PLAYERPLANEDESCRIPTOR, 8)
    TEST_TYPE_ALIGN  (PLAYERPLANEDESCRIPTOR, 8)
    TEST_TARGET_SIZE (PLAYERPLANEDESCRIPTOR, 32)
    TEST_TARGET_ALIGN(PLAYERPLANEDESCRIPTOR, 4)
}

static void test_pack_PLOCALESIGNATURE(void)
{
    /* PLOCALESIGNATURE */
    TEST_TYPE_SIZE   (PLOCALESIGNATURE, 8)
    TEST_TYPE_ALIGN  (PLOCALESIGNATURE, 8)
    TEST_TARGET_SIZE (PLOCALESIGNATURE, 32)
    TEST_TARGET_ALIGN(PLOCALESIGNATURE, 4)
}

static void test_pack_PLOGBRUSH(void)
{
    /* PLOGBRUSH */
    TEST_TYPE_SIZE   (PLOGBRUSH, 8)
    TEST_TYPE_ALIGN  (PLOGBRUSH, 8)
    TEST_TARGET_SIZE (PLOGBRUSH, 16)
    TEST_TARGET_ALIGN(PLOGBRUSH, 8)
}

static void test_pack_PLOGFONTA(void)
{
    /* PLOGFONTA */
    TEST_TYPE_SIZE   (PLOGFONTA, 8)
    TEST_TYPE_ALIGN  (PLOGFONTA, 8)
    TEST_TARGET_SIZE (PLOGFONTA, 60)
    TEST_TARGET_ALIGN(PLOGFONTA, 4)
}

static void test_pack_PLOGFONTW(void)
{
    /* PLOGFONTW */
    TEST_TYPE_SIZE   (PLOGFONTW, 8)
    TEST_TYPE_ALIGN  (PLOGFONTW, 8)
    TEST_TARGET_SIZE (PLOGFONTW, 92)
    TEST_TARGET_ALIGN(PLOGFONTW, 4)
}

static void test_pack_PMETAHEADER(void)
{
    /* PMETAHEADER */
    TEST_TYPE_SIZE   (PMETAHEADER, 8)
    TEST_TYPE_ALIGN  (PMETAHEADER, 8)
    TEST_TARGET_SIZE (PMETAHEADER, 18)
    TEST_TARGET_ALIGN(PMETAHEADER, 2)
}

static void test_pack_PMETARECORD(void)
{
    /* PMETARECORD */
    TEST_TYPE_SIZE   (PMETARECORD, 8)
    TEST_TYPE_ALIGN  (PMETARECORD, 8)
    TEST_TARGET_SIZE (PMETARECORD, 8)
    TEST_TARGET_ALIGN(PMETARECORD, 4)
}

static void test_pack_PNEWTEXTMETRICA(void)
{
    /* PNEWTEXTMETRICA */
    TEST_TYPE_SIZE   (PNEWTEXTMETRICA, 8)
    TEST_TYPE_ALIGN  (PNEWTEXTMETRICA, 8)
    TEST_TARGET_SIZE (PNEWTEXTMETRICA, 72)
    TEST_TARGET_ALIGN(PNEWTEXTMETRICA, 4)
}

static void test_pack_PNEWTEXTMETRICW(void)
{
    /* PNEWTEXTMETRICW */
    TEST_TYPE_SIZE   (PNEWTEXTMETRICW, 8)
    TEST_TYPE_ALIGN  (PNEWTEXTMETRICW, 8)
    TEST_TARGET_SIZE (PNEWTEXTMETRICW, 76)
    TEST_TARGET_ALIGN(PNEWTEXTMETRICW, 4)
}

static void test_pack_POINTFLOAT(void)
{
    /* POINTFLOAT */
    TEST_TYPE_SIZE   (POINTFLOAT, 8)
    TEST_TYPE_ALIGN  (POINTFLOAT, 4)
    TEST_FIELD_SIZE  (POINTFLOAT, x, 4)
    TEST_FIELD_ALIGN (POINTFLOAT, x, 4)
    TEST_FIELD_OFFSET(POINTFLOAT, x, 0)
    TEST_FIELD_SIZE  (POINTFLOAT, y, 4)
    TEST_FIELD_ALIGN (POINTFLOAT, y, 4)
    TEST_FIELD_OFFSET(POINTFLOAT, y, 4)
}

static void test_pack_POINTFX(void)
{
    /* POINTFX */
    TEST_TYPE_SIZE   (POINTFX, 8)
    TEST_TYPE_ALIGN  (POINTFX, 2)
    TEST_FIELD_SIZE  (POINTFX, x, 4)
    TEST_FIELD_ALIGN (POINTFX, x, 2)
    TEST_FIELD_OFFSET(POINTFX, x, 0)
    TEST_FIELD_SIZE  (POINTFX, y, 4)
    TEST_FIELD_ALIGN (POINTFX, y, 2)
    TEST_FIELD_OFFSET(POINTFX, y, 4)
}

static void test_pack_POLYTEXTA(void)
{
    /* POLYTEXTA */
    TEST_TYPE_SIZE   (POLYTEXTA, 56)
    TEST_TYPE_ALIGN  (POLYTEXTA, 8)
    TEST_FIELD_SIZE  (POLYTEXTA, x, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, x, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, x, 0)
    TEST_FIELD_SIZE  (POLYTEXTA, y, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, y, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, y, 4)
    TEST_FIELD_SIZE  (POLYTEXTA, n, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, n, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, n, 8)
    TEST_FIELD_SIZE  (POLYTEXTA, lpstr, 8)
    TEST_FIELD_ALIGN (POLYTEXTA, lpstr, 8)
    TEST_FIELD_OFFSET(POLYTEXTA, lpstr, 16)
    TEST_FIELD_SIZE  (POLYTEXTA, uiFlags, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, uiFlags, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, uiFlags, 24)
    TEST_FIELD_SIZE  (POLYTEXTA, rcl, 16)
    TEST_FIELD_ALIGN (POLYTEXTA, rcl, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, rcl, 28)
    TEST_FIELD_SIZE  (POLYTEXTA, pdx, 8)
    TEST_FIELD_ALIGN (POLYTEXTA, pdx, 8)
    TEST_FIELD_OFFSET(POLYTEXTA, pdx, 48)
}

static void test_pack_POLYTEXTW(void)
{
    /* POLYTEXTW */
    TEST_TYPE_SIZE   (POLYTEXTW, 56)
    TEST_TYPE_ALIGN  (POLYTEXTW, 8)
    TEST_FIELD_SIZE  (POLYTEXTW, x, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, x, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, x, 0)
    TEST_FIELD_SIZE  (POLYTEXTW, y, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, y, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, y, 4)
    TEST_FIELD_SIZE  (POLYTEXTW, n, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, n, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, n, 8)
    TEST_FIELD_SIZE  (POLYTEXTW, lpstr, 8)
    TEST_FIELD_ALIGN (POLYTEXTW, lpstr, 8)
    TEST_FIELD_OFFSET(POLYTEXTW, lpstr, 16)
    TEST_FIELD_SIZE  (POLYTEXTW, uiFlags, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, uiFlags, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, uiFlags, 24)
    TEST_FIELD_SIZE  (POLYTEXTW, rcl, 16)
    TEST_FIELD_ALIGN (POLYTEXTW, rcl, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, rcl, 28)
    TEST_FIELD_SIZE  (POLYTEXTW, pdx, 8)
    TEST_FIELD_ALIGN (POLYTEXTW, pdx, 8)
    TEST_FIELD_OFFSET(POLYTEXTW, pdx, 48)
}

static void test_pack_POUTLINETEXTMETRICA(void)
{
    /* POUTLINETEXTMETRICA */
    TEST_TYPE_SIZE   (POUTLINETEXTMETRICA, 8)
    TEST_TYPE_ALIGN  (POUTLINETEXTMETRICA, 8)
    TEST_TARGET_SIZE (POUTLINETEXTMETRICA, 232)
    TEST_TARGET_ALIGN(POUTLINETEXTMETRICA, 8)
}

static void test_pack_POUTLINETEXTMETRICW(void)
{
    /* POUTLINETEXTMETRICW */
    TEST_TYPE_SIZE   (POUTLINETEXTMETRICW, 8)
    TEST_TYPE_ALIGN  (POUTLINETEXTMETRICW, 8)
    TEST_TARGET_SIZE (POUTLINETEXTMETRICW, 232)
    TEST_TARGET_ALIGN(POUTLINETEXTMETRICW, 8)
}

static void test_pack_PPELARRAY(void)
{
    /* PPELARRAY */
    TEST_TYPE_SIZE   (PPELARRAY, 8)
    TEST_TYPE_ALIGN  (PPELARRAY, 8)
    TEST_TARGET_SIZE (PPELARRAY, 20)
    TEST_TARGET_ALIGN(PPELARRAY, 4)
}

static void test_pack_PPIXELFORMATDESCRIPTOR(void)
{
    /* PPIXELFORMATDESCRIPTOR */
    TEST_TYPE_SIZE   (PPIXELFORMATDESCRIPTOR, 8)
    TEST_TYPE_ALIGN  (PPIXELFORMATDESCRIPTOR, 8)
    TEST_TARGET_SIZE (PPIXELFORMATDESCRIPTOR, 40)
    TEST_TARGET_ALIGN(PPIXELFORMATDESCRIPTOR, 4)
}

static void test_pack_PPOINTFLOAT(void)
{
    /* PPOINTFLOAT */
    TEST_TYPE_SIZE   (PPOINTFLOAT, 8)
    TEST_TYPE_ALIGN  (PPOINTFLOAT, 8)
    TEST_TARGET_SIZE (PPOINTFLOAT, 8)
    TEST_TARGET_ALIGN(PPOINTFLOAT, 4)
}

static void test_pack_PPOLYTEXTA(void)
{
    /* PPOLYTEXTA */
    TEST_TYPE_SIZE   (PPOLYTEXTA, 8)
    TEST_TYPE_ALIGN  (PPOLYTEXTA, 8)
    TEST_TARGET_SIZE (PPOLYTEXTA, 56)
    TEST_TARGET_ALIGN(PPOLYTEXTA, 8)
}

static void test_pack_PPOLYTEXTW(void)
{
    /* PPOLYTEXTW */
    TEST_TYPE_SIZE   (PPOLYTEXTW, 8)
    TEST_TYPE_ALIGN  (PPOLYTEXTW, 8)
    TEST_TARGET_SIZE (PPOLYTEXTW, 56)
    TEST_TARGET_ALIGN(PPOLYTEXTW, 8)
}

static void test_pack_PRGNDATA(void)
{
    /* PRGNDATA */
    TEST_TYPE_SIZE   (PRGNDATA, 8)
    TEST_TYPE_ALIGN  (PRGNDATA, 8)
    TEST_TARGET_SIZE (PRGNDATA, 36)
    TEST_TARGET_ALIGN(PRGNDATA, 4)
}

static void test_pack_PRGNDATAHEADER(void)
{
    /* PRGNDATAHEADER */
    TEST_TYPE_SIZE   (PRGNDATAHEADER, 8)
    TEST_TYPE_ALIGN  (PRGNDATAHEADER, 8)
    TEST_TARGET_SIZE (PRGNDATAHEADER, 32)
    TEST_TARGET_ALIGN(PRGNDATAHEADER, 4)
}

static void test_pack_PTEXTMETRICA(void)
{
    /* PTEXTMETRICA */
    TEST_TYPE_SIZE   (PTEXTMETRICA, 8)
    TEST_TYPE_ALIGN  (PTEXTMETRICA, 8)
    TEST_TARGET_SIZE (PTEXTMETRICA, 56)
    TEST_TARGET_ALIGN(PTEXTMETRICA, 4)
}

static void test_pack_PTEXTMETRICW(void)
{
    /* PTEXTMETRICW */
    TEST_TYPE_SIZE   (PTEXTMETRICW, 8)
    TEST_TYPE_ALIGN  (PTEXTMETRICW, 8)
    TEST_TARGET_SIZE (PTEXTMETRICW, 60)
    TEST_TARGET_ALIGN(PTEXTMETRICW, 4)
}

static void test_pack_PTRIVERTEX(void)
{
    /* PTRIVERTEX */
    TEST_TYPE_SIZE   (PTRIVERTEX, 8)
    TEST_TYPE_ALIGN  (PTRIVERTEX, 8)
    TEST_TARGET_SIZE (PTRIVERTEX, 16)
    TEST_TARGET_ALIGN(PTRIVERTEX, 4)
}

static void test_pack_PXFORM(void)
{
    /* PXFORM */
    TEST_TYPE_SIZE   (PXFORM, 8)
    TEST_TYPE_ALIGN  (PXFORM, 8)
    TEST_TARGET_SIZE (PXFORM, 24)
    TEST_TARGET_ALIGN(PXFORM, 4)
}

static void test_pack_RASTERIZER_STATUS(void)
{
    /* RASTERIZER_STATUS */
    TEST_TYPE_SIZE   (RASTERIZER_STATUS, 6)
    TEST_TYPE_ALIGN  (RASTERIZER_STATUS, 2)
    TEST_FIELD_SIZE  (RASTERIZER_STATUS, nSize, 2)
    TEST_FIELD_ALIGN (RASTERIZER_STATUS, nSize, 2)
    TEST_FIELD_OFFSET(RASTERIZER_STATUS, nSize, 0)
    TEST_FIELD_SIZE  (RASTERIZER_STATUS, wFlags, 2)
    TEST_FIELD_ALIGN (RASTERIZER_STATUS, wFlags, 2)
    TEST_FIELD_OFFSET(RASTERIZER_STATUS, wFlags, 2)
    TEST_FIELD_SIZE  (RASTERIZER_STATUS, nLanguageID, 2)
    TEST_FIELD_ALIGN (RASTERIZER_STATUS, nLanguageID, 2)
    TEST_FIELD_OFFSET(RASTERIZER_STATUS, nLanguageID, 4)
}

static void test_pack_RGBQUAD(void)
{
    /* RGBQUAD */
    TEST_TYPE_SIZE   (RGBQUAD, 4)
    TEST_TYPE_ALIGN  (RGBQUAD, 1)
    TEST_FIELD_SIZE  (RGBQUAD, rgbBlue, 1)
    TEST_FIELD_ALIGN (RGBQUAD, rgbBlue, 1)
    TEST_FIELD_OFFSET(RGBQUAD, rgbBlue, 0)
    TEST_FIELD_SIZE  (RGBQUAD, rgbGreen, 1)
    TEST_FIELD_ALIGN (RGBQUAD, rgbGreen, 1)
    TEST_FIELD_OFFSET(RGBQUAD, rgbGreen, 1)
    TEST_FIELD_SIZE  (RGBQUAD, rgbRed, 1)
    TEST_FIELD_ALIGN (RGBQUAD, rgbRed, 1)
    TEST_FIELD_OFFSET(RGBQUAD, rgbRed, 2)
    TEST_FIELD_SIZE  (RGBQUAD, rgbReserved, 1)
    TEST_FIELD_ALIGN (RGBQUAD, rgbReserved, 1)
    TEST_FIELD_OFFSET(RGBQUAD, rgbReserved, 3)
}

static void test_pack_RGBTRIPLE(void)
{
    /* RGBTRIPLE */
    TEST_TYPE_SIZE   (RGBTRIPLE, 3)
    TEST_TYPE_ALIGN  (RGBTRIPLE, 1)
    TEST_FIELD_SIZE  (RGBTRIPLE, rgbtBlue, 1)
    TEST_FIELD_ALIGN (RGBTRIPLE, rgbtBlue, 1)
    TEST_FIELD_OFFSET(RGBTRIPLE, rgbtBlue, 0)
    TEST_FIELD_SIZE  (RGBTRIPLE, rgbtGreen, 1)
    TEST_FIELD_ALIGN (RGBTRIPLE, rgbtGreen, 1)
    TEST_FIELD_OFFSET(RGBTRIPLE, rgbtGreen, 1)
    TEST_FIELD_SIZE  (RGBTRIPLE, rgbtRed, 1)
    TEST_FIELD_ALIGN (RGBTRIPLE, rgbtRed, 1)
    TEST_FIELD_OFFSET(RGBTRIPLE, rgbtRed, 2)
}

static void test_pack_RGNDATA(void)
{
    /* RGNDATA */
    TEST_TYPE_SIZE   (RGNDATA, 36)
    TEST_TYPE_ALIGN  (RGNDATA, 4)
    TEST_FIELD_SIZE  (RGNDATA, rdh, 32)
    TEST_FIELD_ALIGN (RGNDATA, rdh, 4)
    TEST_FIELD_OFFSET(RGNDATA, rdh, 0)
    TEST_FIELD_SIZE  (RGNDATA, Buffer, 1)
    TEST_FIELD_ALIGN (RGNDATA, Buffer, 1)
    TEST_FIELD_OFFSET(RGNDATA, Buffer, 32)
}

static void test_pack_RGNDATAHEADER(void)
{
    /* RGNDATAHEADER */
    TEST_TYPE_SIZE   (RGNDATAHEADER, 32)
    TEST_TYPE_ALIGN  (RGNDATAHEADER, 4)
    TEST_FIELD_SIZE  (RGNDATAHEADER, dwSize, 4)
    TEST_FIELD_ALIGN (RGNDATAHEADER, dwSize, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, dwSize, 0)
    TEST_FIELD_SIZE  (RGNDATAHEADER, iType, 4)
    TEST_FIELD_ALIGN (RGNDATAHEADER, iType, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, iType, 4)
    TEST_FIELD_SIZE  (RGNDATAHEADER, nCount, 4)
    TEST_FIELD_ALIGN (RGNDATAHEADER, nCount, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, nCount, 8)
    TEST_FIELD_SIZE  (RGNDATAHEADER, nRgnSize, 4)
    TEST_FIELD_ALIGN (RGNDATAHEADER, nRgnSize, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, nRgnSize, 12)
    TEST_FIELD_SIZE  (RGNDATAHEADER, rcBound, 16)
    TEST_FIELD_ALIGN (RGNDATAHEADER, rcBound, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, rcBound, 16)
}

static void test_pack_TEXTMETRICA(void)
{
    /* TEXTMETRICA */
    TEST_TYPE_SIZE   (TEXTMETRICA, 56)
    TEST_TYPE_ALIGN  (TEXTMETRICA, 4)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmHeight, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmHeight, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmHeight, 0)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmAscent, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmAscent, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmAscent, 4)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmDescent, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmDescent, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmDescent, 8)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmInternalLeading, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmInternalLeading, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmInternalLeading, 12)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmExternalLeading, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmExternalLeading, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmExternalLeading, 16)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmAveCharWidth, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmAveCharWidth, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmAveCharWidth, 20)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmMaxCharWidth, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmMaxCharWidth, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmMaxCharWidth, 24)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmWeight, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmWeight, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmWeight, 28)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmOverhang, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmOverhang, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmOverhang, 32)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmDigitizedAspectX, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmDigitizedAspectX, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmDigitizedAspectX, 36)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmDigitizedAspectY, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmDigitizedAspectY, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmDigitizedAspectY, 40)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmFirstChar, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmFirstChar, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmFirstChar, 44)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmLastChar, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmLastChar, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmLastChar, 45)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmDefaultChar, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmDefaultChar, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmDefaultChar, 46)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmBreakChar, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmBreakChar, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmBreakChar, 47)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmItalic, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmItalic, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmItalic, 48)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmUnderlined, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmUnderlined, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmUnderlined, 49)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmStruckOut, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmStruckOut, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmStruckOut, 50)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmPitchAndFamily, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmPitchAndFamily, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmPitchAndFamily, 51)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmCharSet, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmCharSet, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmCharSet, 52)
}

static void test_pack_TEXTMETRICW(void)
{
    /* TEXTMETRICW */
    TEST_TYPE_SIZE   (TEXTMETRICW, 60)
    TEST_TYPE_ALIGN  (TEXTMETRICW, 4)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmHeight, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmHeight, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmHeight, 0)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmAscent, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmAscent, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmAscent, 4)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmDescent, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmDescent, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmDescent, 8)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmInternalLeading, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmInternalLeading, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmInternalLeading, 12)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmExternalLeading, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmExternalLeading, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmExternalLeading, 16)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmAveCharWidth, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmAveCharWidth, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmAveCharWidth, 20)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmMaxCharWidth, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmMaxCharWidth, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmMaxCharWidth, 24)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmWeight, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmWeight, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmWeight, 28)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmOverhang, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmOverhang, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmOverhang, 32)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmDigitizedAspectX, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmDigitizedAspectX, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmDigitizedAspectX, 36)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmDigitizedAspectY, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmDigitizedAspectY, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmDigitizedAspectY, 40)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmFirstChar, 2)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmFirstChar, 2)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmFirstChar, 44)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmLastChar, 2)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmLastChar, 2)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmLastChar, 46)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmDefaultChar, 2)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmDefaultChar, 2)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmDefaultChar, 48)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmBreakChar, 2)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmBreakChar, 2)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmBreakChar, 50)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmItalic, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmItalic, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmItalic, 52)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmUnderlined, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmUnderlined, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmUnderlined, 53)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmStruckOut, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmStruckOut, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmStruckOut, 54)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmPitchAndFamily, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmPitchAndFamily, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmPitchAndFamily, 55)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmCharSet, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmCharSet, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmCharSet, 56)
}

static void test_pack_TRIVERTEX(void)
{
    /* TRIVERTEX */
    TEST_TYPE_SIZE   (TRIVERTEX, 16)
    TEST_TYPE_ALIGN  (TRIVERTEX, 4)
    TEST_FIELD_SIZE  (TRIVERTEX, x, 4)
    TEST_FIELD_ALIGN (TRIVERTEX, x, 4)
    TEST_FIELD_OFFSET(TRIVERTEX, x, 0)
    TEST_FIELD_SIZE  (TRIVERTEX, y, 4)
    TEST_FIELD_ALIGN (TRIVERTEX, y, 4)
    TEST_FIELD_OFFSET(TRIVERTEX, y, 4)
    TEST_FIELD_SIZE  (TRIVERTEX, Red, 2)
    TEST_FIELD_ALIGN (TRIVERTEX, Red, 2)
    TEST_FIELD_OFFSET(TRIVERTEX, Red, 8)
    TEST_FIELD_SIZE  (TRIVERTEX, Green, 2)
    TEST_FIELD_ALIGN (TRIVERTEX, Green, 2)
    TEST_FIELD_OFFSET(TRIVERTEX, Green, 10)
    TEST_FIELD_SIZE  (TRIVERTEX, Blue, 2)
    TEST_FIELD_ALIGN (TRIVERTEX, Blue, 2)
    TEST_FIELD_OFFSET(TRIVERTEX, Blue, 12)
    TEST_FIELD_SIZE  (TRIVERTEX, Alpha, 2)
    TEST_FIELD_ALIGN (TRIVERTEX, Alpha, 2)
    TEST_FIELD_OFFSET(TRIVERTEX, Alpha, 14)
}

static void test_pack_TTPOLYCURVE(void)
{
    /* TTPOLYCURVE */
    TEST_TYPE_SIZE   (TTPOLYCURVE, 12)
    TEST_TYPE_ALIGN  (TTPOLYCURVE, 2)
    TEST_FIELD_SIZE  (TTPOLYCURVE, wType, 2)
    TEST_FIELD_ALIGN (TTPOLYCURVE, wType, 2)
    TEST_FIELD_OFFSET(TTPOLYCURVE, wType, 0)
    TEST_FIELD_SIZE  (TTPOLYCURVE, cpfx, 2)
    TEST_FIELD_ALIGN (TTPOLYCURVE, cpfx, 2)
    TEST_FIELD_OFFSET(TTPOLYCURVE, cpfx, 2)
    TEST_FIELD_SIZE  (TTPOLYCURVE, apfx, 8)
    TEST_FIELD_ALIGN (TTPOLYCURVE, apfx, 2)
    TEST_FIELD_OFFSET(TTPOLYCURVE, apfx, 4)
}

static void test_pack_TTPOLYGONHEADER(void)
{
    /* TTPOLYGONHEADER */
    TEST_TYPE_SIZE   (TTPOLYGONHEADER, 16)
    TEST_TYPE_ALIGN  (TTPOLYGONHEADER, 4)
    TEST_FIELD_SIZE  (TTPOLYGONHEADER, cb, 4)
    TEST_FIELD_ALIGN (TTPOLYGONHEADER, cb, 4)
    TEST_FIELD_OFFSET(TTPOLYGONHEADER, cb, 0)
    TEST_FIELD_SIZE  (TTPOLYGONHEADER, dwType, 4)
    TEST_FIELD_ALIGN (TTPOLYGONHEADER, dwType, 4)
    TEST_FIELD_OFFSET(TTPOLYGONHEADER, dwType, 4)
    TEST_FIELD_SIZE  (TTPOLYGONHEADER, pfxStart, 8)
    TEST_FIELD_ALIGN (TTPOLYGONHEADER, pfxStart, 2)
    TEST_FIELD_OFFSET(TTPOLYGONHEADER, pfxStart, 8)
}

static void test_pack_XFORM(void)
{
    /* XFORM */
    TEST_TYPE_SIZE   (XFORM, 24)
    TEST_TYPE_ALIGN  (XFORM, 4)
    TEST_FIELD_SIZE  (XFORM, eM11, 4)
    TEST_FIELD_ALIGN (XFORM, eM11, 4)
    TEST_FIELD_OFFSET(XFORM, eM11, 0)
    TEST_FIELD_SIZE  (XFORM, eM12, 4)
    TEST_FIELD_ALIGN (XFORM, eM12, 4)
    TEST_FIELD_OFFSET(XFORM, eM12, 4)
    TEST_FIELD_SIZE  (XFORM, eM21, 4)
    TEST_FIELD_ALIGN (XFORM, eM21, 4)
    TEST_FIELD_OFFSET(XFORM, eM21, 8)
    TEST_FIELD_SIZE  (XFORM, eM22, 4)
    TEST_FIELD_ALIGN (XFORM, eM22, 4)
    TEST_FIELD_OFFSET(XFORM, eM22, 12)
    TEST_FIELD_SIZE  (XFORM, eDx, 4)
    TEST_FIELD_ALIGN (XFORM, eDx, 4)
    TEST_FIELD_OFFSET(XFORM, eDx, 16)
    TEST_FIELD_SIZE  (XFORM, eDy, 4)
    TEST_FIELD_ALIGN (XFORM, eDy, 4)
    TEST_FIELD_OFFSET(XFORM, eDy, 20)
}

#else /* _WIN64 */

static void test_pack_ABC(void)
{
    /* ABC */
    TEST_TYPE_SIZE   (ABC, 12)
    TEST_TYPE_ALIGN  (ABC, 4)
    TEST_FIELD_SIZE  (ABC, abcA, 4)
    TEST_FIELD_ALIGN (ABC, abcA, 4)
    TEST_FIELD_OFFSET(ABC, abcA, 0)
    TEST_FIELD_SIZE  (ABC, abcB, 4)
    TEST_FIELD_ALIGN (ABC, abcB, 4)
    TEST_FIELD_OFFSET(ABC, abcB, 4)
    TEST_FIELD_SIZE  (ABC, abcC, 4)
    TEST_FIELD_ALIGN (ABC, abcC, 4)
    TEST_FIELD_OFFSET(ABC, abcC, 8)
}

static void test_pack_ABCFLOAT(void)
{
    /* ABCFLOAT */
    TEST_TYPE_SIZE   (ABCFLOAT, 12)
    TEST_TYPE_ALIGN  (ABCFLOAT, 4)
    TEST_FIELD_SIZE  (ABCFLOAT, abcfA, 4)
    TEST_FIELD_ALIGN (ABCFLOAT, abcfA, 4)
    TEST_FIELD_OFFSET(ABCFLOAT, abcfA, 0)
    TEST_FIELD_SIZE  (ABCFLOAT, abcfB, 4)
    TEST_FIELD_ALIGN (ABCFLOAT, abcfB, 4)
    TEST_FIELD_OFFSET(ABCFLOAT, abcfB, 4)
    TEST_FIELD_SIZE  (ABCFLOAT, abcfC, 4)
    TEST_FIELD_ALIGN (ABCFLOAT, abcfC, 4)
    TEST_FIELD_OFFSET(ABCFLOAT, abcfC, 8)
}

static void test_pack_ABORTPROC(void)
{
    /* ABORTPROC */
    TEST_TYPE_SIZE   (ABORTPROC, 4)
    TEST_TYPE_ALIGN  (ABORTPROC, 4)
}

static void test_pack_BITMAP(void)
{
    /* BITMAP */
    TEST_TYPE_SIZE   (BITMAP, 24)
    TEST_TYPE_ALIGN  (BITMAP, 4)
    TEST_FIELD_SIZE  (BITMAP, bmType, 4)
    TEST_FIELD_ALIGN (BITMAP, bmType, 4)
    TEST_FIELD_OFFSET(BITMAP, bmType, 0)
    TEST_FIELD_SIZE  (BITMAP, bmWidth, 4)
    TEST_FIELD_ALIGN (BITMAP, bmWidth, 4)
    TEST_FIELD_OFFSET(BITMAP, bmWidth, 4)
    TEST_FIELD_SIZE  (BITMAP, bmHeight, 4)
    TEST_FIELD_ALIGN (BITMAP, bmHeight, 4)
    TEST_FIELD_OFFSET(BITMAP, bmHeight, 8)
    TEST_FIELD_SIZE  (BITMAP, bmWidthBytes, 4)
    TEST_FIELD_ALIGN (BITMAP, bmWidthBytes, 4)
    TEST_FIELD_OFFSET(BITMAP, bmWidthBytes, 12)
    TEST_FIELD_SIZE  (BITMAP, bmPlanes, 2)
    TEST_FIELD_ALIGN (BITMAP, bmPlanes, 2)
    TEST_FIELD_OFFSET(BITMAP, bmPlanes, 16)
    TEST_FIELD_SIZE  (BITMAP, bmBitsPixel, 2)
    TEST_FIELD_ALIGN (BITMAP, bmBitsPixel, 2)
    TEST_FIELD_OFFSET(BITMAP, bmBitsPixel, 18)
    TEST_FIELD_SIZE  (BITMAP, bmBits, 4)
    TEST_FIELD_ALIGN (BITMAP, bmBits, 4)
    TEST_FIELD_OFFSET(BITMAP, bmBits, 20)
}

static void test_pack_BITMAPCOREHEADER(void)
{
    /* BITMAPCOREHEADER */
    TEST_TYPE_SIZE   (BITMAPCOREHEADER, 12)
    TEST_TYPE_ALIGN  (BITMAPCOREHEADER, 4)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcSize, 4)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcSize, 4)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcSize, 0)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcWidth, 2)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcWidth, 2)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcWidth, 4)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcHeight, 2)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcHeight, 2)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcHeight, 6)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcPlanes, 2)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcPlanes, 2)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcPlanes, 8)
    TEST_FIELD_SIZE  (BITMAPCOREHEADER, bcBitCount, 2)
    TEST_FIELD_ALIGN (BITMAPCOREHEADER, bcBitCount, 2)
    TEST_FIELD_OFFSET(BITMAPCOREHEADER, bcBitCount, 10)
}

static void test_pack_BITMAPCOREINFO(void)
{
    /* BITMAPCOREINFO */
    TEST_TYPE_SIZE   (BITMAPCOREINFO, 16)
    TEST_TYPE_ALIGN  (BITMAPCOREINFO, 4)
    TEST_FIELD_SIZE  (BITMAPCOREINFO, bmciHeader, 12)
    TEST_FIELD_ALIGN (BITMAPCOREINFO, bmciHeader, 4)
    TEST_FIELD_OFFSET(BITMAPCOREINFO, bmciHeader, 0)
    TEST_FIELD_SIZE  (BITMAPCOREINFO, bmciColors, 3)
    TEST_FIELD_ALIGN (BITMAPCOREINFO, bmciColors, 1)
    TEST_FIELD_OFFSET(BITMAPCOREINFO, bmciColors, 12)
}

static void test_pack_BITMAPFILEHEADER(void)
{
    /* BITMAPFILEHEADER (pack 2) */
    TEST_TYPE_SIZE   (BITMAPFILEHEADER, 14)
    TEST_TYPE_ALIGN  (BITMAPFILEHEADER, 2)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfType, 2)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfType, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfType, 0)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfSize, 4)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfSize, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfSize, 2)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfReserved1, 2)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfReserved1, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfReserved1, 6)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfReserved2, 2)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfReserved2, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfReserved2, 8)
    TEST_FIELD_SIZE  (BITMAPFILEHEADER, bfOffBits, 4)
    TEST_FIELD_ALIGN (BITMAPFILEHEADER, bfOffBits, 2)
    TEST_FIELD_OFFSET(BITMAPFILEHEADER, bfOffBits, 10)
}

static void test_pack_BITMAPINFO(void)
{
    /* BITMAPINFO */
    TEST_TYPE_SIZE   (BITMAPINFO, 44)
    TEST_TYPE_ALIGN  (BITMAPINFO, 4)
    TEST_FIELD_SIZE  (BITMAPINFO, bmiHeader, 40)
    TEST_FIELD_ALIGN (BITMAPINFO, bmiHeader, 4)
    TEST_FIELD_OFFSET(BITMAPINFO, bmiHeader, 0)
    TEST_FIELD_SIZE  (BITMAPINFO, bmiColors, 4)
    TEST_FIELD_ALIGN (BITMAPINFO, bmiColors, 1)
    TEST_FIELD_OFFSET(BITMAPINFO, bmiColors, 40)
}

static void test_pack_BITMAPINFOHEADER(void)
{
    /* BITMAPINFOHEADER */
    TEST_TYPE_SIZE   (BITMAPINFOHEADER, 40)
    TEST_TYPE_ALIGN  (BITMAPINFOHEADER, 4)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biSize, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biSize, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biSize, 0)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biWidth, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biWidth, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biWidth, 4)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biHeight, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biHeight, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biHeight, 8)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biPlanes, 2)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biPlanes, 2)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biPlanes, 12)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biBitCount, 2)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biBitCount, 2)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biBitCount, 14)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biCompression, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biCompression, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biCompression, 16)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biSizeImage, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biSizeImage, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biSizeImage, 20)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biXPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biXPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biXPelsPerMeter, 24)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biYPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biYPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biYPelsPerMeter, 28)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biClrUsed, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biClrUsed, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biClrUsed, 32)
    TEST_FIELD_SIZE  (BITMAPINFOHEADER, biClrImportant, 4)
    TEST_FIELD_ALIGN (BITMAPINFOHEADER, biClrImportant, 4)
    TEST_FIELD_OFFSET(BITMAPINFOHEADER, biClrImportant, 36)
}

static void test_pack_BITMAPV4HEADER(void)
{
    /* BITMAPV4HEADER */
    TEST_TYPE_SIZE   (BITMAPV4HEADER, 108)
    TEST_TYPE_ALIGN  (BITMAPV4HEADER, 4)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Size, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Size, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Size, 0)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Width, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Width, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Width, 4)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Height, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Height, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Height, 8)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Planes, 2)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Planes, 2)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Planes, 12)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4BitCount, 2)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4BitCount, 2)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4BitCount, 14)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4V4Compression, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4V4Compression, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4V4Compression, 16)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4SizeImage, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4SizeImage, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4SizeImage, 20)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4XPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4XPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4XPelsPerMeter, 24)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4YPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4YPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4YPelsPerMeter, 28)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4ClrUsed, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4ClrUsed, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4ClrUsed, 32)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4ClrImportant, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4ClrImportant, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4ClrImportant, 36)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4RedMask, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4RedMask, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4RedMask, 40)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4GreenMask, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4GreenMask, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4GreenMask, 44)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4BlueMask, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4BlueMask, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4BlueMask, 48)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4AlphaMask, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4AlphaMask, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4AlphaMask, 52)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4CSType, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4CSType, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4CSType, 56)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4Endpoints, 36)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4Endpoints, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4Endpoints, 60)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4GammaRed, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4GammaRed, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4GammaRed, 96)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4GammaGreen, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4GammaGreen, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4GammaGreen, 100)
    TEST_FIELD_SIZE  (BITMAPV4HEADER, bV4GammaBlue, 4)
    TEST_FIELD_ALIGN (BITMAPV4HEADER, bV4GammaBlue, 4)
    TEST_FIELD_OFFSET(BITMAPV4HEADER, bV4GammaBlue, 104)
}

static void test_pack_BITMAPV5HEADER(void)
{
    /* BITMAPV5HEADER */
    TEST_TYPE_SIZE   (BITMAPV5HEADER, 124)
    TEST_TYPE_ALIGN  (BITMAPV5HEADER, 4)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Size, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Size, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Size, 0)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Width, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Width, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Width, 4)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Height, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Height, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Height, 8)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Planes, 2)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Planes, 2)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Planes, 12)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5BitCount, 2)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5BitCount, 2)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5BitCount, 14)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Compression, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Compression, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Compression, 16)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5SizeImage, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5SizeImage, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5SizeImage, 20)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5XPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5XPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5XPelsPerMeter, 24)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5YPelsPerMeter, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5YPelsPerMeter, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5YPelsPerMeter, 28)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5ClrUsed, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5ClrUsed, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5ClrUsed, 32)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5ClrImportant, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5ClrImportant, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5ClrImportant, 36)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5RedMask, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5RedMask, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5RedMask, 40)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5GreenMask, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5GreenMask, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5GreenMask, 44)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5BlueMask, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5BlueMask, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5BlueMask, 48)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5AlphaMask, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5AlphaMask, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5AlphaMask, 52)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5CSType, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5CSType, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5CSType, 56)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Endpoints, 36)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Endpoints, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Endpoints, 60)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5GammaRed, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5GammaRed, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5GammaRed, 96)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5GammaGreen, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5GammaGreen, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5GammaGreen, 100)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5GammaBlue, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5GammaBlue, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5GammaBlue, 104)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Intent, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Intent, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Intent, 108)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5ProfileData, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5ProfileData, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5ProfileData, 112)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5ProfileSize, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5ProfileSize, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5ProfileSize, 116)
    TEST_FIELD_SIZE  (BITMAPV5HEADER, bV5Reserved, 4)
    TEST_FIELD_ALIGN (BITMAPV5HEADER, bV5Reserved, 4)
    TEST_FIELD_OFFSET(BITMAPV5HEADER, bV5Reserved, 120)
}

static void test_pack_BLENDFUNCTION(void)
{
    /* BLENDFUNCTION */
    TEST_TYPE_SIZE   (BLENDFUNCTION, 4)
    TEST_TYPE_ALIGN  (BLENDFUNCTION, 1)
    TEST_FIELD_SIZE  (BLENDFUNCTION, BlendOp, 1)
    TEST_FIELD_ALIGN (BLENDFUNCTION, BlendOp, 1)
    TEST_FIELD_OFFSET(BLENDFUNCTION, BlendOp, 0)
    TEST_FIELD_SIZE  (BLENDFUNCTION, BlendFlags, 1)
    TEST_FIELD_ALIGN (BLENDFUNCTION, BlendFlags, 1)
    TEST_FIELD_OFFSET(BLENDFUNCTION, BlendFlags, 1)
    TEST_FIELD_SIZE  (BLENDFUNCTION, SourceConstantAlpha, 1)
    TEST_FIELD_ALIGN (BLENDFUNCTION, SourceConstantAlpha, 1)
    TEST_FIELD_OFFSET(BLENDFUNCTION, SourceConstantAlpha, 2)
    TEST_FIELD_SIZE  (BLENDFUNCTION, AlphaFormat, 1)
    TEST_FIELD_ALIGN (BLENDFUNCTION, AlphaFormat, 1)
    TEST_FIELD_OFFSET(BLENDFUNCTION, AlphaFormat, 3)
}

static void test_pack_CHARSETINFO(void)
{
    /* CHARSETINFO */
    TEST_TYPE_SIZE   (CHARSETINFO, 32)
    TEST_TYPE_ALIGN  (CHARSETINFO, 4)
    TEST_FIELD_SIZE  (CHARSETINFO, ciCharset, 4)
    TEST_FIELD_ALIGN (CHARSETINFO, ciCharset, 4)
    TEST_FIELD_OFFSET(CHARSETINFO, ciCharset, 0)
    TEST_FIELD_SIZE  (CHARSETINFO, ciACP, 4)
    TEST_FIELD_ALIGN (CHARSETINFO, ciACP, 4)
    TEST_FIELD_OFFSET(CHARSETINFO, ciACP, 4)
    TEST_FIELD_SIZE  (CHARSETINFO, fs, 24)
    TEST_FIELD_ALIGN (CHARSETINFO, fs, 4)
    TEST_FIELD_OFFSET(CHARSETINFO, fs, 8)
}

static void test_pack_CIEXYZ(void)
{
    /* CIEXYZ */
    TEST_TYPE_SIZE   (CIEXYZ, 12)
    TEST_TYPE_ALIGN  (CIEXYZ, 4)
    TEST_FIELD_SIZE  (CIEXYZ, ciexyzX, 4)
    TEST_FIELD_ALIGN (CIEXYZ, ciexyzX, 4)
    TEST_FIELD_OFFSET(CIEXYZ, ciexyzX, 0)
    TEST_FIELD_SIZE  (CIEXYZ, ciexyzY, 4)
    TEST_FIELD_ALIGN (CIEXYZ, ciexyzY, 4)
    TEST_FIELD_OFFSET(CIEXYZ, ciexyzY, 4)
    TEST_FIELD_SIZE  (CIEXYZ, ciexyzZ, 4)
    TEST_FIELD_ALIGN (CIEXYZ, ciexyzZ, 4)
    TEST_FIELD_OFFSET(CIEXYZ, ciexyzZ, 8)
}

static void test_pack_CIEXYZTRIPLE(void)
{
    /* CIEXYZTRIPLE */
    TEST_TYPE_SIZE   (CIEXYZTRIPLE, 36)
    TEST_TYPE_ALIGN  (CIEXYZTRIPLE, 4)
    TEST_FIELD_SIZE  (CIEXYZTRIPLE, ciexyzRed, 12)
    TEST_FIELD_ALIGN (CIEXYZTRIPLE, ciexyzRed, 4)
    TEST_FIELD_OFFSET(CIEXYZTRIPLE, ciexyzRed, 0)
    TEST_FIELD_SIZE  (CIEXYZTRIPLE, ciexyzGreen, 12)
    TEST_FIELD_ALIGN (CIEXYZTRIPLE, ciexyzGreen, 4)
    TEST_FIELD_OFFSET(CIEXYZTRIPLE, ciexyzGreen, 12)
    TEST_FIELD_SIZE  (CIEXYZTRIPLE, ciexyzBlue, 12)
    TEST_FIELD_ALIGN (CIEXYZTRIPLE, ciexyzBlue, 4)
    TEST_FIELD_OFFSET(CIEXYZTRIPLE, ciexyzBlue, 24)
}

static void test_pack_COLOR16(void)
{
    /* COLOR16 */
    TEST_TYPE_SIZE   (COLOR16, 2)
    TEST_TYPE_ALIGN  (COLOR16, 2)
}

static void test_pack_COLORADJUSTMENT(void)
{
    /* COLORADJUSTMENT */
    TEST_TYPE_SIZE   (COLORADJUSTMENT, 24)
    TEST_TYPE_ALIGN  (COLORADJUSTMENT, 2)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caSize, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caSize, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caSize, 0)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caFlags, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caFlags, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caFlags, 2)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caIlluminantIndex, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caIlluminantIndex, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caIlluminantIndex, 4)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caRedGamma, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caRedGamma, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caRedGamma, 6)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caGreenGamma, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caGreenGamma, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caGreenGamma, 8)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caBlueGamma, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caBlueGamma, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caBlueGamma, 10)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caReferenceBlack, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caReferenceBlack, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caReferenceBlack, 12)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caReferenceWhite, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caReferenceWhite, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caReferenceWhite, 14)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caContrast, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caContrast, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caContrast, 16)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caBrightness, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caBrightness, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caBrightness, 18)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caColorfulness, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caColorfulness, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caColorfulness, 20)
    TEST_FIELD_SIZE  (COLORADJUSTMENT, caRedGreenTint, 2)
    TEST_FIELD_ALIGN (COLORADJUSTMENT, caRedGreenTint, 2)
    TEST_FIELD_OFFSET(COLORADJUSTMENT, caRedGreenTint, 22)
}

static void test_pack_DEVMODEA(void)
{
    /* DEVMODEA */
    TEST_FIELD_SIZE  (DEVMODEA, dmDeviceName, 32)
    TEST_FIELD_ALIGN (DEVMODEA, dmDeviceName, 1)
    TEST_FIELD_OFFSET(DEVMODEA, dmDeviceName, 0)
    TEST_FIELD_SIZE  (DEVMODEA, dmSpecVersion, 2)
    TEST_FIELD_ALIGN (DEVMODEA, dmSpecVersion, 2)
    TEST_FIELD_OFFSET(DEVMODEA, dmSpecVersion, 32)
    TEST_FIELD_SIZE  (DEVMODEA, dmDriverVersion, 2)
    TEST_FIELD_ALIGN (DEVMODEA, dmDriverVersion, 2)
    TEST_FIELD_OFFSET(DEVMODEA, dmDriverVersion, 34)
    TEST_FIELD_SIZE  (DEVMODEA, dmSize, 2)
    TEST_FIELD_ALIGN (DEVMODEA, dmSize, 2)
    TEST_FIELD_OFFSET(DEVMODEA, dmSize, 36)
    TEST_FIELD_SIZE  (DEVMODEA, dmDriverExtra, 2)
    TEST_FIELD_ALIGN (DEVMODEA, dmDriverExtra, 2)
    TEST_FIELD_OFFSET(DEVMODEA, dmDriverExtra, 38)
    TEST_FIELD_SIZE  (DEVMODEA, dmFields, 4)
    TEST_FIELD_ALIGN (DEVMODEA, dmFields, 4)
    TEST_FIELD_OFFSET(DEVMODEA, dmFields, 40)
}

static void test_pack_DEVMODEW(void)
{
    /* DEVMODEW */
    TEST_FIELD_SIZE  (DEVMODEW, dmDeviceName, 64)
    TEST_FIELD_ALIGN (DEVMODEW, dmDeviceName, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmDeviceName, 0)
    TEST_FIELD_SIZE  (DEVMODEW, dmSpecVersion, 2)
    TEST_FIELD_ALIGN (DEVMODEW, dmSpecVersion, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmSpecVersion, 64)
    TEST_FIELD_SIZE  (DEVMODEW, dmDriverVersion, 2)
    TEST_FIELD_ALIGN (DEVMODEW, dmDriverVersion, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmDriverVersion, 66)
    TEST_FIELD_SIZE  (DEVMODEW, dmSize, 2)
    TEST_FIELD_ALIGN (DEVMODEW, dmSize, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmSize, 68)
    TEST_FIELD_SIZE  (DEVMODEW, dmDriverExtra, 2)
    TEST_FIELD_ALIGN (DEVMODEW, dmDriverExtra, 2)
    TEST_FIELD_OFFSET(DEVMODEW, dmDriverExtra, 70)
    TEST_FIELD_SIZE  (DEVMODEW, dmFields, 4)
    TEST_FIELD_ALIGN (DEVMODEW, dmFields, 4)
    TEST_FIELD_OFFSET(DEVMODEW, dmFields, 72)
}

static void test_pack_DIBSECTION(void)
{
    /* DIBSECTION */
    TEST_TYPE_SIZE   (DIBSECTION, 84)
    TEST_TYPE_ALIGN  (DIBSECTION, 4)
    TEST_FIELD_SIZE  (DIBSECTION, dsBm, 24)
    TEST_FIELD_ALIGN (DIBSECTION, dsBm, 4)
    TEST_FIELD_OFFSET(DIBSECTION, dsBm, 0)
    TEST_FIELD_SIZE  (DIBSECTION, dsBmih, 40)
    TEST_FIELD_ALIGN (DIBSECTION, dsBmih, 4)
    TEST_FIELD_OFFSET(DIBSECTION, dsBmih, 24)
    TEST_FIELD_SIZE  (DIBSECTION, dsBitfields, 12)
    TEST_FIELD_ALIGN (DIBSECTION, dsBitfields, 4)
    TEST_FIELD_OFFSET(DIBSECTION, dsBitfields, 64)
    TEST_FIELD_SIZE  (DIBSECTION, dshSection, 4)
    TEST_FIELD_ALIGN (DIBSECTION, dshSection, 4)
    TEST_FIELD_OFFSET(DIBSECTION, dshSection, 76)
    TEST_FIELD_SIZE  (DIBSECTION, dsOffset, 4)
    TEST_FIELD_ALIGN (DIBSECTION, dsOffset, 4)
    TEST_FIELD_OFFSET(DIBSECTION, dsOffset, 80)
}

static void test_pack_DISPLAY_DEVICEA(void)
{
    /* DISPLAY_DEVICEA */
    TEST_TYPE_SIZE   (DISPLAY_DEVICEA, 424)
    TEST_TYPE_ALIGN  (DISPLAY_DEVICEA, 4)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, cb, 4)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, cb, 4)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, cb, 0)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, DeviceName, 32)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, DeviceName, 1)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, DeviceName, 4)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, DeviceString, 128)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, DeviceString, 1)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, DeviceString, 36)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, StateFlags, 4)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, StateFlags, 4)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, StateFlags, 164)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, DeviceID, 128)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, DeviceID, 1)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, DeviceID, 168)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEA, DeviceKey, 128)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEA, DeviceKey, 1)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEA, DeviceKey, 296)
}

static void test_pack_DISPLAY_DEVICEW(void)
{
    /* DISPLAY_DEVICEW */
    TEST_TYPE_SIZE   (DISPLAY_DEVICEW, 840)
    TEST_TYPE_ALIGN  (DISPLAY_DEVICEW, 4)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, cb, 4)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, cb, 4)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, cb, 0)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, DeviceName, 64)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, DeviceName, 2)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, DeviceName, 4)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, DeviceString, 256)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, DeviceString, 2)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, DeviceString, 68)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, StateFlags, 4)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, StateFlags, 4)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, StateFlags, 324)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, DeviceID, 256)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, DeviceID, 2)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, DeviceID, 328)
    TEST_FIELD_SIZE  (DISPLAY_DEVICEW, DeviceKey, 256)
    TEST_FIELD_ALIGN (DISPLAY_DEVICEW, DeviceKey, 2)
    TEST_FIELD_OFFSET(DISPLAY_DEVICEW, DeviceKey, 584)
}

static void test_pack_DOCINFOA(void)
{
    /* DOCINFOA */
    TEST_TYPE_SIZE   (DOCINFOA, 20)
    TEST_TYPE_ALIGN  (DOCINFOA, 4)
    TEST_FIELD_SIZE  (DOCINFOA, cbSize, 4)
    TEST_FIELD_ALIGN (DOCINFOA, cbSize, 4)
    TEST_FIELD_OFFSET(DOCINFOA, cbSize, 0)
    TEST_FIELD_SIZE  (DOCINFOA, lpszDocName, 4)
    TEST_FIELD_ALIGN (DOCINFOA, lpszDocName, 4)
    TEST_FIELD_OFFSET(DOCINFOA, lpszDocName, 4)
    TEST_FIELD_SIZE  (DOCINFOA, lpszOutput, 4)
    TEST_FIELD_ALIGN (DOCINFOA, lpszOutput, 4)
    TEST_FIELD_OFFSET(DOCINFOA, lpszOutput, 8)
    TEST_FIELD_SIZE  (DOCINFOA, lpszDatatype, 4)
    TEST_FIELD_ALIGN (DOCINFOA, lpszDatatype, 4)
    TEST_FIELD_OFFSET(DOCINFOA, lpszDatatype, 12)
    TEST_FIELD_SIZE  (DOCINFOA, fwType, 4)
    TEST_FIELD_ALIGN (DOCINFOA, fwType, 4)
    TEST_FIELD_OFFSET(DOCINFOA, fwType, 16)
}

static void test_pack_DOCINFOW(void)
{
    /* DOCINFOW */
    TEST_TYPE_SIZE   (DOCINFOW, 20)
    TEST_TYPE_ALIGN  (DOCINFOW, 4)
    TEST_FIELD_SIZE  (DOCINFOW, cbSize, 4)
    TEST_FIELD_ALIGN (DOCINFOW, cbSize, 4)
    TEST_FIELD_OFFSET(DOCINFOW, cbSize, 0)
    TEST_FIELD_SIZE  (DOCINFOW, lpszDocName, 4)
    TEST_FIELD_ALIGN (DOCINFOW, lpszDocName, 4)
    TEST_FIELD_OFFSET(DOCINFOW, lpszDocName, 4)
    TEST_FIELD_SIZE  (DOCINFOW, lpszOutput, 4)
    TEST_FIELD_ALIGN (DOCINFOW, lpszOutput, 4)
    TEST_FIELD_OFFSET(DOCINFOW, lpszOutput, 8)
    TEST_FIELD_SIZE  (DOCINFOW, lpszDatatype, 4)
    TEST_FIELD_ALIGN (DOCINFOW, lpszDatatype, 4)
    TEST_FIELD_OFFSET(DOCINFOW, lpszDatatype, 12)
    TEST_FIELD_SIZE  (DOCINFOW, fwType, 4)
    TEST_FIELD_ALIGN (DOCINFOW, fwType, 4)
    TEST_FIELD_OFFSET(DOCINFOW, fwType, 16)
}

static void test_pack_EMR(void)
{
    /* EMR */
    TEST_TYPE_SIZE   (EMR, 8)
    TEST_TYPE_ALIGN  (EMR, 4)
    TEST_FIELD_SIZE  (EMR, iType, 4)
    TEST_FIELD_ALIGN (EMR, iType, 4)
    TEST_FIELD_OFFSET(EMR, iType, 0)
    TEST_FIELD_SIZE  (EMR, nSize, 4)
    TEST_FIELD_ALIGN (EMR, nSize, 4)
    TEST_FIELD_OFFSET(EMR, nSize, 4)
}

static void test_pack_EMRABORTPATH(void)
{
    /* EMRABORTPATH */
    TEST_TYPE_SIZE   (EMRABORTPATH, 8)
    TEST_TYPE_ALIGN  (EMRABORTPATH, 4)
    TEST_FIELD_SIZE  (EMRABORTPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRABORTPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRABORTPATH, emr, 0)
}

static void test_pack_EMRANGLEARC(void)
{
    /* EMRANGLEARC */
    TEST_TYPE_SIZE   (EMRANGLEARC, 28)
    TEST_TYPE_ALIGN  (EMRANGLEARC, 4)
    TEST_FIELD_SIZE  (EMRANGLEARC, emr, 8)
    TEST_FIELD_ALIGN (EMRANGLEARC, emr, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, emr, 0)
    TEST_FIELD_SIZE  (EMRANGLEARC, ptlCenter, 8)
    TEST_FIELD_ALIGN (EMRANGLEARC, ptlCenter, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, ptlCenter, 8)
    TEST_FIELD_SIZE  (EMRANGLEARC, nRadius, 4)
    TEST_FIELD_ALIGN (EMRANGLEARC, nRadius, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, nRadius, 16)
    TEST_FIELD_SIZE  (EMRANGLEARC, eStartAngle, 4)
    TEST_FIELD_ALIGN (EMRANGLEARC, eStartAngle, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, eStartAngle, 20)
    TEST_FIELD_SIZE  (EMRANGLEARC, eSweepAngle, 4)
    TEST_FIELD_ALIGN (EMRANGLEARC, eSweepAngle, 4)
    TEST_FIELD_OFFSET(EMRANGLEARC, eSweepAngle, 24)
}

static void test_pack_EMRARC(void)
{
    /* EMRARC */
    TEST_TYPE_SIZE   (EMRARC, 40)
    TEST_TYPE_ALIGN  (EMRARC, 4)
    TEST_FIELD_SIZE  (EMRARC, emr, 8)
    TEST_FIELD_ALIGN (EMRARC, emr, 4)
    TEST_FIELD_OFFSET(EMRARC, emr, 0)
    TEST_FIELD_SIZE  (EMRARC, rclBox, 16)
    TEST_FIELD_ALIGN (EMRARC, rclBox, 4)
    TEST_FIELD_OFFSET(EMRARC, rclBox, 8)
    TEST_FIELD_SIZE  (EMRARC, ptlStart, 8)
    TEST_FIELD_ALIGN (EMRARC, ptlStart, 4)
    TEST_FIELD_OFFSET(EMRARC, ptlStart, 24)
    TEST_FIELD_SIZE  (EMRARC, ptlEnd, 8)
    TEST_FIELD_ALIGN (EMRARC, ptlEnd, 4)
    TEST_FIELD_OFFSET(EMRARC, ptlEnd, 32)
}

static void test_pack_EMRARCTO(void)
{
    /* EMRARCTO */
    TEST_TYPE_SIZE   (EMRARCTO, 40)
    TEST_TYPE_ALIGN  (EMRARCTO, 4)
    TEST_FIELD_SIZE  (EMRARCTO, emr, 8)
    TEST_FIELD_ALIGN (EMRARCTO, emr, 4)
    TEST_FIELD_OFFSET(EMRARCTO, emr, 0)
    TEST_FIELD_SIZE  (EMRARCTO, rclBox, 16)
    TEST_FIELD_ALIGN (EMRARCTO, rclBox, 4)
    TEST_FIELD_OFFSET(EMRARCTO, rclBox, 8)
    TEST_FIELD_SIZE  (EMRARCTO, ptlStart, 8)
    TEST_FIELD_ALIGN (EMRARCTO, ptlStart, 4)
    TEST_FIELD_OFFSET(EMRARCTO, ptlStart, 24)
    TEST_FIELD_SIZE  (EMRARCTO, ptlEnd, 8)
    TEST_FIELD_ALIGN (EMRARCTO, ptlEnd, 4)
    TEST_FIELD_OFFSET(EMRARCTO, ptlEnd, 32)
}

static void test_pack_EMRBEGINPATH(void)
{
    /* EMRBEGINPATH */
    TEST_TYPE_SIZE   (EMRBEGINPATH, 8)
    TEST_TYPE_ALIGN  (EMRBEGINPATH, 4)
    TEST_FIELD_SIZE  (EMRBEGINPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRBEGINPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRBEGINPATH, emr, 0)
}

static void test_pack_EMRBITBLT(void)
{
    /* EMRBITBLT */
    TEST_TYPE_SIZE   (EMRBITBLT, 100)
    TEST_TYPE_ALIGN  (EMRBITBLT, 4)
    TEST_FIELD_SIZE  (EMRBITBLT, emr, 8)
    TEST_FIELD_ALIGN (EMRBITBLT, emr, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, emr, 0)
    TEST_FIELD_SIZE  (EMRBITBLT, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRBITBLT, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRBITBLT, xDest, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, xDest, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, xDest, 24)
    TEST_FIELD_SIZE  (EMRBITBLT, yDest, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, yDest, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, yDest, 28)
    TEST_FIELD_SIZE  (EMRBITBLT, cxDest, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, cxDest, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, cxDest, 32)
    TEST_FIELD_SIZE  (EMRBITBLT, cyDest, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, cyDest, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, cyDest, 36)
    TEST_FIELD_SIZE  (EMRBITBLT, dwRop, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, dwRop, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, dwRop, 40)
    TEST_FIELD_SIZE  (EMRBITBLT, xSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, xSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, xSrc, 44)
    TEST_FIELD_SIZE  (EMRBITBLT, ySrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, ySrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, ySrc, 48)
    TEST_FIELD_SIZE  (EMRBITBLT, xformSrc, 24)
    TEST_FIELD_ALIGN (EMRBITBLT, xformSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, xformSrc, 52)
    TEST_FIELD_SIZE  (EMRBITBLT, crBkColorSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, crBkColorSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, crBkColorSrc, 76)
    TEST_FIELD_SIZE  (EMRBITBLT, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, iUsageSrc, 80)
    TEST_FIELD_SIZE  (EMRBITBLT, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, offBmiSrc, 84)
    TEST_FIELD_SIZE  (EMRBITBLT, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, cbBmiSrc, 88)
    TEST_FIELD_SIZE  (EMRBITBLT, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, offBitsSrc, 92)
    TEST_FIELD_SIZE  (EMRBITBLT, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRBITBLT, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRBITBLT, cbBitsSrc, 96)
}

static void test_pack_EMRCHORD(void)
{
    /* EMRCHORD */
    TEST_TYPE_SIZE   (EMRCHORD, 40)
    TEST_TYPE_ALIGN  (EMRCHORD, 4)
    TEST_FIELD_SIZE  (EMRCHORD, emr, 8)
    TEST_FIELD_ALIGN (EMRCHORD, emr, 4)
    TEST_FIELD_OFFSET(EMRCHORD, emr, 0)
    TEST_FIELD_SIZE  (EMRCHORD, rclBox, 16)
    TEST_FIELD_ALIGN (EMRCHORD, rclBox, 4)
    TEST_FIELD_OFFSET(EMRCHORD, rclBox, 8)
    TEST_FIELD_SIZE  (EMRCHORD, ptlStart, 8)
    TEST_FIELD_ALIGN (EMRCHORD, ptlStart, 4)
    TEST_FIELD_OFFSET(EMRCHORD, ptlStart, 24)
    TEST_FIELD_SIZE  (EMRCHORD, ptlEnd, 8)
    TEST_FIELD_ALIGN (EMRCHORD, ptlEnd, 4)
    TEST_FIELD_OFFSET(EMRCHORD, ptlEnd, 32)
}

static void test_pack_EMRCLOSEFIGURE(void)
{
    /* EMRCLOSEFIGURE */
    TEST_TYPE_SIZE   (EMRCLOSEFIGURE, 8)
    TEST_TYPE_ALIGN  (EMRCLOSEFIGURE, 4)
    TEST_FIELD_SIZE  (EMRCLOSEFIGURE, emr, 8)
    TEST_FIELD_ALIGN (EMRCLOSEFIGURE, emr, 4)
    TEST_FIELD_OFFSET(EMRCLOSEFIGURE, emr, 0)
}

static void test_pack_EMRCREATEBRUSHINDIRECT(void)
{
    /* EMRCREATEBRUSHINDIRECT */
    TEST_TYPE_SIZE   (EMRCREATEBRUSHINDIRECT, 24)
    TEST_TYPE_ALIGN  (EMRCREATEBRUSHINDIRECT, 4)
    TEST_FIELD_SIZE  (EMRCREATEBRUSHINDIRECT, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATEBRUSHINDIRECT, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATEBRUSHINDIRECT, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATEBRUSHINDIRECT, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRCREATEBRUSHINDIRECT, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRCREATEBRUSHINDIRECT, ihBrush, 8)
    TEST_FIELD_SIZE  (EMRCREATEBRUSHINDIRECT, lb, 12)
    TEST_FIELD_ALIGN (EMRCREATEBRUSHINDIRECT, lb, 4)
    TEST_FIELD_OFFSET(EMRCREATEBRUSHINDIRECT, lb, 12)
}

static void test_pack_EMRCREATECOLORSPACE(void)
{
    /* EMRCREATECOLORSPACE */
    TEST_TYPE_SIZE   (EMRCREATECOLORSPACE, 340)
    TEST_TYPE_ALIGN  (EMRCREATECOLORSPACE, 4)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACE, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACE, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACE, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACE, ihCS, 4)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACE, ihCS, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACE, ihCS, 8)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACE, lcs, 328)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACE, lcs, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACE, lcs, 12)
}

static void test_pack_EMRCREATECOLORSPACEW(void)
{
    /* EMRCREATECOLORSPACEW */
    TEST_TYPE_SIZE   (EMRCREATECOLORSPACEW, 612)
    TEST_TYPE_ALIGN  (EMRCREATECOLORSPACEW, 4)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, ihCS, 4)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, ihCS, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, ihCS, 8)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, lcs, 588)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, lcs, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, lcs, 12)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, dwFlags, 4)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, dwFlags, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, dwFlags, 600)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, cbData, 4)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, cbData, 4)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, cbData, 604)
    TEST_FIELD_SIZE  (EMRCREATECOLORSPACEW, Data, 1)
    TEST_FIELD_ALIGN (EMRCREATECOLORSPACEW, Data, 1)
    TEST_FIELD_OFFSET(EMRCREATECOLORSPACEW, Data, 608)
}

static void test_pack_EMRCREATEDIBPATTERNBRUSHPT(void)
{
    /* EMRCREATEDIBPATTERNBRUSHPT */
    TEST_TYPE_SIZE   (EMRCREATEDIBPATTERNBRUSHPT, 32)
    TEST_TYPE_ALIGN  (EMRCREATEDIBPATTERNBRUSHPT, 4)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, ihBrush, 8)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, iUsage, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, iUsage, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, iUsage, 12)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, offBmi, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, offBmi, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, offBmi, 16)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, cbBmi, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, cbBmi, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, cbBmi, 20)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, offBits, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, offBits, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, offBits, 24)
    TEST_FIELD_SIZE  (EMRCREATEDIBPATTERNBRUSHPT, cbBits, 4)
    TEST_FIELD_ALIGN (EMRCREATEDIBPATTERNBRUSHPT, cbBits, 4)
    TEST_FIELD_OFFSET(EMRCREATEDIBPATTERNBRUSHPT, cbBits, 28)
}

static void test_pack_EMRCREATEMONOBRUSH(void)
{
    /* EMRCREATEMONOBRUSH */
    TEST_TYPE_SIZE   (EMRCREATEMONOBRUSH, 32)
    TEST_TYPE_ALIGN  (EMRCREATEMONOBRUSH, 4)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, ihBrush, 8)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, iUsage, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, iUsage, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, iUsage, 12)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, offBmi, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, offBmi, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, offBmi, 16)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, cbBmi, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, cbBmi, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, cbBmi, 20)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, offBits, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, offBits, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, offBits, 24)
    TEST_FIELD_SIZE  (EMRCREATEMONOBRUSH, cbBits, 4)
    TEST_FIELD_ALIGN (EMRCREATEMONOBRUSH, cbBits, 4)
    TEST_FIELD_OFFSET(EMRCREATEMONOBRUSH, cbBits, 28)
}

static void test_pack_EMRCREATEPEN(void)
{
    /* EMRCREATEPEN */
    TEST_TYPE_SIZE   (EMRCREATEPEN, 28)
    TEST_TYPE_ALIGN  (EMRCREATEPEN, 4)
    TEST_FIELD_SIZE  (EMRCREATEPEN, emr, 8)
    TEST_FIELD_ALIGN (EMRCREATEPEN, emr, 4)
    TEST_FIELD_OFFSET(EMRCREATEPEN, emr, 0)
    TEST_FIELD_SIZE  (EMRCREATEPEN, ihPen, 4)
    TEST_FIELD_ALIGN (EMRCREATEPEN, ihPen, 4)
    TEST_FIELD_OFFSET(EMRCREATEPEN, ihPen, 8)
    TEST_FIELD_SIZE  (EMRCREATEPEN, lopn, 16)
    TEST_FIELD_ALIGN (EMRCREATEPEN, lopn, 4)
    TEST_FIELD_OFFSET(EMRCREATEPEN, lopn, 12)
}

static void test_pack_EMRDELETECOLORSPACE(void)
{
    /* EMRDELETECOLORSPACE */
    TEST_TYPE_SIZE   (EMRDELETECOLORSPACE, 12)
    TEST_TYPE_ALIGN  (EMRDELETECOLORSPACE, 4)
    TEST_FIELD_SIZE  (EMRDELETECOLORSPACE, emr, 8)
    TEST_FIELD_ALIGN (EMRDELETECOLORSPACE, emr, 4)
    TEST_FIELD_OFFSET(EMRDELETECOLORSPACE, emr, 0)
    TEST_FIELD_SIZE  (EMRDELETECOLORSPACE, ihCS, 4)
    TEST_FIELD_ALIGN (EMRDELETECOLORSPACE, ihCS, 4)
    TEST_FIELD_OFFSET(EMRDELETECOLORSPACE, ihCS, 8)
}

static void test_pack_EMRDELETEOBJECT(void)
{
    /* EMRDELETEOBJECT */
    TEST_TYPE_SIZE   (EMRDELETEOBJECT, 12)
    TEST_TYPE_ALIGN  (EMRDELETEOBJECT, 4)
    TEST_FIELD_SIZE  (EMRDELETEOBJECT, emr, 8)
    TEST_FIELD_ALIGN (EMRDELETEOBJECT, emr, 4)
    TEST_FIELD_OFFSET(EMRDELETEOBJECT, emr, 0)
    TEST_FIELD_SIZE  (EMRDELETEOBJECT, ihObject, 4)
    TEST_FIELD_ALIGN (EMRDELETEOBJECT, ihObject, 4)
    TEST_FIELD_OFFSET(EMRDELETEOBJECT, ihObject, 8)
}

static void test_pack_EMRELLIPSE(void)
{
    /* EMRELLIPSE */
    TEST_TYPE_SIZE   (EMRELLIPSE, 24)
    TEST_TYPE_ALIGN  (EMRELLIPSE, 4)
    TEST_FIELD_SIZE  (EMRELLIPSE, emr, 8)
    TEST_FIELD_ALIGN (EMRELLIPSE, emr, 4)
    TEST_FIELD_OFFSET(EMRELLIPSE, emr, 0)
    TEST_FIELD_SIZE  (EMRELLIPSE, rclBox, 16)
    TEST_FIELD_ALIGN (EMRELLIPSE, rclBox, 4)
    TEST_FIELD_OFFSET(EMRELLIPSE, rclBox, 8)
}

static void test_pack_EMRENDPATH(void)
{
    /* EMRENDPATH */
    TEST_TYPE_SIZE   (EMRENDPATH, 8)
    TEST_TYPE_ALIGN  (EMRENDPATH, 4)
    TEST_FIELD_SIZE  (EMRENDPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRENDPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRENDPATH, emr, 0)
}

static void test_pack_EMREOF(void)
{
    /* EMREOF */
    TEST_TYPE_SIZE   (EMREOF, 20)
    TEST_TYPE_ALIGN  (EMREOF, 4)
    TEST_FIELD_SIZE  (EMREOF, emr, 8)
    TEST_FIELD_ALIGN (EMREOF, emr, 4)
    TEST_FIELD_OFFSET(EMREOF, emr, 0)
    TEST_FIELD_SIZE  (EMREOF, nPalEntries, 4)
    TEST_FIELD_ALIGN (EMREOF, nPalEntries, 4)
    TEST_FIELD_OFFSET(EMREOF, nPalEntries, 8)
    TEST_FIELD_SIZE  (EMREOF, offPalEntries, 4)
    TEST_FIELD_ALIGN (EMREOF, offPalEntries, 4)
    TEST_FIELD_OFFSET(EMREOF, offPalEntries, 12)
    TEST_FIELD_SIZE  (EMREOF, nSizeLast, 4)
    TEST_FIELD_ALIGN (EMREOF, nSizeLast, 4)
    TEST_FIELD_OFFSET(EMREOF, nSizeLast, 16)
}

static void test_pack_EMREXCLUDECLIPRECT(void)
{
    /* EMREXCLUDECLIPRECT */
    TEST_TYPE_SIZE   (EMREXCLUDECLIPRECT, 24)
    TEST_TYPE_ALIGN  (EMREXCLUDECLIPRECT, 4)
    TEST_FIELD_SIZE  (EMREXCLUDECLIPRECT, emr, 8)
    TEST_FIELD_ALIGN (EMREXCLUDECLIPRECT, emr, 4)
    TEST_FIELD_OFFSET(EMREXCLUDECLIPRECT, emr, 0)
    TEST_FIELD_SIZE  (EMREXCLUDECLIPRECT, rclClip, 16)
    TEST_FIELD_ALIGN (EMREXCLUDECLIPRECT, rclClip, 4)
    TEST_FIELD_OFFSET(EMREXCLUDECLIPRECT, rclClip, 8)
}

static void test_pack_EMREXTCREATEFONTINDIRECTW(void)
{
    /* EMREXTCREATEFONTINDIRECTW */
    TEST_TYPE_SIZE   (EMREXTCREATEFONTINDIRECTW, 332)
    TEST_TYPE_ALIGN  (EMREXTCREATEFONTINDIRECTW, 4)
    TEST_FIELD_SIZE  (EMREXTCREATEFONTINDIRECTW, emr, 8)
    TEST_FIELD_ALIGN (EMREXTCREATEFONTINDIRECTW, emr, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEFONTINDIRECTW, emr, 0)
    TEST_FIELD_SIZE  (EMREXTCREATEFONTINDIRECTW, ihFont, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEFONTINDIRECTW, ihFont, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEFONTINDIRECTW, ihFont, 8)
    TEST_FIELD_SIZE  (EMREXTCREATEFONTINDIRECTW, elfw, 320)
    TEST_FIELD_ALIGN (EMREXTCREATEFONTINDIRECTW, elfw, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEFONTINDIRECTW, elfw, 12)
}

static void test_pack_EMREXTCREATEPEN(void)
{
    /* EMREXTCREATEPEN */
    TEST_TYPE_SIZE   (EMREXTCREATEPEN, 56)
    TEST_TYPE_ALIGN  (EMREXTCREATEPEN, 4)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, emr, 8)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, emr, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, emr, 0)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, ihPen, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, ihPen, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, ihPen, 8)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, offBmi, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, offBmi, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, offBmi, 12)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, cbBmi, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, cbBmi, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, cbBmi, 16)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, offBits, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, offBits, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, offBits, 20)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, cbBits, 4)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, cbBits, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, cbBits, 24)
    TEST_FIELD_SIZE  (EMREXTCREATEPEN, elp, 28)
    TEST_FIELD_ALIGN (EMREXTCREATEPEN, elp, 4)
    TEST_FIELD_OFFSET(EMREXTCREATEPEN, elp, 28)
}

static void test_pack_EMREXTFLOODFILL(void)
{
    /* EMREXTFLOODFILL */
    TEST_TYPE_SIZE   (EMREXTFLOODFILL, 24)
    TEST_TYPE_ALIGN  (EMREXTFLOODFILL, 4)
    TEST_FIELD_SIZE  (EMREXTFLOODFILL, emr, 8)
    TEST_FIELD_ALIGN (EMREXTFLOODFILL, emr, 4)
    TEST_FIELD_OFFSET(EMREXTFLOODFILL, emr, 0)
    TEST_FIELD_SIZE  (EMREXTFLOODFILL, ptlStart, 8)
    TEST_FIELD_ALIGN (EMREXTFLOODFILL, ptlStart, 4)
    TEST_FIELD_OFFSET(EMREXTFLOODFILL, ptlStart, 8)
    TEST_FIELD_SIZE  (EMREXTFLOODFILL, crColor, 4)
    TEST_FIELD_ALIGN (EMREXTFLOODFILL, crColor, 4)
    TEST_FIELD_OFFSET(EMREXTFLOODFILL, crColor, 16)
    TEST_FIELD_SIZE  (EMREXTFLOODFILL, iMode, 4)
    TEST_FIELD_ALIGN (EMREXTFLOODFILL, iMode, 4)
    TEST_FIELD_OFFSET(EMREXTFLOODFILL, iMode, 20)
}

static void test_pack_EMREXTSELECTCLIPRGN(void)
{
    /* EMREXTSELECTCLIPRGN */
    TEST_TYPE_SIZE   (EMREXTSELECTCLIPRGN, 20)
    TEST_TYPE_ALIGN  (EMREXTSELECTCLIPRGN, 4)
    TEST_FIELD_SIZE  (EMREXTSELECTCLIPRGN, emr, 8)
    TEST_FIELD_ALIGN (EMREXTSELECTCLIPRGN, emr, 4)
    TEST_FIELD_OFFSET(EMREXTSELECTCLIPRGN, emr, 0)
    TEST_FIELD_SIZE  (EMREXTSELECTCLIPRGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMREXTSELECTCLIPRGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMREXTSELECTCLIPRGN, cbRgnData, 8)
    TEST_FIELD_SIZE  (EMREXTSELECTCLIPRGN, iMode, 4)
    TEST_FIELD_ALIGN (EMREXTSELECTCLIPRGN, iMode, 4)
    TEST_FIELD_OFFSET(EMREXTSELECTCLIPRGN, iMode, 12)
    TEST_FIELD_SIZE  (EMREXTSELECTCLIPRGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMREXTSELECTCLIPRGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMREXTSELECTCLIPRGN, RgnData, 16)
}

static void test_pack_EMREXTTEXTOUTA(void)
{
    /* EMREXTTEXTOUTA */
    TEST_TYPE_SIZE   (EMREXTTEXTOUTA, 76)
    TEST_TYPE_ALIGN  (EMREXTTEXTOUTA, 4)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, emr, 8)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, emr, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, emr, 0)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, rclBounds, 16)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, rclBounds, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, rclBounds, 8)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, iGraphicsMode, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, iGraphicsMode, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, iGraphicsMode, 24)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, exScale, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, exScale, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, exScale, 28)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, eyScale, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, eyScale, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, eyScale, 32)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTA, emrtext, 40)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTA, emrtext, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTA, emrtext, 36)
}

static void test_pack_EMREXTTEXTOUTW(void)
{
    /* EMREXTTEXTOUTW */
    TEST_TYPE_SIZE   (EMREXTTEXTOUTW, 76)
    TEST_TYPE_ALIGN  (EMREXTTEXTOUTW, 4)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, emr, 8)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, emr, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, emr, 0)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, rclBounds, 16)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, rclBounds, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, rclBounds, 8)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, iGraphicsMode, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, iGraphicsMode, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, iGraphicsMode, 24)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, exScale, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, exScale, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, exScale, 28)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, eyScale, 4)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, eyScale, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, eyScale, 32)
    TEST_FIELD_SIZE  (EMREXTTEXTOUTW, emrtext, 40)
    TEST_FIELD_ALIGN (EMREXTTEXTOUTW, emrtext, 4)
    TEST_FIELD_OFFSET(EMREXTTEXTOUTW, emrtext, 36)
}

static void test_pack_EMRFILLPATH(void)
{
    /* EMRFILLPATH */
    TEST_TYPE_SIZE   (EMRFILLPATH, 24)
    TEST_TYPE_ALIGN  (EMRFILLPATH, 4)
    TEST_FIELD_SIZE  (EMRFILLPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRFILLPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRFILLPATH, emr, 0)
    TEST_FIELD_SIZE  (EMRFILLPATH, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRFILLPATH, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRFILLPATH, rclBounds, 8)
}

static void test_pack_EMRFILLRGN(void)
{
    /* EMRFILLRGN */
    TEST_TYPE_SIZE   (EMRFILLRGN, 36)
    TEST_TYPE_ALIGN  (EMRFILLRGN, 4)
    TEST_FIELD_SIZE  (EMRFILLRGN, emr, 8)
    TEST_FIELD_ALIGN (EMRFILLRGN, emr, 4)
    TEST_FIELD_OFFSET(EMRFILLRGN, emr, 0)
    TEST_FIELD_SIZE  (EMRFILLRGN, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRFILLRGN, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRFILLRGN, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRFILLRGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMRFILLRGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMRFILLRGN, cbRgnData, 24)
    TEST_FIELD_SIZE  (EMRFILLRGN, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRFILLRGN, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRFILLRGN, ihBrush, 28)
    TEST_FIELD_SIZE  (EMRFILLRGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMRFILLRGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMRFILLRGN, RgnData, 32)
}

static void test_pack_EMRFLATTENPATH(void)
{
    /* EMRFLATTENPATH */
    TEST_TYPE_SIZE   (EMRFLATTENPATH, 8)
    TEST_TYPE_ALIGN  (EMRFLATTENPATH, 4)
    TEST_FIELD_SIZE  (EMRFLATTENPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRFLATTENPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRFLATTENPATH, emr, 0)
}

static void test_pack_EMRFORMAT(void)
{
    /* EMRFORMAT */
    TEST_TYPE_SIZE   (EMRFORMAT, 16)
    TEST_TYPE_ALIGN  (EMRFORMAT, 4)
    TEST_FIELD_SIZE  (EMRFORMAT, dSignature, 4)
    TEST_FIELD_ALIGN (EMRFORMAT, dSignature, 4)
    TEST_FIELD_OFFSET(EMRFORMAT, dSignature, 0)
    TEST_FIELD_SIZE  (EMRFORMAT, nVersion, 4)
    TEST_FIELD_ALIGN (EMRFORMAT, nVersion, 4)
    TEST_FIELD_OFFSET(EMRFORMAT, nVersion, 4)
    TEST_FIELD_SIZE  (EMRFORMAT, cbData, 4)
    TEST_FIELD_ALIGN (EMRFORMAT, cbData, 4)
    TEST_FIELD_OFFSET(EMRFORMAT, cbData, 8)
    TEST_FIELD_SIZE  (EMRFORMAT, offData, 4)
    TEST_FIELD_ALIGN (EMRFORMAT, offData, 4)
    TEST_FIELD_OFFSET(EMRFORMAT, offData, 12)
}

static void test_pack_EMRFRAMERGN(void)
{
    /* EMRFRAMERGN */
    TEST_TYPE_SIZE   (EMRFRAMERGN, 44)
    TEST_TYPE_ALIGN  (EMRFRAMERGN, 4)
    TEST_FIELD_SIZE  (EMRFRAMERGN, emr, 8)
    TEST_FIELD_ALIGN (EMRFRAMERGN, emr, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, emr, 0)
    TEST_FIELD_SIZE  (EMRFRAMERGN, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRFRAMERGN, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRFRAMERGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMRFRAMERGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, cbRgnData, 24)
    TEST_FIELD_SIZE  (EMRFRAMERGN, ihBrush, 4)
    TEST_FIELD_ALIGN (EMRFRAMERGN, ihBrush, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, ihBrush, 28)
    TEST_FIELD_SIZE  (EMRFRAMERGN, szlStroke, 8)
    TEST_FIELD_ALIGN (EMRFRAMERGN, szlStroke, 4)
    TEST_FIELD_OFFSET(EMRFRAMERGN, szlStroke, 32)
    TEST_FIELD_SIZE  (EMRFRAMERGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMRFRAMERGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMRFRAMERGN, RgnData, 40)
}

static void test_pack_EMRGDICOMMENT(void)
{
    /* EMRGDICOMMENT */
    TEST_TYPE_SIZE   (EMRGDICOMMENT, 16)
    TEST_TYPE_ALIGN  (EMRGDICOMMENT, 4)
    TEST_FIELD_SIZE  (EMRGDICOMMENT, emr, 8)
    TEST_FIELD_ALIGN (EMRGDICOMMENT, emr, 4)
    TEST_FIELD_OFFSET(EMRGDICOMMENT, emr, 0)
    TEST_FIELD_SIZE  (EMRGDICOMMENT, cbData, 4)
    TEST_FIELD_ALIGN (EMRGDICOMMENT, cbData, 4)
    TEST_FIELD_OFFSET(EMRGDICOMMENT, cbData, 8)
    TEST_FIELD_SIZE  (EMRGDICOMMENT, Data, 1)
    TEST_FIELD_ALIGN (EMRGDICOMMENT, Data, 1)
    TEST_FIELD_OFFSET(EMRGDICOMMENT, Data, 12)
}

static void test_pack_EMRGLSBOUNDEDRECORD(void)
{
    /* EMRGLSBOUNDEDRECORD */
    TEST_TYPE_SIZE   (EMRGLSBOUNDEDRECORD, 32)
    TEST_TYPE_ALIGN  (EMRGLSBOUNDEDRECORD, 4)
    TEST_FIELD_SIZE  (EMRGLSBOUNDEDRECORD, emr, 8)
    TEST_FIELD_ALIGN (EMRGLSBOUNDEDRECORD, emr, 4)
    TEST_FIELD_OFFSET(EMRGLSBOUNDEDRECORD, emr, 0)
    TEST_FIELD_SIZE  (EMRGLSBOUNDEDRECORD, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRGLSBOUNDEDRECORD, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRGLSBOUNDEDRECORD, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRGLSBOUNDEDRECORD, cbData, 4)
    TEST_FIELD_ALIGN (EMRGLSBOUNDEDRECORD, cbData, 4)
    TEST_FIELD_OFFSET(EMRGLSBOUNDEDRECORD, cbData, 24)
    TEST_FIELD_SIZE  (EMRGLSBOUNDEDRECORD, Data, 1)
    TEST_FIELD_ALIGN (EMRGLSBOUNDEDRECORD, Data, 1)
    TEST_FIELD_OFFSET(EMRGLSBOUNDEDRECORD, Data, 28)
}

static void test_pack_EMRGLSRECORD(void)
{
    /* EMRGLSRECORD */
    TEST_TYPE_SIZE   (EMRGLSRECORD, 16)
    TEST_TYPE_ALIGN  (EMRGLSRECORD, 4)
    TEST_FIELD_SIZE  (EMRGLSRECORD, emr, 8)
    TEST_FIELD_ALIGN (EMRGLSRECORD, emr, 4)
    TEST_FIELD_OFFSET(EMRGLSRECORD, emr, 0)
    TEST_FIELD_SIZE  (EMRGLSRECORD, cbData, 4)
    TEST_FIELD_ALIGN (EMRGLSRECORD, cbData, 4)
    TEST_FIELD_OFFSET(EMRGLSRECORD, cbData, 8)
    TEST_FIELD_SIZE  (EMRGLSRECORD, Data, 1)
    TEST_FIELD_ALIGN (EMRGLSRECORD, Data, 1)
    TEST_FIELD_OFFSET(EMRGLSRECORD, Data, 12)
}

static void test_pack_EMRINTERSECTCLIPRECT(void)
{
    /* EMRINTERSECTCLIPRECT */
    TEST_TYPE_SIZE   (EMRINTERSECTCLIPRECT, 24)
    TEST_TYPE_ALIGN  (EMRINTERSECTCLIPRECT, 4)
    TEST_FIELD_SIZE  (EMRINTERSECTCLIPRECT, emr, 8)
    TEST_FIELD_ALIGN (EMRINTERSECTCLIPRECT, emr, 4)
    TEST_FIELD_OFFSET(EMRINTERSECTCLIPRECT, emr, 0)
    TEST_FIELD_SIZE  (EMRINTERSECTCLIPRECT, rclClip, 16)
    TEST_FIELD_ALIGN (EMRINTERSECTCLIPRECT, rclClip, 4)
    TEST_FIELD_OFFSET(EMRINTERSECTCLIPRECT, rclClip, 8)
}

static void test_pack_EMRINVERTRGN(void)
{
    /* EMRINVERTRGN */
    TEST_TYPE_SIZE   (EMRINVERTRGN, 32)
    TEST_TYPE_ALIGN  (EMRINVERTRGN, 4)
    TEST_FIELD_SIZE  (EMRINVERTRGN, emr, 8)
    TEST_FIELD_ALIGN (EMRINVERTRGN, emr, 4)
    TEST_FIELD_OFFSET(EMRINVERTRGN, emr, 0)
    TEST_FIELD_SIZE  (EMRINVERTRGN, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRINVERTRGN, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRINVERTRGN, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRINVERTRGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMRINVERTRGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMRINVERTRGN, cbRgnData, 24)
    TEST_FIELD_SIZE  (EMRINVERTRGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMRINVERTRGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMRINVERTRGN, RgnData, 28)
}

static void test_pack_EMRLINETO(void)
{
    /* EMRLINETO */
    TEST_TYPE_SIZE   (EMRLINETO, 16)
    TEST_TYPE_ALIGN  (EMRLINETO, 4)
    TEST_FIELD_SIZE  (EMRLINETO, emr, 8)
    TEST_FIELD_ALIGN (EMRLINETO, emr, 4)
    TEST_FIELD_OFFSET(EMRLINETO, emr, 0)
    TEST_FIELD_SIZE  (EMRLINETO, ptl, 8)
    TEST_FIELD_ALIGN (EMRLINETO, ptl, 4)
    TEST_FIELD_OFFSET(EMRLINETO, ptl, 8)
}

static void test_pack_EMRMASKBLT(void)
{
    /* EMRMASKBLT */
    TEST_TYPE_SIZE   (EMRMASKBLT, 128)
    TEST_TYPE_ALIGN  (EMRMASKBLT, 4)
    TEST_FIELD_SIZE  (EMRMASKBLT, emr, 8)
    TEST_FIELD_ALIGN (EMRMASKBLT, emr, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, emr, 0)
    TEST_FIELD_SIZE  (EMRMASKBLT, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRMASKBLT, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRMASKBLT, xDest, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, xDest, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, xDest, 24)
    TEST_FIELD_SIZE  (EMRMASKBLT, yDest, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, yDest, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, yDest, 28)
    TEST_FIELD_SIZE  (EMRMASKBLT, cxDest, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cxDest, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cxDest, 32)
    TEST_FIELD_SIZE  (EMRMASKBLT, cyDest, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cyDest, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cyDest, 36)
    TEST_FIELD_SIZE  (EMRMASKBLT, dwRop, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, dwRop, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, dwRop, 40)
    TEST_FIELD_SIZE  (EMRMASKBLT, xSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, xSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, xSrc, 44)
    TEST_FIELD_SIZE  (EMRMASKBLT, ySrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, ySrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, ySrc, 48)
    TEST_FIELD_SIZE  (EMRMASKBLT, xformSrc, 24)
    TEST_FIELD_ALIGN (EMRMASKBLT, xformSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, xformSrc, 52)
    TEST_FIELD_SIZE  (EMRMASKBLT, crBkColorSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, crBkColorSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, crBkColorSrc, 76)
    TEST_FIELD_SIZE  (EMRMASKBLT, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, iUsageSrc, 80)
    TEST_FIELD_SIZE  (EMRMASKBLT, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, offBmiSrc, 84)
    TEST_FIELD_SIZE  (EMRMASKBLT, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cbBmiSrc, 88)
    TEST_FIELD_SIZE  (EMRMASKBLT, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, offBitsSrc, 92)
    TEST_FIELD_SIZE  (EMRMASKBLT, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cbBitsSrc, 96)
    TEST_FIELD_SIZE  (EMRMASKBLT, xMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, xMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, xMask, 100)
    TEST_FIELD_SIZE  (EMRMASKBLT, yMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, yMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, yMask, 104)
    TEST_FIELD_SIZE  (EMRMASKBLT, iUsageMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, iUsageMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, iUsageMask, 108)
    TEST_FIELD_SIZE  (EMRMASKBLT, offBmiMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, offBmiMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, offBmiMask, 112)
    TEST_FIELD_SIZE  (EMRMASKBLT, cbBmiMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cbBmiMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cbBmiMask, 116)
    TEST_FIELD_SIZE  (EMRMASKBLT, offBitsMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, offBitsMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, offBitsMask, 120)
    TEST_FIELD_SIZE  (EMRMASKBLT, cbBitsMask, 4)
    TEST_FIELD_ALIGN (EMRMASKBLT, cbBitsMask, 4)
    TEST_FIELD_OFFSET(EMRMASKBLT, cbBitsMask, 124)
}

static void test_pack_EMRMODIFYWORLDTRANSFORM(void)
{
    /* EMRMODIFYWORLDTRANSFORM */
    TEST_TYPE_SIZE   (EMRMODIFYWORLDTRANSFORM, 36)
    TEST_TYPE_ALIGN  (EMRMODIFYWORLDTRANSFORM, 4)
    TEST_FIELD_SIZE  (EMRMODIFYWORLDTRANSFORM, emr, 8)
    TEST_FIELD_ALIGN (EMRMODIFYWORLDTRANSFORM, emr, 4)
    TEST_FIELD_OFFSET(EMRMODIFYWORLDTRANSFORM, emr, 0)
    TEST_FIELD_SIZE  (EMRMODIFYWORLDTRANSFORM, xform, 24)
    TEST_FIELD_ALIGN (EMRMODIFYWORLDTRANSFORM, xform, 4)
    TEST_FIELD_OFFSET(EMRMODIFYWORLDTRANSFORM, xform, 8)
    TEST_FIELD_SIZE  (EMRMODIFYWORLDTRANSFORM, iMode, 4)
    TEST_FIELD_ALIGN (EMRMODIFYWORLDTRANSFORM, iMode, 4)
    TEST_FIELD_OFFSET(EMRMODIFYWORLDTRANSFORM, iMode, 32)
}

static void test_pack_EMRMOVETOEX(void)
{
    /* EMRMOVETOEX */
    TEST_TYPE_SIZE   (EMRMOVETOEX, 16)
    TEST_TYPE_ALIGN  (EMRMOVETOEX, 4)
    TEST_FIELD_SIZE  (EMRMOVETOEX, emr, 8)
    TEST_FIELD_ALIGN (EMRMOVETOEX, emr, 4)
    TEST_FIELD_OFFSET(EMRMOVETOEX, emr, 0)
    TEST_FIELD_SIZE  (EMRMOVETOEX, ptl, 8)
    TEST_FIELD_ALIGN (EMRMOVETOEX, ptl, 4)
    TEST_FIELD_OFFSET(EMRMOVETOEX, ptl, 8)
}

static void test_pack_EMROFFSETCLIPRGN(void)
{
    /* EMROFFSETCLIPRGN */
    TEST_TYPE_SIZE   (EMROFFSETCLIPRGN, 16)
    TEST_TYPE_ALIGN  (EMROFFSETCLIPRGN, 4)
    TEST_FIELD_SIZE  (EMROFFSETCLIPRGN, emr, 8)
    TEST_FIELD_ALIGN (EMROFFSETCLIPRGN, emr, 4)
    TEST_FIELD_OFFSET(EMROFFSETCLIPRGN, emr, 0)
    TEST_FIELD_SIZE  (EMROFFSETCLIPRGN, ptlOffset, 8)
    TEST_FIELD_ALIGN (EMROFFSETCLIPRGN, ptlOffset, 4)
    TEST_FIELD_OFFSET(EMROFFSETCLIPRGN, ptlOffset, 8)
}

static void test_pack_EMRPAINTRGN(void)
{
    /* EMRPAINTRGN */
    TEST_TYPE_SIZE   (EMRPAINTRGN, 32)
    TEST_TYPE_ALIGN  (EMRPAINTRGN, 4)
    TEST_FIELD_SIZE  (EMRPAINTRGN, emr, 8)
    TEST_FIELD_ALIGN (EMRPAINTRGN, emr, 4)
    TEST_FIELD_OFFSET(EMRPAINTRGN, emr, 0)
    TEST_FIELD_SIZE  (EMRPAINTRGN, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPAINTRGN, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPAINTRGN, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPAINTRGN, cbRgnData, 4)
    TEST_FIELD_ALIGN (EMRPAINTRGN, cbRgnData, 4)
    TEST_FIELD_OFFSET(EMRPAINTRGN, cbRgnData, 24)
    TEST_FIELD_SIZE  (EMRPAINTRGN, RgnData, 1)
    TEST_FIELD_ALIGN (EMRPAINTRGN, RgnData, 1)
    TEST_FIELD_OFFSET(EMRPAINTRGN, RgnData, 28)
}

static void test_pack_EMRPIE(void)
{
    /* EMRPIE */
    TEST_TYPE_SIZE   (EMRPIE, 40)
    TEST_TYPE_ALIGN  (EMRPIE, 4)
    TEST_FIELD_SIZE  (EMRPIE, emr, 8)
    TEST_FIELD_ALIGN (EMRPIE, emr, 4)
    TEST_FIELD_OFFSET(EMRPIE, emr, 0)
    TEST_FIELD_SIZE  (EMRPIE, rclBox, 16)
    TEST_FIELD_ALIGN (EMRPIE, rclBox, 4)
    TEST_FIELD_OFFSET(EMRPIE, rclBox, 8)
    TEST_FIELD_SIZE  (EMRPIE, ptlStart, 8)
    TEST_FIELD_ALIGN (EMRPIE, ptlStart, 4)
    TEST_FIELD_OFFSET(EMRPIE, ptlStart, 24)
    TEST_FIELD_SIZE  (EMRPIE, ptlEnd, 8)
    TEST_FIELD_ALIGN (EMRPIE, ptlEnd, 4)
    TEST_FIELD_OFFSET(EMRPIE, ptlEnd, 32)
}

static void test_pack_EMRPIXELFORMAT(void)
{
    /* EMRPIXELFORMAT */
    TEST_TYPE_SIZE   (EMRPIXELFORMAT, 48)
    TEST_TYPE_ALIGN  (EMRPIXELFORMAT, 4)
    TEST_FIELD_SIZE  (EMRPIXELFORMAT, emr, 8)
    TEST_FIELD_ALIGN (EMRPIXELFORMAT, emr, 4)
    TEST_FIELD_OFFSET(EMRPIXELFORMAT, emr, 0)
    TEST_FIELD_SIZE  (EMRPIXELFORMAT, pfd, 40)
    TEST_FIELD_ALIGN (EMRPIXELFORMAT, pfd, 4)
    TEST_FIELD_OFFSET(EMRPIXELFORMAT, pfd, 8)
}

static void test_pack_EMRPLGBLT(void)
{
    /* EMRPLGBLT */
    TEST_TYPE_SIZE   (EMRPLGBLT, 140)
    TEST_TYPE_ALIGN  (EMRPLGBLT, 4)
    TEST_FIELD_SIZE  (EMRPLGBLT, emr, 8)
    TEST_FIELD_ALIGN (EMRPLGBLT, emr, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, emr, 0)
    TEST_FIELD_SIZE  (EMRPLGBLT, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPLGBLT, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPLGBLT, aptlDest, 24)
    TEST_FIELD_ALIGN (EMRPLGBLT, aptlDest, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, aptlDest, 24)
    TEST_FIELD_SIZE  (EMRPLGBLT, xSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, xSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, xSrc, 48)
    TEST_FIELD_SIZE  (EMRPLGBLT, ySrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, ySrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, ySrc, 52)
    TEST_FIELD_SIZE  (EMRPLGBLT, cxSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cxSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cxSrc, 56)
    TEST_FIELD_SIZE  (EMRPLGBLT, cySrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cySrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cySrc, 60)
    TEST_FIELD_SIZE  (EMRPLGBLT, xformSrc, 24)
    TEST_FIELD_ALIGN (EMRPLGBLT, xformSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, xformSrc, 64)
    TEST_FIELD_SIZE  (EMRPLGBLT, crBkColorSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, crBkColorSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, crBkColorSrc, 88)
    TEST_FIELD_SIZE  (EMRPLGBLT, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, iUsageSrc, 92)
    TEST_FIELD_SIZE  (EMRPLGBLT, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, offBmiSrc, 96)
    TEST_FIELD_SIZE  (EMRPLGBLT, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cbBmiSrc, 100)
    TEST_FIELD_SIZE  (EMRPLGBLT, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, offBitsSrc, 104)
    TEST_FIELD_SIZE  (EMRPLGBLT, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cbBitsSrc, 108)
    TEST_FIELD_SIZE  (EMRPLGBLT, xMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, xMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, xMask, 112)
    TEST_FIELD_SIZE  (EMRPLGBLT, yMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, yMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, yMask, 116)
    TEST_FIELD_SIZE  (EMRPLGBLT, iUsageMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, iUsageMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, iUsageMask, 120)
    TEST_FIELD_SIZE  (EMRPLGBLT, offBmiMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, offBmiMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, offBmiMask, 124)
    TEST_FIELD_SIZE  (EMRPLGBLT, cbBmiMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cbBmiMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cbBmiMask, 128)
    TEST_FIELD_SIZE  (EMRPLGBLT, offBitsMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, offBitsMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, offBitsMask, 132)
    TEST_FIELD_SIZE  (EMRPLGBLT, cbBitsMask, 4)
    TEST_FIELD_ALIGN (EMRPLGBLT, cbBitsMask, 4)
    TEST_FIELD_OFFSET(EMRPLGBLT, cbBitsMask, 136)
}

static void test_pack_EMRPOLYBEZIER(void)
{
    /* EMRPOLYBEZIER */
    TEST_TYPE_SIZE   (EMRPOLYBEZIER, 36)
    TEST_TYPE_ALIGN  (EMRPOLYBEZIER, 4)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER, aptl, 28)
}

static void test_pack_EMRPOLYBEZIER16(void)
{
    /* EMRPOLYBEZIER16 */
    TEST_TYPE_SIZE   (EMRPOLYBEZIER16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYBEZIER16, 4)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYBEZIER16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIER16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYBEZIER16, apts, 28)
}

static void test_pack_EMRPOLYBEZIERTO(void)
{
    /* EMRPOLYBEZIERTO */
    TEST_TYPE_SIZE   (EMRPOLYBEZIERTO, 36)
    TEST_TYPE_ALIGN  (EMRPOLYBEZIERTO, 4)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO, aptl, 28)
}

static void test_pack_EMRPOLYBEZIERTO16(void)
{
    /* EMRPOLYBEZIERTO16 */
    TEST_TYPE_SIZE   (EMRPOLYBEZIERTO16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYBEZIERTO16, 4)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYBEZIERTO16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYBEZIERTO16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYBEZIERTO16, apts, 28)
}

static void test_pack_EMRPOLYDRAW(void)
{
    /* EMRPOLYDRAW */
    TEST_TYPE_SIZE   (EMRPOLYDRAW, 40)
    TEST_TYPE_ALIGN  (EMRPOLYDRAW, 4)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, aptl, 28)
    TEST_FIELD_SIZE  (EMRPOLYDRAW, abTypes, 1)
    TEST_FIELD_ALIGN (EMRPOLYDRAW, abTypes, 1)
    TEST_FIELD_OFFSET(EMRPOLYDRAW, abTypes, 36)
}

static void test_pack_EMRPOLYDRAW16(void)
{
    /* EMRPOLYDRAW16 */
    TEST_TYPE_SIZE   (EMRPOLYDRAW16, 36)
    TEST_TYPE_ALIGN  (EMRPOLYDRAW16, 4)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, apts, 28)
    TEST_FIELD_SIZE  (EMRPOLYDRAW16, abTypes, 1)
    TEST_FIELD_ALIGN (EMRPOLYDRAW16, abTypes, 1)
    TEST_FIELD_OFFSET(EMRPOLYDRAW16, abTypes, 32)
}

static void test_pack_EMRPOLYGON(void)
{
    /* EMRPOLYGON */
    TEST_TYPE_SIZE   (EMRPOLYGON, 36)
    TEST_TYPE_ALIGN  (EMRPOLYGON, 4)
    TEST_FIELD_SIZE  (EMRPOLYGON, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYGON, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYGON, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYGON, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYGON, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYGON, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYGON, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYGON, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON, aptl, 28)
}

static void test_pack_EMRPOLYGON16(void)
{
    /* EMRPOLYGON16 */
    TEST_TYPE_SIZE   (EMRPOLYGON16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYGON16, 4)
    TEST_FIELD_SIZE  (EMRPOLYGON16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYGON16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYGON16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYGON16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYGON16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYGON16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYGON16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYGON16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYGON16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYGON16, apts, 28)
}

static void test_pack_EMRPOLYLINE(void)
{
    /* EMRPOLYLINE */
    TEST_TYPE_SIZE   (EMRPOLYLINE, 36)
    TEST_TYPE_ALIGN  (EMRPOLYLINE, 4)
    TEST_FIELD_SIZE  (EMRPOLYLINE, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINE, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYLINE, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYLINE, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYLINE, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINE, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYLINE, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINE, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE, aptl, 28)
}

static void test_pack_EMRPOLYLINE16(void)
{
    /* EMRPOLYLINE16 */
    TEST_TYPE_SIZE   (EMRPOLYLINE16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYLINE16, 4)
    TEST_FIELD_SIZE  (EMRPOLYLINE16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINE16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYLINE16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYLINE16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYLINE16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINE16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINE16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYLINE16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINE16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYLINE16, apts, 28)
}

static void test_pack_EMRPOLYLINETO(void)
{
    /* EMRPOLYLINETO */
    TEST_TYPE_SIZE   (EMRPOLYLINETO, 36)
    TEST_TYPE_ALIGN  (EMRPOLYLINETO, 4)
    TEST_FIELD_SIZE  (EMRPOLYLINETO, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINETO, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYLINETO, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYLINETO, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYLINETO, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINETO, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO, cptl, 24)
    TEST_FIELD_SIZE  (EMRPOLYLINETO, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINETO, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO, aptl, 28)
}

static void test_pack_EMRPOLYLINETO16(void)
{
    /* EMRPOLYLINETO16 */
    TEST_TYPE_SIZE   (EMRPOLYLINETO16, 32)
    TEST_TYPE_ALIGN  (EMRPOLYLINETO16, 4)
    TEST_FIELD_SIZE  (EMRPOLYLINETO16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYLINETO16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYLINETO16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYLINETO16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYLINETO16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINETO16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYLINETO16, cpts, 24)
    TEST_FIELD_SIZE  (EMRPOLYLINETO16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYLINETO16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYLINETO16, apts, 28)
}

static void test_pack_EMRPOLYPOLYGON(void)
{
    /* EMRPOLYPOLYGON */
    TEST_TYPE_SIZE   (EMRPOLYPOLYGON, 44)
    TEST_TYPE_ALIGN  (EMRPOLYPOLYGON, 4)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, nPolys, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, nPolys, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, nPolys, 24)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, cptl, 28)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, aPolyCounts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, aPolyCounts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, aPolyCounts, 32)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON, aptl, 36)
}

static void test_pack_EMRPOLYPOLYGON16(void)
{
    /* EMRPOLYPOLYGON16 */
    TEST_TYPE_SIZE   (EMRPOLYPOLYGON16, 40)
    TEST_TYPE_ALIGN  (EMRPOLYPOLYGON16, 4)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, nPolys, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, nPolys, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, nPolys, 24)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, cpts, 28)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, aPolyCounts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, aPolyCounts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, aPolyCounts, 32)
    TEST_FIELD_SIZE  (EMRPOLYPOLYGON16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYGON16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYPOLYGON16, apts, 36)
}

static void test_pack_EMRPOLYPOLYLINE(void)
{
    /* EMRPOLYPOLYLINE */
    TEST_TYPE_SIZE   (EMRPOLYPOLYLINE, 44)
    TEST_TYPE_ALIGN  (EMRPOLYPOLYLINE, 4)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, nPolys, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, nPolys, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, nPolys, 24)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, cptl, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, cptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, cptl, 28)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, aPolyCounts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, aPolyCounts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, aPolyCounts, 32)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE, aptl, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE, aptl, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE, aptl, 36)
}

static void test_pack_EMRPOLYPOLYLINE16(void)
{
    /* EMRPOLYPOLYLINE16 */
    TEST_TYPE_SIZE   (EMRPOLYPOLYLINE16, 40)
    TEST_TYPE_ALIGN  (EMRPOLYPOLYLINE16, 4)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, nPolys, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, nPolys, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, nPolys, 24)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, cpts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, cpts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, cpts, 28)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, aPolyCounts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, aPolyCounts, 4)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, aPolyCounts, 32)
    TEST_FIELD_SIZE  (EMRPOLYPOLYLINE16, apts, 4)
    TEST_FIELD_ALIGN (EMRPOLYPOLYLINE16, apts, 2)
    TEST_FIELD_OFFSET(EMRPOLYPOLYLINE16, apts, 36)
}

static void test_pack_EMRPOLYTEXTOUTA(void)
{
    /* EMRPOLYTEXTOUTA */
    TEST_TYPE_SIZE   (EMRPOLYTEXTOUTA, 80)
    TEST_TYPE_ALIGN  (EMRPOLYTEXTOUTA, 4)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, iGraphicsMode, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, iGraphicsMode, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, iGraphicsMode, 24)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, exScale, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, exScale, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, exScale, 28)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, eyScale, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, eyScale, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, eyScale, 32)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, cStrings, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, cStrings, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, cStrings, 36)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTA, aemrtext, 40)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTA, aemrtext, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTA, aemrtext, 40)
}

static void test_pack_EMRPOLYTEXTOUTW(void)
{
    /* EMRPOLYTEXTOUTW */
    TEST_TYPE_SIZE   (EMRPOLYTEXTOUTW, 80)
    TEST_TYPE_ALIGN  (EMRPOLYTEXTOUTW, 4)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, emr, 8)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, emr, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, emr, 0)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, iGraphicsMode, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, iGraphicsMode, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, iGraphicsMode, 24)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, exScale, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, exScale, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, exScale, 28)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, eyScale, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, eyScale, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, eyScale, 32)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, cStrings, 4)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, cStrings, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, cStrings, 36)
    TEST_FIELD_SIZE  (EMRPOLYTEXTOUTW, aemrtext, 40)
    TEST_FIELD_ALIGN (EMRPOLYTEXTOUTW, aemrtext, 4)
    TEST_FIELD_OFFSET(EMRPOLYTEXTOUTW, aemrtext, 40)
}

static void test_pack_EMRREALIZEPALETTE(void)
{
    /* EMRREALIZEPALETTE */
    TEST_TYPE_SIZE   (EMRREALIZEPALETTE, 8)
    TEST_TYPE_ALIGN  (EMRREALIZEPALETTE, 4)
    TEST_FIELD_SIZE  (EMRREALIZEPALETTE, emr, 8)
    TEST_FIELD_ALIGN (EMRREALIZEPALETTE, emr, 4)
    TEST_FIELD_OFFSET(EMRREALIZEPALETTE, emr, 0)
}

static void test_pack_EMRRECTANGLE(void)
{
    /* EMRRECTANGLE */
    TEST_TYPE_SIZE   (EMRRECTANGLE, 24)
    TEST_TYPE_ALIGN  (EMRRECTANGLE, 4)
    TEST_FIELD_SIZE  (EMRRECTANGLE, emr, 8)
    TEST_FIELD_ALIGN (EMRRECTANGLE, emr, 4)
    TEST_FIELD_OFFSET(EMRRECTANGLE, emr, 0)
    TEST_FIELD_SIZE  (EMRRECTANGLE, rclBox, 16)
    TEST_FIELD_ALIGN (EMRRECTANGLE, rclBox, 4)
    TEST_FIELD_OFFSET(EMRRECTANGLE, rclBox, 8)
}

static void test_pack_EMRRESIZEPALETTE(void)
{
    /* EMRRESIZEPALETTE */
    TEST_TYPE_SIZE   (EMRRESIZEPALETTE, 16)
    TEST_TYPE_ALIGN  (EMRRESIZEPALETTE, 4)
    TEST_FIELD_SIZE  (EMRRESIZEPALETTE, emr, 8)
    TEST_FIELD_ALIGN (EMRRESIZEPALETTE, emr, 4)
    TEST_FIELD_OFFSET(EMRRESIZEPALETTE, emr, 0)
    TEST_FIELD_SIZE  (EMRRESIZEPALETTE, ihPal, 4)
    TEST_FIELD_ALIGN (EMRRESIZEPALETTE, ihPal, 4)
    TEST_FIELD_OFFSET(EMRRESIZEPALETTE, ihPal, 8)
    TEST_FIELD_SIZE  (EMRRESIZEPALETTE, cEntries, 4)
    TEST_FIELD_ALIGN (EMRRESIZEPALETTE, cEntries, 4)
    TEST_FIELD_OFFSET(EMRRESIZEPALETTE, cEntries, 12)
}

static void test_pack_EMRRESTOREDC(void)
{
    /* EMRRESTOREDC */
    TEST_TYPE_SIZE   (EMRRESTOREDC, 12)
    TEST_TYPE_ALIGN  (EMRRESTOREDC, 4)
    TEST_FIELD_SIZE  (EMRRESTOREDC, emr, 8)
    TEST_FIELD_ALIGN (EMRRESTOREDC, emr, 4)
    TEST_FIELD_OFFSET(EMRRESTOREDC, emr, 0)
    TEST_FIELD_SIZE  (EMRRESTOREDC, iRelative, 4)
    TEST_FIELD_ALIGN (EMRRESTOREDC, iRelative, 4)
    TEST_FIELD_OFFSET(EMRRESTOREDC, iRelative, 8)
}

static void test_pack_EMRROUNDRECT(void)
{
    /* EMRROUNDRECT */
    TEST_TYPE_SIZE   (EMRROUNDRECT, 32)
    TEST_TYPE_ALIGN  (EMRROUNDRECT, 4)
    TEST_FIELD_SIZE  (EMRROUNDRECT, emr, 8)
    TEST_FIELD_ALIGN (EMRROUNDRECT, emr, 4)
    TEST_FIELD_OFFSET(EMRROUNDRECT, emr, 0)
    TEST_FIELD_SIZE  (EMRROUNDRECT, rclBox, 16)
    TEST_FIELD_ALIGN (EMRROUNDRECT, rclBox, 4)
    TEST_FIELD_OFFSET(EMRROUNDRECT, rclBox, 8)
    TEST_FIELD_SIZE  (EMRROUNDRECT, szlCorner, 8)
    TEST_FIELD_ALIGN (EMRROUNDRECT, szlCorner, 4)
    TEST_FIELD_OFFSET(EMRROUNDRECT, szlCorner, 24)
}

static void test_pack_EMRSAVEDC(void)
{
    /* EMRSAVEDC */
    TEST_TYPE_SIZE   (EMRSAVEDC, 8)
    TEST_TYPE_ALIGN  (EMRSAVEDC, 4)
    TEST_FIELD_SIZE  (EMRSAVEDC, emr, 8)
    TEST_FIELD_ALIGN (EMRSAVEDC, emr, 4)
    TEST_FIELD_OFFSET(EMRSAVEDC, emr, 0)
}

static void test_pack_EMRSCALEVIEWPORTEXTEX(void)
{
    /* EMRSCALEVIEWPORTEXTEX */
    TEST_TYPE_SIZE   (EMRSCALEVIEWPORTEXTEX, 24)
    TEST_TYPE_ALIGN  (EMRSCALEVIEWPORTEXTEX, 4)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, xNum, 4)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, xNum, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, xNum, 8)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, xDenom, 4)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, xDenom, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, xDenom, 12)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, yNum, 4)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, yNum, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, yNum, 16)
    TEST_FIELD_SIZE  (EMRSCALEVIEWPORTEXTEX, yDenom, 4)
    TEST_FIELD_ALIGN (EMRSCALEVIEWPORTEXTEX, yDenom, 4)
    TEST_FIELD_OFFSET(EMRSCALEVIEWPORTEXTEX, yDenom, 20)
}

static void test_pack_EMRSCALEWINDOWEXTEX(void)
{
    /* EMRSCALEWINDOWEXTEX */
    TEST_TYPE_SIZE   (EMRSCALEWINDOWEXTEX, 24)
    TEST_TYPE_ALIGN  (EMRSCALEWINDOWEXTEX, 4)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, xNum, 4)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, xNum, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, xNum, 8)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, xDenom, 4)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, xDenom, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, xDenom, 12)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, yNum, 4)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, yNum, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, yNum, 16)
    TEST_FIELD_SIZE  (EMRSCALEWINDOWEXTEX, yDenom, 4)
    TEST_FIELD_ALIGN (EMRSCALEWINDOWEXTEX, yDenom, 4)
    TEST_FIELD_OFFSET(EMRSCALEWINDOWEXTEX, yDenom, 20)
}

static void test_pack_EMRSELECTCLIPPATH(void)
{
    /* EMRSELECTCLIPPATH */
    TEST_TYPE_SIZE   (EMRSELECTCLIPPATH, 12)
    TEST_TYPE_ALIGN  (EMRSELECTCLIPPATH, 4)
    TEST_FIELD_SIZE  (EMRSELECTCLIPPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRSELECTCLIPPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRSELECTCLIPPATH, emr, 0)
    TEST_FIELD_SIZE  (EMRSELECTCLIPPATH, iMode, 4)
    TEST_FIELD_ALIGN (EMRSELECTCLIPPATH, iMode, 4)
    TEST_FIELD_OFFSET(EMRSELECTCLIPPATH, iMode, 8)
}

static void test_pack_EMRSELECTCOLORSPACE(void)
{
    /* EMRSELECTCOLORSPACE */
    TEST_TYPE_SIZE   (EMRSELECTCOLORSPACE, 12)
    TEST_TYPE_ALIGN  (EMRSELECTCOLORSPACE, 4)
    TEST_FIELD_SIZE  (EMRSELECTCOLORSPACE, emr, 8)
    TEST_FIELD_ALIGN (EMRSELECTCOLORSPACE, emr, 4)
    TEST_FIELD_OFFSET(EMRSELECTCOLORSPACE, emr, 0)
    TEST_FIELD_SIZE  (EMRSELECTCOLORSPACE, ihCS, 4)
    TEST_FIELD_ALIGN (EMRSELECTCOLORSPACE, ihCS, 4)
    TEST_FIELD_OFFSET(EMRSELECTCOLORSPACE, ihCS, 8)
}

static void test_pack_EMRSELECTOBJECT(void)
{
    /* EMRSELECTOBJECT */
    TEST_TYPE_SIZE   (EMRSELECTOBJECT, 12)
    TEST_TYPE_ALIGN  (EMRSELECTOBJECT, 4)
    TEST_FIELD_SIZE  (EMRSELECTOBJECT, emr, 8)
    TEST_FIELD_ALIGN (EMRSELECTOBJECT, emr, 4)
    TEST_FIELD_OFFSET(EMRSELECTOBJECT, emr, 0)
    TEST_FIELD_SIZE  (EMRSELECTOBJECT, ihObject, 4)
    TEST_FIELD_ALIGN (EMRSELECTOBJECT, ihObject, 4)
    TEST_FIELD_OFFSET(EMRSELECTOBJECT, ihObject, 8)
}

static void test_pack_EMRSELECTPALETTE(void)
{
    /* EMRSELECTPALETTE */
    TEST_TYPE_SIZE   (EMRSELECTPALETTE, 12)
    TEST_TYPE_ALIGN  (EMRSELECTPALETTE, 4)
    TEST_FIELD_SIZE  (EMRSELECTPALETTE, emr, 8)
    TEST_FIELD_ALIGN (EMRSELECTPALETTE, emr, 4)
    TEST_FIELD_OFFSET(EMRSELECTPALETTE, emr, 0)
    TEST_FIELD_SIZE  (EMRSELECTPALETTE, ihPal, 4)
    TEST_FIELD_ALIGN (EMRSELECTPALETTE, ihPal, 4)
    TEST_FIELD_OFFSET(EMRSELECTPALETTE, ihPal, 8)
}

static void test_pack_EMRSETARCDIRECTION(void)
{
    /* EMRSETARCDIRECTION */
    TEST_TYPE_SIZE   (EMRSETARCDIRECTION, 12)
    TEST_TYPE_ALIGN  (EMRSETARCDIRECTION, 4)
    TEST_FIELD_SIZE  (EMRSETARCDIRECTION, emr, 8)
    TEST_FIELD_ALIGN (EMRSETARCDIRECTION, emr, 4)
    TEST_FIELD_OFFSET(EMRSETARCDIRECTION, emr, 0)
    TEST_FIELD_SIZE  (EMRSETARCDIRECTION, iArcDirection, 4)
    TEST_FIELD_ALIGN (EMRSETARCDIRECTION, iArcDirection, 4)
    TEST_FIELD_OFFSET(EMRSETARCDIRECTION, iArcDirection, 8)
}

static void test_pack_EMRSETBKCOLOR(void)
{
    /* EMRSETBKCOLOR */
    TEST_TYPE_SIZE   (EMRSETBKCOLOR, 12)
    TEST_TYPE_ALIGN  (EMRSETBKCOLOR, 4)
    TEST_FIELD_SIZE  (EMRSETBKCOLOR, emr, 8)
    TEST_FIELD_ALIGN (EMRSETBKCOLOR, emr, 4)
    TEST_FIELD_OFFSET(EMRSETBKCOLOR, emr, 0)
    TEST_FIELD_SIZE  (EMRSETBKCOLOR, crColor, 4)
    TEST_FIELD_ALIGN (EMRSETBKCOLOR, crColor, 4)
    TEST_FIELD_OFFSET(EMRSETBKCOLOR, crColor, 8)
}

static void test_pack_EMRSETBKMODE(void)
{
    /* EMRSETBKMODE */
    TEST_TYPE_SIZE   (EMRSETBKMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETBKMODE, 4)
    TEST_FIELD_SIZE  (EMRSETBKMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETBKMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETBKMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETBKMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETBKMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETBKMODE, iMode, 8)
}

static void test_pack_EMRSETBRUSHORGEX(void)
{
    /* EMRSETBRUSHORGEX */
    TEST_TYPE_SIZE   (EMRSETBRUSHORGEX, 16)
    TEST_TYPE_ALIGN  (EMRSETBRUSHORGEX, 4)
    TEST_FIELD_SIZE  (EMRSETBRUSHORGEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETBRUSHORGEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETBRUSHORGEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETBRUSHORGEX, ptlOrigin, 8)
    TEST_FIELD_ALIGN (EMRSETBRUSHORGEX, ptlOrigin, 4)
    TEST_FIELD_OFFSET(EMRSETBRUSHORGEX, ptlOrigin, 8)
}

static void test_pack_EMRSETCOLORADJUSTMENT(void)
{
    /* EMRSETCOLORADJUSTMENT */
    TEST_TYPE_SIZE   (EMRSETCOLORADJUSTMENT, 32)
    TEST_TYPE_ALIGN  (EMRSETCOLORADJUSTMENT, 4)
    TEST_FIELD_SIZE  (EMRSETCOLORADJUSTMENT, emr, 8)
    TEST_FIELD_ALIGN (EMRSETCOLORADJUSTMENT, emr, 4)
    TEST_FIELD_OFFSET(EMRSETCOLORADJUSTMENT, emr, 0)
    TEST_FIELD_SIZE  (EMRSETCOLORADJUSTMENT, ColorAdjustment, 24)
    TEST_FIELD_ALIGN (EMRSETCOLORADJUSTMENT, ColorAdjustment, 2)
    TEST_FIELD_OFFSET(EMRSETCOLORADJUSTMENT, ColorAdjustment, 8)
}

static void test_pack_EMRSETCOLORSPACE(void)
{
    /* EMRSETCOLORSPACE */
    TEST_TYPE_SIZE   (EMRSETCOLORSPACE, 12)
    TEST_TYPE_ALIGN  (EMRSETCOLORSPACE, 4)
    TEST_FIELD_SIZE  (EMRSETCOLORSPACE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETCOLORSPACE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETCOLORSPACE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETCOLORSPACE, ihCS, 4)
    TEST_FIELD_ALIGN (EMRSETCOLORSPACE, ihCS, 4)
    TEST_FIELD_OFFSET(EMRSETCOLORSPACE, ihCS, 8)
}

static void test_pack_EMRSETDIBITSTODEVICE(void)
{
    /* EMRSETDIBITSTODEVICE */
    TEST_TYPE_SIZE   (EMRSETDIBITSTODEVICE, 76)
    TEST_TYPE_ALIGN  (EMRSETDIBITSTODEVICE, 4)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, xDest, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, xDest, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, xDest, 24)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, yDest, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, yDest, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, yDest, 28)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, xSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, xSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, xSrc, 32)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, ySrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, ySrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, ySrc, 36)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cxSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cxSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cxSrc, 40)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cySrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cySrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cySrc, 44)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, offBmiSrc, 48)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cbBmiSrc, 52)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, offBitsSrc, 56)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cbBitsSrc, 60)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, iUsageSrc, 64)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, iStartScan, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, iStartScan, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, iStartScan, 68)
    TEST_FIELD_SIZE  (EMRSETDIBITSTODEVICE, cScans, 4)
    TEST_FIELD_ALIGN (EMRSETDIBITSTODEVICE, cScans, 4)
    TEST_FIELD_OFFSET(EMRSETDIBITSTODEVICE, cScans, 72)
}

static void test_pack_EMRSETICMMODE(void)
{
    /* EMRSETICMMODE */
    TEST_TYPE_SIZE   (EMRSETICMMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETICMMODE, 4)
    TEST_FIELD_SIZE  (EMRSETICMMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETICMMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETICMMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETICMMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETICMMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETICMMODE, iMode, 8)
}

static void test_pack_EMRSETLAYOUT(void)
{
    /* EMRSETLAYOUT */
    TEST_TYPE_SIZE   (EMRSETLAYOUT, 12)
    TEST_TYPE_ALIGN  (EMRSETLAYOUT, 4)
    TEST_FIELD_SIZE  (EMRSETLAYOUT, emr, 8)
    TEST_FIELD_ALIGN (EMRSETLAYOUT, emr, 4)
    TEST_FIELD_OFFSET(EMRSETLAYOUT, emr, 0)
    TEST_FIELD_SIZE  (EMRSETLAYOUT, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETLAYOUT, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETLAYOUT, iMode, 8)
}

static void test_pack_EMRSETMAPMODE(void)
{
    /* EMRSETMAPMODE */
    TEST_TYPE_SIZE   (EMRSETMAPMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETMAPMODE, 4)
    TEST_FIELD_SIZE  (EMRSETMAPMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETMAPMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETMAPMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETMAPMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETMAPMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETMAPMODE, iMode, 8)
}

static void test_pack_EMRSETMAPPERFLAGS(void)
{
    /* EMRSETMAPPERFLAGS */
    TEST_TYPE_SIZE   (EMRSETMAPPERFLAGS, 12)
    TEST_TYPE_ALIGN  (EMRSETMAPPERFLAGS, 4)
    TEST_FIELD_SIZE  (EMRSETMAPPERFLAGS, emr, 8)
    TEST_FIELD_ALIGN (EMRSETMAPPERFLAGS, emr, 4)
    TEST_FIELD_OFFSET(EMRSETMAPPERFLAGS, emr, 0)
    TEST_FIELD_SIZE  (EMRSETMAPPERFLAGS, dwFlags, 4)
    TEST_FIELD_ALIGN (EMRSETMAPPERFLAGS, dwFlags, 4)
    TEST_FIELD_OFFSET(EMRSETMAPPERFLAGS, dwFlags, 8)
}

static void test_pack_EMRSETMETARGN(void)
{
    /* EMRSETMETARGN */
    TEST_TYPE_SIZE   (EMRSETMETARGN, 8)
    TEST_TYPE_ALIGN  (EMRSETMETARGN, 4)
    TEST_FIELD_SIZE  (EMRSETMETARGN, emr, 8)
    TEST_FIELD_ALIGN (EMRSETMETARGN, emr, 4)
    TEST_FIELD_OFFSET(EMRSETMETARGN, emr, 0)
}

static void test_pack_EMRSETMITERLIMIT(void)
{
    /* EMRSETMITERLIMIT */
    TEST_TYPE_SIZE   (EMRSETMITERLIMIT, 12)
    TEST_TYPE_ALIGN  (EMRSETMITERLIMIT, 4)
    TEST_FIELD_SIZE  (EMRSETMITERLIMIT, emr, 8)
    TEST_FIELD_ALIGN (EMRSETMITERLIMIT, emr, 4)
    TEST_FIELD_OFFSET(EMRSETMITERLIMIT, emr, 0)
    TEST_FIELD_SIZE  (EMRSETMITERLIMIT, eMiterLimit, 4)
    TEST_FIELD_ALIGN (EMRSETMITERLIMIT, eMiterLimit, 4)
    TEST_FIELD_OFFSET(EMRSETMITERLIMIT, eMiterLimit, 8)
}

static void test_pack_EMRSETPIXELV(void)
{
    /* EMRSETPIXELV */
    TEST_TYPE_SIZE   (EMRSETPIXELV, 20)
    TEST_TYPE_ALIGN  (EMRSETPIXELV, 4)
    TEST_FIELD_SIZE  (EMRSETPIXELV, emr, 8)
    TEST_FIELD_ALIGN (EMRSETPIXELV, emr, 4)
    TEST_FIELD_OFFSET(EMRSETPIXELV, emr, 0)
    TEST_FIELD_SIZE  (EMRSETPIXELV, ptlPixel, 8)
    TEST_FIELD_ALIGN (EMRSETPIXELV, ptlPixel, 4)
    TEST_FIELD_OFFSET(EMRSETPIXELV, ptlPixel, 8)
    TEST_FIELD_SIZE  (EMRSETPIXELV, crColor, 4)
    TEST_FIELD_ALIGN (EMRSETPIXELV, crColor, 4)
    TEST_FIELD_OFFSET(EMRSETPIXELV, crColor, 16)
}

static void test_pack_EMRSETPOLYFILLMODE(void)
{
    /* EMRSETPOLYFILLMODE */
    TEST_TYPE_SIZE   (EMRSETPOLYFILLMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETPOLYFILLMODE, 4)
    TEST_FIELD_SIZE  (EMRSETPOLYFILLMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETPOLYFILLMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETPOLYFILLMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETPOLYFILLMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETPOLYFILLMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETPOLYFILLMODE, iMode, 8)
}

static void test_pack_EMRSETROP2(void)
{
    /* EMRSETROP2 */
    TEST_TYPE_SIZE   (EMRSETROP2, 12)
    TEST_TYPE_ALIGN  (EMRSETROP2, 4)
    TEST_FIELD_SIZE  (EMRSETROP2, emr, 8)
    TEST_FIELD_ALIGN (EMRSETROP2, emr, 4)
    TEST_FIELD_OFFSET(EMRSETROP2, emr, 0)
    TEST_FIELD_SIZE  (EMRSETROP2, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETROP2, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETROP2, iMode, 8)
}

static void test_pack_EMRSETSTRETCHBLTMODE(void)
{
    /* EMRSETSTRETCHBLTMODE */
    TEST_TYPE_SIZE   (EMRSETSTRETCHBLTMODE, 12)
    TEST_TYPE_ALIGN  (EMRSETSTRETCHBLTMODE, 4)
    TEST_FIELD_SIZE  (EMRSETSTRETCHBLTMODE, emr, 8)
    TEST_FIELD_ALIGN (EMRSETSTRETCHBLTMODE, emr, 4)
    TEST_FIELD_OFFSET(EMRSETSTRETCHBLTMODE, emr, 0)
    TEST_FIELD_SIZE  (EMRSETSTRETCHBLTMODE, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETSTRETCHBLTMODE, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETSTRETCHBLTMODE, iMode, 8)
}

static void test_pack_EMRSETTEXTALIGN(void)
{
    /* EMRSETTEXTALIGN */
    TEST_TYPE_SIZE   (EMRSETTEXTALIGN, 12)
    TEST_TYPE_ALIGN  (EMRSETTEXTALIGN, 4)
    TEST_FIELD_SIZE  (EMRSETTEXTALIGN, emr, 8)
    TEST_FIELD_ALIGN (EMRSETTEXTALIGN, emr, 4)
    TEST_FIELD_OFFSET(EMRSETTEXTALIGN, emr, 0)
    TEST_FIELD_SIZE  (EMRSETTEXTALIGN, iMode, 4)
    TEST_FIELD_ALIGN (EMRSETTEXTALIGN, iMode, 4)
    TEST_FIELD_OFFSET(EMRSETTEXTALIGN, iMode, 8)
}

static void test_pack_EMRSETTEXTCOLOR(void)
{
    /* EMRSETTEXTCOLOR */
    TEST_TYPE_SIZE   (EMRSETTEXTCOLOR, 12)
    TEST_TYPE_ALIGN  (EMRSETTEXTCOLOR, 4)
    TEST_FIELD_SIZE  (EMRSETTEXTCOLOR, emr, 8)
    TEST_FIELD_ALIGN (EMRSETTEXTCOLOR, emr, 4)
    TEST_FIELD_OFFSET(EMRSETTEXTCOLOR, emr, 0)
    TEST_FIELD_SIZE  (EMRSETTEXTCOLOR, crColor, 4)
    TEST_FIELD_ALIGN (EMRSETTEXTCOLOR, crColor, 4)
    TEST_FIELD_OFFSET(EMRSETTEXTCOLOR, crColor, 8)
}

static void test_pack_EMRSETVIEWPORTEXTEX(void)
{
    /* EMRSETVIEWPORTEXTEX */
    TEST_TYPE_SIZE   (EMRSETVIEWPORTEXTEX, 16)
    TEST_TYPE_ALIGN  (EMRSETVIEWPORTEXTEX, 4)
    TEST_FIELD_SIZE  (EMRSETVIEWPORTEXTEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETVIEWPORTEXTEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETVIEWPORTEXTEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETVIEWPORTEXTEX, szlExtent, 8)
    TEST_FIELD_ALIGN (EMRSETVIEWPORTEXTEX, szlExtent, 4)
    TEST_FIELD_OFFSET(EMRSETVIEWPORTEXTEX, szlExtent, 8)
}

static void test_pack_EMRSETVIEWPORTORGEX(void)
{
    /* EMRSETVIEWPORTORGEX */
    TEST_TYPE_SIZE   (EMRSETVIEWPORTORGEX, 16)
    TEST_TYPE_ALIGN  (EMRSETVIEWPORTORGEX, 4)
    TEST_FIELD_SIZE  (EMRSETVIEWPORTORGEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETVIEWPORTORGEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETVIEWPORTORGEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETVIEWPORTORGEX, ptlOrigin, 8)
    TEST_FIELD_ALIGN (EMRSETVIEWPORTORGEX, ptlOrigin, 4)
    TEST_FIELD_OFFSET(EMRSETVIEWPORTORGEX, ptlOrigin, 8)
}

static void test_pack_EMRSETWINDOWEXTEX(void)
{
    /* EMRSETWINDOWEXTEX */
    TEST_TYPE_SIZE   (EMRSETWINDOWEXTEX, 16)
    TEST_TYPE_ALIGN  (EMRSETWINDOWEXTEX, 4)
    TEST_FIELD_SIZE  (EMRSETWINDOWEXTEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETWINDOWEXTEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETWINDOWEXTEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETWINDOWEXTEX, szlExtent, 8)
    TEST_FIELD_ALIGN (EMRSETWINDOWEXTEX, szlExtent, 4)
    TEST_FIELD_OFFSET(EMRSETWINDOWEXTEX, szlExtent, 8)
}

static void test_pack_EMRSETWINDOWORGEX(void)
{
    /* EMRSETWINDOWORGEX */
    TEST_TYPE_SIZE   (EMRSETWINDOWORGEX, 16)
    TEST_TYPE_ALIGN  (EMRSETWINDOWORGEX, 4)
    TEST_FIELD_SIZE  (EMRSETWINDOWORGEX, emr, 8)
    TEST_FIELD_ALIGN (EMRSETWINDOWORGEX, emr, 4)
    TEST_FIELD_OFFSET(EMRSETWINDOWORGEX, emr, 0)
    TEST_FIELD_SIZE  (EMRSETWINDOWORGEX, ptlOrigin, 8)
    TEST_FIELD_ALIGN (EMRSETWINDOWORGEX, ptlOrigin, 4)
    TEST_FIELD_OFFSET(EMRSETWINDOWORGEX, ptlOrigin, 8)
}

static void test_pack_EMRSETWORLDTRANSFORM(void)
{
    /* EMRSETWORLDTRANSFORM */
    TEST_TYPE_SIZE   (EMRSETWORLDTRANSFORM, 32)
    TEST_TYPE_ALIGN  (EMRSETWORLDTRANSFORM, 4)
    TEST_FIELD_SIZE  (EMRSETWORLDTRANSFORM, emr, 8)
    TEST_FIELD_ALIGN (EMRSETWORLDTRANSFORM, emr, 4)
    TEST_FIELD_OFFSET(EMRSETWORLDTRANSFORM, emr, 0)
    TEST_FIELD_SIZE  (EMRSETWORLDTRANSFORM, xform, 24)
    TEST_FIELD_ALIGN (EMRSETWORLDTRANSFORM, xform, 4)
    TEST_FIELD_OFFSET(EMRSETWORLDTRANSFORM, xform, 8)
}

static void test_pack_EMRSTRETCHBLT(void)
{
    /* EMRSTRETCHBLT */
    TEST_TYPE_SIZE   (EMRSTRETCHBLT, 108)
    TEST_TYPE_ALIGN  (EMRSTRETCHBLT, 4)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, emr, 8)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, emr, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, emr, 0)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, xDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, xDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, xDest, 24)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, yDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, yDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, yDest, 28)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cxDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cxDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cxDest, 32)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cyDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cyDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cyDest, 36)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, dwRop, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, dwRop, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, dwRop, 40)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, xSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, xSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, xSrc, 44)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, ySrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, ySrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, ySrc, 48)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, xformSrc, 24)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, xformSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, xformSrc, 52)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, crBkColorSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, crBkColorSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, crBkColorSrc, 76)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, iUsageSrc, 80)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, offBmiSrc, 84)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cbBmiSrc, 88)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, offBitsSrc, 92)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cbBitsSrc, 96)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cxSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cxSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cxSrc, 100)
    TEST_FIELD_SIZE  (EMRSTRETCHBLT, cySrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHBLT, cySrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHBLT, cySrc, 104)
}

static void test_pack_EMRSTRETCHDIBITS(void)
{
    /* EMRSTRETCHDIBITS */
    TEST_TYPE_SIZE   (EMRSTRETCHDIBITS, 80)
    TEST_TYPE_ALIGN  (EMRSTRETCHDIBITS, 4)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, emr, 8)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, emr, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, emr, 0)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, rclBounds, 8)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, xDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, xDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, xDest, 24)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, yDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, yDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, yDest, 28)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, xSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, xSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, xSrc, 32)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, ySrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, ySrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, ySrc, 36)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cxSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cxSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cxSrc, 40)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cySrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cySrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cySrc, 44)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, offBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, offBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, offBmiSrc, 48)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cbBmiSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cbBmiSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cbBmiSrc, 52)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, offBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, offBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, offBitsSrc, 56)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cbBitsSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cbBitsSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cbBitsSrc, 60)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, iUsageSrc, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, iUsageSrc, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, iUsageSrc, 64)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, dwRop, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, dwRop, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, dwRop, 68)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cxDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cxDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cxDest, 72)
    TEST_FIELD_SIZE  (EMRSTRETCHDIBITS, cyDest, 4)
    TEST_FIELD_ALIGN (EMRSTRETCHDIBITS, cyDest, 4)
    TEST_FIELD_OFFSET(EMRSTRETCHDIBITS, cyDest, 76)
}

static void test_pack_EMRSTROKEANDFILLPATH(void)
{
    /* EMRSTROKEANDFILLPATH */
    TEST_TYPE_SIZE   (EMRSTROKEANDFILLPATH, 24)
    TEST_TYPE_ALIGN  (EMRSTROKEANDFILLPATH, 4)
    TEST_FIELD_SIZE  (EMRSTROKEANDFILLPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRSTROKEANDFILLPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRSTROKEANDFILLPATH, emr, 0)
    TEST_FIELD_SIZE  (EMRSTROKEANDFILLPATH, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSTROKEANDFILLPATH, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSTROKEANDFILLPATH, rclBounds, 8)
}

static void test_pack_EMRSTROKEPATH(void)
{
    /* EMRSTROKEPATH */
    TEST_TYPE_SIZE   (EMRSTROKEPATH, 24)
    TEST_TYPE_ALIGN  (EMRSTROKEPATH, 4)
    TEST_FIELD_SIZE  (EMRSTROKEPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRSTROKEPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRSTROKEPATH, emr, 0)
    TEST_FIELD_SIZE  (EMRSTROKEPATH, rclBounds, 16)
    TEST_FIELD_ALIGN (EMRSTROKEPATH, rclBounds, 4)
    TEST_FIELD_OFFSET(EMRSTROKEPATH, rclBounds, 8)
}

static void test_pack_EMRTEXT(void)
{
    /* EMRTEXT */
    TEST_TYPE_SIZE   (EMRTEXT, 40)
    TEST_TYPE_ALIGN  (EMRTEXT, 4)
    TEST_FIELD_SIZE  (EMRTEXT, ptlReference, 8)
    TEST_FIELD_ALIGN (EMRTEXT, ptlReference, 4)
    TEST_FIELD_OFFSET(EMRTEXT, ptlReference, 0)
    TEST_FIELD_SIZE  (EMRTEXT, nChars, 4)
    TEST_FIELD_ALIGN (EMRTEXT, nChars, 4)
    TEST_FIELD_OFFSET(EMRTEXT, nChars, 8)
    TEST_FIELD_SIZE  (EMRTEXT, offString, 4)
    TEST_FIELD_ALIGN (EMRTEXT, offString, 4)
    TEST_FIELD_OFFSET(EMRTEXT, offString, 12)
    TEST_FIELD_SIZE  (EMRTEXT, fOptions, 4)
    TEST_FIELD_ALIGN (EMRTEXT, fOptions, 4)
    TEST_FIELD_OFFSET(EMRTEXT, fOptions, 16)
    TEST_FIELD_SIZE  (EMRTEXT, rcl, 16)
    TEST_FIELD_ALIGN (EMRTEXT, rcl, 4)
    TEST_FIELD_OFFSET(EMRTEXT, rcl, 20)
    TEST_FIELD_SIZE  (EMRTEXT, offDx, 4)
    TEST_FIELD_ALIGN (EMRTEXT, offDx, 4)
    TEST_FIELD_OFFSET(EMRTEXT, offDx, 36)
}

static void test_pack_EMRWIDENPATH(void)
{
    /* EMRWIDENPATH */
    TEST_TYPE_SIZE   (EMRWIDENPATH, 8)
    TEST_TYPE_ALIGN  (EMRWIDENPATH, 4)
    TEST_FIELD_SIZE  (EMRWIDENPATH, emr, 8)
    TEST_FIELD_ALIGN (EMRWIDENPATH, emr, 4)
    TEST_FIELD_OFFSET(EMRWIDENPATH, emr, 0)
}

static void test_pack_ENHMETAHEADER(void)
{
    /* ENHMETAHEADER */
    TEST_TYPE_SIZE   (ENHMETAHEADER, 108)
    TEST_TYPE_ALIGN  (ENHMETAHEADER, 4)
    TEST_FIELD_SIZE  (ENHMETAHEADER, iType, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, iType, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, iType, 0)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nSize, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nSize, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nSize, 4)
    TEST_FIELD_SIZE  (ENHMETAHEADER, rclBounds, 16)
    TEST_FIELD_ALIGN (ENHMETAHEADER, rclBounds, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, rclBounds, 8)
    TEST_FIELD_SIZE  (ENHMETAHEADER, rclFrame, 16)
    TEST_FIELD_ALIGN (ENHMETAHEADER, rclFrame, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, rclFrame, 24)
    TEST_FIELD_SIZE  (ENHMETAHEADER, dSignature, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, dSignature, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, dSignature, 40)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nVersion, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nVersion, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nVersion, 44)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nBytes, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nBytes, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nBytes, 48)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nRecords, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nRecords, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nRecords, 52)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nHandles, 2)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nHandles, 2)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nHandles, 56)
    TEST_FIELD_SIZE  (ENHMETAHEADER, sReserved, 2)
    TEST_FIELD_ALIGN (ENHMETAHEADER, sReserved, 2)
    TEST_FIELD_OFFSET(ENHMETAHEADER, sReserved, 58)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nDescription, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nDescription, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nDescription, 60)
    TEST_FIELD_SIZE  (ENHMETAHEADER, offDescription, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, offDescription, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, offDescription, 64)
    TEST_FIELD_SIZE  (ENHMETAHEADER, nPalEntries, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, nPalEntries, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, nPalEntries, 68)
    TEST_FIELD_SIZE  (ENHMETAHEADER, szlDevice, 8)
    TEST_FIELD_ALIGN (ENHMETAHEADER, szlDevice, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, szlDevice, 72)
    TEST_FIELD_SIZE  (ENHMETAHEADER, szlMillimeters, 8)
    TEST_FIELD_ALIGN (ENHMETAHEADER, szlMillimeters, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, szlMillimeters, 80)
    TEST_FIELD_SIZE  (ENHMETAHEADER, cbPixelFormat, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, cbPixelFormat, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, cbPixelFormat, 88)
    TEST_FIELD_SIZE  (ENHMETAHEADER, offPixelFormat, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, offPixelFormat, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, offPixelFormat, 92)
    TEST_FIELD_SIZE  (ENHMETAHEADER, bOpenGL, 4)
    TEST_FIELD_ALIGN (ENHMETAHEADER, bOpenGL, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, bOpenGL, 96)
    TEST_FIELD_SIZE  (ENHMETAHEADER, szlMicrometers, 8)
    TEST_FIELD_ALIGN (ENHMETAHEADER, szlMicrometers, 4)
    TEST_FIELD_OFFSET(ENHMETAHEADER, szlMicrometers, 100)
}

static void test_pack_ENHMETARECORD(void)
{
    /* ENHMETARECORD */
    TEST_TYPE_SIZE   (ENHMETARECORD, 12)
    TEST_TYPE_ALIGN  (ENHMETARECORD, 4)
    TEST_FIELD_SIZE  (ENHMETARECORD, iType, 4)
    TEST_FIELD_ALIGN (ENHMETARECORD, iType, 4)
    TEST_FIELD_OFFSET(ENHMETARECORD, iType, 0)
    TEST_FIELD_SIZE  (ENHMETARECORD, nSize, 4)
    TEST_FIELD_ALIGN (ENHMETARECORD, nSize, 4)
    TEST_FIELD_OFFSET(ENHMETARECORD, nSize, 4)
    TEST_FIELD_SIZE  (ENHMETARECORD, dParm, 4)
    TEST_FIELD_ALIGN (ENHMETARECORD, dParm, 4)
    TEST_FIELD_OFFSET(ENHMETARECORD, dParm, 8)
}

static void test_pack_ENHMFENUMPROC(void)
{
    /* ENHMFENUMPROC */
    TEST_TYPE_SIZE   (ENHMFENUMPROC, 4)
    TEST_TYPE_ALIGN  (ENHMFENUMPROC, 4)
}

static void test_pack_ENUMLOGFONTA(void)
{
    /* ENUMLOGFONTA */
    TEST_TYPE_SIZE   (ENUMLOGFONTA, 156)
    TEST_TYPE_ALIGN  (ENUMLOGFONTA, 4)
    TEST_FIELD_SIZE  (ENUMLOGFONTA, elfLogFont, 60)
    TEST_FIELD_ALIGN (ENUMLOGFONTA, elfLogFont, 4)
    TEST_FIELD_OFFSET(ENUMLOGFONTA, elfLogFont, 0)
    TEST_FIELD_SIZE  (ENUMLOGFONTA, elfFullName, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTA, elfFullName, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTA, elfFullName, 60)
    TEST_FIELD_SIZE  (ENUMLOGFONTA, elfStyle, 32)
    TEST_FIELD_ALIGN (ENUMLOGFONTA, elfStyle, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTA, elfStyle, 124)
}

static void test_pack_ENUMLOGFONTEXA(void)
{
    /* ENUMLOGFONTEXA */
    TEST_TYPE_SIZE   (ENUMLOGFONTEXA, 188)
    TEST_TYPE_ALIGN  (ENUMLOGFONTEXA, 4)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXA, elfLogFont, 60)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXA, elfLogFont, 4)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXA, elfLogFont, 0)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXA, elfFullName, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXA, elfFullName, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXA, elfFullName, 60)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXA, elfStyle, 32)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXA, elfStyle, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXA, elfStyle, 124)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXA, elfScript, 32)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXA, elfScript, 1)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXA, elfScript, 156)
}

static void test_pack_ENUMLOGFONTEXW(void)
{
    /* ENUMLOGFONTEXW */
    TEST_TYPE_SIZE   (ENUMLOGFONTEXW, 348)
    TEST_TYPE_ALIGN  (ENUMLOGFONTEXW, 4)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXW, elfLogFont, 92)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXW, elfLogFont, 4)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXW, elfLogFont, 0)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXW, elfFullName, 128)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXW, elfFullName, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXW, elfFullName, 92)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXW, elfStyle, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXW, elfStyle, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXW, elfStyle, 220)
    TEST_FIELD_SIZE  (ENUMLOGFONTEXW, elfScript, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTEXW, elfScript, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTEXW, elfScript, 284)
}

static void test_pack_ENUMLOGFONTW(void)
{
    /* ENUMLOGFONTW */
    TEST_TYPE_SIZE   (ENUMLOGFONTW, 284)
    TEST_TYPE_ALIGN  (ENUMLOGFONTW, 4)
    TEST_FIELD_SIZE  (ENUMLOGFONTW, elfLogFont, 92)
    TEST_FIELD_ALIGN (ENUMLOGFONTW, elfLogFont, 4)
    TEST_FIELD_OFFSET(ENUMLOGFONTW, elfLogFont, 0)
    TEST_FIELD_SIZE  (ENUMLOGFONTW, elfFullName, 128)
    TEST_FIELD_ALIGN (ENUMLOGFONTW, elfFullName, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTW, elfFullName, 92)
    TEST_FIELD_SIZE  (ENUMLOGFONTW, elfStyle, 64)
    TEST_FIELD_ALIGN (ENUMLOGFONTW, elfStyle, 2)
    TEST_FIELD_OFFSET(ENUMLOGFONTW, elfStyle, 220)
}

static void test_pack_EXTLOGFONTA(void)
{
    /* EXTLOGFONTA */
    TEST_TYPE_SIZE   (EXTLOGFONTA, 192)
    TEST_TYPE_ALIGN  (EXTLOGFONTA, 4)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfLogFont, 60)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfLogFont, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfLogFont, 0)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfFullName, 64)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfFullName, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfFullName, 60)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfStyle, 32)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfStyle, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfStyle, 124)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfVersion, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfVersion, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfVersion, 156)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfStyleSize, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfStyleSize, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfStyleSize, 160)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfMatch, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfMatch, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfMatch, 164)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfReserved, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfReserved, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfReserved, 168)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfVendorId, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfVendorId, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfVendorId, 172)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfCulture, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfCulture, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfCulture, 176)
    TEST_FIELD_SIZE  (EXTLOGFONTA, elfPanose, 10)
    TEST_FIELD_ALIGN (EXTLOGFONTA, elfPanose, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTA, elfPanose, 180)
}

static void test_pack_EXTLOGFONTW(void)
{
    /* EXTLOGFONTW */
    TEST_TYPE_SIZE   (EXTLOGFONTW, 320)
    TEST_TYPE_ALIGN  (EXTLOGFONTW, 4)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfLogFont, 92)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfLogFont, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfLogFont, 0)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfFullName, 128)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfFullName, 2)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfFullName, 92)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfStyle, 64)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfStyle, 2)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfStyle, 220)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfVersion, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfVersion, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfVersion, 284)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfStyleSize, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfStyleSize, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfStyleSize, 288)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfMatch, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfMatch, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfMatch, 292)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfReserved, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfReserved, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfReserved, 296)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfVendorId, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfVendorId, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfVendorId, 300)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfCulture, 4)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfCulture, 4)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfCulture, 304)
    TEST_FIELD_SIZE  (EXTLOGFONTW, elfPanose, 10)
    TEST_FIELD_ALIGN (EXTLOGFONTW, elfPanose, 1)
    TEST_FIELD_OFFSET(EXTLOGFONTW, elfPanose, 308)
}

static void test_pack_EXTLOGPEN(void)
{
    /* EXTLOGPEN */
    TEST_TYPE_SIZE   (EXTLOGPEN, 28)
    TEST_TYPE_ALIGN  (EXTLOGPEN, 4)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpPenStyle, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpPenStyle, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpPenStyle, 0)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpWidth, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpWidth, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpWidth, 4)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpBrushStyle, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpBrushStyle, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpBrushStyle, 8)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpColor, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpColor, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpColor, 12)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpHatch, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpHatch, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpHatch, 16)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpNumEntries, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpNumEntries, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpNumEntries, 20)
    TEST_FIELD_SIZE  (EXTLOGPEN, elpStyleEntry, 4)
    TEST_FIELD_ALIGN (EXTLOGPEN, elpStyleEntry, 4)
    TEST_FIELD_OFFSET(EXTLOGPEN, elpStyleEntry, 24)
}

static void test_pack_FIXED(void)
{
    /* FIXED */
    TEST_TYPE_SIZE   (FIXED, 4)
    TEST_TYPE_ALIGN  (FIXED, 2)
    TEST_FIELD_SIZE  (FIXED, fract, 2)
    TEST_FIELD_ALIGN (FIXED, fract, 2)
    TEST_FIELD_OFFSET(FIXED, fract, 0)
    TEST_FIELD_SIZE  (FIXED, value, 2)
    TEST_FIELD_ALIGN (FIXED, value, 2)
    TEST_FIELD_OFFSET(FIXED, value, 2)
}

static void test_pack_FONTENUMPROCA(void)
{
    /* FONTENUMPROCA */
    TEST_TYPE_SIZE   (FONTENUMPROCA, 4)
    TEST_TYPE_ALIGN  (FONTENUMPROCA, 4)
}

static void test_pack_FONTENUMPROCW(void)
{
    /* FONTENUMPROCW */
    TEST_TYPE_SIZE   (FONTENUMPROCW, 4)
    TEST_TYPE_ALIGN  (FONTENUMPROCW, 4)
}

static void test_pack_FONTSIGNATURE(void)
{
    /* FONTSIGNATURE */
    TEST_TYPE_SIZE   (FONTSIGNATURE, 24)
    TEST_TYPE_ALIGN  (FONTSIGNATURE, 4)
    TEST_FIELD_SIZE  (FONTSIGNATURE, fsUsb, 16)
    TEST_FIELD_ALIGN (FONTSIGNATURE, fsUsb, 4)
    TEST_FIELD_OFFSET(FONTSIGNATURE, fsUsb, 0)
    TEST_FIELD_SIZE  (FONTSIGNATURE, fsCsb, 8)
    TEST_FIELD_ALIGN (FONTSIGNATURE, fsCsb, 4)
    TEST_FIELD_OFFSET(FONTSIGNATURE, fsCsb, 16)
}

static void test_pack_FXPT16DOT16(void)
{
    /* FXPT16DOT16 */
    TEST_TYPE_SIZE   (FXPT16DOT16, 4)
    TEST_TYPE_ALIGN  (FXPT16DOT16, 4)
}

static void test_pack_FXPT2DOT30(void)
{
    /* FXPT2DOT30 */
    TEST_TYPE_SIZE   (FXPT2DOT30, 4)
    TEST_TYPE_ALIGN  (FXPT2DOT30, 4)
}

static void test_pack_GCP_RESULTSA(void)
{
    /* GCP_RESULTSA */
    TEST_TYPE_SIZE   (GCP_RESULTSA, 36)
    TEST_TYPE_ALIGN  (GCP_RESULTSA, 4)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lStructSize, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lStructSize, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lStructSize, 0)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpOutString, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpOutString, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpOutString, 4)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpOrder, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpOrder, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpOrder, 8)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpDx, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpDx, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpDx, 12)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpCaretPos, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpCaretPos, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpCaretPos, 16)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpClass, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpClass, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpClass, 20)
    TEST_FIELD_SIZE  (GCP_RESULTSA, lpGlyphs, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, lpGlyphs, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, lpGlyphs, 24)
    TEST_FIELD_SIZE  (GCP_RESULTSA, nGlyphs, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, nGlyphs, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, nGlyphs, 28)
    TEST_FIELD_SIZE  (GCP_RESULTSA, nMaxFit, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSA, nMaxFit, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSA, nMaxFit, 32)
}

static void test_pack_GCP_RESULTSW(void)
{
    /* GCP_RESULTSW */
    TEST_TYPE_SIZE   (GCP_RESULTSW, 36)
    TEST_TYPE_ALIGN  (GCP_RESULTSW, 4)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lStructSize, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lStructSize, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lStructSize, 0)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpOutString, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpOutString, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpOutString, 4)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpOrder, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpOrder, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpOrder, 8)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpDx, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpDx, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpDx, 12)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpCaretPos, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpCaretPos, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpCaretPos, 16)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpClass, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpClass, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpClass, 20)
    TEST_FIELD_SIZE  (GCP_RESULTSW, lpGlyphs, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, lpGlyphs, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, lpGlyphs, 24)
    TEST_FIELD_SIZE  (GCP_RESULTSW, nGlyphs, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, nGlyphs, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, nGlyphs, 28)
    TEST_FIELD_SIZE  (GCP_RESULTSW, nMaxFit, 4)
    TEST_FIELD_ALIGN (GCP_RESULTSW, nMaxFit, 4)
    TEST_FIELD_OFFSET(GCP_RESULTSW, nMaxFit, 32)
}

static void test_pack_GLYPHMETRICS(void)
{
    /* GLYPHMETRICS */
    TEST_TYPE_SIZE   (GLYPHMETRICS, 20)
    TEST_TYPE_ALIGN  (GLYPHMETRICS, 4)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmBlackBoxX, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmBlackBoxX, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmBlackBoxX, 0)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmBlackBoxY, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmBlackBoxY, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmBlackBoxY, 4)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmptGlyphOrigin, 8)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmptGlyphOrigin, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmptGlyphOrigin, 8)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmCellIncX, 2)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmCellIncX, 2)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmCellIncX, 16)
    TEST_FIELD_SIZE  (GLYPHMETRICS, gmCellIncY, 2)
    TEST_FIELD_ALIGN (GLYPHMETRICS, gmCellIncY, 2)
    TEST_FIELD_OFFSET(GLYPHMETRICS, gmCellIncY, 18)
}

static void test_pack_GLYPHMETRICSFLOAT(void)
{
    /* GLYPHMETRICSFLOAT */
    TEST_TYPE_SIZE   (GLYPHMETRICSFLOAT, 24)
    TEST_TYPE_ALIGN  (GLYPHMETRICSFLOAT, 4)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfBlackBoxX, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfBlackBoxX, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfBlackBoxX, 0)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfBlackBoxY, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfBlackBoxY, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfBlackBoxY, 4)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfptGlyphOrigin, 8)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfptGlyphOrigin, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfptGlyphOrigin, 8)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfCellIncX, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfCellIncX, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfCellIncX, 16)
    TEST_FIELD_SIZE  (GLYPHMETRICSFLOAT, gmfCellIncY, 4)
    TEST_FIELD_ALIGN (GLYPHMETRICSFLOAT, gmfCellIncY, 4)
    TEST_FIELD_OFFSET(GLYPHMETRICSFLOAT, gmfCellIncY, 20)
}

static void test_pack_GOBJENUMPROC(void)
{
    /* GOBJENUMPROC */
    TEST_TYPE_SIZE   (GOBJENUMPROC, 4)
    TEST_TYPE_ALIGN  (GOBJENUMPROC, 4)
}

static void test_pack_GRADIENT_RECT(void)
{
    /* GRADIENT_RECT */
    TEST_TYPE_SIZE   (GRADIENT_RECT, 8)
    TEST_TYPE_ALIGN  (GRADIENT_RECT, 4)
    TEST_FIELD_SIZE  (GRADIENT_RECT, UpperLeft, 4)
    TEST_FIELD_ALIGN (GRADIENT_RECT, UpperLeft, 4)
    TEST_FIELD_OFFSET(GRADIENT_RECT, UpperLeft, 0)
    TEST_FIELD_SIZE  (GRADIENT_RECT, LowerRight, 4)
    TEST_FIELD_ALIGN (GRADIENT_RECT, LowerRight, 4)
    TEST_FIELD_OFFSET(GRADIENT_RECT, LowerRight, 4)
}

static void test_pack_GRADIENT_TRIANGLE(void)
{
    /* GRADIENT_TRIANGLE */
    TEST_TYPE_SIZE   (GRADIENT_TRIANGLE, 12)
    TEST_TYPE_ALIGN  (GRADIENT_TRIANGLE, 4)
    TEST_FIELD_SIZE  (GRADIENT_TRIANGLE, Vertex1, 4)
    TEST_FIELD_ALIGN (GRADIENT_TRIANGLE, Vertex1, 4)
    TEST_FIELD_OFFSET(GRADIENT_TRIANGLE, Vertex1, 0)
    TEST_FIELD_SIZE  (GRADIENT_TRIANGLE, Vertex2, 4)
    TEST_FIELD_ALIGN (GRADIENT_TRIANGLE, Vertex2, 4)
    TEST_FIELD_OFFSET(GRADIENT_TRIANGLE, Vertex2, 4)
    TEST_FIELD_SIZE  (GRADIENT_TRIANGLE, Vertex3, 4)
    TEST_FIELD_ALIGN (GRADIENT_TRIANGLE, Vertex3, 4)
    TEST_FIELD_OFFSET(GRADIENT_TRIANGLE, Vertex3, 8)
}

static void test_pack_HANDLETABLE(void)
{
    /* HANDLETABLE */
    TEST_TYPE_SIZE   (HANDLETABLE, 4)
    TEST_TYPE_ALIGN  (HANDLETABLE, 4)
    TEST_FIELD_SIZE  (HANDLETABLE, objectHandle, 4)
    TEST_FIELD_ALIGN (HANDLETABLE, objectHandle, 4)
    TEST_FIELD_OFFSET(HANDLETABLE, objectHandle, 0)
}

static void test_pack_ICMENUMPROCA(void)
{
    /* ICMENUMPROCA */
    TEST_TYPE_SIZE   (ICMENUMPROCA, 4)
    TEST_TYPE_ALIGN  (ICMENUMPROCA, 4)
}

static void test_pack_ICMENUMPROCW(void)
{
    /* ICMENUMPROCW */
    TEST_TYPE_SIZE   (ICMENUMPROCW, 4)
    TEST_TYPE_ALIGN  (ICMENUMPROCW, 4)
}

static void test_pack_KERNINGPAIR(void)
{
    /* KERNINGPAIR */
    TEST_TYPE_SIZE   (KERNINGPAIR, 8)
    TEST_TYPE_ALIGN  (KERNINGPAIR, 4)
    TEST_FIELD_SIZE  (KERNINGPAIR, wFirst, 2)
    TEST_FIELD_ALIGN (KERNINGPAIR, wFirst, 2)
    TEST_FIELD_OFFSET(KERNINGPAIR, wFirst, 0)
    TEST_FIELD_SIZE  (KERNINGPAIR, wSecond, 2)
    TEST_FIELD_ALIGN (KERNINGPAIR, wSecond, 2)
    TEST_FIELD_OFFSET(KERNINGPAIR, wSecond, 2)
    TEST_FIELD_SIZE  (KERNINGPAIR, iKernAmount, 4)
    TEST_FIELD_ALIGN (KERNINGPAIR, iKernAmount, 4)
    TEST_FIELD_OFFSET(KERNINGPAIR, iKernAmount, 4)
}

static void test_pack_LAYERPLANEDESCRIPTOR(void)
{
    /* LAYERPLANEDESCRIPTOR */
    TEST_TYPE_SIZE   (LAYERPLANEDESCRIPTOR, 32)
    TEST_TYPE_ALIGN  (LAYERPLANEDESCRIPTOR, 4)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, nSize, 2)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, nSize, 2)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, nSize, 0)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, nVersion, 2)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, nVersion, 2)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, nVersion, 2)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, iPixelType, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, iPixelType, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, iPixelType, 8)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cColorBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cColorBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cColorBits, 9)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cRedBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cRedBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cRedBits, 10)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cRedShift, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cRedShift, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cRedShift, 11)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cGreenBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cGreenBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cGreenBits, 12)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cGreenShift, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cGreenShift, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cGreenShift, 13)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cBlueBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cBlueBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cBlueBits, 14)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cBlueShift, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cBlueShift, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cBlueShift, 15)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAlphaBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAlphaBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAlphaBits, 16)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAlphaShift, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAlphaShift, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAlphaShift, 17)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumBits, 18)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumRedBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumRedBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumRedBits, 19)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumGreenBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumGreenBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumGreenBits, 20)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumBlueBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumBlueBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumBlueBits, 21)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAccumAlphaBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAccumAlphaBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAccumAlphaBits, 22)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cDepthBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cDepthBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cDepthBits, 23)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cStencilBits, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cStencilBits, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cStencilBits, 24)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, cAuxBuffers, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, cAuxBuffers, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, cAuxBuffers, 25)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, iLayerPlane, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, iLayerPlane, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, iLayerPlane, 26)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, bReserved, 1)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, bReserved, 1)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, bReserved, 27)
    TEST_FIELD_SIZE  (LAYERPLANEDESCRIPTOR, crTransparent, 4)
    TEST_FIELD_ALIGN (LAYERPLANEDESCRIPTOR, crTransparent, 4)
    TEST_FIELD_OFFSET(LAYERPLANEDESCRIPTOR, crTransparent, 28)
}

static void test_pack_LCSCSTYPE(void)
{
    /* LCSCSTYPE */
    TEST_TYPE_SIZE   (LCSCSTYPE, 4)
    TEST_TYPE_ALIGN  (LCSCSTYPE, 4)
}

static void test_pack_LCSGAMUTMATCH(void)
{
    /* LCSGAMUTMATCH */
    TEST_TYPE_SIZE   (LCSGAMUTMATCH, 4)
    TEST_TYPE_ALIGN  (LCSGAMUTMATCH, 4)
}

static void test_pack_LINEDDAPROC(void)
{
    /* LINEDDAPROC */
    TEST_TYPE_SIZE   (LINEDDAPROC, 4)
    TEST_TYPE_ALIGN  (LINEDDAPROC, 4)
}

static void test_pack_LOCALESIGNATURE(void)
{
    /* LOCALESIGNATURE */
    TEST_TYPE_SIZE   (LOCALESIGNATURE, 32)
    TEST_TYPE_ALIGN  (LOCALESIGNATURE, 4)
    TEST_FIELD_SIZE  (LOCALESIGNATURE, lsUsb, 16)
    TEST_FIELD_ALIGN (LOCALESIGNATURE, lsUsb, 4)
    TEST_FIELD_OFFSET(LOCALESIGNATURE, lsUsb, 0)
    TEST_FIELD_SIZE  (LOCALESIGNATURE, lsCsbDefault, 8)
    TEST_FIELD_ALIGN (LOCALESIGNATURE, lsCsbDefault, 4)
    TEST_FIELD_OFFSET(LOCALESIGNATURE, lsCsbDefault, 16)
    TEST_FIELD_SIZE  (LOCALESIGNATURE, lsCsbSupported, 8)
    TEST_FIELD_ALIGN (LOCALESIGNATURE, lsCsbSupported, 4)
    TEST_FIELD_OFFSET(LOCALESIGNATURE, lsCsbSupported, 24)
}

static void test_pack_LOGBRUSH(void)
{
    /* LOGBRUSH */
    TEST_TYPE_SIZE   (LOGBRUSH, 12)
    TEST_TYPE_ALIGN  (LOGBRUSH, 4)
    TEST_FIELD_SIZE  (LOGBRUSH, lbStyle, 4)
    TEST_FIELD_ALIGN (LOGBRUSH, lbStyle, 4)
    TEST_FIELD_OFFSET(LOGBRUSH, lbStyle, 0)
    TEST_FIELD_SIZE  (LOGBRUSH, lbColor, 4)
    TEST_FIELD_ALIGN (LOGBRUSH, lbColor, 4)
    TEST_FIELD_OFFSET(LOGBRUSH, lbColor, 4)
    TEST_FIELD_SIZE  (LOGBRUSH, lbHatch, 4)
    TEST_FIELD_ALIGN (LOGBRUSH, lbHatch, 4)
    TEST_FIELD_OFFSET(LOGBRUSH, lbHatch, 8)
}

static void test_pack_LOGCOLORSPACEA(void)
{
    /* LOGCOLORSPACEA */
    TEST_TYPE_SIZE   (LOGCOLORSPACEA, 328)
    TEST_TYPE_ALIGN  (LOGCOLORSPACEA, 4)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsSignature, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsSignature, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsSignature, 0)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsVersion, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsVersion, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsVersion, 4)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsSize, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsSize, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsSize, 8)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsCSType, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsCSType, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsCSType, 12)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsIntent, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsIntent, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsIntent, 16)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsEndpoints, 36)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsEndpoints, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsEndpoints, 20)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsGammaRed, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsGammaRed, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsGammaRed, 56)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsGammaGreen, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsGammaGreen, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsGammaGreen, 60)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsGammaBlue, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsGammaBlue, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsGammaBlue, 64)
    TEST_FIELD_SIZE  (LOGCOLORSPACEA, lcsFilename, 260)
    TEST_FIELD_ALIGN (LOGCOLORSPACEA, lcsFilename, 1)
    TEST_FIELD_OFFSET(LOGCOLORSPACEA, lcsFilename, 68)
}

static void test_pack_LOGCOLORSPACEW(void)
{
    /* LOGCOLORSPACEW */
    TEST_TYPE_SIZE   (LOGCOLORSPACEW, 588)
    TEST_TYPE_ALIGN  (LOGCOLORSPACEW, 4)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsSignature, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsSignature, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsSignature, 0)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsVersion, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsVersion, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsVersion, 4)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsSize, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsSize, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsSize, 8)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsCSType, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsCSType, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsCSType, 12)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsIntent, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsIntent, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsIntent, 16)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsEndpoints, 36)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsEndpoints, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsEndpoints, 20)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsGammaRed, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsGammaRed, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsGammaRed, 56)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsGammaGreen, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsGammaGreen, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsGammaGreen, 60)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsGammaBlue, 4)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsGammaBlue, 4)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsGammaBlue, 64)
    TEST_FIELD_SIZE  (LOGCOLORSPACEW, lcsFilename, 520)
    TEST_FIELD_ALIGN (LOGCOLORSPACEW, lcsFilename, 2)
    TEST_FIELD_OFFSET(LOGCOLORSPACEW, lcsFilename, 68)
}

static void test_pack_LOGFONTA(void)
{
    /* LOGFONTA */
    TEST_TYPE_SIZE   (LOGFONTA, 60)
    TEST_TYPE_ALIGN  (LOGFONTA, 4)
    TEST_FIELD_SIZE  (LOGFONTA, lfHeight, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfHeight, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfHeight, 0)
    TEST_FIELD_SIZE  (LOGFONTA, lfWidth, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfWidth, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfWidth, 4)
    TEST_FIELD_SIZE  (LOGFONTA, lfEscapement, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfEscapement, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfEscapement, 8)
    TEST_FIELD_SIZE  (LOGFONTA, lfOrientation, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfOrientation, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfOrientation, 12)
    TEST_FIELD_SIZE  (LOGFONTA, lfWeight, 4)
    TEST_FIELD_ALIGN (LOGFONTA, lfWeight, 4)
    TEST_FIELD_OFFSET(LOGFONTA, lfWeight, 16)
    TEST_FIELD_SIZE  (LOGFONTA, lfItalic, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfItalic, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfItalic, 20)
    TEST_FIELD_SIZE  (LOGFONTA, lfUnderline, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfUnderline, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfUnderline, 21)
    TEST_FIELD_SIZE  (LOGFONTA, lfStrikeOut, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfStrikeOut, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfStrikeOut, 22)
    TEST_FIELD_SIZE  (LOGFONTA, lfCharSet, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfCharSet, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfCharSet, 23)
    TEST_FIELD_SIZE  (LOGFONTA, lfOutPrecision, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfOutPrecision, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfOutPrecision, 24)
    TEST_FIELD_SIZE  (LOGFONTA, lfClipPrecision, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfClipPrecision, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfClipPrecision, 25)
    TEST_FIELD_SIZE  (LOGFONTA, lfQuality, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfQuality, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfQuality, 26)
    TEST_FIELD_SIZE  (LOGFONTA, lfPitchAndFamily, 1)
    TEST_FIELD_ALIGN (LOGFONTA, lfPitchAndFamily, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfPitchAndFamily, 27)
    TEST_FIELD_SIZE  (LOGFONTA, lfFaceName, 32)
    TEST_FIELD_ALIGN (LOGFONTA, lfFaceName, 1)
    TEST_FIELD_OFFSET(LOGFONTA, lfFaceName, 28)
}

static void test_pack_LOGFONTW(void)
{
    /* LOGFONTW */
    TEST_TYPE_SIZE   (LOGFONTW, 92)
    TEST_TYPE_ALIGN  (LOGFONTW, 4)
    TEST_FIELD_SIZE  (LOGFONTW, lfHeight, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfHeight, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfHeight, 0)
    TEST_FIELD_SIZE  (LOGFONTW, lfWidth, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfWidth, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfWidth, 4)
    TEST_FIELD_SIZE  (LOGFONTW, lfEscapement, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfEscapement, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfEscapement, 8)
    TEST_FIELD_SIZE  (LOGFONTW, lfOrientation, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfOrientation, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfOrientation, 12)
    TEST_FIELD_SIZE  (LOGFONTW, lfWeight, 4)
    TEST_FIELD_ALIGN (LOGFONTW, lfWeight, 4)
    TEST_FIELD_OFFSET(LOGFONTW, lfWeight, 16)
    TEST_FIELD_SIZE  (LOGFONTW, lfItalic, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfItalic, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfItalic, 20)
    TEST_FIELD_SIZE  (LOGFONTW, lfUnderline, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfUnderline, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfUnderline, 21)
    TEST_FIELD_SIZE  (LOGFONTW, lfStrikeOut, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfStrikeOut, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfStrikeOut, 22)
    TEST_FIELD_SIZE  (LOGFONTW, lfCharSet, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfCharSet, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfCharSet, 23)
    TEST_FIELD_SIZE  (LOGFONTW, lfOutPrecision, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfOutPrecision, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfOutPrecision, 24)
    TEST_FIELD_SIZE  (LOGFONTW, lfClipPrecision, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfClipPrecision, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfClipPrecision, 25)
    TEST_FIELD_SIZE  (LOGFONTW, lfQuality, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfQuality, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfQuality, 26)
    TEST_FIELD_SIZE  (LOGFONTW, lfPitchAndFamily, 1)
    TEST_FIELD_ALIGN (LOGFONTW, lfPitchAndFamily, 1)
    TEST_FIELD_OFFSET(LOGFONTW, lfPitchAndFamily, 27)
    TEST_FIELD_SIZE  (LOGFONTW, lfFaceName, 64)
    TEST_FIELD_ALIGN (LOGFONTW, lfFaceName, 2)
    TEST_FIELD_OFFSET(LOGFONTW, lfFaceName, 28)
}

static void test_pack_LOGPEN(void)
{
    /* LOGPEN */
    TEST_TYPE_SIZE   (LOGPEN, 16)
    TEST_TYPE_ALIGN  (LOGPEN, 4)
    TEST_FIELD_SIZE  (LOGPEN, lopnStyle, 4)
    TEST_FIELD_ALIGN (LOGPEN, lopnStyle, 4)
    TEST_FIELD_OFFSET(LOGPEN, lopnStyle, 0)
    TEST_FIELD_SIZE  (LOGPEN, lopnWidth, 8)
    TEST_FIELD_ALIGN (LOGPEN, lopnWidth, 4)
    TEST_FIELD_OFFSET(LOGPEN, lopnWidth, 4)
    TEST_FIELD_SIZE  (LOGPEN, lopnColor, 4)
    TEST_FIELD_ALIGN (LOGPEN, lopnColor, 4)
    TEST_FIELD_OFFSET(LOGPEN, lopnColor, 12)
}

static void test_pack_LPABC(void)
{
    /* LPABC */
    TEST_TYPE_SIZE   (LPABC, 4)
    TEST_TYPE_ALIGN  (LPABC, 4)
    TEST_TARGET_SIZE (LPABC, 12)
    TEST_TARGET_ALIGN(LPABC, 4)
}

static void test_pack_LPABCFLOAT(void)
{
    /* LPABCFLOAT */
    TEST_TYPE_SIZE   (LPABCFLOAT, 4)
    TEST_TYPE_ALIGN  (LPABCFLOAT, 4)
    TEST_TARGET_SIZE (LPABCFLOAT, 12)
    TEST_TARGET_ALIGN(LPABCFLOAT, 4)
}

static void test_pack_LPBITMAP(void)
{
    /* LPBITMAP */
    TEST_TYPE_SIZE   (LPBITMAP, 4)
    TEST_TYPE_ALIGN  (LPBITMAP, 4)
    TEST_TARGET_SIZE (LPBITMAP, 24)
    TEST_TARGET_ALIGN(LPBITMAP, 4)
}

static void test_pack_LPBITMAPCOREHEADER(void)
{
    /* LPBITMAPCOREHEADER */
    TEST_TYPE_SIZE   (LPBITMAPCOREHEADER, 4)
    TEST_TYPE_ALIGN  (LPBITMAPCOREHEADER, 4)
    TEST_TARGET_SIZE (LPBITMAPCOREHEADER, 12)
    TEST_TARGET_ALIGN(LPBITMAPCOREHEADER, 4)
}

static void test_pack_LPBITMAPCOREINFO(void)
{
    /* LPBITMAPCOREINFO */
    TEST_TYPE_SIZE   (LPBITMAPCOREINFO, 4)
    TEST_TYPE_ALIGN  (LPBITMAPCOREINFO, 4)
    TEST_TARGET_SIZE (LPBITMAPCOREINFO, 16)
    TEST_TARGET_ALIGN(LPBITMAPCOREINFO, 4)
}

static void test_pack_LPBITMAPFILEHEADER(void)
{
    /* LPBITMAPFILEHEADER */
    TEST_TYPE_SIZE   (LPBITMAPFILEHEADER, 4)
    TEST_TYPE_ALIGN  (LPBITMAPFILEHEADER, 4)
    TEST_TARGET_SIZE (LPBITMAPFILEHEADER, 14)
    TEST_TARGET_ALIGN(LPBITMAPFILEHEADER, 2)
}

static void test_pack_LPBITMAPINFO(void)
{
    /* LPBITMAPINFO */
    TEST_TYPE_SIZE   (LPBITMAPINFO, 4)
    TEST_TYPE_ALIGN  (LPBITMAPINFO, 4)
    TEST_TARGET_SIZE (LPBITMAPINFO, 44)
    TEST_TARGET_ALIGN(LPBITMAPINFO, 4)
}

static void test_pack_LPBITMAPINFOHEADER(void)
{
    /* LPBITMAPINFOHEADER */
    TEST_TYPE_SIZE   (LPBITMAPINFOHEADER, 4)
    TEST_TYPE_ALIGN  (LPBITMAPINFOHEADER, 4)
    TEST_TARGET_SIZE (LPBITMAPINFOHEADER, 40)
    TEST_TARGET_ALIGN(LPBITMAPINFOHEADER, 4)
}

static void test_pack_LPBITMAPV5HEADER(void)
{
    /* LPBITMAPV5HEADER */
    TEST_TYPE_SIZE   (LPBITMAPV5HEADER, 4)
    TEST_TYPE_ALIGN  (LPBITMAPV5HEADER, 4)
    TEST_TARGET_SIZE (LPBITMAPV5HEADER, 124)
    TEST_TARGET_ALIGN(LPBITMAPV5HEADER, 4)
}

static void test_pack_LPCHARSETINFO(void)
{
    /* LPCHARSETINFO */
    TEST_TYPE_SIZE   (LPCHARSETINFO, 4)
    TEST_TYPE_ALIGN  (LPCHARSETINFO, 4)
    TEST_TARGET_SIZE (LPCHARSETINFO, 32)
    TEST_TARGET_ALIGN(LPCHARSETINFO, 4)
}

static void test_pack_LPCIEXYZ(void)
{
    /* LPCIEXYZ */
    TEST_TYPE_SIZE   (LPCIEXYZ, 4)
    TEST_TYPE_ALIGN  (LPCIEXYZ, 4)
    TEST_TARGET_SIZE (LPCIEXYZ, 12)
    TEST_TARGET_ALIGN(LPCIEXYZ, 4)
}

static void test_pack_LPCIEXYZTRIPLE(void)
{
    /* LPCIEXYZTRIPLE */
    TEST_TYPE_SIZE   (LPCIEXYZTRIPLE, 4)
    TEST_TYPE_ALIGN  (LPCIEXYZTRIPLE, 4)
    TEST_TARGET_SIZE (LPCIEXYZTRIPLE, 36)
    TEST_TARGET_ALIGN(LPCIEXYZTRIPLE, 4)
}

static void test_pack_LPCOLORADJUSTMENT(void)
{
    /* LPCOLORADJUSTMENT */
    TEST_TYPE_SIZE   (LPCOLORADJUSTMENT, 4)
    TEST_TYPE_ALIGN  (LPCOLORADJUSTMENT, 4)
    TEST_TARGET_SIZE (LPCOLORADJUSTMENT, 24)
    TEST_TARGET_ALIGN(LPCOLORADJUSTMENT, 2)
}

static void test_pack_LPDEVMODEA(void)
{
    /* LPDEVMODEA */
    TEST_TYPE_SIZE   (LPDEVMODEA, 4)
    TEST_TYPE_ALIGN  (LPDEVMODEA, 4)
}

static void test_pack_LPDEVMODEW(void)
{
    /* LPDEVMODEW */
    TEST_TYPE_SIZE   (LPDEVMODEW, 4)
    TEST_TYPE_ALIGN  (LPDEVMODEW, 4)
}

static void test_pack_LPDIBSECTION(void)
{
    /* LPDIBSECTION */
    TEST_TYPE_SIZE   (LPDIBSECTION, 4)
    TEST_TYPE_ALIGN  (LPDIBSECTION, 4)
    TEST_TARGET_SIZE (LPDIBSECTION, 84)
    TEST_TARGET_ALIGN(LPDIBSECTION, 4)
}

static void test_pack_LPDISPLAY_DEVICEA(void)
{
    /* LPDISPLAY_DEVICEA */
    TEST_TYPE_SIZE   (LPDISPLAY_DEVICEA, 4)
    TEST_TYPE_ALIGN  (LPDISPLAY_DEVICEA, 4)
    TEST_TARGET_SIZE (LPDISPLAY_DEVICEA, 424)
    TEST_TARGET_ALIGN(LPDISPLAY_DEVICEA, 4)
}

static void test_pack_LPDISPLAY_DEVICEW(void)
{
    /* LPDISPLAY_DEVICEW */
    TEST_TYPE_SIZE   (LPDISPLAY_DEVICEW, 4)
    TEST_TYPE_ALIGN  (LPDISPLAY_DEVICEW, 4)
    TEST_TARGET_SIZE (LPDISPLAY_DEVICEW, 840)
    TEST_TARGET_ALIGN(LPDISPLAY_DEVICEW, 4)
}

static void test_pack_LPDOCINFOA(void)
{
    /* LPDOCINFOA */
    TEST_TYPE_SIZE   (LPDOCINFOA, 4)
    TEST_TYPE_ALIGN  (LPDOCINFOA, 4)
    TEST_TARGET_SIZE (LPDOCINFOA, 20)
    TEST_TARGET_ALIGN(LPDOCINFOA, 4)
}

static void test_pack_LPDOCINFOW(void)
{
    /* LPDOCINFOW */
    TEST_TYPE_SIZE   (LPDOCINFOW, 4)
    TEST_TYPE_ALIGN  (LPDOCINFOW, 4)
    TEST_TARGET_SIZE (LPDOCINFOW, 20)
    TEST_TARGET_ALIGN(LPDOCINFOW, 4)
}

static void test_pack_LPENHMETAHEADER(void)
{
    /* LPENHMETAHEADER */
    TEST_TYPE_SIZE   (LPENHMETAHEADER, 4)
    TEST_TYPE_ALIGN  (LPENHMETAHEADER, 4)
    TEST_TARGET_SIZE (LPENHMETAHEADER, 108)
    TEST_TARGET_ALIGN(LPENHMETAHEADER, 4)
}

static void test_pack_LPENHMETARECORD(void)
{
    /* LPENHMETARECORD */
    TEST_TYPE_SIZE   (LPENHMETARECORD, 4)
    TEST_TYPE_ALIGN  (LPENHMETARECORD, 4)
    TEST_TARGET_SIZE (LPENHMETARECORD, 12)
    TEST_TARGET_ALIGN(LPENHMETARECORD, 4)
}

static void test_pack_LPENUMLOGFONTA(void)
{
    /* LPENUMLOGFONTA */
    TEST_TYPE_SIZE   (LPENUMLOGFONTA, 4)
    TEST_TYPE_ALIGN  (LPENUMLOGFONTA, 4)
    TEST_TARGET_SIZE (LPENUMLOGFONTA, 156)
    TEST_TARGET_ALIGN(LPENUMLOGFONTA, 4)
}

static void test_pack_LPENUMLOGFONTEXA(void)
{
    /* LPENUMLOGFONTEXA */
    TEST_TYPE_SIZE   (LPENUMLOGFONTEXA, 4)
    TEST_TYPE_ALIGN  (LPENUMLOGFONTEXA, 4)
    TEST_TARGET_SIZE (LPENUMLOGFONTEXA, 188)
    TEST_TARGET_ALIGN(LPENUMLOGFONTEXA, 4)
}

static void test_pack_LPENUMLOGFONTEXW(void)
{
    /* LPENUMLOGFONTEXW */
    TEST_TYPE_SIZE   (LPENUMLOGFONTEXW, 4)
    TEST_TYPE_ALIGN  (LPENUMLOGFONTEXW, 4)
    TEST_TARGET_SIZE (LPENUMLOGFONTEXW, 348)
    TEST_TARGET_ALIGN(LPENUMLOGFONTEXW, 4)
}

static void test_pack_LPENUMLOGFONTW(void)
{
    /* LPENUMLOGFONTW */
    TEST_TYPE_SIZE   (LPENUMLOGFONTW, 4)
    TEST_TYPE_ALIGN  (LPENUMLOGFONTW, 4)
    TEST_TARGET_SIZE (LPENUMLOGFONTW, 284)
    TEST_TARGET_ALIGN(LPENUMLOGFONTW, 4)
}

static void test_pack_LPEXTLOGFONTA(void)
{
    /* LPEXTLOGFONTA */
    TEST_TYPE_SIZE   (LPEXTLOGFONTA, 4)
    TEST_TYPE_ALIGN  (LPEXTLOGFONTA, 4)
    TEST_TARGET_SIZE (LPEXTLOGFONTA, 192)
    TEST_TARGET_ALIGN(LPEXTLOGFONTA, 4)
}

static void test_pack_LPEXTLOGFONTW(void)
{
    /* LPEXTLOGFONTW */
    TEST_TYPE_SIZE   (LPEXTLOGFONTW, 4)
    TEST_TYPE_ALIGN  (LPEXTLOGFONTW, 4)
    TEST_TARGET_SIZE (LPEXTLOGFONTW, 320)
    TEST_TARGET_ALIGN(LPEXTLOGFONTW, 4)
}

static void test_pack_LPEXTLOGPEN(void)
{
    /* LPEXTLOGPEN */
    TEST_TYPE_SIZE   (LPEXTLOGPEN, 4)
    TEST_TYPE_ALIGN  (LPEXTLOGPEN, 4)
    TEST_TARGET_SIZE (LPEXTLOGPEN, 28)
    TEST_TARGET_ALIGN(LPEXTLOGPEN, 4)
}

static void test_pack_LPFONTSIGNATURE(void)
{
    /* LPFONTSIGNATURE */
    TEST_TYPE_SIZE   (LPFONTSIGNATURE, 4)
    TEST_TYPE_ALIGN  (LPFONTSIGNATURE, 4)
    TEST_TARGET_SIZE (LPFONTSIGNATURE, 24)
    TEST_TARGET_ALIGN(LPFONTSIGNATURE, 4)
}

static void test_pack_LPGCP_RESULTSA(void)
{
    /* LPGCP_RESULTSA */
    TEST_TYPE_SIZE   (LPGCP_RESULTSA, 4)
    TEST_TYPE_ALIGN  (LPGCP_RESULTSA, 4)
    TEST_TARGET_SIZE (LPGCP_RESULTSA, 36)
    TEST_TARGET_ALIGN(LPGCP_RESULTSA, 4)
}

static void test_pack_LPGCP_RESULTSW(void)
{
    /* LPGCP_RESULTSW */
    TEST_TYPE_SIZE   (LPGCP_RESULTSW, 4)
    TEST_TYPE_ALIGN  (LPGCP_RESULTSW, 4)
    TEST_TARGET_SIZE (LPGCP_RESULTSW, 36)
    TEST_TARGET_ALIGN(LPGCP_RESULTSW, 4)
}

static void test_pack_LPGLYPHMETRICS(void)
{
    /* LPGLYPHMETRICS */
    TEST_TYPE_SIZE   (LPGLYPHMETRICS, 4)
    TEST_TYPE_ALIGN  (LPGLYPHMETRICS, 4)
    TEST_TARGET_SIZE (LPGLYPHMETRICS, 20)
    TEST_TARGET_ALIGN(LPGLYPHMETRICS, 4)
}

static void test_pack_LPGLYPHMETRICSFLOAT(void)
{
    /* LPGLYPHMETRICSFLOAT */
    TEST_TYPE_SIZE   (LPGLYPHMETRICSFLOAT, 4)
    TEST_TYPE_ALIGN  (LPGLYPHMETRICSFLOAT, 4)
    TEST_TARGET_SIZE (LPGLYPHMETRICSFLOAT, 24)
    TEST_TARGET_ALIGN(LPGLYPHMETRICSFLOAT, 4)
}

static void test_pack_LPGRADIENT_RECT(void)
{
    /* LPGRADIENT_RECT */
    TEST_TYPE_SIZE   (LPGRADIENT_RECT, 4)
    TEST_TYPE_ALIGN  (LPGRADIENT_RECT, 4)
    TEST_TARGET_SIZE (LPGRADIENT_RECT, 8)
    TEST_TARGET_ALIGN(LPGRADIENT_RECT, 4)
}

static void test_pack_LPGRADIENT_TRIANGLE(void)
{
    /* LPGRADIENT_TRIANGLE */
    TEST_TYPE_SIZE   (LPGRADIENT_TRIANGLE, 4)
    TEST_TYPE_ALIGN  (LPGRADIENT_TRIANGLE, 4)
    TEST_TARGET_SIZE (LPGRADIENT_TRIANGLE, 12)
    TEST_TARGET_ALIGN(LPGRADIENT_TRIANGLE, 4)
}

static void test_pack_LPHANDLETABLE(void)
{
    /* LPHANDLETABLE */
    TEST_TYPE_SIZE   (LPHANDLETABLE, 4)
    TEST_TYPE_ALIGN  (LPHANDLETABLE, 4)
    TEST_TARGET_SIZE (LPHANDLETABLE, 4)
    TEST_TARGET_ALIGN(LPHANDLETABLE, 4)
}

static void test_pack_LPKERNINGPAIR(void)
{
    /* LPKERNINGPAIR */
    TEST_TYPE_SIZE   (LPKERNINGPAIR, 4)
    TEST_TYPE_ALIGN  (LPKERNINGPAIR, 4)
    TEST_TARGET_SIZE (LPKERNINGPAIR, 8)
    TEST_TARGET_ALIGN(LPKERNINGPAIR, 4)
}

static void test_pack_LPLAYERPLANEDESCRIPTOR(void)
{
    /* LPLAYERPLANEDESCRIPTOR */
    TEST_TYPE_SIZE   (LPLAYERPLANEDESCRIPTOR, 4)
    TEST_TYPE_ALIGN  (LPLAYERPLANEDESCRIPTOR, 4)
    TEST_TARGET_SIZE (LPLAYERPLANEDESCRIPTOR, 32)
    TEST_TARGET_ALIGN(LPLAYERPLANEDESCRIPTOR, 4)
}

static void test_pack_LPLOCALESIGNATURE(void)
{
    /* LPLOCALESIGNATURE */
    TEST_TYPE_SIZE   (LPLOCALESIGNATURE, 4)
    TEST_TYPE_ALIGN  (LPLOCALESIGNATURE, 4)
    TEST_TARGET_SIZE (LPLOCALESIGNATURE, 32)
    TEST_TARGET_ALIGN(LPLOCALESIGNATURE, 4)
}

static void test_pack_LPLOGBRUSH(void)
{
    /* LPLOGBRUSH */
    TEST_TYPE_SIZE   (LPLOGBRUSH, 4)
    TEST_TYPE_ALIGN  (LPLOGBRUSH, 4)
    TEST_TARGET_SIZE (LPLOGBRUSH, 12)
    TEST_TARGET_ALIGN(LPLOGBRUSH, 4)
}

static void test_pack_LPLOGCOLORSPACEA(void)
{
    /* LPLOGCOLORSPACEA */
    TEST_TYPE_SIZE   (LPLOGCOLORSPACEA, 4)
    TEST_TYPE_ALIGN  (LPLOGCOLORSPACEA, 4)
    TEST_TARGET_SIZE (LPLOGCOLORSPACEA, 328)
    TEST_TARGET_ALIGN(LPLOGCOLORSPACEA, 4)
}

static void test_pack_LPLOGCOLORSPACEW(void)
{
    /* LPLOGCOLORSPACEW */
    TEST_TYPE_SIZE   (LPLOGCOLORSPACEW, 4)
    TEST_TYPE_ALIGN  (LPLOGCOLORSPACEW, 4)
    TEST_TARGET_SIZE (LPLOGCOLORSPACEW, 588)
    TEST_TARGET_ALIGN(LPLOGCOLORSPACEW, 4)
}

static void test_pack_LPLOGFONTA(void)
{
    /* LPLOGFONTA */
    TEST_TYPE_SIZE   (LPLOGFONTA, 4)
    TEST_TYPE_ALIGN  (LPLOGFONTA, 4)
    TEST_TARGET_SIZE (LPLOGFONTA, 60)
    TEST_TARGET_ALIGN(LPLOGFONTA, 4)
}

static void test_pack_LPLOGFONTW(void)
{
    /* LPLOGFONTW */
    TEST_TYPE_SIZE   (LPLOGFONTW, 4)
    TEST_TYPE_ALIGN  (LPLOGFONTW, 4)
    TEST_TARGET_SIZE (LPLOGFONTW, 92)
    TEST_TARGET_ALIGN(LPLOGFONTW, 4)
}

static void test_pack_LPLOGPEN(void)
{
    /* LPLOGPEN */
    TEST_TYPE_SIZE   (LPLOGPEN, 4)
    TEST_TYPE_ALIGN  (LPLOGPEN, 4)
    TEST_TARGET_SIZE (LPLOGPEN, 16)
    TEST_TARGET_ALIGN(LPLOGPEN, 4)
}

static void test_pack_LPMAT2(void)
{
    /* LPMAT2 */
    TEST_TYPE_SIZE   (LPMAT2, 4)
    TEST_TYPE_ALIGN  (LPMAT2, 4)
    TEST_TARGET_SIZE (LPMAT2, 16)
    TEST_TARGET_ALIGN(LPMAT2, 2)
}

static void test_pack_LPMETAFILEPICT(void)
{
    /* LPMETAFILEPICT */
    TEST_TYPE_SIZE   (LPMETAFILEPICT, 4)
    TEST_TYPE_ALIGN  (LPMETAFILEPICT, 4)
    TEST_TARGET_SIZE (LPMETAFILEPICT, 16)
    TEST_TARGET_ALIGN(LPMETAFILEPICT, 4)
}

static void test_pack_LPMETAHEADER(void)
{
    /* LPMETAHEADER */
    TEST_TYPE_SIZE   (LPMETAHEADER, 4)
    TEST_TYPE_ALIGN  (LPMETAHEADER, 4)
    TEST_TARGET_SIZE (LPMETAHEADER, 18)
    TEST_TARGET_ALIGN(LPMETAHEADER, 2)
}

static void test_pack_LPMETARECORD(void)
{
    /* LPMETARECORD */
    TEST_TYPE_SIZE   (LPMETARECORD, 4)
    TEST_TYPE_ALIGN  (LPMETARECORD, 4)
    TEST_TARGET_SIZE (LPMETARECORD, 8)
    TEST_TARGET_ALIGN(LPMETARECORD, 4)
}

static void test_pack_LPNEWTEXTMETRICA(void)
{
    /* LPNEWTEXTMETRICA */
    TEST_TYPE_SIZE   (LPNEWTEXTMETRICA, 4)
    TEST_TYPE_ALIGN  (LPNEWTEXTMETRICA, 4)
    TEST_TARGET_SIZE (LPNEWTEXTMETRICA, 72)
    TEST_TARGET_ALIGN(LPNEWTEXTMETRICA, 4)
}

static void test_pack_LPNEWTEXTMETRICW(void)
{
    /* LPNEWTEXTMETRICW */
    TEST_TYPE_SIZE   (LPNEWTEXTMETRICW, 4)
    TEST_TYPE_ALIGN  (LPNEWTEXTMETRICW, 4)
    TEST_TARGET_SIZE (LPNEWTEXTMETRICW, 76)
    TEST_TARGET_ALIGN(LPNEWTEXTMETRICW, 4)
}

static void test_pack_LPOUTLINETEXTMETRICA(void)
{
    /* LPOUTLINETEXTMETRICA */
    TEST_TYPE_SIZE   (LPOUTLINETEXTMETRICA, 4)
    TEST_TYPE_ALIGN  (LPOUTLINETEXTMETRICA, 4)
    TEST_TARGET_SIZE (LPOUTLINETEXTMETRICA, 212)
    TEST_TARGET_ALIGN(LPOUTLINETEXTMETRICA, 4)
}

static void test_pack_LPOUTLINETEXTMETRICW(void)
{
    /* LPOUTLINETEXTMETRICW */
    TEST_TYPE_SIZE   (LPOUTLINETEXTMETRICW, 4)
    TEST_TYPE_ALIGN  (LPOUTLINETEXTMETRICW, 4)
    TEST_TARGET_SIZE (LPOUTLINETEXTMETRICW, 216)
    TEST_TARGET_ALIGN(LPOUTLINETEXTMETRICW, 4)
}

static void test_pack_LPPANOSE(void)
{
    /* LPPANOSE */
    TEST_TYPE_SIZE   (LPPANOSE, 4)
    TEST_TYPE_ALIGN  (LPPANOSE, 4)
    TEST_TARGET_SIZE (LPPANOSE, 10)
    TEST_TARGET_ALIGN(LPPANOSE, 1)
}

static void test_pack_LPPELARRAY(void)
{
    /* LPPELARRAY */
    TEST_TYPE_SIZE   (LPPELARRAY, 4)
    TEST_TYPE_ALIGN  (LPPELARRAY, 4)
    TEST_TARGET_SIZE (LPPELARRAY, 20)
    TEST_TARGET_ALIGN(LPPELARRAY, 4)
}

static void test_pack_LPPIXELFORMATDESCRIPTOR(void)
{
    /* LPPIXELFORMATDESCRIPTOR */
    TEST_TYPE_SIZE   (LPPIXELFORMATDESCRIPTOR, 4)
    TEST_TYPE_ALIGN  (LPPIXELFORMATDESCRIPTOR, 4)
    TEST_TARGET_SIZE (LPPIXELFORMATDESCRIPTOR, 40)
    TEST_TARGET_ALIGN(LPPIXELFORMATDESCRIPTOR, 4)
}

static void test_pack_LPPOINTFX(void)
{
    /* LPPOINTFX */
    TEST_TYPE_SIZE   (LPPOINTFX, 4)
    TEST_TYPE_ALIGN  (LPPOINTFX, 4)
    TEST_TARGET_SIZE (LPPOINTFX, 8)
    TEST_TARGET_ALIGN(LPPOINTFX, 2)
}

static void test_pack_LPPOLYTEXTA(void)
{
    /* LPPOLYTEXTA */
    TEST_TYPE_SIZE   (LPPOLYTEXTA, 4)
    TEST_TYPE_ALIGN  (LPPOLYTEXTA, 4)
    TEST_TARGET_SIZE (LPPOLYTEXTA, 40)
    TEST_TARGET_ALIGN(LPPOLYTEXTA, 4)
}

static void test_pack_LPPOLYTEXTW(void)
{
    /* LPPOLYTEXTW */
    TEST_TYPE_SIZE   (LPPOLYTEXTW, 4)
    TEST_TYPE_ALIGN  (LPPOLYTEXTW, 4)
    TEST_TARGET_SIZE (LPPOLYTEXTW, 40)
    TEST_TARGET_ALIGN(LPPOLYTEXTW, 4)
}

static void test_pack_LPRASTERIZER_STATUS(void)
{
    /* LPRASTERIZER_STATUS */
    TEST_TYPE_SIZE   (LPRASTERIZER_STATUS, 4)
    TEST_TYPE_ALIGN  (LPRASTERIZER_STATUS, 4)
    TEST_TARGET_SIZE (LPRASTERIZER_STATUS, 6)
    TEST_TARGET_ALIGN(LPRASTERIZER_STATUS, 2)
}

static void test_pack_LPRGBQUAD(void)
{
    /* LPRGBQUAD */
    TEST_TYPE_SIZE   (LPRGBQUAD, 4)
    TEST_TYPE_ALIGN  (LPRGBQUAD, 4)
    TEST_TARGET_SIZE (LPRGBQUAD, 4)
    TEST_TARGET_ALIGN(LPRGBQUAD, 1)
}

static void test_pack_LPRGNDATA(void)
{
    /* LPRGNDATA */
    TEST_TYPE_SIZE   (LPRGNDATA, 4)
    TEST_TYPE_ALIGN  (LPRGNDATA, 4)
    TEST_TARGET_SIZE (LPRGNDATA, 36)
    TEST_TARGET_ALIGN(LPRGNDATA, 4)
}

static void test_pack_LPTEXTMETRICA(void)
{
    /* LPTEXTMETRICA */
    TEST_TYPE_SIZE   (LPTEXTMETRICA, 4)
    TEST_TYPE_ALIGN  (LPTEXTMETRICA, 4)
    TEST_TARGET_SIZE (LPTEXTMETRICA, 56)
    TEST_TARGET_ALIGN(LPTEXTMETRICA, 4)
}

static void test_pack_LPTEXTMETRICW(void)
{
    /* LPTEXTMETRICW */
    TEST_TYPE_SIZE   (LPTEXTMETRICW, 4)
    TEST_TYPE_ALIGN  (LPTEXTMETRICW, 4)
    TEST_TARGET_SIZE (LPTEXTMETRICW, 60)
    TEST_TARGET_ALIGN(LPTEXTMETRICW, 4)
}

static void test_pack_LPTRIVERTEX(void)
{
    /* LPTRIVERTEX */
    TEST_TYPE_SIZE   (LPTRIVERTEX, 4)
    TEST_TYPE_ALIGN  (LPTRIVERTEX, 4)
    TEST_TARGET_SIZE (LPTRIVERTEX, 16)
    TEST_TARGET_ALIGN(LPTRIVERTEX, 4)
}

static void test_pack_LPTTPOLYCURVE(void)
{
    /* LPTTPOLYCURVE */
    TEST_TYPE_SIZE   (LPTTPOLYCURVE, 4)
    TEST_TYPE_ALIGN  (LPTTPOLYCURVE, 4)
    TEST_TARGET_SIZE (LPTTPOLYCURVE, 12)
    TEST_TARGET_ALIGN(LPTTPOLYCURVE, 2)
}

static void test_pack_LPTTPOLYGONHEADER(void)
{
    /* LPTTPOLYGONHEADER */
    TEST_TYPE_SIZE   (LPTTPOLYGONHEADER, 4)
    TEST_TYPE_ALIGN  (LPTTPOLYGONHEADER, 4)
    TEST_TARGET_SIZE (LPTTPOLYGONHEADER, 16)
    TEST_TARGET_ALIGN(LPTTPOLYGONHEADER, 4)
}

static void test_pack_LPXFORM(void)
{
    /* LPXFORM */
    TEST_TYPE_SIZE   (LPXFORM, 4)
    TEST_TYPE_ALIGN  (LPXFORM, 4)
    TEST_TARGET_SIZE (LPXFORM, 24)
    TEST_TARGET_ALIGN(LPXFORM, 4)
}

static void test_pack_MAT2(void)
{
    /* MAT2 */
    TEST_TYPE_SIZE   (MAT2, 16)
    TEST_TYPE_ALIGN  (MAT2, 2)
    TEST_FIELD_SIZE  (MAT2, eM11, 4)
    TEST_FIELD_ALIGN (MAT2, eM11, 2)
    TEST_FIELD_OFFSET(MAT2, eM11, 0)
    TEST_FIELD_SIZE  (MAT2, eM12, 4)
    TEST_FIELD_ALIGN (MAT2, eM12, 2)
    TEST_FIELD_OFFSET(MAT2, eM12, 4)
    TEST_FIELD_SIZE  (MAT2, eM21, 4)
    TEST_FIELD_ALIGN (MAT2, eM21, 2)
    TEST_FIELD_OFFSET(MAT2, eM21, 8)
    TEST_FIELD_SIZE  (MAT2, eM22, 4)
    TEST_FIELD_ALIGN (MAT2, eM22, 2)
    TEST_FIELD_OFFSET(MAT2, eM22, 12)
}

static void test_pack_METAFILEPICT(void)
{
    /* METAFILEPICT */
    TEST_TYPE_SIZE   (METAFILEPICT, 16)
    TEST_TYPE_ALIGN  (METAFILEPICT, 4)
    TEST_FIELD_SIZE  (METAFILEPICT, mm, 4)
    TEST_FIELD_ALIGN (METAFILEPICT, mm, 4)
    TEST_FIELD_OFFSET(METAFILEPICT, mm, 0)
    TEST_FIELD_SIZE  (METAFILEPICT, xExt, 4)
    TEST_FIELD_ALIGN (METAFILEPICT, xExt, 4)
    TEST_FIELD_OFFSET(METAFILEPICT, xExt, 4)
    TEST_FIELD_SIZE  (METAFILEPICT, yExt, 4)
    TEST_FIELD_ALIGN (METAFILEPICT, yExt, 4)
    TEST_FIELD_OFFSET(METAFILEPICT, yExt, 8)
    TEST_FIELD_SIZE  (METAFILEPICT, hMF, 4)
    TEST_FIELD_ALIGN (METAFILEPICT, hMF, 4)
    TEST_FIELD_OFFSET(METAFILEPICT, hMF, 12)
}

static void test_pack_METAHEADER(void)
{
    /* METAHEADER (pack 2) */
    TEST_TYPE_SIZE   (METAHEADER, 18)
    TEST_TYPE_ALIGN  (METAHEADER, 2)
    TEST_FIELD_SIZE  (METAHEADER, mtType, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtType, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtType, 0)
    TEST_FIELD_SIZE  (METAHEADER, mtHeaderSize, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtHeaderSize, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtHeaderSize, 2)
    TEST_FIELD_SIZE  (METAHEADER, mtVersion, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtVersion, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtVersion, 4)
    TEST_FIELD_SIZE  (METAHEADER, mtSize, 4)
    TEST_FIELD_ALIGN (METAHEADER, mtSize, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtSize, 6)
    TEST_FIELD_SIZE  (METAHEADER, mtNoObjects, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtNoObjects, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtNoObjects, 10)
    TEST_FIELD_SIZE  (METAHEADER, mtMaxRecord, 4)
    TEST_FIELD_ALIGN (METAHEADER, mtMaxRecord, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtMaxRecord, 12)
    TEST_FIELD_SIZE  (METAHEADER, mtNoParameters, 2)
    TEST_FIELD_ALIGN (METAHEADER, mtNoParameters, 2)
    TEST_FIELD_OFFSET(METAHEADER, mtNoParameters, 16)
}

static void test_pack_METARECORD(void)
{
    /* METARECORD */
    TEST_TYPE_SIZE   (METARECORD, 8)
    TEST_TYPE_ALIGN  (METARECORD, 4)
    TEST_FIELD_SIZE  (METARECORD, rdSize, 4)
    TEST_FIELD_ALIGN (METARECORD, rdSize, 4)
    TEST_FIELD_OFFSET(METARECORD, rdSize, 0)
    TEST_FIELD_SIZE  (METARECORD, rdFunction, 2)
    TEST_FIELD_ALIGN (METARECORD, rdFunction, 2)
    TEST_FIELD_OFFSET(METARECORD, rdFunction, 4)
    TEST_FIELD_SIZE  (METARECORD, rdParm, 2)
    TEST_FIELD_ALIGN (METARECORD, rdParm, 2)
    TEST_FIELD_OFFSET(METARECORD, rdParm, 6)
}

static void test_pack_MFENUMPROC(void)
{
    /* MFENUMPROC */
    TEST_TYPE_SIZE   (MFENUMPROC, 4)
    TEST_TYPE_ALIGN  (MFENUMPROC, 4)
}

static void test_pack_NEWTEXTMETRICA(void)
{
    /* NEWTEXTMETRICA */
    TEST_TYPE_SIZE   (NEWTEXTMETRICA, 72)
    TEST_TYPE_ALIGN  (NEWTEXTMETRICA, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmHeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmHeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmHeight, 0)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmAscent, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmAscent, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmAscent, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmDescent, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmDescent, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmDescent, 8)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmInternalLeading, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmInternalLeading, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmInternalLeading, 12)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmExternalLeading, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmExternalLeading, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmExternalLeading, 16)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmAveCharWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmAveCharWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmAveCharWidth, 20)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmMaxCharWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmMaxCharWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmMaxCharWidth, 24)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmWeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmWeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmWeight, 28)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmOverhang, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmOverhang, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmOverhang, 32)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmDigitizedAspectX, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmDigitizedAspectX, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmDigitizedAspectX, 36)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmDigitizedAspectY, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmDigitizedAspectY, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmDigitizedAspectY, 40)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmFirstChar, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmFirstChar, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmFirstChar, 44)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmLastChar, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmLastChar, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmLastChar, 45)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmDefaultChar, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmDefaultChar, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmDefaultChar, 46)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmBreakChar, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmBreakChar, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmBreakChar, 47)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmItalic, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmItalic, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmItalic, 48)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmUnderlined, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmUnderlined, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmUnderlined, 49)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmStruckOut, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmStruckOut, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmStruckOut, 50)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmPitchAndFamily, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmPitchAndFamily, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmPitchAndFamily, 51)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, tmCharSet, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, tmCharSet, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, tmCharSet, 52)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, ntmFlags, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, ntmFlags, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, ntmFlags, 56)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, ntmSizeEM, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, ntmSizeEM, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, ntmSizeEM, 60)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, ntmCellHeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, ntmCellHeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, ntmCellHeight, 64)
    TEST_FIELD_SIZE  (NEWTEXTMETRICA, ntmAvgWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICA, ntmAvgWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICA, ntmAvgWidth, 68)
}

static void test_pack_NEWTEXTMETRICEXA(void)
{
    /* NEWTEXTMETRICEXA */
    TEST_TYPE_SIZE   (NEWTEXTMETRICEXA, 96)
    TEST_TYPE_ALIGN  (NEWTEXTMETRICEXA, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICEXA, ntmTm, 72)
    TEST_FIELD_ALIGN (NEWTEXTMETRICEXA, ntmTm, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICEXA, ntmTm, 0)
    TEST_FIELD_SIZE  (NEWTEXTMETRICEXA, ntmFontSig, 24)
    TEST_FIELD_ALIGN (NEWTEXTMETRICEXA, ntmFontSig, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICEXA, ntmFontSig, 72)
}

static void test_pack_NEWTEXTMETRICEXW(void)
{
    /* NEWTEXTMETRICEXW */
    TEST_TYPE_SIZE   (NEWTEXTMETRICEXW, 100)
    TEST_TYPE_ALIGN  (NEWTEXTMETRICEXW, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICEXW, ntmTm, 76)
    TEST_FIELD_ALIGN (NEWTEXTMETRICEXW, ntmTm, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICEXW, ntmTm, 0)
    TEST_FIELD_SIZE  (NEWTEXTMETRICEXW, ntmFontSig, 24)
    TEST_FIELD_ALIGN (NEWTEXTMETRICEXW, ntmFontSig, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICEXW, ntmFontSig, 76)
}

static void test_pack_NEWTEXTMETRICW(void)
{
    /* NEWTEXTMETRICW */
    TEST_TYPE_SIZE   (NEWTEXTMETRICW, 76)
    TEST_TYPE_ALIGN  (NEWTEXTMETRICW, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmHeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmHeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmHeight, 0)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmAscent, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmAscent, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmAscent, 4)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmDescent, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmDescent, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmDescent, 8)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmInternalLeading, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmInternalLeading, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmInternalLeading, 12)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmExternalLeading, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmExternalLeading, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmExternalLeading, 16)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmAveCharWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmAveCharWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmAveCharWidth, 20)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmMaxCharWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmMaxCharWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmMaxCharWidth, 24)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmWeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmWeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmWeight, 28)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmOverhang, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmOverhang, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmOverhang, 32)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmDigitizedAspectX, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmDigitizedAspectX, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmDigitizedAspectX, 36)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmDigitizedAspectY, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmDigitizedAspectY, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmDigitizedAspectY, 40)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmFirstChar, 2)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmFirstChar, 2)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmFirstChar, 44)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmLastChar, 2)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmLastChar, 2)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmLastChar, 46)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmDefaultChar, 2)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmDefaultChar, 2)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmDefaultChar, 48)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmBreakChar, 2)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmBreakChar, 2)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmBreakChar, 50)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmItalic, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmItalic, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmItalic, 52)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmUnderlined, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmUnderlined, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmUnderlined, 53)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmStruckOut, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmStruckOut, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmStruckOut, 54)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmPitchAndFamily, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmPitchAndFamily, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmPitchAndFamily, 55)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, tmCharSet, 1)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, tmCharSet, 1)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, tmCharSet, 56)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, ntmFlags, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, ntmFlags, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, ntmFlags, 60)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, ntmSizeEM, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, ntmSizeEM, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, ntmSizeEM, 64)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, ntmCellHeight, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, ntmCellHeight, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, ntmCellHeight, 68)
    TEST_FIELD_SIZE  (NEWTEXTMETRICW, ntmAvgWidth, 4)
    TEST_FIELD_ALIGN (NEWTEXTMETRICW, ntmAvgWidth, 4)
    TEST_FIELD_OFFSET(NEWTEXTMETRICW, ntmAvgWidth, 72)
}

static void test_pack_NPEXTLOGPEN(void)
{
    /* NPEXTLOGPEN */
    TEST_TYPE_SIZE   (NPEXTLOGPEN, 4)
    TEST_TYPE_ALIGN  (NPEXTLOGPEN, 4)
    TEST_TARGET_SIZE (NPEXTLOGPEN, 28)
    TEST_TARGET_ALIGN(NPEXTLOGPEN, 4)
}

static void test_pack_OLDFONTENUMPROC(void)
{
    /* OLDFONTENUMPROC */
    TEST_TYPE_SIZE   (OLDFONTENUMPROC, 4)
    TEST_TYPE_ALIGN  (OLDFONTENUMPROC, 4)
}

static void test_pack_OLDFONTENUMPROCA(void)
{
    /* OLDFONTENUMPROCA */
    TEST_TYPE_SIZE   (OLDFONTENUMPROCA, 4)
    TEST_TYPE_ALIGN  (OLDFONTENUMPROCA, 4)
}

static void test_pack_OLDFONTENUMPROCW(void)
{
    /* OLDFONTENUMPROCW */
    TEST_TYPE_SIZE   (OLDFONTENUMPROCW, 4)
    TEST_TYPE_ALIGN  (OLDFONTENUMPROCW, 4)
}

static void test_pack_OUTLINETEXTMETRICA(void)
{
    /* OUTLINETEXTMETRICA */
    TEST_TYPE_SIZE   (OUTLINETEXTMETRICA, 212)
    TEST_TYPE_ALIGN  (OUTLINETEXTMETRICA, 4)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmSize, 0)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmTextMetrics, 56)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmTextMetrics, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmTextMetrics, 4)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmFiller, 1)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmFiller, 1)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmFiller, 60)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmPanoseNumber, 10)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmPanoseNumber, 1)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmPanoseNumber, 61)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmfsSelection, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmfsSelection, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmfsSelection, 72)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmfsType, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmfsType, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmfsType, 76)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsCharSlopeRise, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsCharSlopeRise, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsCharSlopeRise, 80)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsCharSlopeRun, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsCharSlopeRun, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsCharSlopeRun, 84)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmItalicAngle, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmItalicAngle, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmItalicAngle, 88)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmEMSquare, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmEMSquare, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmEMSquare, 92)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmAscent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmAscent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmAscent, 96)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmDescent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmDescent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmDescent, 100)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmLineGap, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmLineGap, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmLineGap, 104)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsCapEmHeight, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsCapEmHeight, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsCapEmHeight, 108)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsXHeight, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsXHeight, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsXHeight, 112)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmrcFontBox, 16)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmrcFontBox, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmrcFontBox, 116)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmMacAscent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmMacAscent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmMacAscent, 132)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmMacDescent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmMacDescent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmMacDescent, 136)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmMacLineGap, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmMacLineGap, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmMacLineGap, 140)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmusMinimumPPEM, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmusMinimumPPEM, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmusMinimumPPEM, 144)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmptSubscriptSize, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmptSubscriptSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmptSubscriptSize, 148)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmptSubscriptOffset, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmptSubscriptOffset, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmptSubscriptOffset, 156)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmptSuperscriptSize, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmptSuperscriptSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmptSuperscriptSize, 164)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmptSuperscriptOffset, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmptSuperscriptOffset, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmptSuperscriptOffset, 172)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsStrikeoutSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsStrikeoutSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsStrikeoutSize, 180)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsStrikeoutPosition, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsStrikeoutPosition, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsStrikeoutPosition, 184)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsUnderscoreSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsUnderscoreSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsUnderscoreSize, 188)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmsUnderscorePosition, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmsUnderscorePosition, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmsUnderscorePosition, 192)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmpFamilyName, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmpFamilyName, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmpFamilyName, 196)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmpFaceName, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmpFaceName, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmpFaceName, 200)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmpStyleName, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmpStyleName, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmpStyleName, 204)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICA, otmpFullName, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICA, otmpFullName, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICA, otmpFullName, 208)
}

static void test_pack_OUTLINETEXTMETRICW(void)
{
    /* OUTLINETEXTMETRICW */
    TEST_TYPE_SIZE   (OUTLINETEXTMETRICW, 216)
    TEST_TYPE_ALIGN  (OUTLINETEXTMETRICW, 4)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmSize, 0)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmTextMetrics, 60)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmTextMetrics, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmTextMetrics, 4)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmFiller, 1)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmFiller, 1)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmFiller, 64)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmPanoseNumber, 10)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmPanoseNumber, 1)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmPanoseNumber, 65)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmfsSelection, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmfsSelection, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmfsSelection, 76)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmfsType, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmfsType, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmfsType, 80)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsCharSlopeRise, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsCharSlopeRise, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsCharSlopeRise, 84)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsCharSlopeRun, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsCharSlopeRun, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsCharSlopeRun, 88)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmItalicAngle, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmItalicAngle, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmItalicAngle, 92)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmEMSquare, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmEMSquare, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmEMSquare, 96)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmAscent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmAscent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmAscent, 100)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmDescent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmDescent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmDescent, 104)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmLineGap, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmLineGap, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmLineGap, 108)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsCapEmHeight, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsCapEmHeight, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsCapEmHeight, 112)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsXHeight, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsXHeight, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsXHeight, 116)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmrcFontBox, 16)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmrcFontBox, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmrcFontBox, 120)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmMacAscent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmMacAscent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmMacAscent, 136)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmMacDescent, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmMacDescent, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmMacDescent, 140)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmMacLineGap, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmMacLineGap, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmMacLineGap, 144)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmusMinimumPPEM, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmusMinimumPPEM, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmusMinimumPPEM, 148)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmptSubscriptSize, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmptSubscriptSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmptSubscriptSize, 152)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmptSubscriptOffset, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmptSubscriptOffset, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmptSubscriptOffset, 160)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmptSuperscriptSize, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmptSuperscriptSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmptSuperscriptSize, 168)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmptSuperscriptOffset, 8)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmptSuperscriptOffset, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmptSuperscriptOffset, 176)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsStrikeoutSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsStrikeoutSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsStrikeoutSize, 184)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsStrikeoutPosition, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsStrikeoutPosition, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsStrikeoutPosition, 188)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsUnderscoreSize, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsUnderscoreSize, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsUnderscoreSize, 192)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmsUnderscorePosition, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmsUnderscorePosition, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmsUnderscorePosition, 196)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmpFamilyName, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmpFamilyName, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmpFamilyName, 200)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmpFaceName, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmpFaceName, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmpFaceName, 204)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmpStyleName, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmpStyleName, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmpStyleName, 208)
    TEST_FIELD_SIZE  (OUTLINETEXTMETRICW, otmpFullName, 4)
    TEST_FIELD_ALIGN (OUTLINETEXTMETRICW, otmpFullName, 4)
    TEST_FIELD_OFFSET(OUTLINETEXTMETRICW, otmpFullName, 212)
}

static void test_pack_PABC(void)
{
    /* PABC */
    TEST_TYPE_SIZE   (PABC, 4)
    TEST_TYPE_ALIGN  (PABC, 4)
    TEST_TARGET_SIZE (PABC, 12)
    TEST_TARGET_ALIGN(PABC, 4)
}

static void test_pack_PABCFLOAT(void)
{
    /* PABCFLOAT */
    TEST_TYPE_SIZE   (PABCFLOAT, 4)
    TEST_TYPE_ALIGN  (PABCFLOAT, 4)
    TEST_TARGET_SIZE (PABCFLOAT, 12)
    TEST_TARGET_ALIGN(PABCFLOAT, 4)
}

static void test_pack_PANOSE(void)
{
    /* PANOSE */
    TEST_TYPE_SIZE   (PANOSE, 10)
    TEST_TYPE_ALIGN  (PANOSE, 1)
    TEST_FIELD_SIZE  (PANOSE, bFamilyType, 1)
    TEST_FIELD_ALIGN (PANOSE, bFamilyType, 1)
    TEST_FIELD_OFFSET(PANOSE, bFamilyType, 0)
    TEST_FIELD_SIZE  (PANOSE, bSerifStyle, 1)
    TEST_FIELD_ALIGN (PANOSE, bSerifStyle, 1)
    TEST_FIELD_OFFSET(PANOSE, bSerifStyle, 1)
    TEST_FIELD_SIZE  (PANOSE, bWeight, 1)
    TEST_FIELD_ALIGN (PANOSE, bWeight, 1)
    TEST_FIELD_OFFSET(PANOSE, bWeight, 2)
    TEST_FIELD_SIZE  (PANOSE, bProportion, 1)
    TEST_FIELD_ALIGN (PANOSE, bProportion, 1)
    TEST_FIELD_OFFSET(PANOSE, bProportion, 3)
    TEST_FIELD_SIZE  (PANOSE, bContrast, 1)
    TEST_FIELD_ALIGN (PANOSE, bContrast, 1)
    TEST_FIELD_OFFSET(PANOSE, bContrast, 4)
    TEST_FIELD_SIZE  (PANOSE, bStrokeVariation, 1)
    TEST_FIELD_ALIGN (PANOSE, bStrokeVariation, 1)
    TEST_FIELD_OFFSET(PANOSE, bStrokeVariation, 5)
    TEST_FIELD_SIZE  (PANOSE, bArmStyle, 1)
    TEST_FIELD_ALIGN (PANOSE, bArmStyle, 1)
    TEST_FIELD_OFFSET(PANOSE, bArmStyle, 6)
    TEST_FIELD_SIZE  (PANOSE, bLetterform, 1)
    TEST_FIELD_ALIGN (PANOSE, bLetterform, 1)
    TEST_FIELD_OFFSET(PANOSE, bLetterform, 7)
    TEST_FIELD_SIZE  (PANOSE, bMidline, 1)
    TEST_FIELD_ALIGN (PANOSE, bMidline, 1)
    TEST_FIELD_OFFSET(PANOSE, bMidline, 8)
    TEST_FIELD_SIZE  (PANOSE, bXHeight, 1)
    TEST_FIELD_ALIGN (PANOSE, bXHeight, 1)
    TEST_FIELD_OFFSET(PANOSE, bXHeight, 9)
}

static void test_pack_PATTERN(void)
{
    /* PATTERN */
    TEST_TYPE_SIZE   (PATTERN, 12)
    TEST_TYPE_ALIGN  (PATTERN, 4)
}

static void test_pack_PBITMAP(void)
{
    /* PBITMAP */
    TEST_TYPE_SIZE   (PBITMAP, 4)
    TEST_TYPE_ALIGN  (PBITMAP, 4)
    TEST_TARGET_SIZE (PBITMAP, 24)
    TEST_TARGET_ALIGN(PBITMAP, 4)
}

static void test_pack_PBITMAPCOREHEADER(void)
{
    /* PBITMAPCOREHEADER */
    TEST_TYPE_SIZE   (PBITMAPCOREHEADER, 4)
    TEST_TYPE_ALIGN  (PBITMAPCOREHEADER, 4)
    TEST_TARGET_SIZE (PBITMAPCOREHEADER, 12)
    TEST_TARGET_ALIGN(PBITMAPCOREHEADER, 4)
}

static void test_pack_PBITMAPCOREINFO(void)
{
    /* PBITMAPCOREINFO */
    TEST_TYPE_SIZE   (PBITMAPCOREINFO, 4)
    TEST_TYPE_ALIGN  (PBITMAPCOREINFO, 4)
    TEST_TARGET_SIZE (PBITMAPCOREINFO, 16)
    TEST_TARGET_ALIGN(PBITMAPCOREINFO, 4)
}

static void test_pack_PBITMAPFILEHEADER(void)
{
    /* PBITMAPFILEHEADER */
    TEST_TYPE_SIZE   (PBITMAPFILEHEADER, 4)
    TEST_TYPE_ALIGN  (PBITMAPFILEHEADER, 4)
    TEST_TARGET_SIZE (PBITMAPFILEHEADER, 14)
    TEST_TARGET_ALIGN(PBITMAPFILEHEADER, 2)
}

static void test_pack_PBITMAPINFO(void)
{
    /* PBITMAPINFO */
    TEST_TYPE_SIZE   (PBITMAPINFO, 4)
    TEST_TYPE_ALIGN  (PBITMAPINFO, 4)
    TEST_TARGET_SIZE (PBITMAPINFO, 44)
    TEST_TARGET_ALIGN(PBITMAPINFO, 4)
}

static void test_pack_PBITMAPINFOHEADER(void)
{
    /* PBITMAPINFOHEADER */
    TEST_TYPE_SIZE   (PBITMAPINFOHEADER, 4)
    TEST_TYPE_ALIGN  (PBITMAPINFOHEADER, 4)
    TEST_TARGET_SIZE (PBITMAPINFOHEADER, 40)
    TEST_TARGET_ALIGN(PBITMAPINFOHEADER, 4)
}

static void test_pack_PBITMAPV4HEADER(void)
{
    /* PBITMAPV4HEADER */
    TEST_TYPE_SIZE   (PBITMAPV4HEADER, 4)
    TEST_TYPE_ALIGN  (PBITMAPV4HEADER, 4)
    TEST_TARGET_SIZE (PBITMAPV4HEADER, 108)
    TEST_TARGET_ALIGN(PBITMAPV4HEADER, 4)
}

static void test_pack_PBITMAPV5HEADER(void)
{
    /* PBITMAPV5HEADER */
    TEST_TYPE_SIZE   (PBITMAPV5HEADER, 4)
    TEST_TYPE_ALIGN  (PBITMAPV5HEADER, 4)
    TEST_TARGET_SIZE (PBITMAPV5HEADER, 124)
    TEST_TARGET_ALIGN(PBITMAPV5HEADER, 4)
}

static void test_pack_PBLENDFUNCTION(void)
{
    /* PBLENDFUNCTION */
    TEST_TYPE_SIZE   (PBLENDFUNCTION, 4)
    TEST_TYPE_ALIGN  (PBLENDFUNCTION, 4)
    TEST_TARGET_SIZE (PBLENDFUNCTION, 4)
    TEST_TARGET_ALIGN(PBLENDFUNCTION, 1)
}

static void test_pack_PCHARSETINFO(void)
{
    /* PCHARSETINFO */
    TEST_TYPE_SIZE   (PCHARSETINFO, 4)
    TEST_TYPE_ALIGN  (PCHARSETINFO, 4)
    TEST_TARGET_SIZE (PCHARSETINFO, 32)
    TEST_TARGET_ALIGN(PCHARSETINFO, 4)
}

static void test_pack_PCOLORADJUSTMENT(void)
{
    /* PCOLORADJUSTMENT */
    TEST_TYPE_SIZE   (PCOLORADJUSTMENT, 4)
    TEST_TYPE_ALIGN  (PCOLORADJUSTMENT, 4)
    TEST_TARGET_SIZE (PCOLORADJUSTMENT, 24)
    TEST_TARGET_ALIGN(PCOLORADJUSTMENT, 2)
}

static void test_pack_PDEVMODEA(void)
{
    /* PDEVMODEA */
    TEST_TYPE_SIZE   (PDEVMODEA, 4)
    TEST_TYPE_ALIGN  (PDEVMODEA, 4)
}

static void test_pack_PDEVMODEW(void)
{
    /* PDEVMODEW */
    TEST_TYPE_SIZE   (PDEVMODEW, 4)
    TEST_TYPE_ALIGN  (PDEVMODEW, 4)
}

static void test_pack_PDIBSECTION(void)
{
    /* PDIBSECTION */
    TEST_TYPE_SIZE   (PDIBSECTION, 4)
    TEST_TYPE_ALIGN  (PDIBSECTION, 4)
    TEST_TARGET_SIZE (PDIBSECTION, 84)
    TEST_TARGET_ALIGN(PDIBSECTION, 4)
}

static void test_pack_PDISPLAY_DEVICEA(void)
{
    /* PDISPLAY_DEVICEA */
    TEST_TYPE_SIZE   (PDISPLAY_DEVICEA, 4)
    TEST_TYPE_ALIGN  (PDISPLAY_DEVICEA, 4)
    TEST_TARGET_SIZE (PDISPLAY_DEVICEA, 424)
    TEST_TARGET_ALIGN(PDISPLAY_DEVICEA, 4)
}

static void test_pack_PDISPLAY_DEVICEW(void)
{
    /* PDISPLAY_DEVICEW */
    TEST_TYPE_SIZE   (PDISPLAY_DEVICEW, 4)
    TEST_TYPE_ALIGN  (PDISPLAY_DEVICEW, 4)
    TEST_TARGET_SIZE (PDISPLAY_DEVICEW, 840)
    TEST_TARGET_ALIGN(PDISPLAY_DEVICEW, 4)
}

static void test_pack_PELARRAY(void)
{
    /* PELARRAY */
    TEST_TYPE_SIZE   (PELARRAY, 20)
    TEST_TYPE_ALIGN  (PELARRAY, 4)
    TEST_FIELD_SIZE  (PELARRAY, paXCount, 4)
    TEST_FIELD_ALIGN (PELARRAY, paXCount, 4)
    TEST_FIELD_OFFSET(PELARRAY, paXCount, 0)
    TEST_FIELD_SIZE  (PELARRAY, paYCount, 4)
    TEST_FIELD_ALIGN (PELARRAY, paYCount, 4)
    TEST_FIELD_OFFSET(PELARRAY, paYCount, 4)
    TEST_FIELD_SIZE  (PELARRAY, paXExt, 4)
    TEST_FIELD_ALIGN (PELARRAY, paXExt, 4)
    TEST_FIELD_OFFSET(PELARRAY, paXExt, 8)
    TEST_FIELD_SIZE  (PELARRAY, paYExt, 4)
    TEST_FIELD_ALIGN (PELARRAY, paYExt, 4)
    TEST_FIELD_OFFSET(PELARRAY, paYExt, 12)
    TEST_FIELD_SIZE  (PELARRAY, paRGBs, 1)
    TEST_FIELD_ALIGN (PELARRAY, paRGBs, 1)
    TEST_FIELD_OFFSET(PELARRAY, paRGBs, 16)
}

static void test_pack_PEMR(void)
{
    /* PEMR */
    TEST_TYPE_SIZE   (PEMR, 4)
    TEST_TYPE_ALIGN  (PEMR, 4)
    TEST_TARGET_SIZE (PEMR, 8)
    TEST_TARGET_ALIGN(PEMR, 4)
}

static void test_pack_PEMRABORTPATH(void)
{
    /* PEMRABORTPATH */
    TEST_TYPE_SIZE   (PEMRABORTPATH, 4)
    TEST_TYPE_ALIGN  (PEMRABORTPATH, 4)
    TEST_TARGET_SIZE (PEMRABORTPATH, 8)
    TEST_TARGET_ALIGN(PEMRABORTPATH, 4)
}

static void test_pack_PEMRANGLEARC(void)
{
    /* PEMRANGLEARC */
    TEST_TYPE_SIZE   (PEMRANGLEARC, 4)
    TEST_TYPE_ALIGN  (PEMRANGLEARC, 4)
    TEST_TARGET_SIZE (PEMRANGLEARC, 28)
    TEST_TARGET_ALIGN(PEMRANGLEARC, 4)
}

static void test_pack_PEMRARC(void)
{
    /* PEMRARC */
    TEST_TYPE_SIZE   (PEMRARC, 4)
    TEST_TYPE_ALIGN  (PEMRARC, 4)
    TEST_TARGET_SIZE (PEMRARC, 40)
    TEST_TARGET_ALIGN(PEMRARC, 4)
}

static void test_pack_PEMRARCTO(void)
{
    /* PEMRARCTO */
    TEST_TYPE_SIZE   (PEMRARCTO, 4)
    TEST_TYPE_ALIGN  (PEMRARCTO, 4)
    TEST_TARGET_SIZE (PEMRARCTO, 40)
    TEST_TARGET_ALIGN(PEMRARCTO, 4)
}

static void test_pack_PEMRBEGINPATH(void)
{
    /* PEMRBEGINPATH */
    TEST_TYPE_SIZE   (PEMRBEGINPATH, 4)
    TEST_TYPE_ALIGN  (PEMRBEGINPATH, 4)
    TEST_TARGET_SIZE (PEMRBEGINPATH, 8)
    TEST_TARGET_ALIGN(PEMRBEGINPATH, 4)
}

static void test_pack_PEMRBITBLT(void)
{
    /* PEMRBITBLT */
    TEST_TYPE_SIZE   (PEMRBITBLT, 4)
    TEST_TYPE_ALIGN  (PEMRBITBLT, 4)
    TEST_TARGET_SIZE (PEMRBITBLT, 100)
    TEST_TARGET_ALIGN(PEMRBITBLT, 4)
}

static void test_pack_PEMRCHORD(void)
{
    /* PEMRCHORD */
    TEST_TYPE_SIZE   (PEMRCHORD, 4)
    TEST_TYPE_ALIGN  (PEMRCHORD, 4)
    TEST_TARGET_SIZE (PEMRCHORD, 40)
    TEST_TARGET_ALIGN(PEMRCHORD, 4)
}

static void test_pack_PEMRCLOSEFIGURE(void)
{
    /* PEMRCLOSEFIGURE */
    TEST_TYPE_SIZE   (PEMRCLOSEFIGURE, 4)
    TEST_TYPE_ALIGN  (PEMRCLOSEFIGURE, 4)
    TEST_TARGET_SIZE (PEMRCLOSEFIGURE, 8)
    TEST_TARGET_ALIGN(PEMRCLOSEFIGURE, 4)
}

static void test_pack_PEMRCREATEBRUSHINDIRECT(void)
{
    /* PEMRCREATEBRUSHINDIRECT */
    TEST_TYPE_SIZE   (PEMRCREATEBRUSHINDIRECT, 4)
    TEST_TYPE_ALIGN  (PEMRCREATEBRUSHINDIRECT, 4)
    TEST_TARGET_SIZE (PEMRCREATEBRUSHINDIRECT, 24)
    TEST_TARGET_ALIGN(PEMRCREATEBRUSHINDIRECT, 4)
}

static void test_pack_PEMRCREATECOLORSPACE(void)
{
    /* PEMRCREATECOLORSPACE */
    TEST_TYPE_SIZE   (PEMRCREATECOLORSPACE, 4)
    TEST_TYPE_ALIGN  (PEMRCREATECOLORSPACE, 4)
    TEST_TARGET_SIZE (PEMRCREATECOLORSPACE, 340)
    TEST_TARGET_ALIGN(PEMRCREATECOLORSPACE, 4)
}

static void test_pack_PEMRCREATECOLORSPACEW(void)
{
    /* PEMRCREATECOLORSPACEW */
    TEST_TYPE_SIZE   (PEMRCREATECOLORSPACEW, 4)
    TEST_TYPE_ALIGN  (PEMRCREATECOLORSPACEW, 4)
    TEST_TARGET_SIZE (PEMRCREATECOLORSPACEW, 612)
    TEST_TARGET_ALIGN(PEMRCREATECOLORSPACEW, 4)
}

static void test_pack_PEMRCREATEDIBPATTERNBRUSHPT(void)
{
    /* PEMRCREATEDIBPATTERNBRUSHPT */
    TEST_TYPE_SIZE   (PEMRCREATEDIBPATTERNBRUSHPT, 4)
    TEST_TYPE_ALIGN  (PEMRCREATEDIBPATTERNBRUSHPT, 4)
    TEST_TARGET_SIZE (PEMRCREATEDIBPATTERNBRUSHPT, 32)
    TEST_TARGET_ALIGN(PEMRCREATEDIBPATTERNBRUSHPT, 4)
}

static void test_pack_PEMRCREATEMONOBRUSH(void)
{
    /* PEMRCREATEMONOBRUSH */
    TEST_TYPE_SIZE   (PEMRCREATEMONOBRUSH, 4)
    TEST_TYPE_ALIGN  (PEMRCREATEMONOBRUSH, 4)
    TEST_TARGET_SIZE (PEMRCREATEMONOBRUSH, 32)
    TEST_TARGET_ALIGN(PEMRCREATEMONOBRUSH, 4)
}

static void test_pack_PEMRCREATEPALETTE(void)
{
    /* PEMRCREATEPALETTE */
    TEST_TYPE_SIZE   (PEMRCREATEPALETTE, 4)
    TEST_TYPE_ALIGN  (PEMRCREATEPALETTE, 4)
    TEST_TARGET_SIZE (PEMRCREATEPALETTE, 20)
    TEST_TARGET_ALIGN(PEMRCREATEPALETTE, 4)
}

static void test_pack_PEMRCREATEPEN(void)
{
    /* PEMRCREATEPEN */
    TEST_TYPE_SIZE   (PEMRCREATEPEN, 4)
    TEST_TYPE_ALIGN  (PEMRCREATEPEN, 4)
    TEST_TARGET_SIZE (PEMRCREATEPEN, 28)
    TEST_TARGET_ALIGN(PEMRCREATEPEN, 4)
}

static void test_pack_PEMRDELETECOLORSPACE(void)
{
    /* PEMRDELETECOLORSPACE */
    TEST_TYPE_SIZE   (PEMRDELETECOLORSPACE, 4)
    TEST_TYPE_ALIGN  (PEMRDELETECOLORSPACE, 4)
    TEST_TARGET_SIZE (PEMRDELETECOLORSPACE, 12)
    TEST_TARGET_ALIGN(PEMRDELETECOLORSPACE, 4)
}

static void test_pack_PEMRDELETEOBJECT(void)
{
    /* PEMRDELETEOBJECT */
    TEST_TYPE_SIZE   (PEMRDELETEOBJECT, 4)
    TEST_TYPE_ALIGN  (PEMRDELETEOBJECT, 4)
    TEST_TARGET_SIZE (PEMRDELETEOBJECT, 12)
    TEST_TARGET_ALIGN(PEMRDELETEOBJECT, 4)
}

static void test_pack_PEMRELLIPSE(void)
{
    /* PEMRELLIPSE */
    TEST_TYPE_SIZE   (PEMRELLIPSE, 4)
    TEST_TYPE_ALIGN  (PEMRELLIPSE, 4)
    TEST_TARGET_SIZE (PEMRELLIPSE, 24)
    TEST_TARGET_ALIGN(PEMRELLIPSE, 4)
}

static void test_pack_PEMRENDPATH(void)
{
    /* PEMRENDPATH */
    TEST_TYPE_SIZE   (PEMRENDPATH, 4)
    TEST_TYPE_ALIGN  (PEMRENDPATH, 4)
    TEST_TARGET_SIZE (PEMRENDPATH, 8)
    TEST_TARGET_ALIGN(PEMRENDPATH, 4)
}

static void test_pack_PEMREOF(void)
{
    /* PEMREOF */
    TEST_TYPE_SIZE   (PEMREOF, 4)
    TEST_TYPE_ALIGN  (PEMREOF, 4)
    TEST_TARGET_SIZE (PEMREOF, 20)
    TEST_TARGET_ALIGN(PEMREOF, 4)
}

static void test_pack_PEMREXCLUDECLIPRECT(void)
{
    /* PEMREXCLUDECLIPRECT */
    TEST_TYPE_SIZE   (PEMREXCLUDECLIPRECT, 4)
    TEST_TYPE_ALIGN  (PEMREXCLUDECLIPRECT, 4)
    TEST_TARGET_SIZE (PEMREXCLUDECLIPRECT, 24)
    TEST_TARGET_ALIGN(PEMREXCLUDECLIPRECT, 4)
}

static void test_pack_PEMREXTCREATEFONTINDIRECTW(void)
{
    /* PEMREXTCREATEFONTINDIRECTW */
    TEST_TYPE_SIZE   (PEMREXTCREATEFONTINDIRECTW, 4)
    TEST_TYPE_ALIGN  (PEMREXTCREATEFONTINDIRECTW, 4)
    TEST_TARGET_SIZE (PEMREXTCREATEFONTINDIRECTW, 332)
    TEST_TARGET_ALIGN(PEMREXTCREATEFONTINDIRECTW, 4)
}

static void test_pack_PEMREXTCREATEPEN(void)
{
    /* PEMREXTCREATEPEN */
    TEST_TYPE_SIZE   (PEMREXTCREATEPEN, 4)
    TEST_TYPE_ALIGN  (PEMREXTCREATEPEN, 4)
    TEST_TARGET_SIZE (PEMREXTCREATEPEN, 56)
    TEST_TARGET_ALIGN(PEMREXTCREATEPEN, 4)
}

static void test_pack_PEMREXTFLOODFILL(void)
{
    /* PEMREXTFLOODFILL */
    TEST_TYPE_SIZE   (PEMREXTFLOODFILL, 4)
    TEST_TYPE_ALIGN  (PEMREXTFLOODFILL, 4)
    TEST_TARGET_SIZE (PEMREXTFLOODFILL, 24)
    TEST_TARGET_ALIGN(PEMREXTFLOODFILL, 4)
}

static void test_pack_PEMREXTSELECTCLIPRGN(void)
{
    /* PEMREXTSELECTCLIPRGN */
    TEST_TYPE_SIZE   (PEMREXTSELECTCLIPRGN, 4)
    TEST_TYPE_ALIGN  (PEMREXTSELECTCLIPRGN, 4)
    TEST_TARGET_SIZE (PEMREXTSELECTCLIPRGN, 20)
    TEST_TARGET_ALIGN(PEMREXTSELECTCLIPRGN, 4)
}

static void test_pack_PEMREXTTEXTOUTA(void)
{
    /* PEMREXTTEXTOUTA */
    TEST_TYPE_SIZE   (PEMREXTTEXTOUTA, 4)
    TEST_TYPE_ALIGN  (PEMREXTTEXTOUTA, 4)
    TEST_TARGET_SIZE (PEMREXTTEXTOUTA, 76)
    TEST_TARGET_ALIGN(PEMREXTTEXTOUTA, 4)
}

static void test_pack_PEMREXTTEXTOUTW(void)
{
    /* PEMREXTTEXTOUTW */
    TEST_TYPE_SIZE   (PEMREXTTEXTOUTW, 4)
    TEST_TYPE_ALIGN  (PEMREXTTEXTOUTW, 4)
    TEST_TARGET_SIZE (PEMREXTTEXTOUTW, 76)
    TEST_TARGET_ALIGN(PEMREXTTEXTOUTW, 4)
}

static void test_pack_PEMRFILLPATH(void)
{
    /* PEMRFILLPATH */
    TEST_TYPE_SIZE   (PEMRFILLPATH, 4)
    TEST_TYPE_ALIGN  (PEMRFILLPATH, 4)
    TEST_TARGET_SIZE (PEMRFILLPATH, 24)
    TEST_TARGET_ALIGN(PEMRFILLPATH, 4)
}

static void test_pack_PEMRFILLRGN(void)
{
    /* PEMRFILLRGN */
    TEST_TYPE_SIZE   (PEMRFILLRGN, 4)
    TEST_TYPE_ALIGN  (PEMRFILLRGN, 4)
    TEST_TARGET_SIZE (PEMRFILLRGN, 36)
    TEST_TARGET_ALIGN(PEMRFILLRGN, 4)
}

static void test_pack_PEMRFLATTENPATH(void)
{
    /* PEMRFLATTENPATH */
    TEST_TYPE_SIZE   (PEMRFLATTENPATH, 4)
    TEST_TYPE_ALIGN  (PEMRFLATTENPATH, 4)
    TEST_TARGET_SIZE (PEMRFLATTENPATH, 8)
    TEST_TARGET_ALIGN(PEMRFLATTENPATH, 4)
}

static void test_pack_PEMRFORMAT(void)
{
    /* PEMRFORMAT */
    TEST_TYPE_SIZE   (PEMRFORMAT, 4)
    TEST_TYPE_ALIGN  (PEMRFORMAT, 4)
    TEST_TARGET_SIZE (PEMRFORMAT, 16)
    TEST_TARGET_ALIGN(PEMRFORMAT, 4)
}

static void test_pack_PEMRFRAMERGN(void)
{
    /* PEMRFRAMERGN */
    TEST_TYPE_SIZE   (PEMRFRAMERGN, 4)
    TEST_TYPE_ALIGN  (PEMRFRAMERGN, 4)
    TEST_TARGET_SIZE (PEMRFRAMERGN, 44)
    TEST_TARGET_ALIGN(PEMRFRAMERGN, 4)
}

static void test_pack_PEMRGDICOMMENT(void)
{
    /* PEMRGDICOMMENT */
    TEST_TYPE_SIZE   (PEMRGDICOMMENT, 4)
    TEST_TYPE_ALIGN  (PEMRGDICOMMENT, 4)
    TEST_TARGET_SIZE (PEMRGDICOMMENT, 16)
    TEST_TARGET_ALIGN(PEMRGDICOMMENT, 4)
}

static void test_pack_PEMRGLSBOUNDEDRECORD(void)
{
    /* PEMRGLSBOUNDEDRECORD */
    TEST_TYPE_SIZE   (PEMRGLSBOUNDEDRECORD, 4)
    TEST_TYPE_ALIGN  (PEMRGLSBOUNDEDRECORD, 4)
    TEST_TARGET_SIZE (PEMRGLSBOUNDEDRECORD, 32)
    TEST_TARGET_ALIGN(PEMRGLSBOUNDEDRECORD, 4)
}

static void test_pack_PEMRGLSRECORD(void)
{
    /* PEMRGLSRECORD */
    TEST_TYPE_SIZE   (PEMRGLSRECORD, 4)
    TEST_TYPE_ALIGN  (PEMRGLSRECORD, 4)
    TEST_TARGET_SIZE (PEMRGLSRECORD, 16)
    TEST_TARGET_ALIGN(PEMRGLSRECORD, 4)
}

static void test_pack_PEMRINTERSECTCLIPRECT(void)
{
    /* PEMRINTERSECTCLIPRECT */
    TEST_TYPE_SIZE   (PEMRINTERSECTCLIPRECT, 4)
    TEST_TYPE_ALIGN  (PEMRINTERSECTCLIPRECT, 4)
    TEST_TARGET_SIZE (PEMRINTERSECTCLIPRECT, 24)
    TEST_TARGET_ALIGN(PEMRINTERSECTCLIPRECT, 4)
}

static void test_pack_PEMRINVERTRGN(void)
{
    /* PEMRINVERTRGN */
    TEST_TYPE_SIZE   (PEMRINVERTRGN, 4)
    TEST_TYPE_ALIGN  (PEMRINVERTRGN, 4)
    TEST_TARGET_SIZE (PEMRINVERTRGN, 32)
    TEST_TARGET_ALIGN(PEMRINVERTRGN, 4)
}

static void test_pack_PEMRLINETO(void)
{
    /* PEMRLINETO */
    TEST_TYPE_SIZE   (PEMRLINETO, 4)
    TEST_TYPE_ALIGN  (PEMRLINETO, 4)
    TEST_TARGET_SIZE (PEMRLINETO, 16)
    TEST_TARGET_ALIGN(PEMRLINETO, 4)
}

static void test_pack_PEMRMASKBLT(void)
{
    /* PEMRMASKBLT */
    TEST_TYPE_SIZE   (PEMRMASKBLT, 4)
    TEST_TYPE_ALIGN  (PEMRMASKBLT, 4)
    TEST_TARGET_SIZE (PEMRMASKBLT, 128)
    TEST_TARGET_ALIGN(PEMRMASKBLT, 4)
}

static void test_pack_PEMRMODIFYWORLDTRANSFORM(void)
{
    /* PEMRMODIFYWORLDTRANSFORM */
    TEST_TYPE_SIZE   (PEMRMODIFYWORLDTRANSFORM, 4)
    TEST_TYPE_ALIGN  (PEMRMODIFYWORLDTRANSFORM, 4)
    TEST_TARGET_SIZE (PEMRMODIFYWORLDTRANSFORM, 36)
    TEST_TARGET_ALIGN(PEMRMODIFYWORLDTRANSFORM, 4)
}

static void test_pack_PEMRMOVETOEX(void)
{
    /* PEMRMOVETOEX */
    TEST_TYPE_SIZE   (PEMRMOVETOEX, 4)
    TEST_TYPE_ALIGN  (PEMRMOVETOEX, 4)
    TEST_TARGET_SIZE (PEMRMOVETOEX, 16)
    TEST_TARGET_ALIGN(PEMRMOVETOEX, 4)
}

static void test_pack_PEMROFFSETCLIPRGN(void)
{
    /* PEMROFFSETCLIPRGN */
    TEST_TYPE_SIZE   (PEMROFFSETCLIPRGN, 4)
    TEST_TYPE_ALIGN  (PEMROFFSETCLIPRGN, 4)
    TEST_TARGET_SIZE (PEMROFFSETCLIPRGN, 16)
    TEST_TARGET_ALIGN(PEMROFFSETCLIPRGN, 4)
}

static void test_pack_PEMRPAINTRGN(void)
{
    /* PEMRPAINTRGN */
    TEST_TYPE_SIZE   (PEMRPAINTRGN, 4)
    TEST_TYPE_ALIGN  (PEMRPAINTRGN, 4)
    TEST_TARGET_SIZE (PEMRPAINTRGN, 32)
    TEST_TARGET_ALIGN(PEMRPAINTRGN, 4)
}

static void test_pack_PEMRPIE(void)
{
    /* PEMRPIE */
    TEST_TYPE_SIZE   (PEMRPIE, 4)
    TEST_TYPE_ALIGN  (PEMRPIE, 4)
    TEST_TARGET_SIZE (PEMRPIE, 40)
    TEST_TARGET_ALIGN(PEMRPIE, 4)
}

static void test_pack_PEMRPIXELFORMAT(void)
{
    /* PEMRPIXELFORMAT */
    TEST_TYPE_SIZE   (PEMRPIXELFORMAT, 4)
    TEST_TYPE_ALIGN  (PEMRPIXELFORMAT, 4)
    TEST_TARGET_SIZE (PEMRPIXELFORMAT, 48)
    TEST_TARGET_ALIGN(PEMRPIXELFORMAT, 4)
}

static void test_pack_PEMRPLGBLT(void)
{
    /* PEMRPLGBLT */
    TEST_TYPE_SIZE   (PEMRPLGBLT, 4)
    TEST_TYPE_ALIGN  (PEMRPLGBLT, 4)
    TEST_TARGET_SIZE (PEMRPLGBLT, 140)
    TEST_TARGET_ALIGN(PEMRPLGBLT, 4)
}

static void test_pack_PEMRPOLYBEZIER(void)
{
    /* PEMRPOLYBEZIER */
    TEST_TYPE_SIZE   (PEMRPOLYBEZIER, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYBEZIER, 4)
    TEST_TARGET_SIZE (PEMRPOLYBEZIER, 36)
    TEST_TARGET_ALIGN(PEMRPOLYBEZIER, 4)
}

static void test_pack_PEMRPOLYBEZIER16(void)
{
    /* PEMRPOLYBEZIER16 */
    TEST_TYPE_SIZE   (PEMRPOLYBEZIER16, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYBEZIER16, 4)
    TEST_TARGET_SIZE (PEMRPOLYBEZIER16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYBEZIER16, 4)
}

static void test_pack_PEMRPOLYBEZIERTO(void)
{
    /* PEMRPOLYBEZIERTO */
    TEST_TYPE_SIZE   (PEMRPOLYBEZIERTO, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYBEZIERTO, 4)
    TEST_TARGET_SIZE (PEMRPOLYBEZIERTO, 36)
    TEST_TARGET_ALIGN(PEMRPOLYBEZIERTO, 4)
}

static void test_pack_PEMRPOLYBEZIERTO16(void)
{
    /* PEMRPOLYBEZIERTO16 */
    TEST_TYPE_SIZE   (PEMRPOLYBEZIERTO16, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYBEZIERTO16, 4)
    TEST_TARGET_SIZE (PEMRPOLYBEZIERTO16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYBEZIERTO16, 4)
}

static void test_pack_PEMRPOLYDRAW(void)
{
    /* PEMRPOLYDRAW */
    TEST_TYPE_SIZE   (PEMRPOLYDRAW, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYDRAW, 4)
    TEST_TARGET_SIZE (PEMRPOLYDRAW, 40)
    TEST_TARGET_ALIGN(PEMRPOLYDRAW, 4)
}

static void test_pack_PEMRPOLYDRAW16(void)
{
    /* PEMRPOLYDRAW16 */
    TEST_TYPE_SIZE   (PEMRPOLYDRAW16, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYDRAW16, 4)
    TEST_TARGET_SIZE (PEMRPOLYDRAW16, 36)
    TEST_TARGET_ALIGN(PEMRPOLYDRAW16, 4)
}

static void test_pack_PEMRPOLYGON(void)
{
    /* PEMRPOLYGON */
    TEST_TYPE_SIZE   (PEMRPOLYGON, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYGON, 4)
    TEST_TARGET_SIZE (PEMRPOLYGON, 36)
    TEST_TARGET_ALIGN(PEMRPOLYGON, 4)
}

static void test_pack_PEMRPOLYGON16(void)
{
    /* PEMRPOLYGON16 */
    TEST_TYPE_SIZE   (PEMRPOLYGON16, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYGON16, 4)
    TEST_TARGET_SIZE (PEMRPOLYGON16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYGON16, 4)
}

static void test_pack_PEMRPOLYLINE(void)
{
    /* PEMRPOLYLINE */
    TEST_TYPE_SIZE   (PEMRPOLYLINE, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYLINE, 4)
    TEST_TARGET_SIZE (PEMRPOLYLINE, 36)
    TEST_TARGET_ALIGN(PEMRPOLYLINE, 4)
}

static void test_pack_PEMRPOLYLINE16(void)
{
    /* PEMRPOLYLINE16 */
    TEST_TYPE_SIZE   (PEMRPOLYLINE16, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYLINE16, 4)
    TEST_TARGET_SIZE (PEMRPOLYLINE16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYLINE16, 4)
}

static void test_pack_PEMRPOLYLINETO(void)
{
    /* PEMRPOLYLINETO */
    TEST_TYPE_SIZE   (PEMRPOLYLINETO, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYLINETO, 4)
    TEST_TARGET_SIZE (PEMRPOLYLINETO, 36)
    TEST_TARGET_ALIGN(PEMRPOLYLINETO, 4)
}

static void test_pack_PEMRPOLYLINETO16(void)
{
    /* PEMRPOLYLINETO16 */
    TEST_TYPE_SIZE   (PEMRPOLYLINETO16, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYLINETO16, 4)
    TEST_TARGET_SIZE (PEMRPOLYLINETO16, 32)
    TEST_TARGET_ALIGN(PEMRPOLYLINETO16, 4)
}

static void test_pack_PEMRPOLYPOLYGON(void)
{
    /* PEMRPOLYPOLYGON */
    TEST_TYPE_SIZE   (PEMRPOLYPOLYGON, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYPOLYGON, 4)
    TEST_TARGET_SIZE (PEMRPOLYPOLYGON, 44)
    TEST_TARGET_ALIGN(PEMRPOLYPOLYGON, 4)
}

static void test_pack_PEMRPOLYPOLYGON16(void)
{
    /* PEMRPOLYPOLYGON16 */
    TEST_TYPE_SIZE   (PEMRPOLYPOLYGON16, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYPOLYGON16, 4)
    TEST_TARGET_SIZE (PEMRPOLYPOLYGON16, 40)
    TEST_TARGET_ALIGN(PEMRPOLYPOLYGON16, 4)
}

static void test_pack_PEMRPOLYPOLYLINE(void)
{
    /* PEMRPOLYPOLYLINE */
    TEST_TYPE_SIZE   (PEMRPOLYPOLYLINE, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYPOLYLINE, 4)
    TEST_TARGET_SIZE (PEMRPOLYPOLYLINE, 44)
    TEST_TARGET_ALIGN(PEMRPOLYPOLYLINE, 4)
}

static void test_pack_PEMRPOLYPOLYLINE16(void)
{
    /* PEMRPOLYPOLYLINE16 */
    TEST_TYPE_SIZE   (PEMRPOLYPOLYLINE16, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYPOLYLINE16, 4)
    TEST_TARGET_SIZE (PEMRPOLYPOLYLINE16, 40)
    TEST_TARGET_ALIGN(PEMRPOLYPOLYLINE16, 4)
}

static void test_pack_PEMRPOLYTEXTOUTA(void)
{
    /* PEMRPOLYTEXTOUTA */
    TEST_TYPE_SIZE   (PEMRPOLYTEXTOUTA, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYTEXTOUTA, 4)
    TEST_TARGET_SIZE (PEMRPOLYTEXTOUTA, 80)
    TEST_TARGET_ALIGN(PEMRPOLYTEXTOUTA, 4)
}

static void test_pack_PEMRPOLYTEXTOUTW(void)
{
    /* PEMRPOLYTEXTOUTW */
    TEST_TYPE_SIZE   (PEMRPOLYTEXTOUTW, 4)
    TEST_TYPE_ALIGN  (PEMRPOLYTEXTOUTW, 4)
    TEST_TARGET_SIZE (PEMRPOLYTEXTOUTW, 80)
    TEST_TARGET_ALIGN(PEMRPOLYTEXTOUTW, 4)
}

static void test_pack_PEMRREALIZEPALETTE(void)
{
    /* PEMRREALIZEPALETTE */
    TEST_TYPE_SIZE   (PEMRREALIZEPALETTE, 4)
    TEST_TYPE_ALIGN  (PEMRREALIZEPALETTE, 4)
    TEST_TARGET_SIZE (PEMRREALIZEPALETTE, 8)
    TEST_TARGET_ALIGN(PEMRREALIZEPALETTE, 4)
}

static void test_pack_PEMRRECTANGLE(void)
{
    /* PEMRRECTANGLE */
    TEST_TYPE_SIZE   (PEMRRECTANGLE, 4)
    TEST_TYPE_ALIGN  (PEMRRECTANGLE, 4)
    TEST_TARGET_SIZE (PEMRRECTANGLE, 24)
    TEST_TARGET_ALIGN(PEMRRECTANGLE, 4)
}

static void test_pack_PEMRRESIZEPALETTE(void)
{
    /* PEMRRESIZEPALETTE */
    TEST_TYPE_SIZE   (PEMRRESIZEPALETTE, 4)
    TEST_TYPE_ALIGN  (PEMRRESIZEPALETTE, 4)
    TEST_TARGET_SIZE (PEMRRESIZEPALETTE, 16)
    TEST_TARGET_ALIGN(PEMRRESIZEPALETTE, 4)
}

static void test_pack_PEMRRESTOREDC(void)
{
    /* PEMRRESTOREDC */
    TEST_TYPE_SIZE   (PEMRRESTOREDC, 4)
    TEST_TYPE_ALIGN  (PEMRRESTOREDC, 4)
    TEST_TARGET_SIZE (PEMRRESTOREDC, 12)
    TEST_TARGET_ALIGN(PEMRRESTOREDC, 4)
}

static void test_pack_PEMRROUNDRECT(void)
{
    /* PEMRROUNDRECT */
    TEST_TYPE_SIZE   (PEMRROUNDRECT, 4)
    TEST_TYPE_ALIGN  (PEMRROUNDRECT, 4)
    TEST_TARGET_SIZE (PEMRROUNDRECT, 32)
    TEST_TARGET_ALIGN(PEMRROUNDRECT, 4)
}

static void test_pack_PEMRSAVEDC(void)
{
    /* PEMRSAVEDC */
    TEST_TYPE_SIZE   (PEMRSAVEDC, 4)
    TEST_TYPE_ALIGN  (PEMRSAVEDC, 4)
    TEST_TARGET_SIZE (PEMRSAVEDC, 8)
    TEST_TARGET_ALIGN(PEMRSAVEDC, 4)
}

static void test_pack_PEMRSCALEVIEWPORTEXTEX(void)
{
    /* PEMRSCALEVIEWPORTEXTEX */
    TEST_TYPE_SIZE   (PEMRSCALEVIEWPORTEXTEX, 4)
    TEST_TYPE_ALIGN  (PEMRSCALEVIEWPORTEXTEX, 4)
    TEST_TARGET_SIZE (PEMRSCALEVIEWPORTEXTEX, 24)
    TEST_TARGET_ALIGN(PEMRSCALEVIEWPORTEXTEX, 4)
}

static void test_pack_PEMRSCALEWINDOWEXTEX(void)
{
    /* PEMRSCALEWINDOWEXTEX */
    TEST_TYPE_SIZE   (PEMRSCALEWINDOWEXTEX, 4)
    TEST_TYPE_ALIGN  (PEMRSCALEWINDOWEXTEX, 4)
    TEST_TARGET_SIZE (PEMRSCALEWINDOWEXTEX, 24)
    TEST_TARGET_ALIGN(PEMRSCALEWINDOWEXTEX, 4)
}

static void test_pack_PEMRSELECTCLIPPATH(void)
{
    /* PEMRSELECTCLIPPATH */
    TEST_TYPE_SIZE   (PEMRSELECTCLIPPATH, 4)
    TEST_TYPE_ALIGN  (PEMRSELECTCLIPPATH, 4)
    TEST_TARGET_SIZE (PEMRSELECTCLIPPATH, 12)
    TEST_TARGET_ALIGN(PEMRSELECTCLIPPATH, 4)
}

static void test_pack_PEMRSELECTCOLORSPACE(void)
{
    /* PEMRSELECTCOLORSPACE */
    TEST_TYPE_SIZE   (PEMRSELECTCOLORSPACE, 4)
    TEST_TYPE_ALIGN  (PEMRSELECTCOLORSPACE, 4)
    TEST_TARGET_SIZE (PEMRSELECTCOLORSPACE, 12)
    TEST_TARGET_ALIGN(PEMRSELECTCOLORSPACE, 4)
}

static void test_pack_PEMRSELECTOBJECT(void)
{
    /* PEMRSELECTOBJECT */
    TEST_TYPE_SIZE   (PEMRSELECTOBJECT, 4)
    TEST_TYPE_ALIGN  (PEMRSELECTOBJECT, 4)
    TEST_TARGET_SIZE (PEMRSELECTOBJECT, 12)
    TEST_TARGET_ALIGN(PEMRSELECTOBJECT, 4)
}

static void test_pack_PEMRSELECTPALETTE(void)
{
    /* PEMRSELECTPALETTE */
    TEST_TYPE_SIZE   (PEMRSELECTPALETTE, 4)
    TEST_TYPE_ALIGN  (PEMRSELECTPALETTE, 4)
    TEST_TARGET_SIZE (PEMRSELECTPALETTE, 12)
    TEST_TARGET_ALIGN(PEMRSELECTPALETTE, 4)
}

static void test_pack_PEMRSETARCDIRECTION(void)
{
    /* PEMRSETARCDIRECTION */
    TEST_TYPE_SIZE   (PEMRSETARCDIRECTION, 4)
    TEST_TYPE_ALIGN  (PEMRSETARCDIRECTION, 4)
    TEST_TARGET_SIZE (PEMRSETARCDIRECTION, 12)
    TEST_TARGET_ALIGN(PEMRSETARCDIRECTION, 4)
}

static void test_pack_PEMRSETBKCOLOR(void)
{
    /* PEMRSETBKCOLOR */
    TEST_TYPE_SIZE   (PEMRSETBKCOLOR, 4)
    TEST_TYPE_ALIGN  (PEMRSETBKCOLOR, 4)
    TEST_TARGET_SIZE (PEMRSETBKCOLOR, 12)
    TEST_TARGET_ALIGN(PEMRSETBKCOLOR, 4)
}

static void test_pack_PEMRSETBKMODE(void)
{
    /* PEMRSETBKMODE */
    TEST_TYPE_SIZE   (PEMRSETBKMODE, 4)
    TEST_TYPE_ALIGN  (PEMRSETBKMODE, 4)
    TEST_TARGET_SIZE (PEMRSETBKMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETBKMODE, 4)
}

static void test_pack_PEMRSETBRUSHORGEX(void)
{
    /* PEMRSETBRUSHORGEX */
    TEST_TYPE_SIZE   (PEMRSETBRUSHORGEX, 4)
    TEST_TYPE_ALIGN  (PEMRSETBRUSHORGEX, 4)
    TEST_TARGET_SIZE (PEMRSETBRUSHORGEX, 16)
    TEST_TARGET_ALIGN(PEMRSETBRUSHORGEX, 4)
}

static void test_pack_PEMRSETCOLORADJUSTMENT(void)
{
    /* PEMRSETCOLORADJUSTMENT */
    TEST_TYPE_SIZE   (PEMRSETCOLORADJUSTMENT, 4)
    TEST_TYPE_ALIGN  (PEMRSETCOLORADJUSTMENT, 4)
    TEST_TARGET_SIZE (PEMRSETCOLORADJUSTMENT, 32)
    TEST_TARGET_ALIGN(PEMRSETCOLORADJUSTMENT, 4)
}

static void test_pack_PEMRSETCOLORSPACE(void)
{
    /* PEMRSETCOLORSPACE */
    TEST_TYPE_SIZE   (PEMRSETCOLORSPACE, 4)
    TEST_TYPE_ALIGN  (PEMRSETCOLORSPACE, 4)
    TEST_TARGET_SIZE (PEMRSETCOLORSPACE, 12)
    TEST_TARGET_ALIGN(PEMRSETCOLORSPACE, 4)
}

static void test_pack_PEMRSETDIBITSTODEVICE(void)
{
    /* PEMRSETDIBITSTODEVICE */
    TEST_TYPE_SIZE   (PEMRSETDIBITSTODEVICE, 4)
    TEST_TYPE_ALIGN  (PEMRSETDIBITSTODEVICE, 4)
    TEST_TARGET_SIZE (PEMRSETDIBITSTODEVICE, 76)
    TEST_TARGET_ALIGN(PEMRSETDIBITSTODEVICE, 4)
}

static void test_pack_PEMRSETICMMODE(void)
{
    /* PEMRSETICMMODE */
    TEST_TYPE_SIZE   (PEMRSETICMMODE, 4)
    TEST_TYPE_ALIGN  (PEMRSETICMMODE, 4)
    TEST_TARGET_SIZE (PEMRSETICMMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETICMMODE, 4)
}

static void test_pack_PEMRSETLAYOUT(void)
{
    /* PEMRSETLAYOUT */
    TEST_TYPE_SIZE   (PEMRSETLAYOUT, 4)
    TEST_TYPE_ALIGN  (PEMRSETLAYOUT, 4)
    TEST_TARGET_SIZE (PEMRSETLAYOUT, 12)
    TEST_TARGET_ALIGN(PEMRSETLAYOUT, 4)
}

static void test_pack_PEMRSETMAPMODE(void)
{
    /* PEMRSETMAPMODE */
    TEST_TYPE_SIZE   (PEMRSETMAPMODE, 4)
    TEST_TYPE_ALIGN  (PEMRSETMAPMODE, 4)
    TEST_TARGET_SIZE (PEMRSETMAPMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETMAPMODE, 4)
}

static void test_pack_PEMRSETMAPPERFLAGS(void)
{
    /* PEMRSETMAPPERFLAGS */
    TEST_TYPE_SIZE   (PEMRSETMAPPERFLAGS, 4)
    TEST_TYPE_ALIGN  (PEMRSETMAPPERFLAGS, 4)
    TEST_TARGET_SIZE (PEMRSETMAPPERFLAGS, 12)
    TEST_TARGET_ALIGN(PEMRSETMAPPERFLAGS, 4)
}

static void test_pack_PEMRSETMETARGN(void)
{
    /* PEMRSETMETARGN */
    TEST_TYPE_SIZE   (PEMRSETMETARGN, 4)
    TEST_TYPE_ALIGN  (PEMRSETMETARGN, 4)
    TEST_TARGET_SIZE (PEMRSETMETARGN, 8)
    TEST_TARGET_ALIGN(PEMRSETMETARGN, 4)
}

static void test_pack_PEMRSETMITERLIMIT(void)
{
    /* PEMRSETMITERLIMIT */
    TEST_TYPE_SIZE   (PEMRSETMITERLIMIT, 4)
    TEST_TYPE_ALIGN  (PEMRSETMITERLIMIT, 4)
    TEST_TARGET_SIZE (PEMRSETMITERLIMIT, 12)
    TEST_TARGET_ALIGN(PEMRSETMITERLIMIT, 4)
}

static void test_pack_PEMRSETPALETTEENTRIES(void)
{
    /* PEMRSETPALETTEENTRIES */
    TEST_TYPE_SIZE   (PEMRSETPALETTEENTRIES, 4)
    TEST_TYPE_ALIGN  (PEMRSETPALETTEENTRIES, 4)
    TEST_TARGET_SIZE (PEMRSETPALETTEENTRIES, 24)
    TEST_TARGET_ALIGN(PEMRSETPALETTEENTRIES, 4)
}

static void test_pack_PEMRSETPIXELV(void)
{
    /* PEMRSETPIXELV */
    TEST_TYPE_SIZE   (PEMRSETPIXELV, 4)
    TEST_TYPE_ALIGN  (PEMRSETPIXELV, 4)
    TEST_TARGET_SIZE (PEMRSETPIXELV, 20)
    TEST_TARGET_ALIGN(PEMRSETPIXELV, 4)
}

static void test_pack_PEMRSETPOLYFILLMODE(void)
{
    /* PEMRSETPOLYFILLMODE */
    TEST_TYPE_SIZE   (PEMRSETPOLYFILLMODE, 4)
    TEST_TYPE_ALIGN  (PEMRSETPOLYFILLMODE, 4)
    TEST_TARGET_SIZE (PEMRSETPOLYFILLMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETPOLYFILLMODE, 4)
}

static void test_pack_PEMRSETROP2(void)
{
    /* PEMRSETROP2 */
    TEST_TYPE_SIZE   (PEMRSETROP2, 4)
    TEST_TYPE_ALIGN  (PEMRSETROP2, 4)
    TEST_TARGET_SIZE (PEMRSETROP2, 12)
    TEST_TARGET_ALIGN(PEMRSETROP2, 4)
}

static void test_pack_PEMRSETSTRETCHBLTMODE(void)
{
    /* PEMRSETSTRETCHBLTMODE */
    TEST_TYPE_SIZE   (PEMRSETSTRETCHBLTMODE, 4)
    TEST_TYPE_ALIGN  (PEMRSETSTRETCHBLTMODE, 4)
    TEST_TARGET_SIZE (PEMRSETSTRETCHBLTMODE, 12)
    TEST_TARGET_ALIGN(PEMRSETSTRETCHBLTMODE, 4)
}

static void test_pack_PEMRSETTEXTALIGN(void)
{
    /* PEMRSETTEXTALIGN */
    TEST_TYPE_SIZE   (PEMRSETTEXTALIGN, 4)
    TEST_TYPE_ALIGN  (PEMRSETTEXTALIGN, 4)
    TEST_TARGET_SIZE (PEMRSETTEXTALIGN, 12)
    TEST_TARGET_ALIGN(PEMRSETTEXTALIGN, 4)
}

static void test_pack_PEMRSETTEXTCOLOR(void)
{
    /* PEMRSETTEXTCOLOR */
    TEST_TYPE_SIZE   (PEMRSETTEXTCOLOR, 4)
    TEST_TYPE_ALIGN  (PEMRSETTEXTCOLOR, 4)
    TEST_TARGET_SIZE (PEMRSETTEXTCOLOR, 12)
    TEST_TARGET_ALIGN(PEMRSETTEXTCOLOR, 4)
}

static void test_pack_PEMRSETVIEWPORTEXTEX(void)
{
    /* PEMRSETVIEWPORTEXTEX */
    TEST_TYPE_SIZE   (PEMRSETVIEWPORTEXTEX, 4)
    TEST_TYPE_ALIGN  (PEMRSETVIEWPORTEXTEX, 4)
    TEST_TARGET_SIZE (PEMRSETVIEWPORTEXTEX, 16)
    TEST_TARGET_ALIGN(PEMRSETVIEWPORTEXTEX, 4)
}

static void test_pack_PEMRSETVIEWPORTORGEX(void)
{
    /* PEMRSETVIEWPORTORGEX */
    TEST_TYPE_SIZE   (PEMRSETVIEWPORTORGEX, 4)
    TEST_TYPE_ALIGN  (PEMRSETVIEWPORTORGEX, 4)
    TEST_TARGET_SIZE (PEMRSETVIEWPORTORGEX, 16)
    TEST_TARGET_ALIGN(PEMRSETVIEWPORTORGEX, 4)
}

static void test_pack_PEMRSETWINDOWEXTEX(void)
{
    /* PEMRSETWINDOWEXTEX */
    TEST_TYPE_SIZE   (PEMRSETWINDOWEXTEX, 4)
    TEST_TYPE_ALIGN  (PEMRSETWINDOWEXTEX, 4)
    TEST_TARGET_SIZE (PEMRSETWINDOWEXTEX, 16)
    TEST_TARGET_ALIGN(PEMRSETWINDOWEXTEX, 4)
}

static void test_pack_PEMRSETWINDOWORGEX(void)
{
    /* PEMRSETWINDOWORGEX */
    TEST_TYPE_SIZE   (PEMRSETWINDOWORGEX, 4)
    TEST_TYPE_ALIGN  (PEMRSETWINDOWORGEX, 4)
    TEST_TARGET_SIZE (PEMRSETWINDOWORGEX, 16)
    TEST_TARGET_ALIGN(PEMRSETWINDOWORGEX, 4)
}

static void test_pack_PEMRSETWORLDTRANSFORM(void)
{
    /* PEMRSETWORLDTRANSFORM */
    TEST_TYPE_SIZE   (PEMRSETWORLDTRANSFORM, 4)
    TEST_TYPE_ALIGN  (PEMRSETWORLDTRANSFORM, 4)
    TEST_TARGET_SIZE (PEMRSETWORLDTRANSFORM, 32)
    TEST_TARGET_ALIGN(PEMRSETWORLDTRANSFORM, 4)
}

static void test_pack_PEMRSTRETCHBLT(void)
{
    /* PEMRSTRETCHBLT */
    TEST_TYPE_SIZE   (PEMRSTRETCHBLT, 4)
    TEST_TYPE_ALIGN  (PEMRSTRETCHBLT, 4)
    TEST_TARGET_SIZE (PEMRSTRETCHBLT, 108)
    TEST_TARGET_ALIGN(PEMRSTRETCHBLT, 4)
}

static void test_pack_PEMRSTRETCHDIBITS(void)
{
    /* PEMRSTRETCHDIBITS */
    TEST_TYPE_SIZE   (PEMRSTRETCHDIBITS, 4)
    TEST_TYPE_ALIGN  (PEMRSTRETCHDIBITS, 4)
    TEST_TARGET_SIZE (PEMRSTRETCHDIBITS, 80)
    TEST_TARGET_ALIGN(PEMRSTRETCHDIBITS, 4)
}

static void test_pack_PEMRSTROKEANDFILLPATH(void)
{
    /* PEMRSTROKEANDFILLPATH */
    TEST_TYPE_SIZE   (PEMRSTROKEANDFILLPATH, 4)
    TEST_TYPE_ALIGN  (PEMRSTROKEANDFILLPATH, 4)
    TEST_TARGET_SIZE (PEMRSTROKEANDFILLPATH, 24)
    TEST_TARGET_ALIGN(PEMRSTROKEANDFILLPATH, 4)
}

static void test_pack_PEMRSTROKEPATH(void)
{
    /* PEMRSTROKEPATH */
    TEST_TYPE_SIZE   (PEMRSTROKEPATH, 4)
    TEST_TYPE_ALIGN  (PEMRSTROKEPATH, 4)
    TEST_TARGET_SIZE (PEMRSTROKEPATH, 24)
    TEST_TARGET_ALIGN(PEMRSTROKEPATH, 4)
}

static void test_pack_PEMRTEXT(void)
{
    /* PEMRTEXT */
    TEST_TYPE_SIZE   (PEMRTEXT, 4)
    TEST_TYPE_ALIGN  (PEMRTEXT, 4)
    TEST_TARGET_SIZE (PEMRTEXT, 40)
    TEST_TARGET_ALIGN(PEMRTEXT, 4)
}

static void test_pack_PEMRWIDENPATH(void)
{
    /* PEMRWIDENPATH */
    TEST_TYPE_SIZE   (PEMRWIDENPATH, 4)
    TEST_TYPE_ALIGN  (PEMRWIDENPATH, 4)
    TEST_TARGET_SIZE (PEMRWIDENPATH, 8)
    TEST_TARGET_ALIGN(PEMRWIDENPATH, 4)
}

static void test_pack_PENHMETAHEADER(void)
{
    /* PENHMETAHEADER */
    TEST_TYPE_SIZE   (PENHMETAHEADER, 4)
    TEST_TYPE_ALIGN  (PENHMETAHEADER, 4)
    TEST_TARGET_SIZE (PENHMETAHEADER, 108)
    TEST_TARGET_ALIGN(PENHMETAHEADER, 4)
}

static void test_pack_PEXTLOGFONTA(void)
{
    /* PEXTLOGFONTA */
    TEST_TYPE_SIZE   (PEXTLOGFONTA, 4)
    TEST_TYPE_ALIGN  (PEXTLOGFONTA, 4)
    TEST_TARGET_SIZE (PEXTLOGFONTA, 192)
    TEST_TARGET_ALIGN(PEXTLOGFONTA, 4)
}

static void test_pack_PEXTLOGFONTW(void)
{
    /* PEXTLOGFONTW */
    TEST_TYPE_SIZE   (PEXTLOGFONTW, 4)
    TEST_TYPE_ALIGN  (PEXTLOGFONTW, 4)
    TEST_TARGET_SIZE (PEXTLOGFONTW, 320)
    TEST_TARGET_ALIGN(PEXTLOGFONTW, 4)
}

static void test_pack_PEXTLOGPEN(void)
{
    /* PEXTLOGPEN */
    TEST_TYPE_SIZE   (PEXTLOGPEN, 4)
    TEST_TYPE_ALIGN  (PEXTLOGPEN, 4)
    TEST_TARGET_SIZE (PEXTLOGPEN, 28)
    TEST_TARGET_ALIGN(PEXTLOGPEN, 4)
}

static void test_pack_PFONTSIGNATURE(void)
{
    /* PFONTSIGNATURE */
    TEST_TYPE_SIZE   (PFONTSIGNATURE, 4)
    TEST_TYPE_ALIGN  (PFONTSIGNATURE, 4)
    TEST_TARGET_SIZE (PFONTSIGNATURE, 24)
    TEST_TARGET_ALIGN(PFONTSIGNATURE, 4)
}

static void test_pack_PGLYPHMETRICSFLOAT(void)
{
    /* PGLYPHMETRICSFLOAT */
    TEST_TYPE_SIZE   (PGLYPHMETRICSFLOAT, 4)
    TEST_TYPE_ALIGN  (PGLYPHMETRICSFLOAT, 4)
    TEST_TARGET_SIZE (PGLYPHMETRICSFLOAT, 24)
    TEST_TARGET_ALIGN(PGLYPHMETRICSFLOAT, 4)
}

static void test_pack_PGRADIENT_RECT(void)
{
    /* PGRADIENT_RECT */
    TEST_TYPE_SIZE   (PGRADIENT_RECT, 4)
    TEST_TYPE_ALIGN  (PGRADIENT_RECT, 4)
    TEST_TARGET_SIZE (PGRADIENT_RECT, 8)
    TEST_TARGET_ALIGN(PGRADIENT_RECT, 4)
}

static void test_pack_PGRADIENT_TRIANGLE(void)
{
    /* PGRADIENT_TRIANGLE */
    TEST_TYPE_SIZE   (PGRADIENT_TRIANGLE, 4)
    TEST_TYPE_ALIGN  (PGRADIENT_TRIANGLE, 4)
    TEST_TARGET_SIZE (PGRADIENT_TRIANGLE, 12)
    TEST_TARGET_ALIGN(PGRADIENT_TRIANGLE, 4)
}

static void test_pack_PHANDLETABLE(void)
{
    /* PHANDLETABLE */
    TEST_TYPE_SIZE   (PHANDLETABLE, 4)
    TEST_TYPE_ALIGN  (PHANDLETABLE, 4)
    TEST_TARGET_SIZE (PHANDLETABLE, 4)
    TEST_TARGET_ALIGN(PHANDLETABLE, 4)
}

static void test_pack_PIXELFORMATDESCRIPTOR(void)
{
    /* PIXELFORMATDESCRIPTOR */
    TEST_TYPE_SIZE   (PIXELFORMATDESCRIPTOR, 40)
    TEST_TYPE_ALIGN  (PIXELFORMATDESCRIPTOR, 4)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, nSize, 2)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, nSize, 2)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, nSize, 0)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, nVersion, 2)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, nVersion, 2)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, nVersion, 2)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, dwFlags, 4)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, iPixelType, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, iPixelType, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, iPixelType, 8)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cColorBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cColorBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cColorBits, 9)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cRedBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cRedBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cRedBits, 10)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cRedShift, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cRedShift, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cRedShift, 11)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cGreenBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cGreenBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cGreenBits, 12)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cGreenShift, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cGreenShift, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cGreenShift, 13)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cBlueBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cBlueBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cBlueBits, 14)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cBlueShift, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cBlueShift, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cBlueShift, 15)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAlphaBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAlphaBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAlphaBits, 16)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAlphaShift, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAlphaShift, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAlphaShift, 17)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumBits, 18)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumRedBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumRedBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumRedBits, 19)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumGreenBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumGreenBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumGreenBits, 20)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumBlueBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumBlueBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumBlueBits, 21)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAccumAlphaBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAccumAlphaBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAccumAlphaBits, 22)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cDepthBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cDepthBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cDepthBits, 23)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cStencilBits, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cStencilBits, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cStencilBits, 24)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, cAuxBuffers, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, cAuxBuffers, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, cAuxBuffers, 25)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, iLayerType, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, iLayerType, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, iLayerType, 26)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, bReserved, 1)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, bReserved, 1)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, bReserved, 27)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, dwLayerMask, 4)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, dwLayerMask, 4)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, dwLayerMask, 28)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, dwVisibleMask, 4)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, dwVisibleMask, 4)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, dwVisibleMask, 32)
    TEST_FIELD_SIZE  (PIXELFORMATDESCRIPTOR, dwDamageMask, 4)
    TEST_FIELD_ALIGN (PIXELFORMATDESCRIPTOR, dwDamageMask, 4)
    TEST_FIELD_OFFSET(PIXELFORMATDESCRIPTOR, dwDamageMask, 36)
}

static void test_pack_PLAYERPLANEDESCRIPTOR(void)
{
    /* PLAYERPLANEDESCRIPTOR */
    TEST_TYPE_SIZE   (PLAYERPLANEDESCRIPTOR, 4)
    TEST_TYPE_ALIGN  (PLAYERPLANEDESCRIPTOR, 4)
    TEST_TARGET_SIZE (PLAYERPLANEDESCRIPTOR, 32)
    TEST_TARGET_ALIGN(PLAYERPLANEDESCRIPTOR, 4)
}

static void test_pack_PLOCALESIGNATURE(void)
{
    /* PLOCALESIGNATURE */
    TEST_TYPE_SIZE   (PLOCALESIGNATURE, 4)
    TEST_TYPE_ALIGN  (PLOCALESIGNATURE, 4)
    TEST_TARGET_SIZE (PLOCALESIGNATURE, 32)
    TEST_TARGET_ALIGN(PLOCALESIGNATURE, 4)
}

static void test_pack_PLOGBRUSH(void)
{
    /* PLOGBRUSH */
    TEST_TYPE_SIZE   (PLOGBRUSH, 4)
    TEST_TYPE_ALIGN  (PLOGBRUSH, 4)
    TEST_TARGET_SIZE (PLOGBRUSH, 12)
    TEST_TARGET_ALIGN(PLOGBRUSH, 4)
}

static void test_pack_PLOGFONTA(void)
{
    /* PLOGFONTA */
    TEST_TYPE_SIZE   (PLOGFONTA, 4)
    TEST_TYPE_ALIGN  (PLOGFONTA, 4)
    TEST_TARGET_SIZE (PLOGFONTA, 60)
    TEST_TARGET_ALIGN(PLOGFONTA, 4)
}

static void test_pack_PLOGFONTW(void)
{
    /* PLOGFONTW */
    TEST_TYPE_SIZE   (PLOGFONTW, 4)
    TEST_TYPE_ALIGN  (PLOGFONTW, 4)
    TEST_TARGET_SIZE (PLOGFONTW, 92)
    TEST_TARGET_ALIGN(PLOGFONTW, 4)
}

static void test_pack_PMETAHEADER(void)
{
    /* PMETAHEADER */
    TEST_TYPE_SIZE   (PMETAHEADER, 4)
    TEST_TYPE_ALIGN  (PMETAHEADER, 4)
    TEST_TARGET_SIZE (PMETAHEADER, 18)
    TEST_TARGET_ALIGN(PMETAHEADER, 2)
}

static void test_pack_PMETARECORD(void)
{
    /* PMETARECORD */
    TEST_TYPE_SIZE   (PMETARECORD, 4)
    TEST_TYPE_ALIGN  (PMETARECORD, 4)
    TEST_TARGET_SIZE (PMETARECORD, 8)
    TEST_TARGET_ALIGN(PMETARECORD, 4)
}

static void test_pack_PNEWTEXTMETRICA(void)
{
    /* PNEWTEXTMETRICA */
    TEST_TYPE_SIZE   (PNEWTEXTMETRICA, 4)
    TEST_TYPE_ALIGN  (PNEWTEXTMETRICA, 4)
    TEST_TARGET_SIZE (PNEWTEXTMETRICA, 72)
    TEST_TARGET_ALIGN(PNEWTEXTMETRICA, 4)
}

static void test_pack_PNEWTEXTMETRICW(void)
{
    /* PNEWTEXTMETRICW */
    TEST_TYPE_SIZE   (PNEWTEXTMETRICW, 4)
    TEST_TYPE_ALIGN  (PNEWTEXTMETRICW, 4)
    TEST_TARGET_SIZE (PNEWTEXTMETRICW, 76)
    TEST_TARGET_ALIGN(PNEWTEXTMETRICW, 4)
}

static void test_pack_POINTFLOAT(void)
{
    /* POINTFLOAT */
    TEST_TYPE_SIZE   (POINTFLOAT, 8)
    TEST_TYPE_ALIGN  (POINTFLOAT, 4)
    TEST_FIELD_SIZE  (POINTFLOAT, x, 4)
    TEST_FIELD_ALIGN (POINTFLOAT, x, 4)
    TEST_FIELD_OFFSET(POINTFLOAT, x, 0)
    TEST_FIELD_SIZE  (POINTFLOAT, y, 4)
    TEST_FIELD_ALIGN (POINTFLOAT, y, 4)
    TEST_FIELD_OFFSET(POINTFLOAT, y, 4)
}

static void test_pack_POINTFX(void)
{
    /* POINTFX */
    TEST_TYPE_SIZE   (POINTFX, 8)
    TEST_TYPE_ALIGN  (POINTFX, 2)
    TEST_FIELD_SIZE  (POINTFX, x, 4)
    TEST_FIELD_ALIGN (POINTFX, x, 2)
    TEST_FIELD_OFFSET(POINTFX, x, 0)
    TEST_FIELD_SIZE  (POINTFX, y, 4)
    TEST_FIELD_ALIGN (POINTFX, y, 2)
    TEST_FIELD_OFFSET(POINTFX, y, 4)
}

static void test_pack_POLYTEXTA(void)
{
    /* POLYTEXTA */
    TEST_TYPE_SIZE   (POLYTEXTA, 40)
    TEST_TYPE_ALIGN  (POLYTEXTA, 4)
    TEST_FIELD_SIZE  (POLYTEXTA, x, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, x, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, x, 0)
    TEST_FIELD_SIZE  (POLYTEXTA, y, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, y, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, y, 4)
    TEST_FIELD_SIZE  (POLYTEXTA, n, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, n, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, n, 8)
    TEST_FIELD_SIZE  (POLYTEXTA, lpstr, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, lpstr, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, lpstr, 12)
    TEST_FIELD_SIZE  (POLYTEXTA, uiFlags, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, uiFlags, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, uiFlags, 16)
    TEST_FIELD_SIZE  (POLYTEXTA, rcl, 16)
    TEST_FIELD_ALIGN (POLYTEXTA, rcl, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, rcl, 20)
    TEST_FIELD_SIZE  (POLYTEXTA, pdx, 4)
    TEST_FIELD_ALIGN (POLYTEXTA, pdx, 4)
    TEST_FIELD_OFFSET(POLYTEXTA, pdx, 36)
}

static void test_pack_POLYTEXTW(void)
{
    /* POLYTEXTW */
    TEST_TYPE_SIZE   (POLYTEXTW, 40)
    TEST_TYPE_ALIGN  (POLYTEXTW, 4)
    TEST_FIELD_SIZE  (POLYTEXTW, x, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, x, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, x, 0)
    TEST_FIELD_SIZE  (POLYTEXTW, y, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, y, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, y, 4)
    TEST_FIELD_SIZE  (POLYTEXTW, n, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, n, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, n, 8)
    TEST_FIELD_SIZE  (POLYTEXTW, lpstr, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, lpstr, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, lpstr, 12)
    TEST_FIELD_SIZE  (POLYTEXTW, uiFlags, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, uiFlags, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, uiFlags, 16)
    TEST_FIELD_SIZE  (POLYTEXTW, rcl, 16)
    TEST_FIELD_ALIGN (POLYTEXTW, rcl, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, rcl, 20)
    TEST_FIELD_SIZE  (POLYTEXTW, pdx, 4)
    TEST_FIELD_ALIGN (POLYTEXTW, pdx, 4)
    TEST_FIELD_OFFSET(POLYTEXTW, pdx, 36)
}

static void test_pack_POUTLINETEXTMETRICA(void)
{
    /* POUTLINETEXTMETRICA */
    TEST_TYPE_SIZE   (POUTLINETEXTMETRICA, 4)
    TEST_TYPE_ALIGN  (POUTLINETEXTMETRICA, 4)
    TEST_TARGET_SIZE (POUTLINETEXTMETRICA, 212)
    TEST_TARGET_ALIGN(POUTLINETEXTMETRICA, 4)
}

static void test_pack_POUTLINETEXTMETRICW(void)
{
    /* POUTLINETEXTMETRICW */
    TEST_TYPE_SIZE   (POUTLINETEXTMETRICW, 4)
    TEST_TYPE_ALIGN  (POUTLINETEXTMETRICW, 4)
    TEST_TARGET_SIZE (POUTLINETEXTMETRICW, 216)
    TEST_TARGET_ALIGN(POUTLINETEXTMETRICW, 4)
}

static void test_pack_PPELARRAY(void)
{
    /* PPELARRAY */
    TEST_TYPE_SIZE   (PPELARRAY, 4)
    TEST_TYPE_ALIGN  (PPELARRAY, 4)
    TEST_TARGET_SIZE (PPELARRAY, 20)
    TEST_TARGET_ALIGN(PPELARRAY, 4)
}

static void test_pack_PPIXELFORMATDESCRIPTOR(void)
{
    /* PPIXELFORMATDESCRIPTOR */
    TEST_TYPE_SIZE   (PPIXELFORMATDESCRIPTOR, 4)
    TEST_TYPE_ALIGN  (PPIXELFORMATDESCRIPTOR, 4)
    TEST_TARGET_SIZE (PPIXELFORMATDESCRIPTOR, 40)
    TEST_TARGET_ALIGN(PPIXELFORMATDESCRIPTOR, 4)
}

static void test_pack_PPOINTFLOAT(void)
{
    /* PPOINTFLOAT */
    TEST_TYPE_SIZE   (PPOINTFLOAT, 4)
    TEST_TYPE_ALIGN  (PPOINTFLOAT, 4)
    TEST_TARGET_SIZE (PPOINTFLOAT, 8)
    TEST_TARGET_ALIGN(PPOINTFLOAT, 4)
}

static void test_pack_PPOLYTEXTA(void)
{
    /* PPOLYTEXTA */
    TEST_TYPE_SIZE   (PPOLYTEXTA, 4)
    TEST_TYPE_ALIGN  (PPOLYTEXTA, 4)
    TEST_TARGET_SIZE (PPOLYTEXTA, 40)
    TEST_TARGET_ALIGN(PPOLYTEXTA, 4)
}

static void test_pack_PPOLYTEXTW(void)
{
    /* PPOLYTEXTW */
    TEST_TYPE_SIZE   (PPOLYTEXTW, 4)
    TEST_TYPE_ALIGN  (PPOLYTEXTW, 4)
    TEST_TARGET_SIZE (PPOLYTEXTW, 40)
    TEST_TARGET_ALIGN(PPOLYTEXTW, 4)
}

static void test_pack_PRGNDATA(void)
{
    /* PRGNDATA */
    TEST_TYPE_SIZE   (PRGNDATA, 4)
    TEST_TYPE_ALIGN  (PRGNDATA, 4)
    TEST_TARGET_SIZE (PRGNDATA, 36)
    TEST_TARGET_ALIGN(PRGNDATA, 4)
}

static void test_pack_PRGNDATAHEADER(void)
{
    /* PRGNDATAHEADER */
    TEST_TYPE_SIZE   (PRGNDATAHEADER, 4)
    TEST_TYPE_ALIGN  (PRGNDATAHEADER, 4)
    TEST_TARGET_SIZE (PRGNDATAHEADER, 32)
    TEST_TARGET_ALIGN(PRGNDATAHEADER, 4)
}

static void test_pack_PTEXTMETRICA(void)
{
    /* PTEXTMETRICA */
    TEST_TYPE_SIZE   (PTEXTMETRICA, 4)
    TEST_TYPE_ALIGN  (PTEXTMETRICA, 4)
    TEST_TARGET_SIZE (PTEXTMETRICA, 56)
    TEST_TARGET_ALIGN(PTEXTMETRICA, 4)
}

static void test_pack_PTEXTMETRICW(void)
{
    /* PTEXTMETRICW */
    TEST_TYPE_SIZE   (PTEXTMETRICW, 4)
    TEST_TYPE_ALIGN  (PTEXTMETRICW, 4)
    TEST_TARGET_SIZE (PTEXTMETRICW, 60)
    TEST_TARGET_ALIGN(PTEXTMETRICW, 4)
}

static void test_pack_PTRIVERTEX(void)
{
    /* PTRIVERTEX */
    TEST_TYPE_SIZE   (PTRIVERTEX, 4)
    TEST_TYPE_ALIGN  (PTRIVERTEX, 4)
    TEST_TARGET_SIZE (PTRIVERTEX, 16)
    TEST_TARGET_ALIGN(PTRIVERTEX, 4)
}

static void test_pack_PXFORM(void)
{
    /* PXFORM */
    TEST_TYPE_SIZE   (PXFORM, 4)
    TEST_TYPE_ALIGN  (PXFORM, 4)
    TEST_TARGET_SIZE (PXFORM, 24)
    TEST_TARGET_ALIGN(PXFORM, 4)
}

static void test_pack_RASTERIZER_STATUS(void)
{
    /* RASTERIZER_STATUS */
    TEST_TYPE_SIZE   (RASTERIZER_STATUS, 6)
    TEST_TYPE_ALIGN  (RASTERIZER_STATUS, 2)
    TEST_FIELD_SIZE  (RASTERIZER_STATUS, nSize, 2)
    TEST_FIELD_ALIGN (RASTERIZER_STATUS, nSize, 2)
    TEST_FIELD_OFFSET(RASTERIZER_STATUS, nSize, 0)
    TEST_FIELD_SIZE  (RASTERIZER_STATUS, wFlags, 2)
    TEST_FIELD_ALIGN (RASTERIZER_STATUS, wFlags, 2)
    TEST_FIELD_OFFSET(RASTERIZER_STATUS, wFlags, 2)
    TEST_FIELD_SIZE  (RASTERIZER_STATUS, nLanguageID, 2)
    TEST_FIELD_ALIGN (RASTERIZER_STATUS, nLanguageID, 2)
    TEST_FIELD_OFFSET(RASTERIZER_STATUS, nLanguageID, 4)
}

static void test_pack_RGBQUAD(void)
{
    /* RGBQUAD */
    TEST_TYPE_SIZE   (RGBQUAD, 4)
    TEST_TYPE_ALIGN  (RGBQUAD, 1)
    TEST_FIELD_SIZE  (RGBQUAD, rgbBlue, 1)
    TEST_FIELD_ALIGN (RGBQUAD, rgbBlue, 1)
    TEST_FIELD_OFFSET(RGBQUAD, rgbBlue, 0)
    TEST_FIELD_SIZE  (RGBQUAD, rgbGreen, 1)
    TEST_FIELD_ALIGN (RGBQUAD, rgbGreen, 1)
    TEST_FIELD_OFFSET(RGBQUAD, rgbGreen, 1)
    TEST_FIELD_SIZE  (RGBQUAD, rgbRed, 1)
    TEST_FIELD_ALIGN (RGBQUAD, rgbRed, 1)
    TEST_FIELD_OFFSET(RGBQUAD, rgbRed, 2)
    TEST_FIELD_SIZE  (RGBQUAD, rgbReserved, 1)
    TEST_FIELD_ALIGN (RGBQUAD, rgbReserved, 1)
    TEST_FIELD_OFFSET(RGBQUAD, rgbReserved, 3)
}

static void test_pack_RGBTRIPLE(void)
{
    /* RGBTRIPLE */
    TEST_TYPE_SIZE   (RGBTRIPLE, 3)
    TEST_TYPE_ALIGN  (RGBTRIPLE, 1)
    TEST_FIELD_SIZE  (RGBTRIPLE, rgbtBlue, 1)
    TEST_FIELD_ALIGN (RGBTRIPLE, rgbtBlue, 1)
    TEST_FIELD_OFFSET(RGBTRIPLE, rgbtBlue, 0)
    TEST_FIELD_SIZE  (RGBTRIPLE, rgbtGreen, 1)
    TEST_FIELD_ALIGN (RGBTRIPLE, rgbtGreen, 1)
    TEST_FIELD_OFFSET(RGBTRIPLE, rgbtGreen, 1)
    TEST_FIELD_SIZE  (RGBTRIPLE, rgbtRed, 1)
    TEST_FIELD_ALIGN (RGBTRIPLE, rgbtRed, 1)
    TEST_FIELD_OFFSET(RGBTRIPLE, rgbtRed, 2)
}

static void test_pack_RGNDATA(void)
{
    /* RGNDATA */
    TEST_TYPE_SIZE   (RGNDATA, 36)
    TEST_TYPE_ALIGN  (RGNDATA, 4)
    TEST_FIELD_SIZE  (RGNDATA, rdh, 32)
    TEST_FIELD_ALIGN (RGNDATA, rdh, 4)
    TEST_FIELD_OFFSET(RGNDATA, rdh, 0)
    TEST_FIELD_SIZE  (RGNDATA, Buffer, 1)
    TEST_FIELD_ALIGN (RGNDATA, Buffer, 1)
    TEST_FIELD_OFFSET(RGNDATA, Buffer, 32)
}

static void test_pack_RGNDATAHEADER(void)
{
    /* RGNDATAHEADER */
    TEST_TYPE_SIZE   (RGNDATAHEADER, 32)
    TEST_TYPE_ALIGN  (RGNDATAHEADER, 4)
    TEST_FIELD_SIZE  (RGNDATAHEADER, dwSize, 4)
    TEST_FIELD_ALIGN (RGNDATAHEADER, dwSize, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, dwSize, 0)
    TEST_FIELD_SIZE  (RGNDATAHEADER, iType, 4)
    TEST_FIELD_ALIGN (RGNDATAHEADER, iType, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, iType, 4)
    TEST_FIELD_SIZE  (RGNDATAHEADER, nCount, 4)
    TEST_FIELD_ALIGN (RGNDATAHEADER, nCount, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, nCount, 8)
    TEST_FIELD_SIZE  (RGNDATAHEADER, nRgnSize, 4)
    TEST_FIELD_ALIGN (RGNDATAHEADER, nRgnSize, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, nRgnSize, 12)
    TEST_FIELD_SIZE  (RGNDATAHEADER, rcBound, 16)
    TEST_FIELD_ALIGN (RGNDATAHEADER, rcBound, 4)
    TEST_FIELD_OFFSET(RGNDATAHEADER, rcBound, 16)
}

static void test_pack_TEXTMETRICA(void)
{
    /* TEXTMETRICA */
    TEST_TYPE_SIZE   (TEXTMETRICA, 56)
    TEST_TYPE_ALIGN  (TEXTMETRICA, 4)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmHeight, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmHeight, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmHeight, 0)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmAscent, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmAscent, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmAscent, 4)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmDescent, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmDescent, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmDescent, 8)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmInternalLeading, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmInternalLeading, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmInternalLeading, 12)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmExternalLeading, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmExternalLeading, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmExternalLeading, 16)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmAveCharWidth, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmAveCharWidth, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmAveCharWidth, 20)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmMaxCharWidth, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmMaxCharWidth, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmMaxCharWidth, 24)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmWeight, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmWeight, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmWeight, 28)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmOverhang, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmOverhang, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmOverhang, 32)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmDigitizedAspectX, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmDigitizedAspectX, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmDigitizedAspectX, 36)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmDigitizedAspectY, 4)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmDigitizedAspectY, 4)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmDigitizedAspectY, 40)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmFirstChar, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmFirstChar, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmFirstChar, 44)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmLastChar, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmLastChar, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmLastChar, 45)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmDefaultChar, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmDefaultChar, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmDefaultChar, 46)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmBreakChar, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmBreakChar, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmBreakChar, 47)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmItalic, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmItalic, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmItalic, 48)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmUnderlined, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmUnderlined, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmUnderlined, 49)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmStruckOut, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmStruckOut, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmStruckOut, 50)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmPitchAndFamily, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmPitchAndFamily, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmPitchAndFamily, 51)
    TEST_FIELD_SIZE  (TEXTMETRICA, tmCharSet, 1)
    TEST_FIELD_ALIGN (TEXTMETRICA, tmCharSet, 1)
    TEST_FIELD_OFFSET(TEXTMETRICA, tmCharSet, 52)
}

static void test_pack_TEXTMETRICW(void)
{
    /* TEXTMETRICW */
    TEST_TYPE_SIZE   (TEXTMETRICW, 60)
    TEST_TYPE_ALIGN  (TEXTMETRICW, 4)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmHeight, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmHeight, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmHeight, 0)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmAscent, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmAscent, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmAscent, 4)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmDescent, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmDescent, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmDescent, 8)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmInternalLeading, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmInternalLeading, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmInternalLeading, 12)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmExternalLeading, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmExternalLeading, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmExternalLeading, 16)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmAveCharWidth, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmAveCharWidth, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmAveCharWidth, 20)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmMaxCharWidth, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmMaxCharWidth, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmMaxCharWidth, 24)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmWeight, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmWeight, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmWeight, 28)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmOverhang, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmOverhang, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmOverhang, 32)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmDigitizedAspectX, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmDigitizedAspectX, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmDigitizedAspectX, 36)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmDigitizedAspectY, 4)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmDigitizedAspectY, 4)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmDigitizedAspectY, 40)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmFirstChar, 2)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmFirstChar, 2)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmFirstChar, 44)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmLastChar, 2)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmLastChar, 2)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmLastChar, 46)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmDefaultChar, 2)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmDefaultChar, 2)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmDefaultChar, 48)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmBreakChar, 2)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmBreakChar, 2)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmBreakChar, 50)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmItalic, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmItalic, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmItalic, 52)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmUnderlined, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmUnderlined, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmUnderlined, 53)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmStruckOut, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmStruckOut, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmStruckOut, 54)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmPitchAndFamily, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmPitchAndFamily, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmPitchAndFamily, 55)
    TEST_FIELD_SIZE  (TEXTMETRICW, tmCharSet, 1)
    TEST_FIELD_ALIGN (TEXTMETRICW, tmCharSet, 1)
    TEST_FIELD_OFFSET(TEXTMETRICW, tmCharSet, 56)
}

static void test_pack_TRIVERTEX(void)
{
    /* TRIVERTEX */
    TEST_TYPE_SIZE   (TRIVERTEX, 16)
    TEST_TYPE_ALIGN  (TRIVERTEX, 4)
    TEST_FIELD_SIZE  (TRIVERTEX, x, 4)
    TEST_FIELD_ALIGN (TRIVERTEX, x, 4)
    TEST_FIELD_OFFSET(TRIVERTEX, x, 0)
    TEST_FIELD_SIZE  (TRIVERTEX, y, 4)
    TEST_FIELD_ALIGN (TRIVERTEX, y, 4)
    TEST_FIELD_OFFSET(TRIVERTEX, y, 4)
    TEST_FIELD_SIZE  (TRIVERTEX, Red, 2)
    TEST_FIELD_ALIGN (TRIVERTEX, Red, 2)
    TEST_FIELD_OFFSET(TRIVERTEX, Red, 8)
    TEST_FIELD_SIZE  (TRIVERTEX, Green, 2)
    TEST_FIELD_ALIGN (TRIVERTEX, Green, 2)
    TEST_FIELD_OFFSET(TRIVERTEX, Green, 10)
    TEST_FIELD_SIZE  (TRIVERTEX, Blue, 2)
    TEST_FIELD_ALIGN (TRIVERTEX, Blue, 2)
    TEST_FIELD_OFFSET(TRIVERTEX, Blue, 12)
    TEST_FIELD_SIZE  (TRIVERTEX, Alpha, 2)
    TEST_FIELD_ALIGN (TRIVERTEX, Alpha, 2)
    TEST_FIELD_OFFSET(TRIVERTEX, Alpha, 14)
}

static void test_pack_TTPOLYCURVE(void)
{
    /* TTPOLYCURVE */
    TEST_TYPE_SIZE   (TTPOLYCURVE, 12)
    TEST_TYPE_ALIGN  (TTPOLYCURVE, 2)
    TEST_FIELD_SIZE  (TTPOLYCURVE, wType, 2)
    TEST_FIELD_ALIGN (TTPOLYCURVE, wType, 2)
    TEST_FIELD_OFFSET(TTPOLYCURVE, wType, 0)
    TEST_FIELD_SIZE  (TTPOLYCURVE, cpfx, 2)
    TEST_FIELD_ALIGN (TTPOLYCURVE, cpfx, 2)
    TEST_FIELD_OFFSET(TTPOLYCURVE, cpfx, 2)
    TEST_FIELD_SIZE  (TTPOLYCURVE, apfx, 8)
    TEST_FIELD_ALIGN (TTPOLYCURVE, apfx, 2)
    TEST_FIELD_OFFSET(TTPOLYCURVE, apfx, 4)
}

static void test_pack_TTPOLYGONHEADER(void)
{
    /* TTPOLYGONHEADER */
    TEST_TYPE_SIZE   (TTPOLYGONHEADER, 16)
    TEST_TYPE_ALIGN  (TTPOLYGONHEADER, 4)
    TEST_FIELD_SIZE  (TTPOLYGONHEADER, cb, 4)
    TEST_FIELD_ALIGN (TTPOLYGONHEADER, cb, 4)
    TEST_FIELD_OFFSET(TTPOLYGONHEADER, cb, 0)
    TEST_FIELD_SIZE  (TTPOLYGONHEADER, dwType, 4)
    TEST_FIELD_ALIGN (TTPOLYGONHEADER, dwType, 4)
    TEST_FIELD_OFFSET(TTPOLYGONHEADER, dwType, 4)
    TEST_FIELD_SIZE  (TTPOLYGONHEADER, pfxStart, 8)
    TEST_FIELD_ALIGN (TTPOLYGONHEADER, pfxStart, 2)
    TEST_FIELD_OFFSET(TTPOLYGONHEADER, pfxStart, 8)
}

static void test_pack_XFORM(void)
{
    /* XFORM */
    TEST_TYPE_SIZE   (XFORM, 24)
    TEST_TYPE_ALIGN  (XFORM, 4)
    TEST_FIELD_SIZE  (XFORM, eM11, 4)
    TEST_FIELD_ALIGN (XFORM, eM11, 4)
    TEST_FIELD_OFFSET(XFORM, eM11, 0)
    TEST_FIELD_SIZE  (XFORM, eM12, 4)
    TEST_FIELD_ALIGN (XFORM, eM12, 4)
    TEST_FIELD_OFFSET(XFORM, eM12, 4)
    TEST_FIELD_SIZE  (XFORM, eM21, 4)
    TEST_FIELD_ALIGN (XFORM, eM21, 4)
    TEST_FIELD_OFFSET(XFORM, eM21, 8)
    TEST_FIELD_SIZE  (XFORM, eM22, 4)
    TEST_FIELD_ALIGN (XFORM, eM22, 4)
    TEST_FIELD_OFFSET(XFORM, eM22, 12)
    TEST_FIELD_SIZE  (XFORM, eDx, 4)
    TEST_FIELD_ALIGN (XFORM, eDx, 4)
    TEST_FIELD_OFFSET(XFORM, eDx, 16)
    TEST_FIELD_SIZE  (XFORM, eDy, 4)
    TEST_FIELD_ALIGN (XFORM, eDy, 4)
    TEST_FIELD_OFFSET(XFORM, eDy, 20)
}

#endif /* _WIN64 */

static void test_pack(void)
{
    test_pack_ABC();
    test_pack_ABCFLOAT();
    test_pack_ABORTPROC();
    test_pack_BITMAP();
    test_pack_BITMAPCOREHEADER();
    test_pack_BITMAPCOREINFO();
    test_pack_BITMAPFILEHEADER();
    test_pack_BITMAPINFO();
    test_pack_BITMAPINFOHEADER();
    test_pack_BITMAPV4HEADER();
    test_pack_BITMAPV5HEADER();
    test_pack_BLENDFUNCTION();
    test_pack_CHARSETINFO();
    test_pack_CIEXYZ();
    test_pack_CIEXYZTRIPLE();
    test_pack_COLOR16();
    test_pack_COLORADJUSTMENT();
    test_pack_DEVMODEA();
    test_pack_DEVMODEW();
    test_pack_DIBSECTION();
    test_pack_DISPLAY_DEVICEA();
    test_pack_DISPLAY_DEVICEW();
    test_pack_DOCINFOA();
    test_pack_DOCINFOW();
    test_pack_EMR();
    test_pack_EMRABORTPATH();
    test_pack_EMRANGLEARC();
    test_pack_EMRARC();
    test_pack_EMRARCTO();
    test_pack_EMRBEGINPATH();
    test_pack_EMRBITBLT();
    test_pack_EMRCHORD();
    test_pack_EMRCLOSEFIGURE();
    test_pack_EMRCREATEBRUSHINDIRECT();
    test_pack_EMRCREATECOLORSPACE();
    test_pack_EMRCREATECOLORSPACEW();
    test_pack_EMRCREATEDIBPATTERNBRUSHPT();
    test_pack_EMRCREATEMONOBRUSH();
    test_pack_EMRCREATEPEN();
    test_pack_EMRDELETECOLORSPACE();
    test_pack_EMRDELETEOBJECT();
    test_pack_EMRELLIPSE();
    test_pack_EMRENDPATH();
    test_pack_EMREOF();
    test_pack_EMREXCLUDECLIPRECT();
    test_pack_EMREXTCREATEFONTINDIRECTW();
    test_pack_EMREXTCREATEPEN();
    test_pack_EMREXTFLOODFILL();
    test_pack_EMREXTSELECTCLIPRGN();
    test_pack_EMREXTTEXTOUTA();
    test_pack_EMREXTTEXTOUTW();
    test_pack_EMRFILLPATH();
    test_pack_EMRFILLRGN();
    test_pack_EMRFLATTENPATH();
    test_pack_EMRFORMAT();
    test_pack_EMRFRAMERGN();
    test_pack_EMRGDICOMMENT();
    test_pack_EMRGLSBOUNDEDRECORD();
    test_pack_EMRGLSRECORD();
    test_pack_EMRINTERSECTCLIPRECT();
    test_pack_EMRINVERTRGN();
    test_pack_EMRLINETO();
    test_pack_EMRMASKBLT();
    test_pack_EMRMODIFYWORLDTRANSFORM();
    test_pack_EMRMOVETOEX();
    test_pack_EMROFFSETCLIPRGN();
    test_pack_EMRPAINTRGN();
    test_pack_EMRPIE();
    test_pack_EMRPIXELFORMAT();
    test_pack_EMRPLGBLT();
    test_pack_EMRPOLYBEZIER();
    test_pack_EMRPOLYBEZIER16();
    test_pack_EMRPOLYBEZIERTO();
    test_pack_EMRPOLYBEZIERTO16();
    test_pack_EMRPOLYDRAW();
    test_pack_EMRPOLYDRAW16();
    test_pack_EMRPOLYGON();
    test_pack_EMRPOLYGON16();
    test_pack_EMRPOLYLINE();
    test_pack_EMRPOLYLINE16();
    test_pack_EMRPOLYLINETO();
    test_pack_EMRPOLYLINETO16();
    test_pack_EMRPOLYPOLYGON();
    test_pack_EMRPOLYPOLYGON16();
    test_pack_EMRPOLYPOLYLINE();
    test_pack_EMRPOLYPOLYLINE16();
    test_pack_EMRPOLYTEXTOUTA();
    test_pack_EMRPOLYTEXTOUTW();
    test_pack_EMRREALIZEPALETTE();
    test_pack_EMRRECTANGLE();
    test_pack_EMRRESIZEPALETTE();
    test_pack_EMRRESTOREDC();
    test_pack_EMRROUNDRECT();
    test_pack_EMRSAVEDC();
    test_pack_EMRSCALEVIEWPORTEXTEX();
    test_pack_EMRSCALEWINDOWEXTEX();
    test_pack_EMRSELECTCLIPPATH();
    test_pack_EMRSELECTCOLORSPACE();
    test_pack_EMRSELECTOBJECT();
    test_pack_EMRSELECTPALETTE();
    test_pack_EMRSETARCDIRECTION();
    test_pack_EMRSETBKCOLOR();
    test_pack_EMRSETBKMODE();
    test_pack_EMRSETBRUSHORGEX();
    test_pack_EMRSETCOLORADJUSTMENT();
    test_pack_EMRSETCOLORSPACE();
    test_pack_EMRSETDIBITSTODEVICE();
    test_pack_EMRSETICMMODE();
    test_pack_EMRSETLAYOUT();
    test_pack_EMRSETMAPMODE();
    test_pack_EMRSETMAPPERFLAGS();
    test_pack_EMRSETMETARGN();
    test_pack_EMRSETMITERLIMIT();
    test_pack_EMRSETPIXELV();
    test_pack_EMRSETPOLYFILLMODE();
    test_pack_EMRSETROP2();
    test_pack_EMRSETSTRETCHBLTMODE();
    test_pack_EMRSETTEXTALIGN();
    test_pack_EMRSETTEXTCOLOR();
    test_pack_EMRSETVIEWPORTEXTEX();
    test_pack_EMRSETVIEWPORTORGEX();
    test_pack_EMRSETWINDOWEXTEX();
    test_pack_EMRSETWINDOWORGEX();
    test_pack_EMRSETWORLDTRANSFORM();
    test_pack_EMRSTRETCHBLT();
    test_pack_EMRSTRETCHDIBITS();
    test_pack_EMRSTROKEANDFILLPATH();
    test_pack_EMRSTROKEPATH();
    test_pack_EMRTEXT();
    test_pack_EMRWIDENPATH();
    test_pack_ENHMETAHEADER();
    test_pack_ENHMETARECORD();
    test_pack_ENHMFENUMPROC();
    test_pack_ENUMLOGFONTA();
    test_pack_ENUMLOGFONTEXA();
    test_pack_ENUMLOGFONTEXW();
    test_pack_ENUMLOGFONTW();
    test_pack_EXTLOGFONTA();
    test_pack_EXTLOGFONTW();
    test_pack_EXTLOGPEN();
    test_pack_FIXED();
    test_pack_FONTENUMPROCA();
    test_pack_FONTENUMPROCW();
    test_pack_FONTSIGNATURE();
    test_pack_FXPT16DOT16();
    test_pack_FXPT2DOT30();
    test_pack_GCP_RESULTSA();
    test_pack_GCP_RESULTSW();
    test_pack_GLYPHMETRICS();
    test_pack_GLYPHMETRICSFLOAT();
    test_pack_GOBJENUMPROC();
    test_pack_GRADIENT_RECT();
    test_pack_GRADIENT_TRIANGLE();
    test_pack_HANDLETABLE();
    test_pack_ICMENUMPROCA();
    test_pack_ICMENUMPROCW();
    test_pack_KERNINGPAIR();
    test_pack_LAYERPLANEDESCRIPTOR();
    test_pack_LCSCSTYPE();
    test_pack_LCSGAMUTMATCH();
    test_pack_LINEDDAPROC();
    test_pack_LOCALESIGNATURE();
    test_pack_LOGBRUSH();
    test_pack_LOGCOLORSPACEA();
    test_pack_LOGCOLORSPACEW();
    test_pack_LOGFONTA();
    test_pack_LOGFONTW();
    test_pack_LOGPEN();
    test_pack_LPABC();
    test_pack_LPABCFLOAT();
    test_pack_LPBITMAP();
    test_pack_LPBITMAPCOREHEADER();
    test_pack_LPBITMAPCOREINFO();
    test_pack_LPBITMAPFILEHEADER();
    test_pack_LPBITMAPINFO();
    test_pack_LPBITMAPINFOHEADER();
    test_pack_LPBITMAPV5HEADER();
    test_pack_LPCHARSETINFO();
    test_pack_LPCIEXYZ();
    test_pack_LPCIEXYZTRIPLE();
    test_pack_LPCOLORADJUSTMENT();
    test_pack_LPDEVMODEA();
    test_pack_LPDEVMODEW();
    test_pack_LPDIBSECTION();
    test_pack_LPDISPLAY_DEVICEA();
    test_pack_LPDISPLAY_DEVICEW();
    test_pack_LPDOCINFOA();
    test_pack_LPDOCINFOW();
    test_pack_LPENHMETAHEADER();
    test_pack_LPENHMETARECORD();
    test_pack_LPENUMLOGFONTA();
    test_pack_LPENUMLOGFONTEXA();
    test_pack_LPENUMLOGFONTEXW();
    test_pack_LPENUMLOGFONTW();
    test_pack_LPEXTLOGFONTA();
    test_pack_LPEXTLOGFONTW();
    test_pack_LPEXTLOGPEN();
    test_pack_LPFONTSIGNATURE();
    test_pack_LPGCP_RESULTSA();
    test_pack_LPGCP_RESULTSW();
    test_pack_LPGLYPHMETRICS();
    test_pack_LPGLYPHMETRICSFLOAT();
    test_pack_LPGRADIENT_RECT();
    test_pack_LPGRADIENT_TRIANGLE();
    test_pack_LPHANDLETABLE();
    test_pack_LPKERNINGPAIR();
    test_pack_LPLAYERPLANEDESCRIPTOR();
    test_pack_LPLOCALESIGNATURE();
    test_pack_LPLOGBRUSH();
    test_pack_LPLOGCOLORSPACEA();
    test_pack_LPLOGCOLORSPACEW();
    test_pack_LPLOGFONTA();
    test_pack_LPLOGFONTW();
    test_pack_LPLOGPEN();
    test_pack_LPMAT2();
    test_pack_LPMETAFILEPICT();
    test_pack_LPMETAHEADER();
    test_pack_LPMETARECORD();
    test_pack_LPNEWTEXTMETRICA();
    test_pack_LPNEWTEXTMETRICW();
    test_pack_LPOUTLINETEXTMETRICA();
    test_pack_LPOUTLINETEXTMETRICW();
    test_pack_LPPANOSE();
    test_pack_LPPELARRAY();
    test_pack_LPPIXELFORMATDESCRIPTOR();
    test_pack_LPPOINTFX();
    test_pack_LPPOLYTEXTA();
    test_pack_LPPOLYTEXTW();
    test_pack_LPRASTERIZER_STATUS();
    test_pack_LPRGBQUAD();
    test_pack_LPRGNDATA();
    test_pack_LPTEXTMETRICA();
    test_pack_LPTEXTMETRICW();
    test_pack_LPTRIVERTEX();
    test_pack_LPTTPOLYCURVE();
    test_pack_LPTTPOLYGONHEADER();
    test_pack_LPXFORM();
    test_pack_MAT2();
    test_pack_METAFILEPICT();
    test_pack_METAHEADER();
    test_pack_METARECORD();
    test_pack_MFENUMPROC();
    test_pack_NEWTEXTMETRICA();
    test_pack_NEWTEXTMETRICEXA();
    test_pack_NEWTEXTMETRICEXW();
    test_pack_NEWTEXTMETRICW();
    test_pack_NPEXTLOGPEN();
    test_pack_OLDFONTENUMPROC();
    test_pack_OLDFONTENUMPROCA();
    test_pack_OLDFONTENUMPROCW();
    test_pack_OUTLINETEXTMETRICA();
    test_pack_OUTLINETEXTMETRICW();
    test_pack_PABC();
    test_pack_PABCFLOAT();
    test_pack_PANOSE();
    test_pack_PATTERN();
    test_pack_PBITMAP();
    test_pack_PBITMAPCOREHEADER();
    test_pack_PBITMAPCOREINFO();
    test_pack_PBITMAPFILEHEADER();
    test_pack_PBITMAPINFO();
    test_pack_PBITMAPINFOHEADER();
    test_pack_PBITMAPV4HEADER();
    test_pack_PBITMAPV5HEADER();
    test_pack_PBLENDFUNCTION();
    test_pack_PCHARSETINFO();
    test_pack_PCOLORADJUSTMENT();
    test_pack_PDEVMODEA();
    test_pack_PDEVMODEW();
    test_pack_PDIBSECTION();
    test_pack_PDISPLAY_DEVICEA();
    test_pack_PDISPLAY_DEVICEW();
    test_pack_PELARRAY();
    test_pack_PEMR();
    test_pack_PEMRABORTPATH();
    test_pack_PEMRANGLEARC();
    test_pack_PEMRARC();
    test_pack_PEMRARCTO();
    test_pack_PEMRBEGINPATH();
    test_pack_PEMRBITBLT();
    test_pack_PEMRCHORD();
    test_pack_PEMRCLOSEFIGURE();
    test_pack_PEMRCREATEBRUSHINDIRECT();
    test_pack_PEMRCREATECOLORSPACE();
    test_pack_PEMRCREATECOLORSPACEW();
    test_pack_PEMRCREATEDIBPATTERNBRUSHPT();
    test_pack_PEMRCREATEMONOBRUSH();
    test_pack_PEMRCREATEPALETTE();
    test_pack_PEMRCREATEPEN();
    test_pack_PEMRDELETECOLORSPACE();
    test_pack_PEMRDELETEOBJECT();
    test_pack_PEMRELLIPSE();
    test_pack_PEMRENDPATH();
    test_pack_PEMREOF();
    test_pack_PEMREXCLUDECLIPRECT();
    test_pack_PEMREXTCREATEFONTINDIRECTW();
    test_pack_PEMREXTCREATEPEN();
    test_pack_PEMREXTFLOODFILL();
    test_pack_PEMREXTSELECTCLIPRGN();
    test_pack_PEMREXTTEXTOUTA();
    test_pack_PEMREXTTEXTOUTW();
    test_pack_PEMRFILLPATH();
    test_pack_PEMRFILLRGN();
    test_pack_PEMRFLATTENPATH();
    test_pack_PEMRFORMAT();
    test_pack_PEMRFRAMERGN();
    test_pack_PEMRGDICOMMENT();
    test_pack_PEMRGLSBOUNDEDRECORD();
    test_pack_PEMRGLSRECORD();
    test_pack_PEMRINTERSECTCLIPRECT();
    test_pack_PEMRINVERTRGN();
    test_pack_PEMRLINETO();
    test_pack_PEMRMASKBLT();
    test_pack_PEMRMODIFYWORLDTRANSFORM();
    test_pack_PEMRMOVETOEX();
    test_pack_PEMROFFSETCLIPRGN();
    test_pack_PEMRPAINTRGN();
    test_pack_PEMRPIE();
    test_pack_PEMRPIXELFORMAT();
    test_pack_PEMRPLGBLT();
    test_pack_PEMRPOLYBEZIER();
    test_pack_PEMRPOLYBEZIER16();
    test_pack_PEMRPOLYBEZIERTO();
    test_pack_PEMRPOLYBEZIERTO16();
    test_pack_PEMRPOLYDRAW();
    test_pack_PEMRPOLYDRAW16();
    test_pack_PEMRPOLYGON();
    test_pack_PEMRPOLYGON16();
    test_pack_PEMRPOLYLINE();
    test_pack_PEMRPOLYLINE16();
    test_pack_PEMRPOLYLINETO();
    test_pack_PEMRPOLYLINETO16();
    test_pack_PEMRPOLYPOLYGON();
    test_pack_PEMRPOLYPOLYGON16();
    test_pack_PEMRPOLYPOLYLINE();
    test_pack_PEMRPOLYPOLYLINE16();
    test_pack_PEMRPOLYTEXTOUTA();
    test_pack_PEMRPOLYTEXTOUTW();
    test_pack_PEMRREALIZEPALETTE();
    test_pack_PEMRRECTANGLE();
    test_pack_PEMRRESIZEPALETTE();
    test_pack_PEMRRESTOREDC();
    test_pack_PEMRROUNDRECT();
    test_pack_PEMRSAVEDC();
    test_pack_PEMRSCALEVIEWPORTEXTEX();
    test_pack_PEMRSCALEWINDOWEXTEX();
    test_pack_PEMRSELECTCLIPPATH();
    test_pack_PEMRSELECTCOLORSPACE();
    test_pack_PEMRSELECTOBJECT();
    test_pack_PEMRSELECTPALETTE();
    test_pack_PEMRSETARCDIRECTION();
    test_pack_PEMRSETBKCOLOR();
    test_pack_PEMRSETBKMODE();
    test_pack_PEMRSETBRUSHORGEX();
    test_pack_PEMRSETCOLORADJUSTMENT();
    test_pack_PEMRSETCOLORSPACE();
    test_pack_PEMRSETDIBITSTODEVICE();
    test_pack_PEMRSETICMMODE();
    test_pack_PEMRSETLAYOUT();
    test_pack_PEMRSETMAPMODE();
    test_pack_PEMRSETMAPPERFLAGS();
    test_pack_PEMRSETMETARGN();
    test_pack_PEMRSETMITERLIMIT();
    test_pack_PEMRSETPALETTEENTRIES();
    test_pack_PEMRSETPIXELV();
    test_pack_PEMRSETPOLYFILLMODE();
    test_pack_PEMRSETROP2();
    test_pack_PEMRSETSTRETCHBLTMODE();
    test_pack_PEMRSETTEXTALIGN();
    test_pack_PEMRSETTEXTCOLOR();
    test_pack_PEMRSETVIEWPORTEXTEX();
    test_pack_PEMRSETVIEWPORTORGEX();
    test_pack_PEMRSETWINDOWEXTEX();
    test_pack_PEMRSETWINDOWORGEX();
    test_pack_PEMRSETWORLDTRANSFORM();
    test_pack_PEMRSTRETCHBLT();
    test_pack_PEMRSTRETCHDIBITS();
    test_pack_PEMRSTROKEANDFILLPATH();
    test_pack_PEMRSTROKEPATH();
    test_pack_PEMRTEXT();
    test_pack_PEMRWIDENPATH();
    test_pack_PENHMETAHEADER();
    test_pack_PEXTLOGFONTA();
    test_pack_PEXTLOGFONTW();
    test_pack_PEXTLOGPEN();
    test_pack_PFONTSIGNATURE();
    test_pack_PGLYPHMETRICSFLOAT();
    test_pack_PGRADIENT_RECT();
    test_pack_PGRADIENT_TRIANGLE();
    test_pack_PHANDLETABLE();
    test_pack_PIXELFORMATDESCRIPTOR();
    test_pack_PLAYERPLANEDESCRIPTOR();
    test_pack_PLOCALESIGNATURE();
    test_pack_PLOGBRUSH();
    test_pack_PLOGFONTA();
    test_pack_PLOGFONTW();
    test_pack_PMETAHEADER();
    test_pack_PMETARECORD();
    test_pack_PNEWTEXTMETRICA();
    test_pack_PNEWTEXTMETRICW();
    test_pack_POINTFLOAT();
    test_pack_POINTFX();
    test_pack_POLYTEXTA();
    test_pack_POLYTEXTW();
    test_pack_POUTLINETEXTMETRICA();
    test_pack_POUTLINETEXTMETRICW();
    test_pack_PPELARRAY();
    test_pack_PPIXELFORMATDESCRIPTOR();
    test_pack_PPOINTFLOAT();
    test_pack_PPOLYTEXTA();
    test_pack_PPOLYTEXTW();
    test_pack_PRGNDATA();
    test_pack_PRGNDATAHEADER();
    test_pack_PTEXTMETRICA();
    test_pack_PTEXTMETRICW();
    test_pack_PTRIVERTEX();
    test_pack_PXFORM();
    test_pack_RASTERIZER_STATUS();
    test_pack_RGBQUAD();
    test_pack_RGBTRIPLE();
    test_pack_RGNDATA();
    test_pack_RGNDATAHEADER();
    test_pack_TEXTMETRICA();
    test_pack_TEXTMETRICW();
    test_pack_TRIVERTEX();
    test_pack_TTPOLYCURVE();
    test_pack_TTPOLYGONHEADER();
    test_pack_XFORM();
}

START_TEST(generated)
{
    test_pack();
}
