/* 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 <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wtypes.h"
#include "shellapi.h"
#include "winuser.h"
#include "wingdi.h"
#include "shlobj.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_BLOB(void)
{
    /* BLOB */
    TEST_TYPE_SIZE   (BLOB, 16)
    TEST_TYPE_ALIGN  (BLOB, 8)
    TEST_FIELD_SIZE  (BLOB, cbSize, 4)
    TEST_FIELD_ALIGN (BLOB, cbSize, 4)
    TEST_FIELD_OFFSET(BLOB, cbSize, 0)
    TEST_FIELD_SIZE  (BLOB, pBlobData, 8)
    TEST_FIELD_ALIGN (BLOB, pBlobData, 8)
    TEST_FIELD_OFFSET(BLOB, pBlobData, 8)
}

static void test_pack_BSTR(void)
{
    /* BSTR */
    TEST_TYPE_SIZE   (BSTR, 8)
    TEST_TYPE_ALIGN  (BSTR, 8)
    TEST_TARGET_SIZE (BSTR, 2)
    TEST_TARGET_ALIGN(BSTR, 2)
}

static void test_pack_BSTRBLOB(void)
{
    /* BSTRBLOB */
    TEST_TYPE_SIZE   (BSTRBLOB, 16)
    TEST_TYPE_ALIGN  (BSTRBLOB, 8)
    TEST_FIELD_SIZE  (BSTRBLOB, cbSize, 4)
    TEST_FIELD_ALIGN (BSTRBLOB, cbSize, 4)
    TEST_FIELD_OFFSET(BSTRBLOB, cbSize, 0)
    TEST_FIELD_SIZE  (BSTRBLOB, pData, 8)
    TEST_FIELD_ALIGN (BSTRBLOB, pData, 8)
    TEST_FIELD_OFFSET(BSTRBLOB, pData, 8)
}

static void test_pack_BYTE_BLOB(void)
{
    /* BYTE_BLOB */
    TEST_TYPE_SIZE   (BYTE_BLOB, 8)
    TEST_TYPE_ALIGN  (BYTE_BLOB, 4)
    TEST_FIELD_SIZE  (BYTE_BLOB, clSize, 4)
    TEST_FIELD_ALIGN (BYTE_BLOB, clSize, 4)
    TEST_FIELD_OFFSET(BYTE_BLOB, clSize, 0)
    TEST_FIELD_SIZE  (BYTE_BLOB, abData, 1)
    TEST_FIELD_ALIGN (BYTE_BLOB, abData, 1)
    TEST_FIELD_OFFSET(BYTE_BLOB, abData, 4)
}

static void test_pack_BYTE_SIZEDARR(void)
{
    /* BYTE_SIZEDARR */
    TEST_TYPE_SIZE   (BYTE_SIZEDARR, 16)
    TEST_TYPE_ALIGN  (BYTE_SIZEDARR, 8)
    TEST_FIELD_SIZE  (BYTE_SIZEDARR, clSize, 4)
    TEST_FIELD_ALIGN (BYTE_SIZEDARR, clSize, 4)
    TEST_FIELD_OFFSET(BYTE_SIZEDARR, clSize, 0)
    TEST_FIELD_SIZE  (BYTE_SIZEDARR, pData, 8)
    TEST_FIELD_ALIGN (BYTE_SIZEDARR, pData, 8)
    TEST_FIELD_OFFSET(BYTE_SIZEDARR, pData, 8)
}

static void test_pack_CLIPDATA(void)
{
    /* CLIPDATA */
    TEST_TYPE_SIZE   (CLIPDATA, 16)
    TEST_TYPE_ALIGN  (CLIPDATA, 8)
    TEST_FIELD_SIZE  (CLIPDATA, cbSize, 4)
    TEST_FIELD_ALIGN (CLIPDATA, cbSize, 4)
    TEST_FIELD_OFFSET(CLIPDATA, cbSize, 0)
    TEST_FIELD_SIZE  (CLIPDATA, ulClipFmt, 4)
    TEST_FIELD_ALIGN (CLIPDATA, ulClipFmt, 4)
    TEST_FIELD_OFFSET(CLIPDATA, ulClipFmt, 4)
    TEST_FIELD_SIZE  (CLIPDATA, pClipData, 8)
    TEST_FIELD_ALIGN (CLIPDATA, pClipData, 8)
    TEST_FIELD_OFFSET(CLIPDATA, pClipData, 8)
}

static void test_pack_CLIPFORMAT(void)
{
    /* CLIPFORMAT */
    TEST_TYPE_SIZE   (CLIPFORMAT, 2)
    TEST_TYPE_ALIGN  (CLIPFORMAT, 2)
    TEST_TYPE_UNSIGNED(CLIPFORMAT)
}

static void test_pack_COAUTHIDENTITY(void)
{
    /* COAUTHIDENTITY */
    TEST_TYPE_SIZE   (COAUTHIDENTITY, 48)
    TEST_TYPE_ALIGN  (COAUTHIDENTITY, 8)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, User, 8)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, User, 8)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, User, 0)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, UserLength, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, UserLength, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, UserLength, 8)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, Domain, 8)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, Domain, 8)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, Domain, 16)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, DomainLength, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, DomainLength, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, DomainLength, 24)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, Password, 8)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, Password, 8)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, Password, 32)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, PasswordLength, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, PasswordLength, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, PasswordLength, 40)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, Flags, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, Flags, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, Flags, 44)
}

static void test_pack_COAUTHINFO(void)
{
    /* COAUTHINFO */
    TEST_TYPE_SIZE   (COAUTHINFO, 40)
    TEST_TYPE_ALIGN  (COAUTHINFO, 8)
    TEST_FIELD_SIZE  (COAUTHINFO, dwAuthnSvc, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwAuthnSvc, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwAuthnSvc, 0)
    TEST_FIELD_SIZE  (COAUTHINFO, dwAuthzSvc, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwAuthzSvc, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwAuthzSvc, 4)
    TEST_FIELD_SIZE  (COAUTHINFO, pwszServerPrincName, 8)
    TEST_FIELD_ALIGN (COAUTHINFO, pwszServerPrincName, 8)
    TEST_FIELD_OFFSET(COAUTHINFO, pwszServerPrincName, 8)
    TEST_FIELD_SIZE  (COAUTHINFO, dwAuthnLevel, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwAuthnLevel, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwAuthnLevel, 16)
    TEST_FIELD_SIZE  (COAUTHINFO, dwImpersonationLevel, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwImpersonationLevel, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwImpersonationLevel, 20)
    TEST_FIELD_SIZE  (COAUTHINFO, pAuthIdentityData, 8)
    TEST_FIELD_ALIGN (COAUTHINFO, pAuthIdentityData, 8)
    TEST_FIELD_OFFSET(COAUTHINFO, pAuthIdentityData, 24)
    TEST_FIELD_SIZE  (COAUTHINFO, dwCapabilities, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwCapabilities, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwCapabilities, 32)
}

static void test_pack_DATE(void)
{
    /* DATE */
    TEST_TYPE_SIZE   (DATE, 8)
    TEST_TYPE_ALIGN  (DATE, 8)
}

static void test_pack_DOUBLE(void)
{
    /* DOUBLE */
    TEST_TYPE_SIZE   (DOUBLE, 8)
    TEST_TYPE_ALIGN  (DOUBLE, 8)
}

static void test_pack_DWORD_SIZEDARR(void)
{
    /* DWORD_SIZEDARR */
    TEST_TYPE_SIZE   (DWORD_SIZEDARR, 16)
    TEST_TYPE_ALIGN  (DWORD_SIZEDARR, 8)
    TEST_FIELD_SIZE  (DWORD_SIZEDARR, clSize, 4)
    TEST_FIELD_ALIGN (DWORD_SIZEDARR, clSize, 4)
    TEST_FIELD_OFFSET(DWORD_SIZEDARR, clSize, 0)
    TEST_FIELD_SIZE  (DWORD_SIZEDARR, pData, 8)
    TEST_FIELD_ALIGN (DWORD_SIZEDARR, pData, 8)
    TEST_FIELD_OFFSET(DWORD_SIZEDARR, pData, 8)
}

static void test_pack_FLAGGED_BYTE_BLOB(void)
{
    /* FLAGGED_BYTE_BLOB */
    TEST_TYPE_SIZE   (FLAGGED_BYTE_BLOB, 12)
    TEST_TYPE_ALIGN  (FLAGGED_BYTE_BLOB, 4)
    TEST_FIELD_SIZE  (FLAGGED_BYTE_BLOB, fFlags, 4)
    TEST_FIELD_ALIGN (FLAGGED_BYTE_BLOB, fFlags, 4)
    TEST_FIELD_OFFSET(FLAGGED_BYTE_BLOB, fFlags, 0)
    TEST_FIELD_SIZE  (FLAGGED_BYTE_BLOB, clSize, 4)
    TEST_FIELD_ALIGN (FLAGGED_BYTE_BLOB, clSize, 4)
    TEST_FIELD_OFFSET(FLAGGED_BYTE_BLOB, clSize, 4)
    TEST_FIELD_SIZE  (FLAGGED_BYTE_BLOB, abData, 1)
    TEST_FIELD_ALIGN (FLAGGED_BYTE_BLOB, abData, 1)
    TEST_FIELD_OFFSET(FLAGGED_BYTE_BLOB, abData, 8)
}

static void test_pack_FLAGGED_WORD_BLOB(void)
{
    /* FLAGGED_WORD_BLOB */
    TEST_TYPE_SIZE   (FLAGGED_WORD_BLOB, 12)
    TEST_TYPE_ALIGN  (FLAGGED_WORD_BLOB, 4)
    TEST_FIELD_SIZE  (FLAGGED_WORD_BLOB, fFlags, 4)
    TEST_FIELD_ALIGN (FLAGGED_WORD_BLOB, fFlags, 4)
    TEST_FIELD_OFFSET(FLAGGED_WORD_BLOB, fFlags, 0)
    TEST_FIELD_SIZE  (FLAGGED_WORD_BLOB, clSize, 4)
    TEST_FIELD_ALIGN (FLAGGED_WORD_BLOB, clSize, 4)
    TEST_FIELD_OFFSET(FLAGGED_WORD_BLOB, clSize, 4)
    TEST_FIELD_SIZE  (FLAGGED_WORD_BLOB, asData, 2)
    TEST_FIELD_ALIGN (FLAGGED_WORD_BLOB, asData, 2)
    TEST_FIELD_OFFSET(FLAGGED_WORD_BLOB, asData, 8)
}

static void test_pack_HMETAFILEPICT(void)
{
    /* HMETAFILEPICT */
    TEST_TYPE_SIZE   (HMETAFILEPICT, 8)
    TEST_TYPE_ALIGN  (HMETAFILEPICT, 8)
}

static void test_pack_HYPER_SIZEDARR(void)
{
    /* HYPER_SIZEDARR */
    TEST_TYPE_SIZE   (HYPER_SIZEDARR, 16)
    TEST_TYPE_ALIGN  (HYPER_SIZEDARR, 8)
    TEST_FIELD_SIZE  (HYPER_SIZEDARR, clSize, 4)
    TEST_FIELD_ALIGN (HYPER_SIZEDARR, clSize, 4)
    TEST_FIELD_OFFSET(HYPER_SIZEDARR, clSize, 0)
    TEST_FIELD_SIZE  (HYPER_SIZEDARR, pData, 8)
    TEST_FIELD_ALIGN (HYPER_SIZEDARR, pData, 8)
    TEST_FIELD_OFFSET(HYPER_SIZEDARR, pData, 8)
}

static void test_pack_LPBLOB(void)
{
    /* LPBLOB */
    TEST_TYPE_SIZE   (LPBLOB, 8)
    TEST_TYPE_ALIGN  (LPBLOB, 8)
}

static void test_pack_LPBSTR(void)
{
    /* LPBSTR */
    TEST_TYPE_SIZE   (LPBSTR, 8)
    TEST_TYPE_ALIGN  (LPBSTR, 8)
    TEST_TARGET_SIZE (LPBSTR, 8)
    TEST_TARGET_ALIGN(LPBSTR, 8)
}

static void test_pack_LPBSTRBLOB(void)
{
    /* LPBSTRBLOB */
    TEST_TYPE_SIZE   (LPBSTRBLOB, 8)
    TEST_TYPE_ALIGN  (LPBSTRBLOB, 8)
}

static void test_pack_LPCOLESTR(void)
{
    /* LPCOLESTR */
    TEST_TYPE_SIZE   (LPCOLESTR, 8)
    TEST_TYPE_ALIGN  (LPCOLESTR, 8)
    TEST_TARGET_SIZE (LPCOLESTR, 2)
    TEST_TARGET_ALIGN(LPCOLESTR, 2)
}

static void test_pack_LPCY(void)
{
    /* LPCY */
    TEST_TYPE_SIZE   (LPCY, 8)
    TEST_TYPE_ALIGN  (LPCY, 8)
}

static void test_pack_LPDECIMAL(void)
{
    /* LPDECIMAL */
    TEST_TYPE_SIZE   (LPDECIMAL, 8)
    TEST_TYPE_ALIGN  (LPDECIMAL, 8)
}

static void test_pack_LPOLESTR(void)
{
    /* LPOLESTR */
    TEST_TYPE_SIZE   (LPOLESTR, 8)
    TEST_TYPE_ALIGN  (LPOLESTR, 8)
    TEST_TARGET_SIZE (LPOLESTR, 2)
    TEST_TARGET_ALIGN(LPOLESTR, 2)
}

static void test_pack_OLECHAR(void)
{
    /* OLECHAR */
    TEST_TYPE_SIZE   (OLECHAR, 2)
    TEST_TYPE_ALIGN  (OLECHAR, 2)
}

static void test_pack_PROPID(void)
{
    /* PROPID */
    TEST_TYPE_SIZE   (PROPID, 4)
    TEST_TYPE_ALIGN  (PROPID, 4)
}

static void test_pack_RemHBITMAP(void)
{
    /* RemHBITMAP */
    TEST_TYPE_SIZE   (RemHBITMAP, 8)
    TEST_TYPE_ALIGN  (RemHBITMAP, 4)
    TEST_FIELD_SIZE  (RemHBITMAP, cbData, 4)
    TEST_FIELD_ALIGN (RemHBITMAP, cbData, 4)
    TEST_FIELD_OFFSET(RemHBITMAP, cbData, 0)
    TEST_FIELD_SIZE  (RemHBITMAP, data, 1)
    TEST_FIELD_ALIGN (RemHBITMAP, data, 1)
    TEST_FIELD_OFFSET(RemHBITMAP, data, 4)
}

static void test_pack_RemHENHMETAFILE(void)
{
    /* RemHENHMETAFILE */
    TEST_TYPE_SIZE   (RemHENHMETAFILE, 8)
    TEST_TYPE_ALIGN  (RemHENHMETAFILE, 4)
    TEST_FIELD_SIZE  (RemHENHMETAFILE, cbData, 4)
    TEST_FIELD_ALIGN (RemHENHMETAFILE, cbData, 4)
    TEST_FIELD_OFFSET(RemHENHMETAFILE, cbData, 0)
    TEST_FIELD_SIZE  (RemHENHMETAFILE, data, 1)
    TEST_FIELD_ALIGN (RemHENHMETAFILE, data, 1)
    TEST_FIELD_OFFSET(RemHENHMETAFILE, data, 4)
}

static void test_pack_RemHGLOBAL(void)
{
    /* RemHGLOBAL */
    TEST_TYPE_SIZE   (RemHGLOBAL, 12)
    TEST_TYPE_ALIGN  (RemHGLOBAL, 4)
    TEST_FIELD_SIZE  (RemHGLOBAL, fNullHGlobal, 4)
    TEST_FIELD_ALIGN (RemHGLOBAL, fNullHGlobal, 4)
    TEST_FIELD_OFFSET(RemHGLOBAL, fNullHGlobal, 0)
    TEST_FIELD_SIZE  (RemHGLOBAL, cbData, 4)
    TEST_FIELD_ALIGN (RemHGLOBAL, cbData, 4)
    TEST_FIELD_OFFSET(RemHGLOBAL, cbData, 4)
    TEST_FIELD_SIZE  (RemHGLOBAL, data, 1)
    TEST_FIELD_ALIGN (RemHGLOBAL, data, 1)
    TEST_FIELD_OFFSET(RemHGLOBAL, data, 8)
}

static void test_pack_RemHMETAFILEPICT(void)
{
    /* RemHMETAFILEPICT */
    TEST_TYPE_SIZE   (RemHMETAFILEPICT, 20)
    TEST_TYPE_ALIGN  (RemHMETAFILEPICT, 4)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, mm, 4)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, mm, 4)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, mm, 0)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, xExt, 4)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, xExt, 4)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, xExt, 4)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, yExt, 4)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, yExt, 4)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, yExt, 8)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, cbData, 4)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, cbData, 4)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, cbData, 12)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, data, 1)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, data, 1)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, data, 16)
}

static void test_pack_RemHPALETTE(void)
{
    /* RemHPALETTE */
    TEST_TYPE_SIZE   (RemHPALETTE, 8)
    TEST_TYPE_ALIGN  (RemHPALETTE, 4)
    TEST_FIELD_SIZE  (RemHPALETTE, cbData, 4)
    TEST_FIELD_ALIGN (RemHPALETTE, cbData, 4)
    TEST_FIELD_OFFSET(RemHPALETTE, cbData, 0)
    TEST_FIELD_SIZE  (RemHPALETTE, data, 1)
    TEST_FIELD_ALIGN (RemHPALETTE, data, 1)
    TEST_FIELD_OFFSET(RemHPALETTE, data, 4)
}

static void test_pack_SCODE(void)
{
    /* SCODE */
    TEST_TYPE_SIZE   (SCODE, 4)
    TEST_TYPE_ALIGN  (SCODE, 4)
}

static void test_pack_UP_BYTE_BLOB(void)
{
    /* UP_BYTE_BLOB */
    TEST_TYPE_SIZE   (UP_BYTE_BLOB, 8)
    TEST_TYPE_ALIGN  (UP_BYTE_BLOB, 8)
    TEST_TARGET_SIZE (UP_BYTE_BLOB, 8)
    TEST_TARGET_ALIGN(UP_BYTE_BLOB, 4)
}

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

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

static void test_pack_VARIANT_BOOL(void)
{
    /* VARIANT_BOOL */
    TEST_TYPE_SIZE   (VARIANT_BOOL, 2)
    TEST_TYPE_ALIGN  (VARIANT_BOOL, 2)
    TEST_TYPE_SIGNED(VARIANT_BOOL)
}

static void test_pack_VARTYPE(void)
{
    /* VARTYPE */
    TEST_TYPE_SIZE   (VARTYPE, 2)
    TEST_TYPE_ALIGN  (VARTYPE, 2)
    TEST_TYPE_UNSIGNED(VARTYPE)
}

static void test_pack_WORD_SIZEDARR(void)
{
    /* WORD_SIZEDARR */
    TEST_TYPE_SIZE   (WORD_SIZEDARR, 16)
    TEST_TYPE_ALIGN  (WORD_SIZEDARR, 8)
    TEST_FIELD_SIZE  (WORD_SIZEDARR, clSize, 4)
    TEST_FIELD_ALIGN (WORD_SIZEDARR, clSize, 4)
    TEST_FIELD_OFFSET(WORD_SIZEDARR, clSize, 0)
    TEST_FIELD_SIZE  (WORD_SIZEDARR, pData, 8)
    TEST_FIELD_ALIGN (WORD_SIZEDARR, pData, 8)
    TEST_FIELD_OFFSET(WORD_SIZEDARR, pData, 8)
}

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

static void test_pack_userBITMAP(void)
{
    /* userBITMAP */
    TEST_TYPE_SIZE   (userBITMAP, 28)
    TEST_TYPE_ALIGN  (userBITMAP, 4)
    TEST_FIELD_SIZE  (userBITMAP, bmType, 4)
    TEST_FIELD_ALIGN (userBITMAP, bmType, 4)
    TEST_FIELD_OFFSET(userBITMAP, bmType, 0)
    TEST_FIELD_SIZE  (userBITMAP, bmWidth, 4)
    TEST_FIELD_ALIGN (userBITMAP, bmWidth, 4)
    TEST_FIELD_OFFSET(userBITMAP, bmWidth, 4)
    TEST_FIELD_SIZE  (userBITMAP, bmHeight, 4)
    TEST_FIELD_ALIGN (userBITMAP, bmHeight, 4)
    TEST_FIELD_OFFSET(userBITMAP, bmHeight, 8)
    TEST_FIELD_SIZE  (userBITMAP, bmWidthBytes, 4)
    TEST_FIELD_ALIGN (userBITMAP, bmWidthBytes, 4)
    TEST_FIELD_OFFSET(userBITMAP, bmWidthBytes, 12)
    TEST_FIELD_SIZE  (userBITMAP, bmPlanes, 2)
    TEST_FIELD_ALIGN (userBITMAP, bmPlanes, 2)
    TEST_FIELD_OFFSET(userBITMAP, bmPlanes, 16)
    TEST_FIELD_SIZE  (userBITMAP, bmBitsPixel, 2)
    TEST_FIELD_ALIGN (userBITMAP, bmBitsPixel, 2)
    TEST_FIELD_OFFSET(userBITMAP, bmBitsPixel, 18)
    TEST_FIELD_SIZE  (userBITMAP, cbSize, 4)
    TEST_FIELD_ALIGN (userBITMAP, cbSize, 4)
    TEST_FIELD_OFFSET(userBITMAP, cbSize, 20)
    TEST_FIELD_SIZE  (userBITMAP, pBuffer, 1)
    TEST_FIELD_ALIGN (userBITMAP, pBuffer, 1)
    TEST_FIELD_OFFSET(userBITMAP, pBuffer, 24)
}

static void test_pack_userCLIPFORMAT(void)
{
    /* userCLIPFORMAT */
    TEST_FIELD_SIZE  (userCLIPFORMAT, fContext, 4)
    TEST_FIELD_ALIGN (userCLIPFORMAT, fContext, 4)
    TEST_FIELD_OFFSET(userCLIPFORMAT, fContext, 0)
}

static void test_pack_userHBITMAP(void)
{
    /* userHBITMAP */
    TEST_FIELD_SIZE  (userHBITMAP, fContext, 4)
    TEST_FIELD_ALIGN (userHBITMAP, fContext, 4)
    TEST_FIELD_OFFSET(userHBITMAP, fContext, 0)
}

static void test_pack_userHENHMETAFILE(void)
{
    /* userHENHMETAFILE */
    TEST_FIELD_SIZE  (userHENHMETAFILE, fContext, 4)
    TEST_FIELD_ALIGN (userHENHMETAFILE, fContext, 4)
    TEST_FIELD_OFFSET(userHENHMETAFILE, fContext, 0)
}

static void test_pack_userHGLOBAL(void)
{
    /* userHGLOBAL */
    TEST_FIELD_SIZE  (userHGLOBAL, fContext, 4)
    TEST_FIELD_ALIGN (userHGLOBAL, fContext, 4)
    TEST_FIELD_OFFSET(userHGLOBAL, fContext, 0)
}

static void test_pack_userHMETAFILE(void)
{
    /* userHMETAFILE */
    TEST_FIELD_SIZE  (userHMETAFILE, fContext, 4)
    TEST_FIELD_ALIGN (userHMETAFILE, fContext, 4)
    TEST_FIELD_OFFSET(userHMETAFILE, fContext, 0)
}

static void test_pack_userHMETAFILEPICT(void)
{
    /* userHMETAFILEPICT */
    TEST_FIELD_SIZE  (userHMETAFILEPICT, fContext, 4)
    TEST_FIELD_ALIGN (userHMETAFILEPICT, fContext, 4)
    TEST_FIELD_OFFSET(userHMETAFILEPICT, fContext, 0)
}

static void test_pack_userHPALETTE(void)
{
    /* userHPALETTE */
    TEST_FIELD_SIZE  (userHPALETTE, fContext, 4)
    TEST_FIELD_ALIGN (userHPALETTE, fContext, 4)
    TEST_FIELD_OFFSET(userHPALETTE, fContext, 0)
}

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

static void test_pack_wireCLIPFORMAT(void)
{
    /* wireCLIPFORMAT */
    TEST_TYPE_SIZE   (wireCLIPFORMAT, 8)
    TEST_TYPE_ALIGN  (wireCLIPFORMAT, 8)
}

static void test_pack_wireHBITMAP(void)
{
    /* wireHBITMAP */
    TEST_TYPE_SIZE   (wireHBITMAP, 8)
    TEST_TYPE_ALIGN  (wireHBITMAP, 8)
}

static void test_pack_wireHENHMETAFILE(void)
{
    /* wireHENHMETAFILE */
    TEST_TYPE_SIZE   (wireHENHMETAFILE, 8)
    TEST_TYPE_ALIGN  (wireHENHMETAFILE, 8)
}

static void test_pack_wireHGLOBAL(void)
{
    /* wireHGLOBAL */
    TEST_TYPE_SIZE   (wireHGLOBAL, 8)
    TEST_TYPE_ALIGN  (wireHGLOBAL, 8)
}

static void test_pack_wireHMETAFILE(void)
{
    /* wireHMETAFILE */
    TEST_TYPE_SIZE   (wireHMETAFILE, 8)
    TEST_TYPE_ALIGN  (wireHMETAFILE, 8)
}

static void test_pack_wireHMETAFILEPICT(void)
{
    /* wireHMETAFILEPICT */
    TEST_TYPE_SIZE   (wireHMETAFILEPICT, 8)
    TEST_TYPE_ALIGN  (wireHMETAFILEPICT, 8)
}

static void test_pack_wireHPALETTE(void)
{
    /* wireHPALETTE */
    TEST_TYPE_SIZE   (wireHPALETTE, 8)
    TEST_TYPE_ALIGN  (wireHPALETTE, 8)
}

static void test_pack_CLSID(void)
{
    /* CLSID */
    TEST_TYPE_SIZE   (CLSID, 16)
    TEST_TYPE_ALIGN  (CLSID, 4)
}

static void test_pack_FMTID(void)
{
    /* FMTID */
    TEST_TYPE_SIZE   (FMTID, 16)
    TEST_TYPE_ALIGN  (FMTID, 4)
}

static void test_pack_IID(void)
{
    /* IID */
    TEST_TYPE_SIZE   (IID, 16)
    TEST_TYPE_ALIGN  (IID, 4)
}

static void test_pack_APPBARDATA(void)
{
    /* APPBARDATA */
    TEST_TYPE_SIZE   (APPBARDATA, 48)
    TEST_TYPE_ALIGN  (APPBARDATA, 8)
    TEST_FIELD_SIZE  (APPBARDATA, cbSize, 4)
    TEST_FIELD_ALIGN (APPBARDATA, cbSize, 4)
    TEST_FIELD_OFFSET(APPBARDATA, cbSize, 0)
    TEST_FIELD_SIZE  (APPBARDATA, hWnd, 8)
    TEST_FIELD_ALIGN (APPBARDATA, hWnd, 8)
    TEST_FIELD_OFFSET(APPBARDATA, hWnd, 8)
    TEST_FIELD_SIZE  (APPBARDATA, uCallbackMessage, 4)
    TEST_FIELD_ALIGN (APPBARDATA, uCallbackMessage, 4)
    TEST_FIELD_OFFSET(APPBARDATA, uCallbackMessage, 16)
    TEST_FIELD_SIZE  (APPBARDATA, uEdge, 4)
    TEST_FIELD_ALIGN (APPBARDATA, uEdge, 4)
    TEST_FIELD_OFFSET(APPBARDATA, uEdge, 20)
    TEST_FIELD_SIZE  (APPBARDATA, rc, 16)
    TEST_FIELD_ALIGN (APPBARDATA, rc, 4)
    TEST_FIELD_OFFSET(APPBARDATA, rc, 24)
    TEST_FIELD_SIZE  (APPBARDATA, lParam, 8)
    TEST_FIELD_ALIGN (APPBARDATA, lParam, 8)
    TEST_FIELD_OFFSET(APPBARDATA, lParam, 40)
}

static void test_pack_DRAGINFOA(void)
{
    /* DRAGINFOA */
    TEST_TYPE_SIZE   (DRAGINFOA, 32)
    TEST_TYPE_ALIGN  (DRAGINFOA, 8)
    TEST_FIELD_SIZE  (DRAGINFOA, uSize, 4)
    TEST_FIELD_ALIGN (DRAGINFOA, uSize, 4)
    TEST_FIELD_OFFSET(DRAGINFOA, uSize, 0)
    TEST_FIELD_SIZE  (DRAGINFOA, pt, 8)
    TEST_FIELD_ALIGN (DRAGINFOA, pt, 4)
    TEST_FIELD_OFFSET(DRAGINFOA, pt, 4)
    TEST_FIELD_SIZE  (DRAGINFOA, fNC, 4)
    TEST_FIELD_ALIGN (DRAGINFOA, fNC, 4)
    TEST_FIELD_OFFSET(DRAGINFOA, fNC, 12)
    TEST_FIELD_SIZE  (DRAGINFOA, lpFileList, 8)
    TEST_FIELD_ALIGN (DRAGINFOA, lpFileList, 8)
    TEST_FIELD_OFFSET(DRAGINFOA, lpFileList, 16)
    TEST_FIELD_SIZE  (DRAGINFOA, grfKeyState, 4)
    TEST_FIELD_ALIGN (DRAGINFOA, grfKeyState, 4)
    TEST_FIELD_OFFSET(DRAGINFOA, grfKeyState, 24)
}

static void test_pack_DRAGINFOW(void)
{
    /* DRAGINFOW */
    TEST_TYPE_SIZE   (DRAGINFOW, 32)
    TEST_TYPE_ALIGN  (DRAGINFOW, 8)
    TEST_FIELD_SIZE  (DRAGINFOW, uSize, 4)
    TEST_FIELD_ALIGN (DRAGINFOW, uSize, 4)
    TEST_FIELD_OFFSET(DRAGINFOW, uSize, 0)
    TEST_FIELD_SIZE  (DRAGINFOW, pt, 8)
    TEST_FIELD_ALIGN (DRAGINFOW, pt, 4)
    TEST_FIELD_OFFSET(DRAGINFOW, pt, 4)
    TEST_FIELD_SIZE  (DRAGINFOW, fNC, 4)
    TEST_FIELD_ALIGN (DRAGINFOW, fNC, 4)
    TEST_FIELD_OFFSET(DRAGINFOW, fNC, 12)
    TEST_FIELD_SIZE  (DRAGINFOW, lpFileList, 8)
    TEST_FIELD_ALIGN (DRAGINFOW, lpFileList, 8)
    TEST_FIELD_OFFSET(DRAGINFOW, lpFileList, 16)
    TEST_FIELD_SIZE  (DRAGINFOW, grfKeyState, 4)
    TEST_FIELD_ALIGN (DRAGINFOW, grfKeyState, 4)
    TEST_FIELD_OFFSET(DRAGINFOW, grfKeyState, 24)
}

static void test_pack_FILEOP_FLAGS(void)
{
    /* FILEOP_FLAGS */
    TEST_TYPE_SIZE   (FILEOP_FLAGS, 2)
    TEST_TYPE_ALIGN  (FILEOP_FLAGS, 2)
    TEST_TYPE_UNSIGNED(FILEOP_FLAGS)
}

static void test_pack_LPDRAGINFOA(void)
{
    /* LPDRAGINFOA */
    TEST_TYPE_SIZE   (LPDRAGINFOA, 8)
    TEST_TYPE_ALIGN  (LPDRAGINFOA, 8)
    TEST_TARGET_SIZE (LPDRAGINFOA, 32)
    TEST_TARGET_ALIGN(LPDRAGINFOA, 8)
}

static void test_pack_LPDRAGINFOW(void)
{
    /* LPDRAGINFOW */
    TEST_TYPE_SIZE   (LPDRAGINFOW, 8)
    TEST_TYPE_ALIGN  (LPDRAGINFOW, 8)
    TEST_TARGET_SIZE (LPDRAGINFOW, 32)
    TEST_TARGET_ALIGN(LPDRAGINFOW, 8)
}

static void test_pack_LPSHELLEXECUTEINFOA(void)
{
    /* LPSHELLEXECUTEINFOA */
    TEST_TYPE_SIZE   (LPSHELLEXECUTEINFOA, 8)
    TEST_TYPE_ALIGN  (LPSHELLEXECUTEINFOA, 8)
}

static void test_pack_LPSHELLEXECUTEINFOW(void)
{
    /* LPSHELLEXECUTEINFOW */
    TEST_TYPE_SIZE   (LPSHELLEXECUTEINFOW, 8)
    TEST_TYPE_ALIGN  (LPSHELLEXECUTEINFOW, 8)
}

static void test_pack_LPSHFILEOPSTRUCTA(void)
{
    /* LPSHFILEOPSTRUCTA */
    TEST_TYPE_SIZE   (LPSHFILEOPSTRUCTA, 8)
    TEST_TYPE_ALIGN  (LPSHFILEOPSTRUCTA, 8)
    TEST_TARGET_SIZE (LPSHFILEOPSTRUCTA, 56)
    TEST_TARGET_ALIGN(LPSHFILEOPSTRUCTA, 8)
}

static void test_pack_LPSHFILEOPSTRUCTW(void)
{
    /* LPSHFILEOPSTRUCTW */
    TEST_TYPE_SIZE   (LPSHFILEOPSTRUCTW, 8)
    TEST_TYPE_ALIGN  (LPSHFILEOPSTRUCTW, 8)
    TEST_TARGET_SIZE (LPSHFILEOPSTRUCTW, 56)
    TEST_TARGET_ALIGN(LPSHFILEOPSTRUCTW, 8)
}

static void test_pack_LPSHNAMEMAPPINGA(void)
{
    /* LPSHNAMEMAPPINGA */
    TEST_TYPE_SIZE   (LPSHNAMEMAPPINGA, 8)
    TEST_TYPE_ALIGN  (LPSHNAMEMAPPINGA, 8)
    TEST_TARGET_SIZE (LPSHNAMEMAPPINGA, 24)
    TEST_TARGET_ALIGN(LPSHNAMEMAPPINGA, 8)
}

static void test_pack_LPSHNAMEMAPPINGW(void)
{
    /* LPSHNAMEMAPPINGW */
    TEST_TYPE_SIZE   (LPSHNAMEMAPPINGW, 8)
    TEST_TYPE_ALIGN  (LPSHNAMEMAPPINGW, 8)
    TEST_TARGET_SIZE (LPSHNAMEMAPPINGW, 24)
    TEST_TARGET_ALIGN(LPSHNAMEMAPPINGW, 8)
}

static void test_pack_NOTIFYICONDATAA(void)
{
    /* NOTIFYICONDATAA */
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, cbSize, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, cbSize, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, cbSize, 0)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, hWnd, 8)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, hWnd, 8)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, hWnd, 8)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, uID, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, uID, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, uID, 16)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, uFlags, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, uFlags, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, uFlags, 20)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, uCallbackMessage, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, uCallbackMessage, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, uCallbackMessage, 24)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, hIcon, 8)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, hIcon, 8)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, hIcon, 32)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, szTip, 128)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, szTip, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, szTip, 40)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, dwState, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, dwState, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, dwState, 168)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, dwStateMask, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, dwStateMask, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, dwStateMask, 172)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, szInfo, 256)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, szInfo, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, szInfo, 176)
}

static void test_pack_NOTIFYICONDATAW(void)
{
    /* NOTIFYICONDATAW */
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, cbSize, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, cbSize, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, cbSize, 0)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, hWnd, 8)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, hWnd, 8)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, hWnd, 8)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, uID, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, uID, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, uID, 16)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, uFlags, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, uFlags, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, uFlags, 20)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, uCallbackMessage, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, uCallbackMessage, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, uCallbackMessage, 24)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, hIcon, 8)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, hIcon, 8)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, hIcon, 32)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, szTip, 256)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, szTip, 2)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, szTip, 40)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, dwState, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, dwState, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, dwState, 296)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, dwStateMask, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, dwStateMask, 4)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, dwStateMask, 300)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, szInfo, 512)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, szInfo, 2)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, szInfo, 304)
}

static void test_pack_PAPPBARDATA(void)
{
    /* PAPPBARDATA */
    TEST_TYPE_SIZE   (PAPPBARDATA, 8)
    TEST_TYPE_ALIGN  (PAPPBARDATA, 8)
    TEST_TARGET_SIZE (PAPPBARDATA, 48)
    TEST_TARGET_ALIGN(PAPPBARDATA, 8)
}

static void test_pack_PNOTIFYICONDATAA(void)
{
    /* PNOTIFYICONDATAA */
    TEST_TYPE_SIZE   (PNOTIFYICONDATAA, 8)
    TEST_TYPE_ALIGN  (PNOTIFYICONDATAA, 8)
}

static void test_pack_PNOTIFYICONDATAW(void)
{
    /* PNOTIFYICONDATAW */
    TEST_TYPE_SIZE   (PNOTIFYICONDATAW, 8)
    TEST_TYPE_ALIGN  (PNOTIFYICONDATAW, 8)
}

static void test_pack_PRINTEROP_FLAGS(void)
{
    /* PRINTEROP_FLAGS */
    TEST_TYPE_SIZE   (PRINTEROP_FLAGS, 2)
    TEST_TYPE_ALIGN  (PRINTEROP_FLAGS, 2)
    TEST_TYPE_UNSIGNED(PRINTEROP_FLAGS)
}

static void test_pack_SHELLEXECUTEINFOA(void)
{
    /* SHELLEXECUTEINFOA */
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, cbSize, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, cbSize, 4)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, cbSize, 0)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, fMask, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, fMask, 4)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, fMask, 4)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, hwnd, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, hwnd, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, hwnd, 8)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpVerb, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpVerb, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpVerb, 16)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpFile, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpFile, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpFile, 24)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpParameters, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpParameters, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpParameters, 32)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpDirectory, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpDirectory, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpDirectory, 40)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, nShow, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, nShow, 4)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, nShow, 48)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, hInstApp, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, hInstApp, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, hInstApp, 56)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpIDList, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpIDList, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpIDList, 64)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpClass, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpClass, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpClass, 72)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, hkeyClass, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, hkeyClass, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, hkeyClass, 80)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, dwHotKey, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, dwHotKey, 4)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, dwHotKey, 88)
}

static void test_pack_SHELLEXECUTEINFOW(void)
{
    /* SHELLEXECUTEINFOW */
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, cbSize, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, cbSize, 4)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, cbSize, 0)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, fMask, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, fMask, 4)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, fMask, 4)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, hwnd, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, hwnd, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, hwnd, 8)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpVerb, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpVerb, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpVerb, 16)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpFile, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpFile, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpFile, 24)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpParameters, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpParameters, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpParameters, 32)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpDirectory, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpDirectory, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpDirectory, 40)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, nShow, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, nShow, 4)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, nShow, 48)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, hInstApp, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, hInstApp, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, hInstApp, 56)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpIDList, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpIDList, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpIDList, 64)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpClass, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpClass, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpClass, 72)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, hkeyClass, 8)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, hkeyClass, 8)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, hkeyClass, 80)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, dwHotKey, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, dwHotKey, 4)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, dwHotKey, 88)
}

static void test_pack_SHFILEINFOA(void)
{
    /* SHFILEINFOA */
    TEST_TYPE_SIZE   (SHFILEINFOA, 360)
    TEST_TYPE_ALIGN  (SHFILEINFOA, 8)
    TEST_FIELD_SIZE  (SHFILEINFOA, hIcon, 8)
    TEST_FIELD_ALIGN (SHFILEINFOA, hIcon, 8)
    TEST_FIELD_OFFSET(SHFILEINFOA, hIcon, 0)
    TEST_FIELD_SIZE  (SHFILEINFOA, iIcon, 4)
    TEST_FIELD_ALIGN (SHFILEINFOA, iIcon, 4)
    TEST_FIELD_OFFSET(SHFILEINFOA, iIcon, 8)
    TEST_FIELD_SIZE  (SHFILEINFOA, dwAttributes, 4)
    TEST_FIELD_ALIGN (SHFILEINFOA, dwAttributes, 4)
    TEST_FIELD_OFFSET(SHFILEINFOA, dwAttributes, 12)
    TEST_FIELD_SIZE  (SHFILEINFOA, szDisplayName, 260)
    TEST_FIELD_ALIGN (SHFILEINFOA, szDisplayName, 1)
    TEST_FIELD_OFFSET(SHFILEINFOA, szDisplayName, 16)
    TEST_FIELD_SIZE  (SHFILEINFOA, szTypeName, 80)
    TEST_FIELD_ALIGN (SHFILEINFOA, szTypeName, 1)
    TEST_FIELD_OFFSET(SHFILEINFOA, szTypeName, 276)
}

static void test_pack_SHFILEINFOW(void)
{
    /* SHFILEINFOW */
    TEST_TYPE_SIZE   (SHFILEINFOW, 696)
    TEST_TYPE_ALIGN  (SHFILEINFOW, 8)
    TEST_FIELD_SIZE  (SHFILEINFOW, hIcon, 8)
    TEST_FIELD_ALIGN (SHFILEINFOW, hIcon, 8)
    TEST_FIELD_OFFSET(SHFILEINFOW, hIcon, 0)
    TEST_FIELD_SIZE  (SHFILEINFOW, iIcon, 4)
    TEST_FIELD_ALIGN (SHFILEINFOW, iIcon, 4)
    TEST_FIELD_OFFSET(SHFILEINFOW, iIcon, 8)
    TEST_FIELD_SIZE  (SHFILEINFOW, dwAttributes, 4)
    TEST_FIELD_ALIGN (SHFILEINFOW, dwAttributes, 4)
    TEST_FIELD_OFFSET(SHFILEINFOW, dwAttributes, 12)
    TEST_FIELD_SIZE  (SHFILEINFOW, szDisplayName, 520)
    TEST_FIELD_ALIGN (SHFILEINFOW, szDisplayName, 2)
    TEST_FIELD_OFFSET(SHFILEINFOW, szDisplayName, 16)
    TEST_FIELD_SIZE  (SHFILEINFOW, szTypeName, 160)
    TEST_FIELD_ALIGN (SHFILEINFOW, szTypeName, 2)
    TEST_FIELD_OFFSET(SHFILEINFOW, szTypeName, 536)
}

static void test_pack_SHFILEOPSTRUCTA(void)
{
    /* SHFILEOPSTRUCTA */
    TEST_TYPE_SIZE   (SHFILEOPSTRUCTA, 56)
    TEST_TYPE_ALIGN  (SHFILEOPSTRUCTA, 8)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, hwnd, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, hwnd, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, hwnd, 0)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, wFunc, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, wFunc, 4)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, wFunc, 8)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, pFrom, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, pFrom, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, pFrom, 16)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, pTo, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, pTo, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, pTo, 24)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, fFlags, 2)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, fFlags, 2)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, fFlags, 32)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, fAnyOperationsAborted, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, fAnyOperationsAborted, 4)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, fAnyOperationsAborted, 36)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, hNameMappings, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, hNameMappings, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, hNameMappings, 40)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, lpszProgressTitle, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, lpszProgressTitle, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, lpszProgressTitle, 48)
}

static void test_pack_SHFILEOPSTRUCTW(void)
{
    /* SHFILEOPSTRUCTW */
    TEST_TYPE_SIZE   (SHFILEOPSTRUCTW, 56)
    TEST_TYPE_ALIGN  (SHFILEOPSTRUCTW, 8)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, hwnd, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, hwnd, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, hwnd, 0)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, wFunc, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, wFunc, 4)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, wFunc, 8)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, pFrom, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, pFrom, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, pFrom, 16)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, pTo, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, pTo, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, pTo, 24)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, fFlags, 2)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, fFlags, 2)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, fFlags, 32)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, fAnyOperationsAborted, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, fAnyOperationsAborted, 4)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, fAnyOperationsAborted, 36)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, hNameMappings, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, hNameMappings, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, hNameMappings, 40)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, lpszProgressTitle, 8)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, lpszProgressTitle, 8)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, lpszProgressTitle, 48)
}

static void test_pack_SHNAMEMAPPINGA(void)
{
    /* SHNAMEMAPPINGA */
    TEST_TYPE_SIZE   (SHNAMEMAPPINGA, 24)
    TEST_TYPE_ALIGN  (SHNAMEMAPPINGA, 8)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGA, pszOldPath, 8)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGA, pszOldPath, 8)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGA, pszOldPath, 0)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGA, pszNewPath, 8)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGA, pszNewPath, 8)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGA, pszNewPath, 8)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGA, cchOldPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGA, cchOldPath, 4)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGA, cchOldPath, 16)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGA, cchNewPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGA, cchNewPath, 4)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGA, cchNewPath, 20)
}

static void test_pack_SHNAMEMAPPINGW(void)
{
    /* SHNAMEMAPPINGW */
    TEST_TYPE_SIZE   (SHNAMEMAPPINGW, 24)
    TEST_TYPE_ALIGN  (SHNAMEMAPPINGW, 8)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGW, pszOldPath, 8)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGW, pszOldPath, 8)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGW, pszOldPath, 0)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGW, pszNewPath, 8)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGW, pszNewPath, 8)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGW, pszNewPath, 8)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGW, cchOldPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGW, cchOldPath, 4)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGW, cchOldPath, 16)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGW, cchNewPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGW, cchNewPath, 4)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGW, cchNewPath, 20)
}

static void test_pack_ITEMIDLIST(void)
{
    /* ITEMIDLIST (pack 1) */
    TEST_TYPE_SIZE   (ITEMIDLIST, 3)
    TEST_TYPE_ALIGN  (ITEMIDLIST, 1)
    TEST_FIELD_SIZE  (ITEMIDLIST, mkid, 3)
    TEST_FIELD_ALIGN (ITEMIDLIST, mkid, 1)
    TEST_FIELD_OFFSET(ITEMIDLIST, mkid, 0)
}

static void test_pack_LPCITEMIDLIST(void)
{
    /* LPCITEMIDLIST */
    TEST_TYPE_SIZE   (LPCITEMIDLIST, 8)
    TEST_TYPE_ALIGN  (LPCITEMIDLIST, 8)
    TEST_TARGET_SIZE (LPCITEMIDLIST, 3)
    TEST_TARGET_ALIGN(LPCITEMIDLIST, 1)
}

static void test_pack_LPCSHITEMID(void)
{
    /* LPCSHITEMID */
    TEST_TYPE_SIZE   (LPCSHITEMID, 8)
    TEST_TYPE_ALIGN  (LPCSHITEMID, 8)
    TEST_TARGET_SIZE (LPCSHITEMID, 3)
    TEST_TARGET_ALIGN(LPCSHITEMID, 1)
}

static void test_pack_LPITEMIDLIST(void)
{
    /* LPITEMIDLIST */
    TEST_TYPE_SIZE   (LPITEMIDLIST, 8)
    TEST_TYPE_ALIGN  (LPITEMIDLIST, 8)
}

static void test_pack_LPSHELLDETAILS(void)
{
    /* LPSHELLDETAILS */
    TEST_TYPE_SIZE   (LPSHELLDETAILS, 8)
    TEST_TYPE_ALIGN  (LPSHELLDETAILS, 8)
}

static void test_pack_LPSHITEMID(void)
{
    /* LPSHITEMID */
    TEST_TYPE_SIZE   (LPSHITEMID, 8)
    TEST_TYPE_ALIGN  (LPSHITEMID, 8)
}

static void test_pack_LPSTRRET(void)
{
    /* LPSTRRET */
    TEST_TYPE_SIZE   (LPSTRRET, 8)
    TEST_TYPE_ALIGN  (LPSTRRET, 8)
}

static void test_pack_SHELLDETAILS(void)
{
    /* SHELLDETAILS (pack 1) */
    TEST_FIELD_SIZE  (SHELLDETAILS, fmt, 4)
    TEST_FIELD_ALIGN (SHELLDETAILS, fmt, 1)
    TEST_FIELD_OFFSET(SHELLDETAILS, fmt, 0)
    TEST_FIELD_SIZE  (SHELLDETAILS, cxChar, 4)
    TEST_FIELD_ALIGN (SHELLDETAILS, cxChar, 1)
    TEST_FIELD_OFFSET(SHELLDETAILS, cxChar, 4)
}

static void test_pack_SHITEMID(void)
{
    /* SHITEMID (pack 1) */
    TEST_TYPE_SIZE   (SHITEMID, 3)
    TEST_TYPE_ALIGN  (SHITEMID, 1)
    TEST_FIELD_SIZE  (SHITEMID, cb, 2)
    TEST_FIELD_ALIGN (SHITEMID, cb, 1)
    TEST_FIELD_OFFSET(SHITEMID, cb, 0)
    TEST_FIELD_SIZE  (SHITEMID, abID, 1)
    TEST_FIELD_ALIGN (SHITEMID, abID, 1)
    TEST_FIELD_OFFSET(SHITEMID, abID, 2)
}

static void test_pack_STRRET(void)
{
    /* STRRET (pack 8) */
    TEST_FIELD_SIZE  (STRRET, uType, 4)
    TEST_FIELD_ALIGN (STRRET, uType, 4)
    TEST_FIELD_OFFSET(STRRET, uType, 0)
}

static void test_pack_AUTO_SCROLL_DATA(void)
{
    /* AUTO_SCROLL_DATA (pack 1) */
    TEST_TYPE_SIZE   (AUTO_SCROLL_DATA, 48)
    TEST_TYPE_ALIGN  (AUTO_SCROLL_DATA, 1)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, iNextSample, 4)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, iNextSample, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, iNextSample, 0)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, dwLastScroll, 4)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, dwLastScroll, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, dwLastScroll, 4)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, bFull, 4)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, bFull, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, bFull, 8)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, pts, 24)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, pts, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, pts, 12)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, dwTimes, 12)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, dwTimes, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, dwTimes, 36)
}

static void test_pack_BFFCALLBACK(void)
{
    /* BFFCALLBACK */
    TEST_TYPE_SIZE   (BFFCALLBACK, 8)
    TEST_TYPE_ALIGN  (BFFCALLBACK, 8)
}

static void test_pack_BROWSEINFOA(void)
{
    /* BROWSEINFOA (pack 8) */
    TEST_TYPE_SIZE   (BROWSEINFOA, 64)
    TEST_TYPE_ALIGN  (BROWSEINFOA, 8)
    TEST_FIELD_SIZE  (BROWSEINFOA, hwndOwner, 8)
    TEST_FIELD_ALIGN (BROWSEINFOA, hwndOwner, 8)
    TEST_FIELD_OFFSET(BROWSEINFOA, hwndOwner, 0)
    TEST_FIELD_SIZE  (BROWSEINFOA, pidlRoot, 8)
    TEST_FIELD_ALIGN (BROWSEINFOA, pidlRoot, 8)
    TEST_FIELD_OFFSET(BROWSEINFOA, pidlRoot, 8)
    TEST_FIELD_SIZE  (BROWSEINFOA, pszDisplayName, 8)
    TEST_FIELD_ALIGN (BROWSEINFOA, pszDisplayName, 8)
    TEST_FIELD_OFFSET(BROWSEINFOA, pszDisplayName, 16)
    TEST_FIELD_SIZE  (BROWSEINFOA, lpszTitle, 8)
    TEST_FIELD_ALIGN (BROWSEINFOA, lpszTitle, 8)
    TEST_FIELD_OFFSET(BROWSEINFOA, lpszTitle, 24)
    TEST_FIELD_SIZE  (BROWSEINFOA, ulFlags, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, ulFlags, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, ulFlags, 32)
    TEST_FIELD_SIZE  (BROWSEINFOA, lpfn, 8)
    TEST_FIELD_ALIGN (BROWSEINFOA, lpfn, 8)
    TEST_FIELD_OFFSET(BROWSEINFOA, lpfn, 40)
    TEST_FIELD_SIZE  (BROWSEINFOA, lParam, 8)
    TEST_FIELD_ALIGN (BROWSEINFOA, lParam, 8)
    TEST_FIELD_OFFSET(BROWSEINFOA, lParam, 48)
    TEST_FIELD_SIZE  (BROWSEINFOA, iImage, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, iImage, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, iImage, 56)
}

static void test_pack_BROWSEINFOW(void)
{
    /* BROWSEINFOW (pack 8) */
    TEST_TYPE_SIZE   (BROWSEINFOW, 64)
    TEST_TYPE_ALIGN  (BROWSEINFOW, 8)
    TEST_FIELD_SIZE  (BROWSEINFOW, hwndOwner, 8)
    TEST_FIELD_ALIGN (BROWSEINFOW, hwndOwner, 8)
    TEST_FIELD_OFFSET(BROWSEINFOW, hwndOwner, 0)
    TEST_FIELD_SIZE  (BROWSEINFOW, pidlRoot, 8)
    TEST_FIELD_ALIGN (BROWSEINFOW, pidlRoot, 8)
    TEST_FIELD_OFFSET(BROWSEINFOW, pidlRoot, 8)
    TEST_FIELD_SIZE  (BROWSEINFOW, pszDisplayName, 8)
    TEST_FIELD_ALIGN (BROWSEINFOW, pszDisplayName, 8)
    TEST_FIELD_OFFSET(BROWSEINFOW, pszDisplayName, 16)
    TEST_FIELD_SIZE  (BROWSEINFOW, lpszTitle, 8)
    TEST_FIELD_ALIGN (BROWSEINFOW, lpszTitle, 8)
    TEST_FIELD_OFFSET(BROWSEINFOW, lpszTitle, 24)
    TEST_FIELD_SIZE  (BROWSEINFOW, ulFlags, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, ulFlags, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, ulFlags, 32)
    TEST_FIELD_SIZE  (BROWSEINFOW, lpfn, 8)
    TEST_FIELD_ALIGN (BROWSEINFOW, lpfn, 8)
    TEST_FIELD_OFFSET(BROWSEINFOW, lpfn, 40)
    TEST_FIELD_SIZE  (BROWSEINFOW, lParam, 8)
    TEST_FIELD_ALIGN (BROWSEINFOW, lParam, 8)
    TEST_FIELD_OFFSET(BROWSEINFOW, lParam, 48)
    TEST_FIELD_SIZE  (BROWSEINFOW, iImage, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, iImage, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, iImage, 56)
}

static void test_pack_CABINETSTATE(void)
{
    /* CABINETSTATE (pack 1) */
    TEST_TYPE_SIZE   (CABINETSTATE, 12)
    TEST_TYPE_ALIGN  (CABINETSTATE, 1)
    TEST_FIELD_SIZE  (CABINETSTATE, cLength, 2)
    TEST_FIELD_ALIGN (CABINETSTATE, cLength, 1)
    TEST_FIELD_OFFSET(CABINETSTATE, cLength, 0)
    TEST_FIELD_SIZE  (CABINETSTATE, nVersion, 2)
    TEST_FIELD_ALIGN (CABINETSTATE, nVersion, 1)
    TEST_FIELD_OFFSET(CABINETSTATE, nVersion, 2)
    TEST_FIELD_SIZE  (CABINETSTATE, fMenuEnumFilter, 4)
    TEST_FIELD_ALIGN (CABINETSTATE, fMenuEnumFilter, 1)
    TEST_FIELD_OFFSET(CABINETSTATE, fMenuEnumFilter, 8)
}

static void test_pack_CIDA(void)
{
    /* CIDA (pack 1) */
    TEST_TYPE_SIZE   (CIDA, 8)
    TEST_TYPE_ALIGN  (CIDA, 1)
    TEST_FIELD_SIZE  (CIDA, cidl, 4)
    TEST_FIELD_ALIGN (CIDA, cidl, 1)
    TEST_FIELD_OFFSET(CIDA, cidl, 0)
    TEST_FIELD_SIZE  (CIDA, aoffset, 4)
    TEST_FIELD_ALIGN (CIDA, aoffset, 1)
    TEST_FIELD_OFFSET(CIDA, aoffset, 4)
}

static void test_pack_CSFV(void)
{
    /* CSFV (pack 8) */
    TEST_FIELD_SIZE  (CSFV, cbSize, 4)
    TEST_FIELD_ALIGN (CSFV, cbSize, 4)
    TEST_FIELD_OFFSET(CSFV, cbSize, 0)
    TEST_FIELD_SIZE  (CSFV, pshf, 8)
    TEST_FIELD_ALIGN (CSFV, pshf, 8)
    TEST_FIELD_OFFSET(CSFV, pshf, 8)
    TEST_FIELD_SIZE  (CSFV, psvOuter, 8)
    TEST_FIELD_ALIGN (CSFV, psvOuter, 8)
    TEST_FIELD_OFFSET(CSFV, psvOuter, 16)
    TEST_FIELD_SIZE  (CSFV, pidl, 8)
    TEST_FIELD_ALIGN (CSFV, pidl, 8)
    TEST_FIELD_OFFSET(CSFV, pidl, 24)
    TEST_FIELD_SIZE  (CSFV, lEvents, 4)
    TEST_FIELD_ALIGN (CSFV, lEvents, 4)
    TEST_FIELD_OFFSET(CSFV, lEvents, 32)
    TEST_FIELD_SIZE  (CSFV, pfnCallback, 8)
    TEST_FIELD_ALIGN (CSFV, pfnCallback, 8)
    TEST_FIELD_OFFSET(CSFV, pfnCallback, 40)
}

static void test_pack_DROPFILES(void)
{
    /* DROPFILES (pack 1) */
    TEST_TYPE_SIZE   (DROPFILES, 20)
    TEST_TYPE_ALIGN  (DROPFILES, 1)
    TEST_FIELD_SIZE  (DROPFILES, pFiles, 4)
    TEST_FIELD_ALIGN (DROPFILES, pFiles, 1)
    TEST_FIELD_OFFSET(DROPFILES, pFiles, 0)
    TEST_FIELD_SIZE  (DROPFILES, pt, 8)
    TEST_FIELD_ALIGN (DROPFILES, pt, 1)
    TEST_FIELD_OFFSET(DROPFILES, pt, 4)
    TEST_FIELD_SIZE  (DROPFILES, fNC, 4)
    TEST_FIELD_ALIGN (DROPFILES, fNC, 1)
    TEST_FIELD_OFFSET(DROPFILES, fNC, 12)
    TEST_FIELD_SIZE  (DROPFILES, fWide, 4)
    TEST_FIELD_ALIGN (DROPFILES, fWide, 1)
    TEST_FIELD_OFFSET(DROPFILES, fWide, 16)
}

static void test_pack_FILEDESCRIPTORA(void)
{
    /* FILEDESCRIPTORA (pack 1) */
    TEST_TYPE_SIZE   (FILEDESCRIPTORA, 332)
    TEST_TYPE_ALIGN  (FILEDESCRIPTORA, 1)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, dwFlags, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, dwFlags, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, dwFlags, 0)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, clsid, 16)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, clsid, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, clsid, 4)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, sizel, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, sizel, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, sizel, 20)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, pointl, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, pointl, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, pointl, 28)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, dwFileAttributes, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, dwFileAttributes, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, dwFileAttributes, 36)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, ftCreationTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, ftCreationTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, ftCreationTime, 40)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, ftLastAccessTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, ftLastAccessTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, ftLastAccessTime, 48)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, ftLastWriteTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, ftLastWriteTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, ftLastWriteTime, 56)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, nFileSizeHigh, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, nFileSizeHigh, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, nFileSizeHigh, 64)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, nFileSizeLow, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, nFileSizeLow, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, nFileSizeLow, 68)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, cFileName, 260)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, cFileName, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, cFileName, 72)
}

static void test_pack_FILEDESCRIPTORW(void)
{
    /* FILEDESCRIPTORW (pack 1) */
    TEST_TYPE_SIZE   (FILEDESCRIPTORW, 592)
    TEST_TYPE_ALIGN  (FILEDESCRIPTORW, 1)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, dwFlags, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, dwFlags, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, dwFlags, 0)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, clsid, 16)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, clsid, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, clsid, 4)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, sizel, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, sizel, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, sizel, 20)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, pointl, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, pointl, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, pointl, 28)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, dwFileAttributes, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, dwFileAttributes, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, dwFileAttributes, 36)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, ftCreationTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, ftCreationTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, ftCreationTime, 40)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, ftLastAccessTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, ftLastAccessTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, ftLastAccessTime, 48)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, ftLastWriteTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, ftLastWriteTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, ftLastWriteTime, 56)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, nFileSizeHigh, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, nFileSizeHigh, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, nFileSizeHigh, 64)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, nFileSizeLow, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, nFileSizeLow, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, nFileSizeLow, 68)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, cFileName, 520)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, cFileName, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, cFileName, 72)
}

static void test_pack_FILEGROUPDESCRIPTORA(void)
{
    /* FILEGROUPDESCRIPTORA (pack 1) */
    TEST_TYPE_SIZE   (FILEGROUPDESCRIPTORA, 336)
    TEST_TYPE_ALIGN  (FILEGROUPDESCRIPTORA, 1)
    TEST_FIELD_SIZE  (FILEGROUPDESCRIPTORA, cItems, 4)
    TEST_FIELD_ALIGN (FILEGROUPDESCRIPTORA, cItems, 1)
    TEST_FIELD_OFFSET(FILEGROUPDESCRIPTORA, cItems, 0)
    TEST_FIELD_SIZE  (FILEGROUPDESCRIPTORA, fgd, 332)
    TEST_FIELD_ALIGN (FILEGROUPDESCRIPTORA, fgd, 1)
    TEST_FIELD_OFFSET(FILEGROUPDESCRIPTORA, fgd, 4)
}

static void test_pack_FILEGROUPDESCRIPTORW(void)
{
    /* FILEGROUPDESCRIPTORW (pack 1) */
    TEST_TYPE_SIZE   (FILEGROUPDESCRIPTORW, 596)
    TEST_TYPE_ALIGN  (FILEGROUPDESCRIPTORW, 1)
    TEST_FIELD_SIZE  (FILEGROUPDESCRIPTORW, cItems, 4)
    TEST_FIELD_ALIGN (FILEGROUPDESCRIPTORW, cItems, 1)
    TEST_FIELD_OFFSET(FILEGROUPDESCRIPTORW, cItems, 0)
    TEST_FIELD_SIZE  (FILEGROUPDESCRIPTORW, fgd, 592)
    TEST_FIELD_ALIGN (FILEGROUPDESCRIPTORW, fgd, 1)
    TEST_FIELD_OFFSET(FILEGROUPDESCRIPTORW, fgd, 4)
}

static void test_pack_ITEMSPACING(void)
{
    /* ITEMSPACING (pack 8) */
    TEST_TYPE_SIZE   (ITEMSPACING, 16)
    TEST_TYPE_ALIGN  (ITEMSPACING, 4)
    TEST_FIELD_SIZE  (ITEMSPACING, cxSmall, 4)
    TEST_FIELD_ALIGN (ITEMSPACING, cxSmall, 4)
    TEST_FIELD_OFFSET(ITEMSPACING, cxSmall, 0)
    TEST_FIELD_SIZE  (ITEMSPACING, cySmall, 4)
    TEST_FIELD_ALIGN (ITEMSPACING, cySmall, 4)
    TEST_FIELD_OFFSET(ITEMSPACING, cySmall, 4)
    TEST_FIELD_SIZE  (ITEMSPACING, cxLarge, 4)
    TEST_FIELD_ALIGN (ITEMSPACING, cxLarge, 4)
    TEST_FIELD_OFFSET(ITEMSPACING, cxLarge, 8)
    TEST_FIELD_SIZE  (ITEMSPACING, cyLarge, 4)
    TEST_FIELD_ALIGN (ITEMSPACING, cyLarge, 4)
    TEST_FIELD_OFFSET(ITEMSPACING, cyLarge, 12)
}

static void test_pack_LPBROWSEINFOA(void)
{
    /* LPBROWSEINFOA */
    TEST_TYPE_SIZE   (LPBROWSEINFOA, 8)
    TEST_TYPE_ALIGN  (LPBROWSEINFOA, 8)
    TEST_TARGET_SIZE (LPBROWSEINFOA, 64)
    TEST_TARGET_ALIGN(LPBROWSEINFOA, 8)
}

static void test_pack_LPBROWSEINFOW(void)
{
    /* LPBROWSEINFOW */
    TEST_TYPE_SIZE   (LPBROWSEINFOW, 8)
    TEST_TYPE_ALIGN  (LPBROWSEINFOW, 8)
    TEST_TARGET_SIZE (LPBROWSEINFOW, 64)
    TEST_TARGET_ALIGN(LPBROWSEINFOW, 8)
}

static void test_pack_LPCABINETSTATE(void)
{
    /* LPCABINETSTATE */
    TEST_TYPE_SIZE   (LPCABINETSTATE, 8)
    TEST_TYPE_ALIGN  (LPCABINETSTATE, 8)
    TEST_TARGET_SIZE (LPCABINETSTATE, 12)
    TEST_TARGET_ALIGN(LPCABINETSTATE, 1)
}

static void test_pack_LPCSFV(void)
{
    /* LPCSFV */
    TEST_TYPE_SIZE   (LPCSFV, 8)
    TEST_TYPE_ALIGN  (LPCSFV, 8)
}

static void test_pack_LPDROPFILES(void)
{
    /* LPDROPFILES */
    TEST_TYPE_SIZE   (LPDROPFILES, 8)
    TEST_TYPE_ALIGN  (LPDROPFILES, 8)
    TEST_TARGET_SIZE (LPDROPFILES, 20)
    TEST_TARGET_ALIGN(LPDROPFILES, 1)
}

static void test_pack_LPFILEDESCRIPTORA(void)
{
    /* LPFILEDESCRIPTORA */
    TEST_TYPE_SIZE   (LPFILEDESCRIPTORA, 8)
    TEST_TYPE_ALIGN  (LPFILEDESCRIPTORA, 8)
    TEST_TARGET_SIZE (LPFILEDESCRIPTORA, 332)
    TEST_TARGET_ALIGN(LPFILEDESCRIPTORA, 1)
}

static void test_pack_LPFILEDESCRIPTORW(void)
{
    /* LPFILEDESCRIPTORW */
    TEST_TYPE_SIZE   (LPFILEDESCRIPTORW, 8)
    TEST_TYPE_ALIGN  (LPFILEDESCRIPTORW, 8)
    TEST_TARGET_SIZE (LPFILEDESCRIPTORW, 592)
    TEST_TARGET_ALIGN(LPFILEDESCRIPTORW, 1)
}

static void test_pack_LPFILEGROUPDESCRIPTORA(void)
{
    /* LPFILEGROUPDESCRIPTORA */
    TEST_TYPE_SIZE   (LPFILEGROUPDESCRIPTORA, 8)
    TEST_TYPE_ALIGN  (LPFILEGROUPDESCRIPTORA, 8)
    TEST_TARGET_SIZE (LPFILEGROUPDESCRIPTORA, 336)
    TEST_TARGET_ALIGN(LPFILEGROUPDESCRIPTORA, 1)
}

static void test_pack_LPFILEGROUPDESCRIPTORW(void)
{
    /* LPFILEGROUPDESCRIPTORW */
    TEST_TYPE_SIZE   (LPFILEGROUPDESCRIPTORW, 8)
    TEST_TYPE_ALIGN  (LPFILEGROUPDESCRIPTORW, 8)
    TEST_TARGET_SIZE (LPFILEGROUPDESCRIPTORW, 596)
    TEST_TARGET_ALIGN(LPFILEGROUPDESCRIPTORW, 1)
}

static void test_pack_LPFNVIEWCALLBACK(void)
{
    /* LPFNVIEWCALLBACK */
    TEST_TYPE_SIZE   (LPFNVIEWCALLBACK, 8)
    TEST_TYPE_ALIGN  (LPFNVIEWCALLBACK, 8)
}

static void test_pack_LPIDA(void)
{
    /* LPIDA */
    TEST_TYPE_SIZE   (LPIDA, 8)
    TEST_TYPE_ALIGN  (LPIDA, 8)
    TEST_TARGET_SIZE (LPIDA, 8)
    TEST_TARGET_ALIGN(LPIDA, 1)
}

static void test_pack_LPQCMINFO(void)
{
    /* LPQCMINFO */
    TEST_TYPE_SIZE   (LPQCMINFO, 8)
    TEST_TYPE_ALIGN  (LPQCMINFO, 8)
    TEST_TARGET_SIZE (LPQCMINFO, 32)
    TEST_TARGET_ALIGN(LPQCMINFO, 8)
}

static void test_pack_LPSHChangeDWORDAsIDList(void)
{
    /* LPSHChangeDWORDAsIDList */
    TEST_TYPE_SIZE   (LPSHChangeDWORDAsIDList, 8)
    TEST_TYPE_ALIGN  (LPSHChangeDWORDAsIDList, 8)
    TEST_TARGET_SIZE (LPSHChangeDWORDAsIDList, 12)
    TEST_TARGET_ALIGN(LPSHChangeDWORDAsIDList, 1)
}

static void test_pack_LPSHChangeProductKeyAsIDList(void)
{
    /* LPSHChangeProductKeyAsIDList */
    TEST_TYPE_SIZE   (LPSHChangeProductKeyAsIDList, 8)
    TEST_TYPE_ALIGN  (LPSHChangeProductKeyAsIDList, 8)
    TEST_TARGET_SIZE (LPSHChangeProductKeyAsIDList, 82)
    TEST_TARGET_ALIGN(LPSHChangeProductKeyAsIDList, 1)
}

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

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

static void test_pack_LPSHELLSTATE(void)
{
    /* LPSHELLSTATE */
    TEST_TYPE_SIZE   (LPSHELLSTATE, 8)
    TEST_TYPE_ALIGN  (LPSHELLSTATE, 8)
    TEST_TARGET_SIZE (LPSHELLSTATE, 32)
    TEST_TARGET_ALIGN(LPSHELLSTATE, 1)
}

static void test_pack_LPTBINFO(void)
{
    /* LPTBINFO */
    TEST_TYPE_SIZE   (LPTBINFO, 8)
    TEST_TYPE_ALIGN  (LPTBINFO, 8)
    TEST_TARGET_SIZE (LPTBINFO, 8)
    TEST_TARGET_ALIGN(LPTBINFO, 4)
}

static void test_pack_PBROWSEINFOA(void)
{
    /* PBROWSEINFOA */
    TEST_TYPE_SIZE   (PBROWSEINFOA, 8)
    TEST_TYPE_ALIGN  (PBROWSEINFOA, 8)
    TEST_TARGET_SIZE (PBROWSEINFOA, 64)
    TEST_TARGET_ALIGN(PBROWSEINFOA, 8)
}

static void test_pack_PBROWSEINFOW(void)
{
    /* PBROWSEINFOW */
    TEST_TYPE_SIZE   (PBROWSEINFOW, 8)
    TEST_TYPE_ALIGN  (PBROWSEINFOW, 8)
    TEST_TARGET_SIZE (PBROWSEINFOW, 64)
    TEST_TARGET_ALIGN(PBROWSEINFOW, 8)
}

static void test_pack_QCMINFO(void)
{
    /* QCMINFO (pack 8) */
    TEST_TYPE_SIZE   (QCMINFO, 32)
    TEST_TYPE_ALIGN  (QCMINFO, 8)
    TEST_FIELD_SIZE  (QCMINFO, hmenu, 8)
    TEST_FIELD_ALIGN (QCMINFO, hmenu, 8)
    TEST_FIELD_OFFSET(QCMINFO, hmenu, 0)
    TEST_FIELD_SIZE  (QCMINFO, indexMenu, 4)
    TEST_FIELD_ALIGN (QCMINFO, indexMenu, 4)
    TEST_FIELD_OFFSET(QCMINFO, indexMenu, 8)
    TEST_FIELD_SIZE  (QCMINFO, idCmdFirst, 4)
    TEST_FIELD_ALIGN (QCMINFO, idCmdFirst, 4)
    TEST_FIELD_OFFSET(QCMINFO, idCmdFirst, 12)
    TEST_FIELD_SIZE  (QCMINFO, idCmdLast, 4)
    TEST_FIELD_ALIGN (QCMINFO, idCmdLast, 4)
    TEST_FIELD_OFFSET(QCMINFO, idCmdLast, 16)
    TEST_FIELD_SIZE  (QCMINFO, pIdMap, 8)
    TEST_FIELD_ALIGN (QCMINFO, pIdMap, 8)
    TEST_FIELD_OFFSET(QCMINFO, pIdMap, 24)
}

static void test_pack_QCMINFO_IDMAP(void)
{
    /* QCMINFO_IDMAP (pack 8) */
    TEST_TYPE_SIZE   (QCMINFO_IDMAP, 12)
    TEST_TYPE_ALIGN  (QCMINFO_IDMAP, 4)
    TEST_FIELD_SIZE  (QCMINFO_IDMAP, nMaxIds, 4)
    TEST_FIELD_ALIGN (QCMINFO_IDMAP, nMaxIds, 4)
    TEST_FIELD_OFFSET(QCMINFO_IDMAP, nMaxIds, 0)
    TEST_FIELD_SIZE  (QCMINFO_IDMAP, pIdList, 8)
    TEST_FIELD_ALIGN (QCMINFO_IDMAP, pIdList, 4)
    TEST_FIELD_OFFSET(QCMINFO_IDMAP, pIdList, 4)
}

static void test_pack_QCMINFO_IDMAP_PLACEMENT(void)
{
    /* QCMINFO_IDMAP_PLACEMENT (pack 8) */
    TEST_TYPE_SIZE   (QCMINFO_IDMAP_PLACEMENT, 8)
    TEST_TYPE_ALIGN  (QCMINFO_IDMAP_PLACEMENT, 4)
    TEST_FIELD_SIZE  (QCMINFO_IDMAP_PLACEMENT, id, 4)
    TEST_FIELD_ALIGN (QCMINFO_IDMAP_PLACEMENT, id, 4)
    TEST_FIELD_OFFSET(QCMINFO_IDMAP_PLACEMENT, id, 0)
    TEST_FIELD_SIZE  (QCMINFO_IDMAP_PLACEMENT, fFlags, 4)
    TEST_FIELD_ALIGN (QCMINFO_IDMAP_PLACEMENT, fFlags, 4)
    TEST_FIELD_OFFSET(QCMINFO_IDMAP_PLACEMENT, fFlags, 4)
}

static void test_pack_SFV_CREATE(void)
{
    /* SFV_CREATE (pack 8) */
    TEST_TYPE_SIZE   (SFV_CREATE, 32)
    TEST_TYPE_ALIGN  (SFV_CREATE, 8)
    TEST_FIELD_SIZE  (SFV_CREATE, cbSize, 4)
    TEST_FIELD_ALIGN (SFV_CREATE, cbSize, 4)
    TEST_FIELD_OFFSET(SFV_CREATE, cbSize, 0)
    TEST_FIELD_SIZE  (SFV_CREATE, pshf, 8)
    TEST_FIELD_ALIGN (SFV_CREATE, pshf, 8)
    TEST_FIELD_OFFSET(SFV_CREATE, pshf, 8)
    TEST_FIELD_SIZE  (SFV_CREATE, psvOuter, 8)
    TEST_FIELD_ALIGN (SFV_CREATE, psvOuter, 8)
    TEST_FIELD_OFFSET(SFV_CREATE, psvOuter, 16)
    TEST_FIELD_SIZE  (SFV_CREATE, psfvcb, 8)
    TEST_FIELD_ALIGN (SFV_CREATE, psfvcb, 8)
    TEST_FIELD_OFFSET(SFV_CREATE, psfvcb, 24)
}

static void test_pack_SHChangeDWORDAsIDList(void)
{
    /* SHChangeDWORDAsIDList (pack 1) */
    TEST_TYPE_SIZE   (SHChangeDWORDAsIDList, 12)
    TEST_TYPE_ALIGN  (SHChangeDWORDAsIDList, 1)
    TEST_FIELD_SIZE  (SHChangeDWORDAsIDList, cb, 2)
    TEST_FIELD_ALIGN (SHChangeDWORDAsIDList, cb, 1)
    TEST_FIELD_OFFSET(SHChangeDWORDAsIDList, cb, 0)
    TEST_FIELD_SIZE  (SHChangeDWORDAsIDList, dwItem1, 4)
    TEST_FIELD_ALIGN (SHChangeDWORDAsIDList, dwItem1, 1)
    TEST_FIELD_OFFSET(SHChangeDWORDAsIDList, dwItem1, 2)
    TEST_FIELD_SIZE  (SHChangeDWORDAsIDList, dwItem2, 4)
    TEST_FIELD_ALIGN (SHChangeDWORDAsIDList, dwItem2, 1)
    TEST_FIELD_OFFSET(SHChangeDWORDAsIDList, dwItem2, 6)
    TEST_FIELD_SIZE  (SHChangeDWORDAsIDList, cbZero, 2)
    TEST_FIELD_ALIGN (SHChangeDWORDAsIDList, cbZero, 1)
    TEST_FIELD_OFFSET(SHChangeDWORDAsIDList, cbZero, 10)
}

static void test_pack_SHChangeNotifyEntry(void)
{
    /* SHChangeNotifyEntry (pack 1) */
    TEST_TYPE_SIZE   (SHChangeNotifyEntry, 12)
    TEST_TYPE_ALIGN  (SHChangeNotifyEntry, 1)
    TEST_FIELD_SIZE  (SHChangeNotifyEntry, pidl, 8)
    TEST_FIELD_ALIGN (SHChangeNotifyEntry, pidl, 1)
    TEST_FIELD_OFFSET(SHChangeNotifyEntry, pidl, 0)
    TEST_FIELD_SIZE  (SHChangeNotifyEntry, fRecursive, 4)
    TEST_FIELD_ALIGN (SHChangeNotifyEntry, fRecursive, 1)
    TEST_FIELD_OFFSET(SHChangeNotifyEntry, fRecursive, 8)
}

static void test_pack_SHChangeProductKeyAsIDList(void)
{
    /* SHChangeProductKeyAsIDList (pack 1) */
    TEST_TYPE_SIZE   (SHChangeProductKeyAsIDList, 82)
    TEST_TYPE_ALIGN  (SHChangeProductKeyAsIDList, 1)
    TEST_FIELD_SIZE  (SHChangeProductKeyAsIDList, cb, 2)
    TEST_FIELD_ALIGN (SHChangeProductKeyAsIDList, cb, 1)
    TEST_FIELD_OFFSET(SHChangeProductKeyAsIDList, cb, 0)
    TEST_FIELD_SIZE  (SHChangeProductKeyAsIDList, wszProductKey, 78)
    TEST_FIELD_ALIGN (SHChangeProductKeyAsIDList, wszProductKey, 1)
    TEST_FIELD_OFFSET(SHChangeProductKeyAsIDList, wszProductKey, 2)
    TEST_FIELD_SIZE  (SHChangeProductKeyAsIDList, cbZero, 2)
    TEST_FIELD_ALIGN (SHChangeProductKeyAsIDList, cbZero, 1)
    TEST_FIELD_OFFSET(SHChangeProductKeyAsIDList, cbZero, 80)
}

static void test_pack_SHDESCRIPTIONID(void)
{
    /* SHDESCRIPTIONID (pack 8) */
    TEST_TYPE_SIZE   (SHDESCRIPTIONID, 20)
    TEST_TYPE_ALIGN  (SHDESCRIPTIONID, 4)
    TEST_FIELD_SIZE  (SHDESCRIPTIONID, dwDescriptionId, 4)
    TEST_FIELD_ALIGN (SHDESCRIPTIONID, dwDescriptionId, 4)
    TEST_FIELD_OFFSET(SHDESCRIPTIONID, dwDescriptionId, 0)
    TEST_FIELD_SIZE  (SHDESCRIPTIONID, clsid, 16)
    TEST_FIELD_ALIGN (SHDESCRIPTIONID, clsid, 4)
    TEST_FIELD_OFFSET(SHDESCRIPTIONID, clsid, 4)
}

static void test_pack_SHELLFLAGSTATE(void)
{
    /* SHELLFLAGSTATE (pack 1) */
    TEST_TYPE_SIZE   (SHELLFLAGSTATE, 4)
    TEST_TYPE_ALIGN  (SHELLFLAGSTATE, 1)
}

static void test_pack_SHELLSTATE(void)
{
    /* SHELLSTATE (pack 1) */
    TEST_TYPE_SIZE   (SHELLSTATE, 32)
    TEST_TYPE_ALIGN  (SHELLSTATE, 1)
    TEST_FIELD_SIZE  (SHELLSTATE, dwWin95Unused, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, dwWin95Unused, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, dwWin95Unused, 4)
    TEST_FIELD_SIZE  (SHELLSTATE, uWin95Unused, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, uWin95Unused, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, uWin95Unused, 8)
    TEST_FIELD_SIZE  (SHELLSTATE, lParamSort, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, lParamSort, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, lParamSort, 12)
    TEST_FIELD_SIZE  (SHELLSTATE, iSortDirection, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, iSortDirection, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, iSortDirection, 16)
    TEST_FIELD_SIZE  (SHELLSTATE, version, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, version, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, version, 20)
    TEST_FIELD_SIZE  (SHELLSTATE, uNotUsed, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, uNotUsed, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, uNotUsed, 24)
}

static void test_pack_TBINFO(void)
{
    /* TBINFO (pack 8) */
    TEST_TYPE_SIZE   (TBINFO, 8)
    TEST_TYPE_ALIGN  (TBINFO, 4)
    TEST_FIELD_SIZE  (TBINFO, cbuttons, 4)
    TEST_FIELD_ALIGN (TBINFO, cbuttons, 4)
    TEST_FIELD_OFFSET(TBINFO, cbuttons, 0)
    TEST_FIELD_SIZE  (TBINFO, uFlags, 4)
    TEST_FIELD_ALIGN (TBINFO, uFlags, 4)
    TEST_FIELD_OFFSET(TBINFO, uFlags, 4)
}

#else /* _WIN64 */

static void test_pack_BLOB(void)
{
    /* BLOB */
    TEST_TYPE_SIZE   (BLOB, 8)
    TEST_TYPE_ALIGN  (BLOB, 4)
    TEST_FIELD_SIZE  (BLOB, cbSize, 4)
    TEST_FIELD_ALIGN (BLOB, cbSize, 4)
    TEST_FIELD_OFFSET(BLOB, cbSize, 0)
    TEST_FIELD_SIZE  (BLOB, pBlobData, 4)
    TEST_FIELD_ALIGN (BLOB, pBlobData, 4)
    TEST_FIELD_OFFSET(BLOB, pBlobData, 4)
}

static void test_pack_BSTR(void)
{
    /* BSTR */
    TEST_TYPE_SIZE   (BSTR, 4)
    TEST_TYPE_ALIGN  (BSTR, 4)
    TEST_TARGET_SIZE (BSTR, 2)
    TEST_TARGET_ALIGN(BSTR, 2)
}

static void test_pack_BSTRBLOB(void)
{
    /* BSTRBLOB */
    TEST_TYPE_SIZE   (BSTRBLOB, 8)
    TEST_TYPE_ALIGN  (BSTRBLOB, 4)
    TEST_FIELD_SIZE  (BSTRBLOB, cbSize, 4)
    TEST_FIELD_ALIGN (BSTRBLOB, cbSize, 4)
    TEST_FIELD_OFFSET(BSTRBLOB, cbSize, 0)
    TEST_FIELD_SIZE  (BSTRBLOB, pData, 4)
    TEST_FIELD_ALIGN (BSTRBLOB, pData, 4)
    TEST_FIELD_OFFSET(BSTRBLOB, pData, 4)
}

static void test_pack_BYTE_BLOB(void)
{
    /* BYTE_BLOB */
    TEST_TYPE_SIZE   (BYTE_BLOB, 8)
    TEST_TYPE_ALIGN  (BYTE_BLOB, 4)
    TEST_FIELD_SIZE  (BYTE_BLOB, clSize, 4)
    TEST_FIELD_ALIGN (BYTE_BLOB, clSize, 4)
    TEST_FIELD_OFFSET(BYTE_BLOB, clSize, 0)
    TEST_FIELD_SIZE  (BYTE_BLOB, abData, 1)
    TEST_FIELD_ALIGN (BYTE_BLOB, abData, 1)
    TEST_FIELD_OFFSET(BYTE_BLOB, abData, 4)
}

static void test_pack_BYTE_SIZEDARR(void)
{
    /* BYTE_SIZEDARR */
    TEST_TYPE_SIZE   (BYTE_SIZEDARR, 8)
    TEST_TYPE_ALIGN  (BYTE_SIZEDARR, 4)
    TEST_FIELD_SIZE  (BYTE_SIZEDARR, clSize, 4)
    TEST_FIELD_ALIGN (BYTE_SIZEDARR, clSize, 4)
    TEST_FIELD_OFFSET(BYTE_SIZEDARR, clSize, 0)
    TEST_FIELD_SIZE  (BYTE_SIZEDARR, pData, 4)
    TEST_FIELD_ALIGN (BYTE_SIZEDARR, pData, 4)
    TEST_FIELD_OFFSET(BYTE_SIZEDARR, pData, 4)
}

static void test_pack_CLIPDATA(void)
{
    /* CLIPDATA */
    TEST_TYPE_SIZE   (CLIPDATA, 12)
    TEST_TYPE_ALIGN  (CLIPDATA, 4)
    TEST_FIELD_SIZE  (CLIPDATA, cbSize, 4)
    TEST_FIELD_ALIGN (CLIPDATA, cbSize, 4)
    TEST_FIELD_OFFSET(CLIPDATA, cbSize, 0)
    TEST_FIELD_SIZE  (CLIPDATA, ulClipFmt, 4)
    TEST_FIELD_ALIGN (CLIPDATA, ulClipFmt, 4)
    TEST_FIELD_OFFSET(CLIPDATA, ulClipFmt, 4)
    TEST_FIELD_SIZE  (CLIPDATA, pClipData, 4)
    TEST_FIELD_ALIGN (CLIPDATA, pClipData, 4)
    TEST_FIELD_OFFSET(CLIPDATA, pClipData, 8)
}

static void test_pack_CLIPFORMAT(void)
{
    /* CLIPFORMAT */
    TEST_TYPE_SIZE   (CLIPFORMAT, 2)
    TEST_TYPE_ALIGN  (CLIPFORMAT, 2)
    TEST_TYPE_UNSIGNED(CLIPFORMAT)
}

static void test_pack_COAUTHIDENTITY(void)
{
    /* COAUTHIDENTITY */
    TEST_TYPE_SIZE   (COAUTHIDENTITY, 28)
    TEST_TYPE_ALIGN  (COAUTHIDENTITY, 4)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, User, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, User, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, User, 0)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, UserLength, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, UserLength, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, UserLength, 4)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, Domain, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, Domain, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, Domain, 8)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, DomainLength, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, DomainLength, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, DomainLength, 12)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, Password, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, Password, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, Password, 16)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, PasswordLength, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, PasswordLength, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, PasswordLength, 20)
    TEST_FIELD_SIZE  (COAUTHIDENTITY, Flags, 4)
    TEST_FIELD_ALIGN (COAUTHIDENTITY, Flags, 4)
    TEST_FIELD_OFFSET(COAUTHIDENTITY, Flags, 24)
}

static void test_pack_COAUTHINFO(void)
{
    /* COAUTHINFO */
    TEST_TYPE_SIZE   (COAUTHINFO, 28)
    TEST_TYPE_ALIGN  (COAUTHINFO, 4)
    TEST_FIELD_SIZE  (COAUTHINFO, dwAuthnSvc, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwAuthnSvc, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwAuthnSvc, 0)
    TEST_FIELD_SIZE  (COAUTHINFO, dwAuthzSvc, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwAuthzSvc, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwAuthzSvc, 4)
    TEST_FIELD_SIZE  (COAUTHINFO, pwszServerPrincName, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, pwszServerPrincName, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, pwszServerPrincName, 8)
    TEST_FIELD_SIZE  (COAUTHINFO, dwAuthnLevel, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwAuthnLevel, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwAuthnLevel, 12)
    TEST_FIELD_SIZE  (COAUTHINFO, dwImpersonationLevel, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwImpersonationLevel, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwImpersonationLevel, 16)
    TEST_FIELD_SIZE  (COAUTHINFO, pAuthIdentityData, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, pAuthIdentityData, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, pAuthIdentityData, 20)
    TEST_FIELD_SIZE  (COAUTHINFO, dwCapabilities, 4)
    TEST_FIELD_ALIGN (COAUTHINFO, dwCapabilities, 4)
    TEST_FIELD_OFFSET(COAUTHINFO, dwCapabilities, 24)
}

static void test_pack_DATE(void)
{
    /* DATE */
    TEST_TYPE_SIZE   (DATE, 8)
    TEST_TYPE_ALIGN  (DATE, 8)
}

static void test_pack_DOUBLE(void)
{
    /* DOUBLE */
    TEST_TYPE_SIZE   (DOUBLE, 8)
    TEST_TYPE_ALIGN  (DOUBLE, 8)
}

static void test_pack_DWORD_SIZEDARR(void)
{
    /* DWORD_SIZEDARR */
    TEST_TYPE_SIZE   (DWORD_SIZEDARR, 8)
    TEST_TYPE_ALIGN  (DWORD_SIZEDARR, 4)
    TEST_FIELD_SIZE  (DWORD_SIZEDARR, clSize, 4)
    TEST_FIELD_ALIGN (DWORD_SIZEDARR, clSize, 4)
    TEST_FIELD_OFFSET(DWORD_SIZEDARR, clSize, 0)
    TEST_FIELD_SIZE  (DWORD_SIZEDARR, pData, 4)
    TEST_FIELD_ALIGN (DWORD_SIZEDARR, pData, 4)
    TEST_FIELD_OFFSET(DWORD_SIZEDARR, pData, 4)
}

static void test_pack_FLAGGED_BYTE_BLOB(void)
{
    /* FLAGGED_BYTE_BLOB */
    TEST_TYPE_SIZE   (FLAGGED_BYTE_BLOB, 12)
    TEST_TYPE_ALIGN  (FLAGGED_BYTE_BLOB, 4)
    TEST_FIELD_SIZE  (FLAGGED_BYTE_BLOB, fFlags, 4)
    TEST_FIELD_ALIGN (FLAGGED_BYTE_BLOB, fFlags, 4)
    TEST_FIELD_OFFSET(FLAGGED_BYTE_BLOB, fFlags, 0)
    TEST_FIELD_SIZE  (FLAGGED_BYTE_BLOB, clSize, 4)
    TEST_FIELD_ALIGN (FLAGGED_BYTE_BLOB, clSize, 4)
    TEST_FIELD_OFFSET(FLAGGED_BYTE_BLOB, clSize, 4)
    TEST_FIELD_SIZE  (FLAGGED_BYTE_BLOB, abData, 1)
    TEST_FIELD_ALIGN (FLAGGED_BYTE_BLOB, abData, 1)
    TEST_FIELD_OFFSET(FLAGGED_BYTE_BLOB, abData, 8)
}

static void test_pack_FLAGGED_WORD_BLOB(void)
{
    /* FLAGGED_WORD_BLOB */
    TEST_TYPE_SIZE   (FLAGGED_WORD_BLOB, 12)
    TEST_TYPE_ALIGN  (FLAGGED_WORD_BLOB, 4)
    TEST_FIELD_SIZE  (FLAGGED_WORD_BLOB, fFlags, 4)
    TEST_FIELD_ALIGN (FLAGGED_WORD_BLOB, fFlags, 4)
    TEST_FIELD_OFFSET(FLAGGED_WORD_BLOB, fFlags, 0)
    TEST_FIELD_SIZE  (FLAGGED_WORD_BLOB, clSize, 4)
    TEST_FIELD_ALIGN (FLAGGED_WORD_BLOB, clSize, 4)
    TEST_FIELD_OFFSET(FLAGGED_WORD_BLOB, clSize, 4)
    TEST_FIELD_SIZE  (FLAGGED_WORD_BLOB, asData, 2)
    TEST_FIELD_ALIGN (FLAGGED_WORD_BLOB, asData, 2)
    TEST_FIELD_OFFSET(FLAGGED_WORD_BLOB, asData, 8)
}

static void test_pack_HMETAFILEPICT(void)
{
    /* HMETAFILEPICT */
    TEST_TYPE_SIZE   (HMETAFILEPICT, 4)
    TEST_TYPE_ALIGN  (HMETAFILEPICT, 4)
}

static void test_pack_HYPER_SIZEDARR(void)
{
    /* HYPER_SIZEDARR */
    TEST_TYPE_SIZE   (HYPER_SIZEDARR, 8)
    TEST_TYPE_ALIGN  (HYPER_SIZEDARR, 4)
    TEST_FIELD_SIZE  (HYPER_SIZEDARR, clSize, 4)
    TEST_FIELD_ALIGN (HYPER_SIZEDARR, clSize, 4)
    TEST_FIELD_OFFSET(HYPER_SIZEDARR, clSize, 0)
    TEST_FIELD_SIZE  (HYPER_SIZEDARR, pData, 4)
    TEST_FIELD_ALIGN (HYPER_SIZEDARR, pData, 4)
    TEST_FIELD_OFFSET(HYPER_SIZEDARR, pData, 4)
}

static void test_pack_LPBLOB(void)
{
    /* LPBLOB */
    TEST_TYPE_SIZE   (LPBLOB, 4)
    TEST_TYPE_ALIGN  (LPBLOB, 4)
}

static void test_pack_LPBSTR(void)
{
    /* LPBSTR */
    TEST_TYPE_SIZE   (LPBSTR, 4)
    TEST_TYPE_ALIGN  (LPBSTR, 4)
    TEST_TARGET_SIZE (LPBSTR, 4)
    TEST_TARGET_ALIGN(LPBSTR, 4)
}

static void test_pack_LPBSTRBLOB(void)
{
    /* LPBSTRBLOB */
    TEST_TYPE_SIZE   (LPBSTRBLOB, 4)
    TEST_TYPE_ALIGN  (LPBSTRBLOB, 4)
}

static void test_pack_LPCOLESTR(void)
{
    /* LPCOLESTR */
    TEST_TYPE_SIZE   (LPCOLESTR, 4)
    TEST_TYPE_ALIGN  (LPCOLESTR, 4)
    TEST_TARGET_SIZE (LPCOLESTR, 2)
    TEST_TARGET_ALIGN(LPCOLESTR, 2)
}

static void test_pack_LPCY(void)
{
    /* LPCY */
    TEST_TYPE_SIZE   (LPCY, 4)
    TEST_TYPE_ALIGN  (LPCY, 4)
}

static void test_pack_LPDECIMAL(void)
{
    /* LPDECIMAL */
    TEST_TYPE_SIZE   (LPDECIMAL, 4)
    TEST_TYPE_ALIGN  (LPDECIMAL, 4)
}

static void test_pack_LPOLESTR(void)
{
    /* LPOLESTR */
    TEST_TYPE_SIZE   (LPOLESTR, 4)
    TEST_TYPE_ALIGN  (LPOLESTR, 4)
    TEST_TARGET_SIZE (LPOLESTR, 2)
    TEST_TARGET_ALIGN(LPOLESTR, 2)
}

static void test_pack_OLECHAR(void)
{
    /* OLECHAR */
    TEST_TYPE_SIZE   (OLECHAR, 2)
    TEST_TYPE_ALIGN  (OLECHAR, 2)
}

static void test_pack_PROPID(void)
{
    /* PROPID */
    TEST_TYPE_SIZE   (PROPID, 4)
    TEST_TYPE_ALIGN  (PROPID, 4)
}

static void test_pack_RemHBITMAP(void)
{
    /* RemHBITMAP */
    TEST_TYPE_SIZE   (RemHBITMAP, 8)
    TEST_TYPE_ALIGN  (RemHBITMAP, 4)
    TEST_FIELD_SIZE  (RemHBITMAP, cbData, 4)
    TEST_FIELD_ALIGN (RemHBITMAP, cbData, 4)
    TEST_FIELD_OFFSET(RemHBITMAP, cbData, 0)
    TEST_FIELD_SIZE  (RemHBITMAP, data, 1)
    TEST_FIELD_ALIGN (RemHBITMAP, data, 1)
    TEST_FIELD_OFFSET(RemHBITMAP, data, 4)
}

static void test_pack_RemHENHMETAFILE(void)
{
    /* RemHENHMETAFILE */
    TEST_TYPE_SIZE   (RemHENHMETAFILE, 8)
    TEST_TYPE_ALIGN  (RemHENHMETAFILE, 4)
    TEST_FIELD_SIZE  (RemHENHMETAFILE, cbData, 4)
    TEST_FIELD_ALIGN (RemHENHMETAFILE, cbData, 4)
    TEST_FIELD_OFFSET(RemHENHMETAFILE, cbData, 0)
    TEST_FIELD_SIZE  (RemHENHMETAFILE, data, 1)
    TEST_FIELD_ALIGN (RemHENHMETAFILE, data, 1)
    TEST_FIELD_OFFSET(RemHENHMETAFILE, data, 4)
}

static void test_pack_RemHGLOBAL(void)
{
    /* RemHGLOBAL */
    TEST_TYPE_SIZE   (RemHGLOBAL, 12)
    TEST_TYPE_ALIGN  (RemHGLOBAL, 4)
    TEST_FIELD_SIZE  (RemHGLOBAL, fNullHGlobal, 4)
    TEST_FIELD_ALIGN (RemHGLOBAL, fNullHGlobal, 4)
    TEST_FIELD_OFFSET(RemHGLOBAL, fNullHGlobal, 0)
    TEST_FIELD_SIZE  (RemHGLOBAL, cbData, 4)
    TEST_FIELD_ALIGN (RemHGLOBAL, cbData, 4)
    TEST_FIELD_OFFSET(RemHGLOBAL, cbData, 4)
    TEST_FIELD_SIZE  (RemHGLOBAL, data, 1)
    TEST_FIELD_ALIGN (RemHGLOBAL, data, 1)
    TEST_FIELD_OFFSET(RemHGLOBAL, data, 8)
}

static void test_pack_RemHMETAFILEPICT(void)
{
    /* RemHMETAFILEPICT */
    TEST_TYPE_SIZE   (RemHMETAFILEPICT, 20)
    TEST_TYPE_ALIGN  (RemHMETAFILEPICT, 4)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, mm, 4)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, mm, 4)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, mm, 0)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, xExt, 4)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, xExt, 4)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, xExt, 4)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, yExt, 4)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, yExt, 4)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, yExt, 8)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, cbData, 4)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, cbData, 4)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, cbData, 12)
    TEST_FIELD_SIZE  (RemHMETAFILEPICT, data, 1)
    TEST_FIELD_ALIGN (RemHMETAFILEPICT, data, 1)
    TEST_FIELD_OFFSET(RemHMETAFILEPICT, data, 16)
}

static void test_pack_RemHPALETTE(void)
{
    /* RemHPALETTE */
    TEST_TYPE_SIZE   (RemHPALETTE, 8)
    TEST_TYPE_ALIGN  (RemHPALETTE, 4)
    TEST_FIELD_SIZE  (RemHPALETTE, cbData, 4)
    TEST_FIELD_ALIGN (RemHPALETTE, cbData, 4)
    TEST_FIELD_OFFSET(RemHPALETTE, cbData, 0)
    TEST_FIELD_SIZE  (RemHPALETTE, data, 1)
    TEST_FIELD_ALIGN (RemHPALETTE, data, 1)
    TEST_FIELD_OFFSET(RemHPALETTE, data, 4)
}

static void test_pack_SCODE(void)
{
    /* SCODE */
    TEST_TYPE_SIZE   (SCODE, 4)
    TEST_TYPE_ALIGN  (SCODE, 4)
}

static void test_pack_UP_BYTE_BLOB(void)
{
    /* UP_BYTE_BLOB */
    TEST_TYPE_SIZE   (UP_BYTE_BLOB, 4)
    TEST_TYPE_ALIGN  (UP_BYTE_BLOB, 4)
    TEST_TARGET_SIZE (UP_BYTE_BLOB, 8)
    TEST_TARGET_ALIGN(UP_BYTE_BLOB, 4)
}

static void test_pack_UP_FLAGGED_BYTE_BLOB(void)
{
    /* UP_FLAGGED_BYTE_BLOB */
    TEST_TYPE_SIZE   (UP_FLAGGED_BYTE_BLOB, 4)
    TEST_TYPE_ALIGN  (UP_FLAGGED_BYTE_BLOB, 4)
    TEST_TARGET_SIZE (UP_FLAGGED_BYTE_BLOB, 12)
    TEST_TARGET_ALIGN(UP_FLAGGED_BYTE_BLOB, 4)
}

static void test_pack_UP_FLAGGED_WORD_BLOB(void)
{
    /* UP_FLAGGED_WORD_BLOB */
    TEST_TYPE_SIZE   (UP_FLAGGED_WORD_BLOB, 4)
    TEST_TYPE_ALIGN  (UP_FLAGGED_WORD_BLOB, 4)
    TEST_TARGET_SIZE (UP_FLAGGED_WORD_BLOB, 12)
    TEST_TARGET_ALIGN(UP_FLAGGED_WORD_BLOB, 4)
}

static void test_pack_VARIANT_BOOL(void)
{
    /* VARIANT_BOOL */
    TEST_TYPE_SIZE   (VARIANT_BOOL, 2)
    TEST_TYPE_ALIGN  (VARIANT_BOOL, 2)
    TEST_TYPE_SIGNED(VARIANT_BOOL)
}

static void test_pack_VARTYPE(void)
{
    /* VARTYPE */
    TEST_TYPE_SIZE   (VARTYPE, 2)
    TEST_TYPE_ALIGN  (VARTYPE, 2)
    TEST_TYPE_UNSIGNED(VARTYPE)
}

static void test_pack_WORD_SIZEDARR(void)
{
    /* WORD_SIZEDARR */
    TEST_TYPE_SIZE   (WORD_SIZEDARR, 8)
    TEST_TYPE_ALIGN  (WORD_SIZEDARR, 4)
    TEST_FIELD_SIZE  (WORD_SIZEDARR, clSize, 4)
    TEST_FIELD_ALIGN (WORD_SIZEDARR, clSize, 4)
    TEST_FIELD_OFFSET(WORD_SIZEDARR, clSize, 0)
    TEST_FIELD_SIZE  (WORD_SIZEDARR, pData, 4)
    TEST_FIELD_ALIGN (WORD_SIZEDARR, pData, 4)
    TEST_FIELD_OFFSET(WORD_SIZEDARR, pData, 4)
}

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

static void test_pack_userBITMAP(void)
{
    /* userBITMAP */
    TEST_TYPE_SIZE   (userBITMAP, 28)
    TEST_TYPE_ALIGN  (userBITMAP, 4)
    TEST_FIELD_SIZE  (userBITMAP, bmType, 4)
    TEST_FIELD_ALIGN (userBITMAP, bmType, 4)
    TEST_FIELD_OFFSET(userBITMAP, bmType, 0)
    TEST_FIELD_SIZE  (userBITMAP, bmWidth, 4)
    TEST_FIELD_ALIGN (userBITMAP, bmWidth, 4)
    TEST_FIELD_OFFSET(userBITMAP, bmWidth, 4)
    TEST_FIELD_SIZE  (userBITMAP, bmHeight, 4)
    TEST_FIELD_ALIGN (userBITMAP, bmHeight, 4)
    TEST_FIELD_OFFSET(userBITMAP, bmHeight, 8)
    TEST_FIELD_SIZE  (userBITMAP, bmWidthBytes, 4)
    TEST_FIELD_ALIGN (userBITMAP, bmWidthBytes, 4)
    TEST_FIELD_OFFSET(userBITMAP, bmWidthBytes, 12)
    TEST_FIELD_SIZE  (userBITMAP, bmPlanes, 2)
    TEST_FIELD_ALIGN (userBITMAP, bmPlanes, 2)
    TEST_FIELD_OFFSET(userBITMAP, bmPlanes, 16)
    TEST_FIELD_SIZE  (userBITMAP, bmBitsPixel, 2)
    TEST_FIELD_ALIGN (userBITMAP, bmBitsPixel, 2)
    TEST_FIELD_OFFSET(userBITMAP, bmBitsPixel, 18)
    TEST_FIELD_SIZE  (userBITMAP, cbSize, 4)
    TEST_FIELD_ALIGN (userBITMAP, cbSize, 4)
    TEST_FIELD_OFFSET(userBITMAP, cbSize, 20)
    TEST_FIELD_SIZE  (userBITMAP, pBuffer, 1)
    TEST_FIELD_ALIGN (userBITMAP, pBuffer, 1)
    TEST_FIELD_OFFSET(userBITMAP, pBuffer, 24)
}

static void test_pack_userCLIPFORMAT(void)
{
    /* userCLIPFORMAT */
    TEST_FIELD_SIZE  (userCLIPFORMAT, fContext, 4)
    TEST_FIELD_ALIGN (userCLIPFORMAT, fContext, 4)
    TEST_FIELD_OFFSET(userCLIPFORMAT, fContext, 0)
}

static void test_pack_userHBITMAP(void)
{
    /* userHBITMAP */
    TEST_FIELD_SIZE  (userHBITMAP, fContext, 4)
    TEST_FIELD_ALIGN (userHBITMAP, fContext, 4)
    TEST_FIELD_OFFSET(userHBITMAP, fContext, 0)
}

static void test_pack_userHENHMETAFILE(void)
{
    /* userHENHMETAFILE */
    TEST_FIELD_SIZE  (userHENHMETAFILE, fContext, 4)
    TEST_FIELD_ALIGN (userHENHMETAFILE, fContext, 4)
    TEST_FIELD_OFFSET(userHENHMETAFILE, fContext, 0)
}

static void test_pack_userHGLOBAL(void)
{
    /* userHGLOBAL */
    TEST_FIELD_SIZE  (userHGLOBAL, fContext, 4)
    TEST_FIELD_ALIGN (userHGLOBAL, fContext, 4)
    TEST_FIELD_OFFSET(userHGLOBAL, fContext, 0)
}

static void test_pack_userHMETAFILE(void)
{
    /* userHMETAFILE */
    TEST_FIELD_SIZE  (userHMETAFILE, fContext, 4)
    TEST_FIELD_ALIGN (userHMETAFILE, fContext, 4)
    TEST_FIELD_OFFSET(userHMETAFILE, fContext, 0)
}

static void test_pack_userHMETAFILEPICT(void)
{
    /* userHMETAFILEPICT */
    TEST_FIELD_SIZE  (userHMETAFILEPICT, fContext, 4)
    TEST_FIELD_ALIGN (userHMETAFILEPICT, fContext, 4)
    TEST_FIELD_OFFSET(userHMETAFILEPICT, fContext, 0)
}

static void test_pack_userHPALETTE(void)
{
    /* userHPALETTE */
    TEST_FIELD_SIZE  (userHPALETTE, fContext, 4)
    TEST_FIELD_ALIGN (userHPALETTE, fContext, 4)
    TEST_FIELD_OFFSET(userHPALETTE, fContext, 0)
}

static void test_pack_wireBSTR(void)
{
    /* wireBSTR */
    TEST_TYPE_SIZE   (wireBSTR, 4)
    TEST_TYPE_ALIGN  (wireBSTR, 4)
    TEST_TARGET_SIZE (wireBSTR, 12)
    TEST_TARGET_ALIGN(wireBSTR, 4)
}

static void test_pack_wireCLIPFORMAT(void)
{
    /* wireCLIPFORMAT */
    TEST_TYPE_SIZE   (wireCLIPFORMAT, 4)
    TEST_TYPE_ALIGN  (wireCLIPFORMAT, 4)
}

static void test_pack_wireHBITMAP(void)
{
    /* wireHBITMAP */
    TEST_TYPE_SIZE   (wireHBITMAP, 4)
    TEST_TYPE_ALIGN  (wireHBITMAP, 4)
}

static void test_pack_wireHENHMETAFILE(void)
{
    /* wireHENHMETAFILE */
    TEST_TYPE_SIZE   (wireHENHMETAFILE, 4)
    TEST_TYPE_ALIGN  (wireHENHMETAFILE, 4)
}

static void test_pack_wireHGLOBAL(void)
{
    /* wireHGLOBAL */
    TEST_TYPE_SIZE   (wireHGLOBAL, 4)
    TEST_TYPE_ALIGN  (wireHGLOBAL, 4)
}

static void test_pack_wireHMETAFILE(void)
{
    /* wireHMETAFILE */
    TEST_TYPE_SIZE   (wireHMETAFILE, 4)
    TEST_TYPE_ALIGN  (wireHMETAFILE, 4)
}

static void test_pack_wireHMETAFILEPICT(void)
{
    /* wireHMETAFILEPICT */
    TEST_TYPE_SIZE   (wireHMETAFILEPICT, 4)
    TEST_TYPE_ALIGN  (wireHMETAFILEPICT, 4)
}

static void test_pack_wireHPALETTE(void)
{
    /* wireHPALETTE */
    TEST_TYPE_SIZE   (wireHPALETTE, 4)
    TEST_TYPE_ALIGN  (wireHPALETTE, 4)
}

static void test_pack_CLSID(void)
{
    /* CLSID */
    TEST_TYPE_SIZE   (CLSID, 16)
    TEST_TYPE_ALIGN  (CLSID, 4)
}

static void test_pack_FMTID(void)
{
    /* FMTID */
    TEST_TYPE_SIZE   (FMTID, 16)
    TEST_TYPE_ALIGN  (FMTID, 4)
}

static void test_pack_IID(void)
{
    /* IID */
    TEST_TYPE_SIZE   (IID, 16)
    TEST_TYPE_ALIGN  (IID, 4)
}

static void test_pack_APPBARDATA(void)
{
    /* APPBARDATA (pack 1) */
    TEST_TYPE_SIZE   (APPBARDATA, 36)
    TEST_TYPE_ALIGN  (APPBARDATA, 1)
    TEST_FIELD_SIZE  (APPBARDATA, cbSize, 4)
    TEST_FIELD_ALIGN (APPBARDATA, cbSize, 1)
    TEST_FIELD_OFFSET(APPBARDATA, cbSize, 0)
    TEST_FIELD_SIZE  (APPBARDATA, hWnd, 4)
    TEST_FIELD_ALIGN (APPBARDATA, hWnd, 1)
    TEST_FIELD_OFFSET(APPBARDATA, hWnd, 4)
    TEST_FIELD_SIZE  (APPBARDATA, uCallbackMessage, 4)
    TEST_FIELD_ALIGN (APPBARDATA, uCallbackMessage, 1)
    TEST_FIELD_OFFSET(APPBARDATA, uCallbackMessage, 8)
    TEST_FIELD_SIZE  (APPBARDATA, uEdge, 4)
    TEST_FIELD_ALIGN (APPBARDATA, uEdge, 1)
    TEST_FIELD_OFFSET(APPBARDATA, uEdge, 12)
    TEST_FIELD_SIZE  (APPBARDATA, rc, 16)
    TEST_FIELD_ALIGN (APPBARDATA, rc, 1)
    TEST_FIELD_OFFSET(APPBARDATA, rc, 16)
    TEST_FIELD_SIZE  (APPBARDATA, lParam, 4)
    TEST_FIELD_ALIGN (APPBARDATA, lParam, 1)
    TEST_FIELD_OFFSET(APPBARDATA, lParam, 32)
}

static void test_pack_DRAGINFOA(void)
{
    /* DRAGINFOA (pack 1) */
    TEST_TYPE_SIZE   (DRAGINFOA, 24)
    TEST_TYPE_ALIGN  (DRAGINFOA, 1)
    TEST_FIELD_SIZE  (DRAGINFOA, uSize, 4)
    TEST_FIELD_ALIGN (DRAGINFOA, uSize, 1)
    TEST_FIELD_OFFSET(DRAGINFOA, uSize, 0)
    TEST_FIELD_SIZE  (DRAGINFOA, pt, 8)
    TEST_FIELD_ALIGN (DRAGINFOA, pt, 1)
    TEST_FIELD_OFFSET(DRAGINFOA, pt, 4)
    TEST_FIELD_SIZE  (DRAGINFOA, fNC, 4)
    TEST_FIELD_ALIGN (DRAGINFOA, fNC, 1)
    TEST_FIELD_OFFSET(DRAGINFOA, fNC, 12)
    TEST_FIELD_SIZE  (DRAGINFOA, lpFileList, 4)
    TEST_FIELD_ALIGN (DRAGINFOA, lpFileList, 1)
    TEST_FIELD_OFFSET(DRAGINFOA, lpFileList, 16)
    TEST_FIELD_SIZE  (DRAGINFOA, grfKeyState, 4)
    TEST_FIELD_ALIGN (DRAGINFOA, grfKeyState, 1)
    TEST_FIELD_OFFSET(DRAGINFOA, grfKeyState, 20)
}

static void test_pack_DRAGINFOW(void)
{
    /* DRAGINFOW (pack 1) */
    TEST_TYPE_SIZE   (DRAGINFOW, 24)
    TEST_TYPE_ALIGN  (DRAGINFOW, 1)
    TEST_FIELD_SIZE  (DRAGINFOW, uSize, 4)
    TEST_FIELD_ALIGN (DRAGINFOW, uSize, 1)
    TEST_FIELD_OFFSET(DRAGINFOW, uSize, 0)
    TEST_FIELD_SIZE  (DRAGINFOW, pt, 8)
    TEST_FIELD_ALIGN (DRAGINFOW, pt, 1)
    TEST_FIELD_OFFSET(DRAGINFOW, pt, 4)
    TEST_FIELD_SIZE  (DRAGINFOW, fNC, 4)
    TEST_FIELD_ALIGN (DRAGINFOW, fNC, 1)
    TEST_FIELD_OFFSET(DRAGINFOW, fNC, 12)
    TEST_FIELD_SIZE  (DRAGINFOW, lpFileList, 4)
    TEST_FIELD_ALIGN (DRAGINFOW, lpFileList, 1)
    TEST_FIELD_OFFSET(DRAGINFOW, lpFileList, 16)
    TEST_FIELD_SIZE  (DRAGINFOW, grfKeyState, 4)
    TEST_FIELD_ALIGN (DRAGINFOW, grfKeyState, 1)
    TEST_FIELD_OFFSET(DRAGINFOW, grfKeyState, 20)
}

static void test_pack_FILEOP_FLAGS(void)
{
    /* FILEOP_FLAGS */
    TEST_TYPE_SIZE   (FILEOP_FLAGS, 2)
    TEST_TYPE_ALIGN  (FILEOP_FLAGS, 2)
    TEST_TYPE_UNSIGNED(FILEOP_FLAGS)
}

static void test_pack_LPDRAGINFOA(void)
{
    /* LPDRAGINFOA */
    TEST_TYPE_SIZE   (LPDRAGINFOA, 4)
    TEST_TYPE_ALIGN  (LPDRAGINFOA, 4)
    TEST_TARGET_SIZE (LPDRAGINFOA, 24)
    TEST_TARGET_ALIGN(LPDRAGINFOA, 1)
}

static void test_pack_LPDRAGINFOW(void)
{
    /* LPDRAGINFOW */
    TEST_TYPE_SIZE   (LPDRAGINFOW, 4)
    TEST_TYPE_ALIGN  (LPDRAGINFOW, 4)
    TEST_TARGET_SIZE (LPDRAGINFOW, 24)
    TEST_TARGET_ALIGN(LPDRAGINFOW, 1)
}

static void test_pack_LPSHELLEXECUTEINFOA(void)
{
    /* LPSHELLEXECUTEINFOA */
    TEST_TYPE_SIZE   (LPSHELLEXECUTEINFOA, 4)
    TEST_TYPE_ALIGN  (LPSHELLEXECUTEINFOA, 4)
}

static void test_pack_LPSHELLEXECUTEINFOW(void)
{
    /* LPSHELLEXECUTEINFOW */
    TEST_TYPE_SIZE   (LPSHELLEXECUTEINFOW, 4)
    TEST_TYPE_ALIGN  (LPSHELLEXECUTEINFOW, 4)
}

static void test_pack_LPSHFILEOPSTRUCTA(void)
{
    /* LPSHFILEOPSTRUCTA */
    TEST_TYPE_SIZE   (LPSHFILEOPSTRUCTA, 4)
    TEST_TYPE_ALIGN  (LPSHFILEOPSTRUCTA, 4)
    TEST_TARGET_SIZE (LPSHFILEOPSTRUCTA, 30)
    TEST_TARGET_ALIGN(LPSHFILEOPSTRUCTA, 1)
}

static void test_pack_LPSHFILEOPSTRUCTW(void)
{
    /* LPSHFILEOPSTRUCTW */
    TEST_TYPE_SIZE   (LPSHFILEOPSTRUCTW, 4)
    TEST_TYPE_ALIGN  (LPSHFILEOPSTRUCTW, 4)
    TEST_TARGET_SIZE (LPSHFILEOPSTRUCTW, 30)
    TEST_TARGET_ALIGN(LPSHFILEOPSTRUCTW, 1)
}

static void test_pack_LPSHNAMEMAPPINGA(void)
{
    /* LPSHNAMEMAPPINGA */
    TEST_TYPE_SIZE   (LPSHNAMEMAPPINGA, 4)
    TEST_TYPE_ALIGN  (LPSHNAMEMAPPINGA, 4)
    TEST_TARGET_SIZE (LPSHNAMEMAPPINGA, 16)
    TEST_TARGET_ALIGN(LPSHNAMEMAPPINGA, 1)
}

static void test_pack_LPSHNAMEMAPPINGW(void)
{
    /* LPSHNAMEMAPPINGW */
    TEST_TYPE_SIZE   (LPSHNAMEMAPPINGW, 4)
    TEST_TYPE_ALIGN  (LPSHNAMEMAPPINGW, 4)
    TEST_TARGET_SIZE (LPSHNAMEMAPPINGW, 16)
    TEST_TARGET_ALIGN(LPSHNAMEMAPPINGW, 1)
}

static void test_pack_NOTIFYICONDATAA(void)
{
    /* NOTIFYICONDATAA (pack 1) */
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, cbSize, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, cbSize, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, cbSize, 0)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, hWnd, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, hWnd, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, hWnd, 4)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, uID, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, uID, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, uID, 8)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, uFlags, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, uFlags, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, uFlags, 12)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, uCallbackMessage, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, uCallbackMessage, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, uCallbackMessage, 16)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, hIcon, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, hIcon, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, hIcon, 20)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, szTip, 128)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, szTip, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, szTip, 24)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, dwState, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, dwState, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, dwState, 152)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, dwStateMask, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, dwStateMask, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, dwStateMask, 156)
    TEST_FIELD_SIZE  (NOTIFYICONDATAA, szInfo, 256)
    TEST_FIELD_ALIGN (NOTIFYICONDATAA, szInfo, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAA, szInfo, 160)
}

static void test_pack_NOTIFYICONDATAW(void)
{
    /* NOTIFYICONDATAW (pack 1) */
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, cbSize, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, cbSize, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, cbSize, 0)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, hWnd, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, hWnd, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, hWnd, 4)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, uID, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, uID, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, uID, 8)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, uFlags, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, uFlags, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, uFlags, 12)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, uCallbackMessage, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, uCallbackMessage, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, uCallbackMessage, 16)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, hIcon, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, hIcon, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, hIcon, 20)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, szTip, 256)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, szTip, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, szTip, 24)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, dwState, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, dwState, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, dwState, 280)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, dwStateMask, 4)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, dwStateMask, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, dwStateMask, 284)
    TEST_FIELD_SIZE  (NOTIFYICONDATAW, szInfo, 512)
    TEST_FIELD_ALIGN (NOTIFYICONDATAW, szInfo, 1)
    TEST_FIELD_OFFSET(NOTIFYICONDATAW, szInfo, 288)
}

static void test_pack_PAPPBARDATA(void)
{
    /* PAPPBARDATA */
    TEST_TYPE_SIZE   (PAPPBARDATA, 4)
    TEST_TYPE_ALIGN  (PAPPBARDATA, 4)
    TEST_TARGET_SIZE (PAPPBARDATA, 36)
    TEST_TARGET_ALIGN(PAPPBARDATA, 1)
}

static void test_pack_PNOTIFYICONDATAA(void)
{
    /* PNOTIFYICONDATAA */
    TEST_TYPE_SIZE   (PNOTIFYICONDATAA, 4)
    TEST_TYPE_ALIGN  (PNOTIFYICONDATAA, 4)
}

static void test_pack_PNOTIFYICONDATAW(void)
{
    /* PNOTIFYICONDATAW */
    TEST_TYPE_SIZE   (PNOTIFYICONDATAW, 4)
    TEST_TYPE_ALIGN  (PNOTIFYICONDATAW, 4)
}

static void test_pack_PRINTEROP_FLAGS(void)
{
    /* PRINTEROP_FLAGS */
    TEST_TYPE_SIZE   (PRINTEROP_FLAGS, 2)
    TEST_TYPE_ALIGN  (PRINTEROP_FLAGS, 2)
    TEST_TYPE_UNSIGNED(PRINTEROP_FLAGS)
}

static void test_pack_SHELLEXECUTEINFOA(void)
{
    /* SHELLEXECUTEINFOA (pack 1) */
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, cbSize, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, cbSize, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, cbSize, 0)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, fMask, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, fMask, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, fMask, 4)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, hwnd, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, hwnd, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, hwnd, 8)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpVerb, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpVerb, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpVerb, 12)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpFile, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpFile, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpFile, 16)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpParameters, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpParameters, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpParameters, 20)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpDirectory, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpDirectory, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpDirectory, 24)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, nShow, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, nShow, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, nShow, 28)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, hInstApp, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, hInstApp, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, hInstApp, 32)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpIDList, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpIDList, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpIDList, 36)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, lpClass, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, lpClass, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, lpClass, 40)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, hkeyClass, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, hkeyClass, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, hkeyClass, 44)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOA, dwHotKey, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOA, dwHotKey, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOA, dwHotKey, 48)
}

static void test_pack_SHELLEXECUTEINFOW(void)
{
    /* SHELLEXECUTEINFOW (pack 1) */
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, cbSize, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, cbSize, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, cbSize, 0)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, fMask, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, fMask, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, fMask, 4)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, hwnd, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, hwnd, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, hwnd, 8)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpVerb, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpVerb, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpVerb, 12)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpFile, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpFile, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpFile, 16)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpParameters, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpParameters, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpParameters, 20)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpDirectory, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpDirectory, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpDirectory, 24)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, nShow, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, nShow, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, nShow, 28)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, hInstApp, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, hInstApp, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, hInstApp, 32)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpIDList, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpIDList, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpIDList, 36)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, lpClass, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, lpClass, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, lpClass, 40)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, hkeyClass, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, hkeyClass, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, hkeyClass, 44)
    TEST_FIELD_SIZE  (SHELLEXECUTEINFOW, dwHotKey, 4)
    TEST_FIELD_ALIGN (SHELLEXECUTEINFOW, dwHotKey, 1)
    TEST_FIELD_OFFSET(SHELLEXECUTEINFOW, dwHotKey, 48)
}

static void test_pack_SHFILEINFOA(void)
{
    /* SHFILEINFOA (pack 1) */
    TEST_TYPE_SIZE   (SHFILEINFOA, 352)
    TEST_TYPE_ALIGN  (SHFILEINFOA, 1)
    TEST_FIELD_SIZE  (SHFILEINFOA, hIcon, 4)
    TEST_FIELD_ALIGN (SHFILEINFOA, hIcon, 1)
    TEST_FIELD_OFFSET(SHFILEINFOA, hIcon, 0)
    TEST_FIELD_SIZE  (SHFILEINFOA, iIcon, 4)
    TEST_FIELD_ALIGN (SHFILEINFOA, iIcon, 1)
    TEST_FIELD_OFFSET(SHFILEINFOA, iIcon, 4)
    TEST_FIELD_SIZE  (SHFILEINFOA, dwAttributes, 4)
    TEST_FIELD_ALIGN (SHFILEINFOA, dwAttributes, 1)
    TEST_FIELD_OFFSET(SHFILEINFOA, dwAttributes, 8)
    TEST_FIELD_SIZE  (SHFILEINFOA, szDisplayName, 260)
    TEST_FIELD_ALIGN (SHFILEINFOA, szDisplayName, 1)
    TEST_FIELD_OFFSET(SHFILEINFOA, szDisplayName, 12)
    TEST_FIELD_SIZE  (SHFILEINFOA, szTypeName, 80)
    TEST_FIELD_ALIGN (SHFILEINFOA, szTypeName, 1)
    TEST_FIELD_OFFSET(SHFILEINFOA, szTypeName, 272)
}

static void test_pack_SHFILEINFOW(void)
{
    /* SHFILEINFOW (pack 1) */
    TEST_TYPE_SIZE   (SHFILEINFOW, 692)
    TEST_TYPE_ALIGN  (SHFILEINFOW, 1)
    TEST_FIELD_SIZE  (SHFILEINFOW, hIcon, 4)
    TEST_FIELD_ALIGN (SHFILEINFOW, hIcon, 1)
    TEST_FIELD_OFFSET(SHFILEINFOW, hIcon, 0)
    TEST_FIELD_SIZE  (SHFILEINFOW, iIcon, 4)
    TEST_FIELD_ALIGN (SHFILEINFOW, iIcon, 1)
    TEST_FIELD_OFFSET(SHFILEINFOW, iIcon, 4)
    TEST_FIELD_SIZE  (SHFILEINFOW, dwAttributes, 4)
    TEST_FIELD_ALIGN (SHFILEINFOW, dwAttributes, 1)
    TEST_FIELD_OFFSET(SHFILEINFOW, dwAttributes, 8)
    TEST_FIELD_SIZE  (SHFILEINFOW, szDisplayName, 520)
    TEST_FIELD_ALIGN (SHFILEINFOW, szDisplayName, 1)
    TEST_FIELD_OFFSET(SHFILEINFOW, szDisplayName, 12)
    TEST_FIELD_SIZE  (SHFILEINFOW, szTypeName, 160)
    TEST_FIELD_ALIGN (SHFILEINFOW, szTypeName, 1)
    TEST_FIELD_OFFSET(SHFILEINFOW, szTypeName, 532)
}

static void test_pack_SHFILEOPSTRUCTA(void)
{
    /* SHFILEOPSTRUCTA (pack 1) */
    TEST_TYPE_SIZE   (SHFILEOPSTRUCTA, 30)
    TEST_TYPE_ALIGN  (SHFILEOPSTRUCTA, 1)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, hwnd, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, hwnd, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, hwnd, 0)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, wFunc, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, wFunc, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, wFunc, 4)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, pFrom, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, pFrom, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, pFrom, 8)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, pTo, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, pTo, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, pTo, 12)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, fFlags, 2)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, fFlags, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, fFlags, 16)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, fAnyOperationsAborted, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, fAnyOperationsAborted, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, fAnyOperationsAborted, 18)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, hNameMappings, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, hNameMappings, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, hNameMappings, 22)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTA, lpszProgressTitle, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTA, lpszProgressTitle, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTA, lpszProgressTitle, 26)
}

static void test_pack_SHFILEOPSTRUCTW(void)
{
    /* SHFILEOPSTRUCTW (pack 1) */
    TEST_TYPE_SIZE   (SHFILEOPSTRUCTW, 30)
    TEST_TYPE_ALIGN  (SHFILEOPSTRUCTW, 1)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, hwnd, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, hwnd, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, hwnd, 0)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, wFunc, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, wFunc, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, wFunc, 4)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, pFrom, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, pFrom, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, pFrom, 8)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, pTo, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, pTo, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, pTo, 12)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, fFlags, 2)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, fFlags, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, fFlags, 16)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, fAnyOperationsAborted, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, fAnyOperationsAborted, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, fAnyOperationsAborted, 18)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, hNameMappings, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, hNameMappings, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, hNameMappings, 22)
    TEST_FIELD_SIZE  (SHFILEOPSTRUCTW, lpszProgressTitle, 4)
    TEST_FIELD_ALIGN (SHFILEOPSTRUCTW, lpszProgressTitle, 1)
    TEST_FIELD_OFFSET(SHFILEOPSTRUCTW, lpszProgressTitle, 26)
}

static void test_pack_SHNAMEMAPPINGA(void)
{
    /* SHNAMEMAPPINGA (pack 1) */
    TEST_TYPE_SIZE   (SHNAMEMAPPINGA, 16)
    TEST_TYPE_ALIGN  (SHNAMEMAPPINGA, 1)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGA, pszOldPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGA, pszOldPath, 1)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGA, pszOldPath, 0)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGA, pszNewPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGA, pszNewPath, 1)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGA, pszNewPath, 4)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGA, cchOldPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGA, cchOldPath, 1)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGA, cchOldPath, 8)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGA, cchNewPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGA, cchNewPath, 1)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGA, cchNewPath, 12)
}

static void test_pack_SHNAMEMAPPINGW(void)
{
    /* SHNAMEMAPPINGW (pack 1) */
    TEST_TYPE_SIZE   (SHNAMEMAPPINGW, 16)
    TEST_TYPE_ALIGN  (SHNAMEMAPPINGW, 1)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGW, pszOldPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGW, pszOldPath, 1)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGW, pszOldPath, 0)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGW, pszNewPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGW, pszNewPath, 1)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGW, pszNewPath, 4)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGW, cchOldPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGW, cchOldPath, 1)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGW, cchOldPath, 8)
    TEST_FIELD_SIZE  (SHNAMEMAPPINGW, cchNewPath, 4)
    TEST_FIELD_ALIGN (SHNAMEMAPPINGW, cchNewPath, 1)
    TEST_FIELD_OFFSET(SHNAMEMAPPINGW, cchNewPath, 12)
}

static void test_pack_ITEMIDLIST(void)
{
    /* ITEMIDLIST (pack 1) */
    TEST_TYPE_SIZE   (ITEMIDLIST, 3)
    TEST_TYPE_ALIGN  (ITEMIDLIST, 1)
    TEST_FIELD_SIZE  (ITEMIDLIST, mkid, 3)
    TEST_FIELD_ALIGN (ITEMIDLIST, mkid, 1)
    TEST_FIELD_OFFSET(ITEMIDLIST, mkid, 0)
}

static void test_pack_LPCITEMIDLIST(void)
{
    /* LPCITEMIDLIST */
    TEST_TYPE_SIZE   (LPCITEMIDLIST, 4)
    TEST_TYPE_ALIGN  (LPCITEMIDLIST, 4)
    TEST_TARGET_SIZE (LPCITEMIDLIST, 3)
    TEST_TARGET_ALIGN(LPCITEMIDLIST, 1)
}

static void test_pack_LPCSHITEMID(void)
{
    /* LPCSHITEMID */
    TEST_TYPE_SIZE   (LPCSHITEMID, 4)
    TEST_TYPE_ALIGN  (LPCSHITEMID, 4)
    TEST_TARGET_SIZE (LPCSHITEMID, 3)
    TEST_TARGET_ALIGN(LPCSHITEMID, 1)
}

static void test_pack_LPITEMIDLIST(void)
{
    /* LPITEMIDLIST */
    TEST_TYPE_SIZE   (LPITEMIDLIST, 4)
    TEST_TYPE_ALIGN  (LPITEMIDLIST, 4)
}

static void test_pack_LPSHELLDETAILS(void)
{
    /* LPSHELLDETAILS */
    TEST_TYPE_SIZE   (LPSHELLDETAILS, 4)
    TEST_TYPE_ALIGN  (LPSHELLDETAILS, 4)
}

static void test_pack_LPSHITEMID(void)
{
    /* LPSHITEMID */
    TEST_TYPE_SIZE   (LPSHITEMID, 4)
    TEST_TYPE_ALIGN  (LPSHITEMID, 4)
}

static void test_pack_LPSTRRET(void)
{
    /* LPSTRRET */
    TEST_TYPE_SIZE   (LPSTRRET, 4)
    TEST_TYPE_ALIGN  (LPSTRRET, 4)
}

static void test_pack_SHELLDETAILS(void)
{
    /* SHELLDETAILS (pack 1) */
    TEST_FIELD_SIZE  (SHELLDETAILS, fmt, 4)
    TEST_FIELD_ALIGN (SHELLDETAILS, fmt, 1)
    TEST_FIELD_OFFSET(SHELLDETAILS, fmt, 0)
    TEST_FIELD_SIZE  (SHELLDETAILS, cxChar, 4)
    TEST_FIELD_ALIGN (SHELLDETAILS, cxChar, 1)
    TEST_FIELD_OFFSET(SHELLDETAILS, cxChar, 4)
}

static void test_pack_SHITEMID(void)
{
    /* SHITEMID (pack 1) */
    TEST_TYPE_SIZE   (SHITEMID, 3)
    TEST_TYPE_ALIGN  (SHITEMID, 1)
    TEST_FIELD_SIZE  (SHITEMID, cb, 2)
    TEST_FIELD_ALIGN (SHITEMID, cb, 1)
    TEST_FIELD_OFFSET(SHITEMID, cb, 0)
    TEST_FIELD_SIZE  (SHITEMID, abID, 1)
    TEST_FIELD_ALIGN (SHITEMID, abID, 1)
    TEST_FIELD_OFFSET(SHITEMID, abID, 2)
}

static void test_pack_STRRET(void)
{
    /* STRRET (pack 8) */
    TEST_FIELD_SIZE  (STRRET, uType, 4)
    TEST_FIELD_ALIGN (STRRET, uType, 4)
    TEST_FIELD_OFFSET(STRRET, uType, 0)
}

static void test_pack_AUTO_SCROLL_DATA(void)
{
    /* AUTO_SCROLL_DATA (pack 1) */
    TEST_TYPE_SIZE   (AUTO_SCROLL_DATA, 48)
    TEST_TYPE_ALIGN  (AUTO_SCROLL_DATA, 1)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, iNextSample, 4)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, iNextSample, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, iNextSample, 0)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, dwLastScroll, 4)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, dwLastScroll, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, dwLastScroll, 4)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, bFull, 4)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, bFull, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, bFull, 8)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, pts, 24)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, pts, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, pts, 12)
    TEST_FIELD_SIZE  (AUTO_SCROLL_DATA, dwTimes, 12)
    TEST_FIELD_ALIGN (AUTO_SCROLL_DATA, dwTimes, 1)
    TEST_FIELD_OFFSET(AUTO_SCROLL_DATA, dwTimes, 36)
}

static void test_pack_BFFCALLBACK(void)
{
    /* BFFCALLBACK */
    TEST_TYPE_SIZE   (BFFCALLBACK, 4)
    TEST_TYPE_ALIGN  (BFFCALLBACK, 4)
}

static void test_pack_BROWSEINFOA(void)
{
    /* BROWSEINFOA (pack 8) */
    TEST_TYPE_SIZE   (BROWSEINFOA, 32)
    TEST_TYPE_ALIGN  (BROWSEINFOA, 4)
    TEST_FIELD_SIZE  (BROWSEINFOA, hwndOwner, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, hwndOwner, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, hwndOwner, 0)
    TEST_FIELD_SIZE  (BROWSEINFOA, pidlRoot, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, pidlRoot, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, pidlRoot, 4)
    TEST_FIELD_SIZE  (BROWSEINFOA, pszDisplayName, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, pszDisplayName, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, pszDisplayName, 8)
    TEST_FIELD_SIZE  (BROWSEINFOA, lpszTitle, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, lpszTitle, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, lpszTitle, 12)
    TEST_FIELD_SIZE  (BROWSEINFOA, ulFlags, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, ulFlags, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, ulFlags, 16)
    TEST_FIELD_SIZE  (BROWSEINFOA, lpfn, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, lpfn, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, lpfn, 20)
    TEST_FIELD_SIZE  (BROWSEINFOA, lParam, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, lParam, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, lParam, 24)
    TEST_FIELD_SIZE  (BROWSEINFOA, iImage, 4)
    TEST_FIELD_ALIGN (BROWSEINFOA, iImage, 4)
    TEST_FIELD_OFFSET(BROWSEINFOA, iImage, 28)
}

static void test_pack_BROWSEINFOW(void)
{
    /* BROWSEINFOW (pack 8) */
    TEST_TYPE_SIZE   (BROWSEINFOW, 32)
    TEST_TYPE_ALIGN  (BROWSEINFOW, 4)
    TEST_FIELD_SIZE  (BROWSEINFOW, hwndOwner, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, hwndOwner, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, hwndOwner, 0)
    TEST_FIELD_SIZE  (BROWSEINFOW, pidlRoot, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, pidlRoot, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, pidlRoot, 4)
    TEST_FIELD_SIZE  (BROWSEINFOW, pszDisplayName, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, pszDisplayName, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, pszDisplayName, 8)
    TEST_FIELD_SIZE  (BROWSEINFOW, lpszTitle, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, lpszTitle, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, lpszTitle, 12)
    TEST_FIELD_SIZE  (BROWSEINFOW, ulFlags, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, ulFlags, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, ulFlags, 16)
    TEST_FIELD_SIZE  (BROWSEINFOW, lpfn, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, lpfn, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, lpfn, 20)
    TEST_FIELD_SIZE  (BROWSEINFOW, lParam, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, lParam, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, lParam, 24)
    TEST_FIELD_SIZE  (BROWSEINFOW, iImage, 4)
    TEST_FIELD_ALIGN (BROWSEINFOW, iImage, 4)
    TEST_FIELD_OFFSET(BROWSEINFOW, iImage, 28)
}

static void test_pack_CABINETSTATE(void)
{
    /* CABINETSTATE (pack 1) */
    TEST_TYPE_SIZE   (CABINETSTATE, 12)
    TEST_TYPE_ALIGN  (CABINETSTATE, 1)
    TEST_FIELD_SIZE  (CABINETSTATE, cLength, 2)
    TEST_FIELD_ALIGN (CABINETSTATE, cLength, 1)
    TEST_FIELD_OFFSET(CABINETSTATE, cLength, 0)
    TEST_FIELD_SIZE  (CABINETSTATE, nVersion, 2)
    TEST_FIELD_ALIGN (CABINETSTATE, nVersion, 1)
    TEST_FIELD_OFFSET(CABINETSTATE, nVersion, 2)
    TEST_FIELD_SIZE  (CABINETSTATE, fMenuEnumFilter, 4)
    TEST_FIELD_ALIGN (CABINETSTATE, fMenuEnumFilter, 1)
    TEST_FIELD_OFFSET(CABINETSTATE, fMenuEnumFilter, 8)
}

static void test_pack_CIDA(void)
{
    /* CIDA (pack 1) */
    TEST_TYPE_SIZE   (CIDA, 8)
    TEST_TYPE_ALIGN  (CIDA, 1)
    TEST_FIELD_SIZE  (CIDA, cidl, 4)
    TEST_FIELD_ALIGN (CIDA, cidl, 1)
    TEST_FIELD_OFFSET(CIDA, cidl, 0)
    TEST_FIELD_SIZE  (CIDA, aoffset, 4)
    TEST_FIELD_ALIGN (CIDA, aoffset, 1)
    TEST_FIELD_OFFSET(CIDA, aoffset, 4)
}

static void test_pack_CSFV(void)
{
    /* CSFV (pack 8) */
    TEST_FIELD_SIZE  (CSFV, cbSize, 4)
    TEST_FIELD_ALIGN (CSFV, cbSize, 4)
    TEST_FIELD_OFFSET(CSFV, cbSize, 0)
    TEST_FIELD_SIZE  (CSFV, pshf, 4)
    TEST_FIELD_ALIGN (CSFV, pshf, 4)
    TEST_FIELD_OFFSET(CSFV, pshf, 4)
    TEST_FIELD_SIZE  (CSFV, psvOuter, 4)
    TEST_FIELD_ALIGN (CSFV, psvOuter, 4)
    TEST_FIELD_OFFSET(CSFV, psvOuter, 8)
    TEST_FIELD_SIZE  (CSFV, pidl, 4)
    TEST_FIELD_ALIGN (CSFV, pidl, 4)
    TEST_FIELD_OFFSET(CSFV, pidl, 12)
    TEST_FIELD_SIZE  (CSFV, lEvents, 4)
    TEST_FIELD_ALIGN (CSFV, lEvents, 4)
    TEST_FIELD_OFFSET(CSFV, lEvents, 16)
    TEST_FIELD_SIZE  (CSFV, pfnCallback, 4)
    TEST_FIELD_ALIGN (CSFV, pfnCallback, 4)
    TEST_FIELD_OFFSET(CSFV, pfnCallback, 20)
}

static void test_pack_DROPFILES(void)
{
    /* DROPFILES (pack 1) */
    TEST_TYPE_SIZE   (DROPFILES, 20)
    TEST_TYPE_ALIGN  (DROPFILES, 1)
    TEST_FIELD_SIZE  (DROPFILES, pFiles, 4)
    TEST_FIELD_ALIGN (DROPFILES, pFiles, 1)
    TEST_FIELD_OFFSET(DROPFILES, pFiles, 0)
    TEST_FIELD_SIZE  (DROPFILES, pt, 8)
    TEST_FIELD_ALIGN (DROPFILES, pt, 1)
    TEST_FIELD_OFFSET(DROPFILES, pt, 4)
    TEST_FIELD_SIZE  (DROPFILES, fNC, 4)
    TEST_FIELD_ALIGN (DROPFILES, fNC, 1)
    TEST_FIELD_OFFSET(DROPFILES, fNC, 12)
    TEST_FIELD_SIZE  (DROPFILES, fWide, 4)
    TEST_FIELD_ALIGN (DROPFILES, fWide, 1)
    TEST_FIELD_OFFSET(DROPFILES, fWide, 16)
}

static void test_pack_FILEDESCRIPTORA(void)
{
    /* FILEDESCRIPTORA (pack 1) */
    TEST_TYPE_SIZE   (FILEDESCRIPTORA, 332)
    TEST_TYPE_ALIGN  (FILEDESCRIPTORA, 1)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, dwFlags, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, dwFlags, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, dwFlags, 0)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, clsid, 16)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, clsid, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, clsid, 4)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, sizel, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, sizel, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, sizel, 20)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, pointl, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, pointl, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, pointl, 28)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, dwFileAttributes, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, dwFileAttributes, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, dwFileAttributes, 36)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, ftCreationTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, ftCreationTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, ftCreationTime, 40)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, ftLastAccessTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, ftLastAccessTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, ftLastAccessTime, 48)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, ftLastWriteTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, ftLastWriteTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, ftLastWriteTime, 56)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, nFileSizeHigh, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, nFileSizeHigh, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, nFileSizeHigh, 64)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, nFileSizeLow, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, nFileSizeLow, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, nFileSizeLow, 68)
    TEST_FIELD_SIZE  (FILEDESCRIPTORA, cFileName, 260)
    TEST_FIELD_ALIGN (FILEDESCRIPTORA, cFileName, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORA, cFileName, 72)
}

static void test_pack_FILEDESCRIPTORW(void)
{
    /* FILEDESCRIPTORW (pack 1) */
    TEST_TYPE_SIZE   (FILEDESCRIPTORW, 592)
    TEST_TYPE_ALIGN  (FILEDESCRIPTORW, 1)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, dwFlags, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, dwFlags, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, dwFlags, 0)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, clsid, 16)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, clsid, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, clsid, 4)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, sizel, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, sizel, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, sizel, 20)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, pointl, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, pointl, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, pointl, 28)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, dwFileAttributes, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, dwFileAttributes, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, dwFileAttributes, 36)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, ftCreationTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, ftCreationTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, ftCreationTime, 40)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, ftLastAccessTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, ftLastAccessTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, ftLastAccessTime, 48)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, ftLastWriteTime, 8)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, ftLastWriteTime, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, ftLastWriteTime, 56)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, nFileSizeHigh, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, nFileSizeHigh, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, nFileSizeHigh, 64)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, nFileSizeLow, 4)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, nFileSizeLow, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, nFileSizeLow, 68)
    TEST_FIELD_SIZE  (FILEDESCRIPTORW, cFileName, 520)
    TEST_FIELD_ALIGN (FILEDESCRIPTORW, cFileName, 1)
    TEST_FIELD_OFFSET(FILEDESCRIPTORW, cFileName, 72)
}

static void test_pack_FILEGROUPDESCRIPTORA(void)
{
    /* FILEGROUPDESCRIPTORA (pack 1) */
    TEST_TYPE_SIZE   (FILEGROUPDESCRIPTORA, 336)
    TEST_TYPE_ALIGN  (FILEGROUPDESCRIPTORA, 1)
    TEST_FIELD_SIZE  (FILEGROUPDESCRIPTORA, cItems, 4)
    TEST_FIELD_ALIGN (FILEGROUPDESCRIPTORA, cItems, 1)
    TEST_FIELD_OFFSET(FILEGROUPDESCRIPTORA, cItems, 0)
    TEST_FIELD_SIZE  (FILEGROUPDESCRIPTORA, fgd, 332)
    TEST_FIELD_ALIGN (FILEGROUPDESCRIPTORA, fgd, 1)
    TEST_FIELD_OFFSET(FILEGROUPDESCRIPTORA, fgd, 4)
}

static void test_pack_FILEGROUPDESCRIPTORW(void)
{
    /* FILEGROUPDESCRIPTORW (pack 1) */
    TEST_TYPE_SIZE   (FILEGROUPDESCRIPTORW, 596)
    TEST_TYPE_ALIGN  (FILEGROUPDESCRIPTORW, 1)
    TEST_FIELD_SIZE  (FILEGROUPDESCRIPTORW, cItems, 4)
    TEST_FIELD_ALIGN (FILEGROUPDESCRIPTORW, cItems, 1)
    TEST_FIELD_OFFSET(FILEGROUPDESCRIPTORW, cItems, 0)
    TEST_FIELD_SIZE  (FILEGROUPDESCRIPTORW, fgd, 592)
    TEST_FIELD_ALIGN (FILEGROUPDESCRIPTORW, fgd, 1)
    TEST_FIELD_OFFSET(FILEGROUPDESCRIPTORW, fgd, 4)
}

static void test_pack_ITEMSPACING(void)
{
    /* ITEMSPACING (pack 8) */
    TEST_TYPE_SIZE   (ITEMSPACING, 16)
    TEST_TYPE_ALIGN  (ITEMSPACING, 4)
    TEST_FIELD_SIZE  (ITEMSPACING, cxSmall, 4)
    TEST_FIELD_ALIGN (ITEMSPACING, cxSmall, 4)
    TEST_FIELD_OFFSET(ITEMSPACING, cxSmall, 0)
    TEST_FIELD_SIZE  (ITEMSPACING, cySmall, 4)
    TEST_FIELD_ALIGN (ITEMSPACING, cySmall, 4)
    TEST_FIELD_OFFSET(ITEMSPACING, cySmall, 4)
    TEST_FIELD_SIZE  (ITEMSPACING, cxLarge, 4)
    TEST_FIELD_ALIGN (ITEMSPACING, cxLarge, 4)
    TEST_FIELD_OFFSET(ITEMSPACING, cxLarge, 8)
    TEST_FIELD_SIZE  (ITEMSPACING, cyLarge, 4)
    TEST_FIELD_ALIGN (ITEMSPACING, cyLarge, 4)
    TEST_FIELD_OFFSET(ITEMSPACING, cyLarge, 12)
}

static void test_pack_LPBROWSEINFOA(void)
{
    /* LPBROWSEINFOA */
    TEST_TYPE_SIZE   (LPBROWSEINFOA, 4)
    TEST_TYPE_ALIGN  (LPBROWSEINFOA, 4)
    TEST_TARGET_SIZE (LPBROWSEINFOA, 32)
    TEST_TARGET_ALIGN(LPBROWSEINFOA, 4)
}

static void test_pack_LPBROWSEINFOW(void)
{
    /* LPBROWSEINFOW */
    TEST_TYPE_SIZE   (LPBROWSEINFOW, 4)
    TEST_TYPE_ALIGN  (LPBROWSEINFOW, 4)
    TEST_TARGET_SIZE (LPBROWSEINFOW, 32)
    TEST_TARGET_ALIGN(LPBROWSEINFOW, 4)
}

static void test_pack_LPCABINETSTATE(void)
{
    /* LPCABINETSTATE */
    TEST_TYPE_SIZE   (LPCABINETSTATE, 4)
    TEST_TYPE_ALIGN  (LPCABINETSTATE, 4)
    TEST_TARGET_SIZE (LPCABINETSTATE, 12)
    TEST_TARGET_ALIGN(LPCABINETSTATE, 1)
}

static void test_pack_LPCSFV(void)
{
    /* LPCSFV */
    TEST_TYPE_SIZE   (LPCSFV, 4)
    TEST_TYPE_ALIGN  (LPCSFV, 4)
}

static void test_pack_LPDROPFILES(void)
{
    /* LPDROPFILES */
    TEST_TYPE_SIZE   (LPDROPFILES, 4)
    TEST_TYPE_ALIGN  (LPDROPFILES, 4)
    TEST_TARGET_SIZE (LPDROPFILES, 20)
    TEST_TARGET_ALIGN(LPDROPFILES, 1)
}

static void test_pack_LPFILEDESCRIPTORA(void)
{
    /* LPFILEDESCRIPTORA */
    TEST_TYPE_SIZE   (LPFILEDESCRIPTORA, 4)
    TEST_TYPE_ALIGN  (LPFILEDESCRIPTORA, 4)
    TEST_TARGET_SIZE (LPFILEDESCRIPTORA, 332)
    TEST_TARGET_ALIGN(LPFILEDESCRIPTORA, 1)
}

static void test_pack_LPFILEDESCRIPTORW(void)
{
    /* LPFILEDESCRIPTORW */
    TEST_TYPE_SIZE   (LPFILEDESCRIPTORW, 4)
    TEST_TYPE_ALIGN  (LPFILEDESCRIPTORW, 4)
    TEST_TARGET_SIZE (LPFILEDESCRIPTORW, 592)
    TEST_TARGET_ALIGN(LPFILEDESCRIPTORW, 1)
}

static void test_pack_LPFILEGROUPDESCRIPTORA(void)
{
    /* LPFILEGROUPDESCRIPTORA */
    TEST_TYPE_SIZE   (LPFILEGROUPDESCRIPTORA, 4)
    TEST_TYPE_ALIGN  (LPFILEGROUPDESCRIPTORA, 4)
    TEST_TARGET_SIZE (LPFILEGROUPDESCRIPTORA, 336)
    TEST_TARGET_ALIGN(LPFILEGROUPDESCRIPTORA, 1)
}

static void test_pack_LPFILEGROUPDESCRIPTORW(void)
{
    /* LPFILEGROUPDESCRIPTORW */
    TEST_TYPE_SIZE   (LPFILEGROUPDESCRIPTORW, 4)
    TEST_TYPE_ALIGN  (LPFILEGROUPDESCRIPTORW, 4)
    TEST_TARGET_SIZE (LPFILEGROUPDESCRIPTORW, 596)
    TEST_TARGET_ALIGN(LPFILEGROUPDESCRIPTORW, 1)
}

static void test_pack_LPFNVIEWCALLBACK(void)
{
    /* LPFNVIEWCALLBACK */
    TEST_TYPE_SIZE   (LPFNVIEWCALLBACK, 4)
    TEST_TYPE_ALIGN  (LPFNVIEWCALLBACK, 4)
}

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

static void test_pack_LPQCMINFO(void)
{
    /* LPQCMINFO */
    TEST_TYPE_SIZE   (LPQCMINFO, 4)
    TEST_TYPE_ALIGN  (LPQCMINFO, 4)
    TEST_TARGET_SIZE (LPQCMINFO, 20)
    TEST_TARGET_ALIGN(LPQCMINFO, 4)
}

static void test_pack_LPSHChangeDWORDAsIDList(void)
{
    /* LPSHChangeDWORDAsIDList */
    TEST_TYPE_SIZE   (LPSHChangeDWORDAsIDList, 4)
    TEST_TYPE_ALIGN  (LPSHChangeDWORDAsIDList, 4)
    TEST_TARGET_SIZE (LPSHChangeDWORDAsIDList, 12)
    TEST_TARGET_ALIGN(LPSHChangeDWORDAsIDList, 1)
}

static void test_pack_LPSHChangeProductKeyAsIDList(void)
{
    /* LPSHChangeProductKeyAsIDList */
    TEST_TYPE_SIZE   (LPSHChangeProductKeyAsIDList, 4)
    TEST_TYPE_ALIGN  (LPSHChangeProductKeyAsIDList, 4)
    TEST_TARGET_SIZE (LPSHChangeProductKeyAsIDList, 82)
    TEST_TARGET_ALIGN(LPSHChangeProductKeyAsIDList, 1)
}

static void test_pack_LPSHDESCRIPTIONID(void)
{
    /* LPSHDESCRIPTIONID */
    TEST_TYPE_SIZE   (LPSHDESCRIPTIONID, 4)
    TEST_TYPE_ALIGN  (LPSHDESCRIPTIONID, 4)
    TEST_TARGET_SIZE (LPSHDESCRIPTIONID, 20)
    TEST_TARGET_ALIGN(LPSHDESCRIPTIONID, 4)
}

static void test_pack_LPSHELLFLAGSTATE(void)
{
    /* LPSHELLFLAGSTATE */
    TEST_TYPE_SIZE   (LPSHELLFLAGSTATE, 4)
    TEST_TYPE_ALIGN  (LPSHELLFLAGSTATE, 4)
    TEST_TARGET_SIZE (LPSHELLFLAGSTATE, 4)
    TEST_TARGET_ALIGN(LPSHELLFLAGSTATE, 1)
}

static void test_pack_LPSHELLSTATE(void)
{
    /* LPSHELLSTATE */
    TEST_TYPE_SIZE   (LPSHELLSTATE, 4)
    TEST_TYPE_ALIGN  (LPSHELLSTATE, 4)
    TEST_TARGET_SIZE (LPSHELLSTATE, 32)
    TEST_TARGET_ALIGN(LPSHELLSTATE, 1)
}

static void test_pack_LPTBINFO(void)
{
    /* LPTBINFO */
    TEST_TYPE_SIZE   (LPTBINFO, 4)
    TEST_TYPE_ALIGN  (LPTBINFO, 4)
    TEST_TARGET_SIZE (LPTBINFO, 8)
    TEST_TARGET_ALIGN(LPTBINFO, 4)
}

static void test_pack_PBROWSEINFOA(void)
{
    /* PBROWSEINFOA */
    TEST_TYPE_SIZE   (PBROWSEINFOA, 4)
    TEST_TYPE_ALIGN  (PBROWSEINFOA, 4)
    TEST_TARGET_SIZE (PBROWSEINFOA, 32)
    TEST_TARGET_ALIGN(PBROWSEINFOA, 4)
}

static void test_pack_PBROWSEINFOW(void)
{
    /* PBROWSEINFOW */
    TEST_TYPE_SIZE   (PBROWSEINFOW, 4)
    TEST_TYPE_ALIGN  (PBROWSEINFOW, 4)
    TEST_TARGET_SIZE (PBROWSEINFOW, 32)
    TEST_TARGET_ALIGN(PBROWSEINFOW, 4)
}

static void test_pack_QCMINFO(void)
{
    /* QCMINFO (pack 8) */
    TEST_TYPE_SIZE   (QCMINFO, 20)
    TEST_TYPE_ALIGN  (QCMINFO, 4)
    TEST_FIELD_SIZE  (QCMINFO, hmenu, 4)
    TEST_FIELD_ALIGN (QCMINFO, hmenu, 4)
    TEST_FIELD_OFFSET(QCMINFO, hmenu, 0)
    TEST_FIELD_SIZE  (QCMINFO, indexMenu, 4)
    TEST_FIELD_ALIGN (QCMINFO, indexMenu, 4)
    TEST_FIELD_OFFSET(QCMINFO, indexMenu, 4)
    TEST_FIELD_SIZE  (QCMINFO, idCmdFirst, 4)
    TEST_FIELD_ALIGN (QCMINFO, idCmdFirst, 4)
    TEST_FIELD_OFFSET(QCMINFO, idCmdFirst, 8)
    TEST_FIELD_SIZE  (QCMINFO, idCmdLast, 4)
    TEST_FIELD_ALIGN (QCMINFO, idCmdLast, 4)
    TEST_FIELD_OFFSET(QCMINFO, idCmdLast, 12)
    TEST_FIELD_SIZE  (QCMINFO, pIdMap, 4)
    TEST_FIELD_ALIGN (QCMINFO, pIdMap, 4)
    TEST_FIELD_OFFSET(QCMINFO, pIdMap, 16)
}

static void test_pack_QCMINFO_IDMAP(void)
{
    /* QCMINFO_IDMAP (pack 8) */
    TEST_TYPE_SIZE   (QCMINFO_IDMAP, 12)
    TEST_TYPE_ALIGN  (QCMINFO_IDMAP, 4)
    TEST_FIELD_SIZE  (QCMINFO_IDMAP, nMaxIds, 4)
    TEST_FIELD_ALIGN (QCMINFO_IDMAP, nMaxIds, 4)
    TEST_FIELD_OFFSET(QCMINFO_IDMAP, nMaxIds, 0)
    TEST_FIELD_SIZE  (QCMINFO_IDMAP, pIdList, 8)
    TEST_FIELD_ALIGN (QCMINFO_IDMAP, pIdList, 4)
    TEST_FIELD_OFFSET(QCMINFO_IDMAP, pIdList, 4)
}

static void test_pack_QCMINFO_IDMAP_PLACEMENT(void)
{
    /* QCMINFO_IDMAP_PLACEMENT (pack 8) */
    TEST_TYPE_SIZE   (QCMINFO_IDMAP_PLACEMENT, 8)
    TEST_TYPE_ALIGN  (QCMINFO_IDMAP_PLACEMENT, 4)
    TEST_FIELD_SIZE  (QCMINFO_IDMAP_PLACEMENT, id, 4)
    TEST_FIELD_ALIGN (QCMINFO_IDMAP_PLACEMENT, id, 4)
    TEST_FIELD_OFFSET(QCMINFO_IDMAP_PLACEMENT, id, 0)
    TEST_FIELD_SIZE  (QCMINFO_IDMAP_PLACEMENT, fFlags, 4)
    TEST_FIELD_ALIGN (QCMINFO_IDMAP_PLACEMENT, fFlags, 4)
    TEST_FIELD_OFFSET(QCMINFO_IDMAP_PLACEMENT, fFlags, 4)
}

static void test_pack_SFV_CREATE(void)
{
    /* SFV_CREATE (pack 8) */
    TEST_TYPE_SIZE   (SFV_CREATE, 16)
    TEST_TYPE_ALIGN  (SFV_CREATE, 4)
    TEST_FIELD_SIZE  (SFV_CREATE, cbSize, 4)
    TEST_FIELD_ALIGN (SFV_CREATE, cbSize, 4)
    TEST_FIELD_OFFSET(SFV_CREATE, cbSize, 0)
    TEST_FIELD_SIZE  (SFV_CREATE, pshf, 4)
    TEST_FIELD_ALIGN (SFV_CREATE, pshf, 4)
    TEST_FIELD_OFFSET(SFV_CREATE, pshf, 4)
    TEST_FIELD_SIZE  (SFV_CREATE, psvOuter, 4)
    TEST_FIELD_ALIGN (SFV_CREATE, psvOuter, 4)
    TEST_FIELD_OFFSET(SFV_CREATE, psvOuter, 8)
    TEST_FIELD_SIZE  (SFV_CREATE, psfvcb, 4)
    TEST_FIELD_ALIGN (SFV_CREATE, psfvcb, 4)
    TEST_FIELD_OFFSET(SFV_CREATE, psfvcb, 12)
}

static void test_pack_SHChangeDWORDAsIDList(void)
{
    /* SHChangeDWORDAsIDList (pack 1) */
    TEST_TYPE_SIZE   (SHChangeDWORDAsIDList, 12)
    TEST_TYPE_ALIGN  (SHChangeDWORDAsIDList, 1)
    TEST_FIELD_SIZE  (SHChangeDWORDAsIDList, cb, 2)
    TEST_FIELD_ALIGN (SHChangeDWORDAsIDList, cb, 1)
    TEST_FIELD_OFFSET(SHChangeDWORDAsIDList, cb, 0)
    TEST_FIELD_SIZE  (SHChangeDWORDAsIDList, dwItem1, 4)
    TEST_FIELD_ALIGN (SHChangeDWORDAsIDList, dwItem1, 1)
    TEST_FIELD_OFFSET(SHChangeDWORDAsIDList, dwItem1, 2)
    TEST_FIELD_SIZE  (SHChangeDWORDAsIDList, dwItem2, 4)
    TEST_FIELD_ALIGN (SHChangeDWORDAsIDList, dwItem2, 1)
    TEST_FIELD_OFFSET(SHChangeDWORDAsIDList, dwItem2, 6)
    TEST_FIELD_SIZE  (SHChangeDWORDAsIDList, cbZero, 2)
    TEST_FIELD_ALIGN (SHChangeDWORDAsIDList, cbZero, 1)
    TEST_FIELD_OFFSET(SHChangeDWORDAsIDList, cbZero, 10)
}

static void test_pack_SHChangeNotifyEntry(void)
{
    /* SHChangeNotifyEntry (pack 1) */
    TEST_TYPE_SIZE   (SHChangeNotifyEntry, 8)
    TEST_TYPE_ALIGN  (SHChangeNotifyEntry, 1)
    TEST_FIELD_SIZE  (SHChangeNotifyEntry, pidl, 4)
    TEST_FIELD_ALIGN (SHChangeNotifyEntry, pidl, 1)
    TEST_FIELD_OFFSET(SHChangeNotifyEntry, pidl, 0)
    TEST_FIELD_SIZE  (SHChangeNotifyEntry, fRecursive, 4)
    TEST_FIELD_ALIGN (SHChangeNotifyEntry, fRecursive, 1)
    TEST_FIELD_OFFSET(SHChangeNotifyEntry, fRecursive, 4)
}

static void test_pack_SHChangeProductKeyAsIDList(void)
{
    /* SHChangeProductKeyAsIDList (pack 1) */
    TEST_TYPE_SIZE   (SHChangeProductKeyAsIDList, 82)
    TEST_TYPE_ALIGN  (SHChangeProductKeyAsIDList, 1)
    TEST_FIELD_SIZE  (SHChangeProductKeyAsIDList, cb, 2)
    TEST_FIELD_ALIGN (SHChangeProductKeyAsIDList, cb, 1)
    TEST_FIELD_OFFSET(SHChangeProductKeyAsIDList, cb, 0)
    TEST_FIELD_SIZE  (SHChangeProductKeyAsIDList, wszProductKey, 78)
    TEST_FIELD_ALIGN (SHChangeProductKeyAsIDList, wszProductKey, 1)
    TEST_FIELD_OFFSET(SHChangeProductKeyAsIDList, wszProductKey, 2)
    TEST_FIELD_SIZE  (SHChangeProductKeyAsIDList, cbZero, 2)
    TEST_FIELD_ALIGN (SHChangeProductKeyAsIDList, cbZero, 1)
    TEST_FIELD_OFFSET(SHChangeProductKeyAsIDList, cbZero, 80)
}

static void test_pack_SHDESCRIPTIONID(void)
{
    /* SHDESCRIPTIONID (pack 8) */
    TEST_TYPE_SIZE   (SHDESCRIPTIONID, 20)
    TEST_TYPE_ALIGN  (SHDESCRIPTIONID, 4)
    TEST_FIELD_SIZE  (SHDESCRIPTIONID, dwDescriptionId, 4)
    TEST_FIELD_ALIGN (SHDESCRIPTIONID, dwDescriptionId, 4)
    TEST_FIELD_OFFSET(SHDESCRIPTIONID, dwDescriptionId, 0)
    TEST_FIELD_SIZE  (SHDESCRIPTIONID, clsid, 16)
    TEST_FIELD_ALIGN (SHDESCRIPTIONID, clsid, 4)
    TEST_FIELD_OFFSET(SHDESCRIPTIONID, clsid, 4)
}

static void test_pack_SHELLFLAGSTATE(void)
{
    /* SHELLFLAGSTATE (pack 1) */
    TEST_TYPE_SIZE   (SHELLFLAGSTATE, 4)
    TEST_TYPE_ALIGN  (SHELLFLAGSTATE, 1)
}

static void test_pack_SHELLSTATE(void)
{
    /* SHELLSTATE (pack 1) */
    TEST_TYPE_SIZE   (SHELLSTATE, 32)
    TEST_TYPE_ALIGN  (SHELLSTATE, 1)
    TEST_FIELD_SIZE  (SHELLSTATE, dwWin95Unused, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, dwWin95Unused, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, dwWin95Unused, 4)
    TEST_FIELD_SIZE  (SHELLSTATE, uWin95Unused, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, uWin95Unused, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, uWin95Unused, 8)
    TEST_FIELD_SIZE  (SHELLSTATE, lParamSort, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, lParamSort, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, lParamSort, 12)
    TEST_FIELD_SIZE  (SHELLSTATE, iSortDirection, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, iSortDirection, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, iSortDirection, 16)
    TEST_FIELD_SIZE  (SHELLSTATE, version, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, version, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, version, 20)
    TEST_FIELD_SIZE  (SHELLSTATE, uNotUsed, 4)
    TEST_FIELD_ALIGN (SHELLSTATE, uNotUsed, 1)
    TEST_FIELD_OFFSET(SHELLSTATE, uNotUsed, 24)
}

static void test_pack_TBINFO(void)
{
    /* TBINFO (pack 8) */
    TEST_TYPE_SIZE   (TBINFO, 8)
    TEST_TYPE_ALIGN  (TBINFO, 4)
    TEST_FIELD_SIZE  (TBINFO, cbuttons, 4)
    TEST_FIELD_ALIGN (TBINFO, cbuttons, 4)
    TEST_FIELD_OFFSET(TBINFO, cbuttons, 0)
    TEST_FIELD_SIZE  (TBINFO, uFlags, 4)
    TEST_FIELD_ALIGN (TBINFO, uFlags, 4)
    TEST_FIELD_OFFSET(TBINFO, uFlags, 4)
}

#endif /* _WIN64 */

static void test_pack(void)
{
    test_pack_APPBARDATA();
    test_pack_AUTO_SCROLL_DATA();
    test_pack_BFFCALLBACK();
    test_pack_BLOB();
    test_pack_BROWSEINFOA();
    test_pack_BROWSEINFOW();
    test_pack_BSTR();
    test_pack_BSTRBLOB();
    test_pack_BYTE_BLOB();
    test_pack_BYTE_SIZEDARR();
    test_pack_CABINETSTATE();
    test_pack_CIDA();
    test_pack_CLIPDATA();
    test_pack_CLIPFORMAT();
    test_pack_CLSID();
    test_pack_COAUTHIDENTITY();
    test_pack_COAUTHINFO();
    test_pack_CSFV();
    test_pack_DATE();
    test_pack_DOUBLE();
    test_pack_DRAGINFOA();
    test_pack_DRAGINFOW();
    test_pack_DROPFILES();
    test_pack_DWORD_SIZEDARR();
    test_pack_FILEDESCRIPTORA();
    test_pack_FILEDESCRIPTORW();
    test_pack_FILEGROUPDESCRIPTORA();
    test_pack_FILEGROUPDESCRIPTORW();
    test_pack_FILEOP_FLAGS();
    test_pack_FLAGGED_BYTE_BLOB();
    test_pack_FLAGGED_WORD_BLOB();
    test_pack_FMTID();
    test_pack_HMETAFILEPICT();
    test_pack_HYPER_SIZEDARR();
    test_pack_IID();
    test_pack_ITEMIDLIST();
    test_pack_ITEMSPACING();
    test_pack_LPBLOB();
    test_pack_LPBROWSEINFOA();
    test_pack_LPBROWSEINFOW();
    test_pack_LPBSTR();
    test_pack_LPBSTRBLOB();
    test_pack_LPCABINETSTATE();
    test_pack_LPCITEMIDLIST();
    test_pack_LPCOLESTR();
    test_pack_LPCSFV();
    test_pack_LPCSHITEMID();
    test_pack_LPCY();
    test_pack_LPDECIMAL();
    test_pack_LPDRAGINFOA();
    test_pack_LPDRAGINFOW();
    test_pack_LPDROPFILES();
    test_pack_LPFILEDESCRIPTORA();
    test_pack_LPFILEDESCRIPTORW();
    test_pack_LPFILEGROUPDESCRIPTORA();
    test_pack_LPFILEGROUPDESCRIPTORW();
    test_pack_LPFNVIEWCALLBACK();
    test_pack_LPIDA();
    test_pack_LPITEMIDLIST();
    test_pack_LPOLESTR();
    test_pack_LPQCMINFO();
    test_pack_LPSHChangeDWORDAsIDList();
    test_pack_LPSHChangeProductKeyAsIDList();
    test_pack_LPSHDESCRIPTIONID();
    test_pack_LPSHELLDETAILS();
    test_pack_LPSHELLEXECUTEINFOA();
    test_pack_LPSHELLEXECUTEINFOW();
    test_pack_LPSHELLFLAGSTATE();
    test_pack_LPSHELLSTATE();
    test_pack_LPSHFILEOPSTRUCTA();
    test_pack_LPSHFILEOPSTRUCTW();
    test_pack_LPSHITEMID();
    test_pack_LPSHNAMEMAPPINGA();
    test_pack_LPSHNAMEMAPPINGW();
    test_pack_LPSTRRET();
    test_pack_LPTBINFO();
    test_pack_NOTIFYICONDATAA();
    test_pack_NOTIFYICONDATAW();
    test_pack_OLECHAR();
    test_pack_PAPPBARDATA();
    test_pack_PBROWSEINFOA();
    test_pack_PBROWSEINFOW();
    test_pack_PNOTIFYICONDATAA();
    test_pack_PNOTIFYICONDATAW();
    test_pack_PRINTEROP_FLAGS();
    test_pack_PROPID();
    test_pack_QCMINFO();
    test_pack_QCMINFO_IDMAP();
    test_pack_QCMINFO_IDMAP_PLACEMENT();
    test_pack_RemHBITMAP();
    test_pack_RemHENHMETAFILE();
    test_pack_RemHGLOBAL();
    test_pack_RemHMETAFILEPICT();
    test_pack_RemHPALETTE();
    test_pack_SCODE();
    test_pack_SFV_CREATE();
    test_pack_SHChangeDWORDAsIDList();
    test_pack_SHChangeNotifyEntry();
    test_pack_SHChangeProductKeyAsIDList();
    test_pack_SHDESCRIPTIONID();
    test_pack_SHELLDETAILS();
    test_pack_SHELLEXECUTEINFOA();
    test_pack_SHELLEXECUTEINFOW();
    test_pack_SHELLFLAGSTATE();
    test_pack_SHELLSTATE();
    test_pack_SHFILEINFOA();
    test_pack_SHFILEINFOW();
    test_pack_SHFILEOPSTRUCTA();
    test_pack_SHFILEOPSTRUCTW();
    test_pack_SHITEMID();
    test_pack_SHNAMEMAPPINGA();
    test_pack_SHNAMEMAPPINGW();
    test_pack_STRRET();
    test_pack_TBINFO();
    test_pack_UP_BYTE_BLOB();
    test_pack_UP_FLAGGED_BYTE_BLOB();
    test_pack_UP_FLAGGED_WORD_BLOB();
    test_pack_VARIANT_BOOL();
    test_pack_VARTYPE();
    test_pack_WORD_SIZEDARR();
    test_pack_remoteMETAFILEPICT();
    test_pack_userBITMAP();
    test_pack_userCLIPFORMAT();
    test_pack_userHBITMAP();
    test_pack_userHENHMETAFILE();
    test_pack_userHGLOBAL();
    test_pack_userHMETAFILE();
    test_pack_userHMETAFILEPICT();
    test_pack_userHPALETTE();
    test_pack_wireBSTR();
    test_pack_wireCLIPFORMAT();
    test_pack_wireHBITMAP();
    test_pack_wireHENHMETAFILE();
    test_pack_wireHGLOBAL();
    test_pack_wireHMETAFILE();
    test_pack_wireHMETAFILEPICT();
    test_pack_wireHPALETTE();
}

START_TEST(generated)
{
    test_pack();
}