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

/*
 * Unit tests for data structure packing
 */

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

#define WINE_NOWINSOCK

#include "windows.h"

#include "wine/test.h"

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

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

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

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

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

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

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

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

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

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

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

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


#ifdef _WIN64

static void test_pack_MMTIME(void)
{
    /* MMTIME (pack 1) */
    TEST_FIELD_SIZE  (MMTIME, wType, 4)
    TEST_FIELD_ALIGN (MMTIME, wType, 1)
    TEST_FIELD_OFFSET(MMTIME, wType, 0)
}

static void test_pack_DRVCONFIGINFO(void)
{
    /* DRVCONFIGINFO (pack 1) */
    TEST_TYPE_SIZE   (DRVCONFIGINFO, 20)
    TEST_TYPE_ALIGN  (DRVCONFIGINFO, 1)
    TEST_FIELD_SIZE  (DRVCONFIGINFO, dwDCISize, 4)
    TEST_FIELD_ALIGN (DRVCONFIGINFO, dwDCISize, 1)
    TEST_FIELD_OFFSET(DRVCONFIGINFO, dwDCISize, 0)
    TEST_FIELD_SIZE  (DRVCONFIGINFO, lpszDCISectionName, 8)
    TEST_FIELD_ALIGN (DRVCONFIGINFO, lpszDCISectionName, 1)
    TEST_FIELD_OFFSET(DRVCONFIGINFO, lpszDCISectionName, 4)
    TEST_FIELD_SIZE  (DRVCONFIGINFO, lpszDCIAliasName, 8)
    TEST_FIELD_ALIGN (DRVCONFIGINFO, lpszDCIAliasName, 1)
    TEST_FIELD_OFFSET(DRVCONFIGINFO, lpszDCIAliasName, 12)
}

static void test_pack_WAVEHDR(void)
{
    /* WAVEHDR (pack 1) */
    TEST_TYPE_SIZE   (WAVEHDR, 48)
    TEST_TYPE_ALIGN  (WAVEHDR, 1)
    TEST_FIELD_SIZE  (WAVEHDR, lpData, 8)
    TEST_FIELD_ALIGN (WAVEHDR, lpData, 1)
    TEST_FIELD_OFFSET(WAVEHDR, lpData, 0)
    TEST_FIELD_SIZE  (WAVEHDR, dwBufferLength, 4)
    TEST_FIELD_ALIGN (WAVEHDR, dwBufferLength, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwBufferLength, 8)
    TEST_FIELD_SIZE  (WAVEHDR, dwBytesRecorded, 4)
    TEST_FIELD_ALIGN (WAVEHDR, dwBytesRecorded, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwBytesRecorded, 12)
    TEST_FIELD_SIZE  (WAVEHDR, dwUser, 8)
    TEST_FIELD_ALIGN (WAVEHDR, dwUser, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwUser, 16)
    TEST_FIELD_SIZE  (WAVEHDR, dwFlags, 4)
    TEST_FIELD_ALIGN (WAVEHDR, dwFlags, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwFlags, 24)
    TEST_FIELD_SIZE  (WAVEHDR, dwLoops, 4)
    TEST_FIELD_ALIGN (WAVEHDR, dwLoops, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwLoops, 28)
    TEST_FIELD_SIZE  (WAVEHDR, lpNext, 8)
    TEST_FIELD_ALIGN (WAVEHDR, lpNext, 1)
    TEST_FIELD_OFFSET(WAVEHDR, lpNext, 32)
    TEST_FIELD_SIZE  (WAVEHDR, reserved, 8)
    TEST_FIELD_ALIGN (WAVEHDR, reserved, 1)
    TEST_FIELD_OFFSET(WAVEHDR, reserved, 40)
}

static void test_pack_WAVEOUTCAPSA(void)
{
    /* WAVEOUTCAPSA (pack 1) */
    TEST_FIELD_SIZE  (WAVEOUTCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (WAVEOUTCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (WAVEOUTCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEOUTCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSA, vDriverVersion, 4)
}

static void test_pack_WAVEOUTCAPSW(void)
{
    /* WAVEOUTCAPSW (pack 1) */
    TEST_FIELD_SIZE  (WAVEOUTCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (WAVEOUTCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (WAVEOUTCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEOUTCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSW, vDriverVersion, 4)
}

static void test_pack_WAVEOUTCAPS2A(void)
{
    /* WAVEOUTCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (WAVEOUTCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (WAVEOUTCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (WAVEOUTCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2A, vDriverVersion, 4)
}

static void test_pack_WAVEOUTCAPS2W(void)
{
    /* WAVEOUTCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (WAVEOUTCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (WAVEOUTCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (WAVEOUTCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2W, vDriverVersion, 4)
}

static void test_pack_WAVEINCAPSA(void)
{
    /* WAVEINCAPSA (pack 1) */
    TEST_FIELD_SIZE  (WAVEINCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (WAVEINCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (WAVEINCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEINCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSA, vDriverVersion, 4)
}

static void test_pack_WAVEINCAPSW(void)
{
    /* WAVEINCAPSW (pack 1) */
    TEST_FIELD_SIZE  (WAVEINCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (WAVEINCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (WAVEINCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEINCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSW, vDriverVersion, 4)
}

static void test_pack_WAVEINCAPS2A(void)
{
    /* WAVEINCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (WAVEINCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (WAVEINCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (WAVEINCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEINCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2A, vDriverVersion, 4)
}

static void test_pack_WAVEINCAPS2W(void)
{
    /* WAVEINCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (WAVEINCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (WAVEINCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (WAVEINCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEINCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2W, vDriverVersion, 4)
}

static void test_pack_WAVEFORMAT(void)
{
    /* WAVEFORMAT (pack 1) */
    TEST_TYPE_SIZE   (WAVEFORMAT, 14)
    TEST_TYPE_ALIGN  (WAVEFORMAT, 1)
    TEST_FIELD_SIZE  (WAVEFORMAT, wFormatTag, 2)
    TEST_FIELD_ALIGN (WAVEFORMAT, wFormatTag, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, wFormatTag, 0)
    TEST_FIELD_SIZE  (WAVEFORMAT, nChannels, 2)
    TEST_FIELD_ALIGN (WAVEFORMAT, nChannels, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, nChannels, 2)
    TEST_FIELD_SIZE  (WAVEFORMAT, nSamplesPerSec, 4)
    TEST_FIELD_ALIGN (WAVEFORMAT, nSamplesPerSec, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, nSamplesPerSec, 4)
    TEST_FIELD_SIZE  (WAVEFORMAT, nAvgBytesPerSec, 4)
    TEST_FIELD_ALIGN (WAVEFORMAT, nAvgBytesPerSec, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, nAvgBytesPerSec, 8)
    TEST_FIELD_SIZE  (WAVEFORMAT, nBlockAlign, 2)
    TEST_FIELD_ALIGN (WAVEFORMAT, nBlockAlign, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, nBlockAlign, 12)
}

static void test_pack_PCMWAVEFORMAT(void)
{
    /* PCMWAVEFORMAT (pack 1) */
    TEST_TYPE_SIZE   (PCMWAVEFORMAT, 16)
    TEST_TYPE_ALIGN  (PCMWAVEFORMAT, 1)
    TEST_FIELD_SIZE  (PCMWAVEFORMAT, wf, 14)
    TEST_FIELD_ALIGN (PCMWAVEFORMAT, wf, 1)
    TEST_FIELD_OFFSET(PCMWAVEFORMAT, wf, 0)
    TEST_FIELD_SIZE  (PCMWAVEFORMAT, wBitsPerSample, 2)
    TEST_FIELD_ALIGN (PCMWAVEFORMAT, wBitsPerSample, 1)
    TEST_FIELD_OFFSET(PCMWAVEFORMAT, wBitsPerSample, 14)
}

static void test_pack_WAVEFORMATEX(void)
{
    /* WAVEFORMATEX (pack 1) */
    TEST_TYPE_SIZE   (WAVEFORMATEX, 18)
    TEST_TYPE_ALIGN  (WAVEFORMATEX, 1)
    TEST_FIELD_SIZE  (WAVEFORMATEX, wFormatTag, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, wFormatTag, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, wFormatTag, 0)
    TEST_FIELD_SIZE  (WAVEFORMATEX, nChannels, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, nChannels, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, nChannels, 2)
    TEST_FIELD_SIZE  (WAVEFORMATEX, nSamplesPerSec, 4)
    TEST_FIELD_ALIGN (WAVEFORMATEX, nSamplesPerSec, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, nSamplesPerSec, 4)
    TEST_FIELD_SIZE  (WAVEFORMATEX, nAvgBytesPerSec, 4)
    TEST_FIELD_ALIGN (WAVEFORMATEX, nAvgBytesPerSec, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, nAvgBytesPerSec, 8)
    TEST_FIELD_SIZE  (WAVEFORMATEX, nBlockAlign, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, nBlockAlign, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, nBlockAlign, 12)
    TEST_FIELD_SIZE  (WAVEFORMATEX, wBitsPerSample, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, wBitsPerSample, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, wBitsPerSample, 14)
    TEST_FIELD_SIZE  (WAVEFORMATEX, cbSize, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, cbSize, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, cbSize, 16)
}

static void test_pack_MIDIOUTCAPSA(void)
{
    /* MIDIOUTCAPSA (pack 1) */
    TEST_FIELD_SIZE  (MIDIOUTCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (MIDIOUTCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (MIDIOUTCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIOUTCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSA, vDriverVersion, 4)
}

static void test_pack_MIDIOUTCAPSW(void)
{
    /* MIDIOUTCAPSW (pack 1) */
    TEST_FIELD_SIZE  (MIDIOUTCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (MIDIOUTCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (MIDIOUTCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIOUTCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSW, vDriverVersion, 4)
}

static void test_pack_MIDIOUTCAPS2A(void)
{
    /* MIDIOUTCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (MIDIOUTCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (MIDIOUTCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (MIDIOUTCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2A, vDriverVersion, 4)
}

static void test_pack_MIDIOUTCAPS2W(void)
{
    /* MIDIOUTCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (MIDIOUTCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (MIDIOUTCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (MIDIOUTCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2W, vDriverVersion, 4)
}

static void test_pack_MIDIINCAPSA(void)
{
    /* MIDIINCAPSA (pack 1) */
    TEST_FIELD_SIZE  (MIDIINCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (MIDIINCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (MIDIINCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIINCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSA, vDriverVersion, 4)
}

static void test_pack_MIDIINCAPSW(void)
{
    /* MIDIINCAPSW (pack 1) */
    TEST_FIELD_SIZE  (MIDIINCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (MIDIINCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (MIDIINCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIINCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSW, vDriverVersion, 4)
}

static void test_pack_MIDIINCAPS2A(void)
{
    /* MIDIINCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (MIDIINCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (MIDIINCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (MIDIINCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIINCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2A, vDriverVersion, 4)
}

static void test_pack_MIDIINCAPS2W(void)
{
    /* MIDIINCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (MIDIINCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (MIDIINCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (MIDIINCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIINCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2W, vDriverVersion, 4)
}

static void test_pack_MIDIHDR(void)
{
    /* MIDIHDR (pack 1) */
    TEST_TYPE_SIZE   (MIDIHDR, 112)
    TEST_TYPE_ALIGN  (MIDIHDR, 1)
    TEST_FIELD_SIZE  (MIDIHDR, lpData, 8)
    TEST_FIELD_ALIGN (MIDIHDR, lpData, 1)
    TEST_FIELD_OFFSET(MIDIHDR, lpData, 0)
    TEST_FIELD_SIZE  (MIDIHDR, dwBufferLength, 4)
    TEST_FIELD_ALIGN (MIDIHDR, dwBufferLength, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwBufferLength, 8)
    TEST_FIELD_SIZE  (MIDIHDR, dwBytesRecorded, 4)
    TEST_FIELD_ALIGN (MIDIHDR, dwBytesRecorded, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwBytesRecorded, 12)
    TEST_FIELD_SIZE  (MIDIHDR, dwUser, 8)
    TEST_FIELD_ALIGN (MIDIHDR, dwUser, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwUser, 16)
    TEST_FIELD_SIZE  (MIDIHDR, dwFlags, 4)
    TEST_FIELD_ALIGN (MIDIHDR, dwFlags, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwFlags, 24)
    TEST_FIELD_SIZE  (MIDIHDR, lpNext, 8)
    TEST_FIELD_ALIGN (MIDIHDR, lpNext, 1)
    TEST_FIELD_OFFSET(MIDIHDR, lpNext, 28)
    TEST_FIELD_SIZE  (MIDIHDR, reserved, 8)
    TEST_FIELD_ALIGN (MIDIHDR, reserved, 1)
    TEST_FIELD_OFFSET(MIDIHDR, reserved, 36)
    TEST_FIELD_SIZE  (MIDIHDR, dwOffset, 4)
    TEST_FIELD_ALIGN (MIDIHDR, dwOffset, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwOffset, 44)
    TEST_FIELD_SIZE  (MIDIHDR, dwReserved, 64)
    TEST_FIELD_ALIGN (MIDIHDR, dwReserved, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwReserved, 48)
}

static void test_pack_MIDIEVENT(void)
{
    /* MIDIEVENT (pack 1) */
    TEST_TYPE_SIZE   (MIDIEVENT, 16)
    TEST_TYPE_ALIGN  (MIDIEVENT, 1)
    TEST_FIELD_SIZE  (MIDIEVENT, dwDeltaTime, 4)
    TEST_FIELD_ALIGN (MIDIEVENT, dwDeltaTime, 1)
    TEST_FIELD_OFFSET(MIDIEVENT, dwDeltaTime, 0)
    TEST_FIELD_SIZE  (MIDIEVENT, dwStreamID, 4)
    TEST_FIELD_ALIGN (MIDIEVENT, dwStreamID, 1)
    TEST_FIELD_OFFSET(MIDIEVENT, dwStreamID, 4)
    TEST_FIELD_SIZE  (MIDIEVENT, dwEvent, 4)
    TEST_FIELD_ALIGN (MIDIEVENT, dwEvent, 1)
    TEST_FIELD_OFFSET(MIDIEVENT, dwEvent, 8)
    TEST_FIELD_SIZE  (MIDIEVENT, dwParms, 4)
    TEST_FIELD_ALIGN (MIDIEVENT, dwParms, 1)
    TEST_FIELD_OFFSET(MIDIEVENT, dwParms, 12)
}

static void test_pack_AUXCAPSA(void)
{
    /* AUXCAPSA (pack 1) */
    TEST_FIELD_SIZE  (AUXCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (AUXCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(AUXCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (AUXCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (AUXCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(AUXCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (AUXCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (AUXCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(AUXCAPSA, vDriverVersion, 4)
}

static void test_pack_AUXCAPSW(void)
{
    /* AUXCAPSW (pack 1) */
    TEST_FIELD_SIZE  (AUXCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (AUXCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(AUXCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (AUXCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (AUXCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(AUXCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (AUXCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (AUXCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(AUXCAPSW, vDriverVersion, 4)
}

static void test_pack_AUXCAPS2A(void)
{
    /* AUXCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (AUXCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (AUXCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(AUXCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (AUXCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (AUXCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(AUXCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (AUXCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (AUXCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(AUXCAPS2A, vDriverVersion, 4)
}

static void test_pack_AUXCAPS2W(void)
{
    /* AUXCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (AUXCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (AUXCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(AUXCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (AUXCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (AUXCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(AUXCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (AUXCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (AUXCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(AUXCAPS2W, vDriverVersion, 4)
}

static void test_pack_TIMECAPS(void)
{
    /* TIMECAPS (pack 1) */
    TEST_TYPE_SIZE   (TIMECAPS, 8)
    TEST_TYPE_ALIGN  (TIMECAPS, 1)
    TEST_FIELD_SIZE  (TIMECAPS, wPeriodMin, 4)
    TEST_FIELD_ALIGN (TIMECAPS, wPeriodMin, 1)
    TEST_FIELD_OFFSET(TIMECAPS, wPeriodMin, 0)
    TEST_FIELD_SIZE  (TIMECAPS, wPeriodMax, 4)
    TEST_FIELD_ALIGN (TIMECAPS, wPeriodMax, 1)
    TEST_FIELD_OFFSET(TIMECAPS, wPeriodMax, 4)
}

static void test_pack_JOYCAPSA(void)
{
    /* JOYCAPSA (pack 1) */
    TEST_FIELD_SIZE  (JOYCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (JOYCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(JOYCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (JOYCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (JOYCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(JOYCAPSA, wPid, 2)
}

static void test_pack_JOYCAPSW(void)
{
    /* JOYCAPSW (pack 1) */
    TEST_FIELD_SIZE  (JOYCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (JOYCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(JOYCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (JOYCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (JOYCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(JOYCAPSW, wPid, 2)
}

static void test_pack_JOYCAPS2A(void)
{
    /* JOYCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (JOYCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (JOYCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(JOYCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (JOYCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (JOYCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(JOYCAPS2A, wPid, 2)
}

static void test_pack_JOYCAPS2W(void)
{
    /* JOYCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (JOYCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (JOYCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(JOYCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (JOYCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (JOYCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(JOYCAPS2W, wPid, 2)
}

static void test_pack_JOYINFO(void)
{
    /* JOYINFO (pack 1) */
    TEST_TYPE_SIZE   (JOYINFO, 16)
    TEST_TYPE_ALIGN  (JOYINFO, 1)
    TEST_FIELD_SIZE  (JOYINFO, wXpos, 4)
    TEST_FIELD_ALIGN (JOYINFO, wXpos, 1)
    TEST_FIELD_OFFSET(JOYINFO, wXpos, 0)
    TEST_FIELD_SIZE  (JOYINFO, wYpos, 4)
    TEST_FIELD_ALIGN (JOYINFO, wYpos, 1)
    TEST_FIELD_OFFSET(JOYINFO, wYpos, 4)
    TEST_FIELD_SIZE  (JOYINFO, wZpos, 4)
    TEST_FIELD_ALIGN (JOYINFO, wZpos, 1)
    TEST_FIELD_OFFSET(JOYINFO, wZpos, 8)
    TEST_FIELD_SIZE  (JOYINFO, wButtons, 4)
    TEST_FIELD_ALIGN (JOYINFO, wButtons, 1)
    TEST_FIELD_OFFSET(JOYINFO, wButtons, 12)
}

static void test_pack_JOYINFOEX(void)
{
    /* JOYINFOEX (pack 1) */
    TEST_TYPE_SIZE   (JOYINFOEX, 52)
    TEST_TYPE_ALIGN  (JOYINFOEX, 1)
    TEST_FIELD_SIZE  (JOYINFOEX, dwSize, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwSize, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwSize, 0)
    TEST_FIELD_SIZE  (JOYINFOEX, dwFlags, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwFlags, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwFlags, 4)
    TEST_FIELD_SIZE  (JOYINFOEX, dwXpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwXpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwXpos, 8)
    TEST_FIELD_SIZE  (JOYINFOEX, dwYpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwYpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwYpos, 12)
    TEST_FIELD_SIZE  (JOYINFOEX, dwZpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwZpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwZpos, 16)
    TEST_FIELD_SIZE  (JOYINFOEX, dwRpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwRpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwRpos, 20)
    TEST_FIELD_SIZE  (JOYINFOEX, dwUpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwUpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwUpos, 24)
    TEST_FIELD_SIZE  (JOYINFOEX, dwVpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwVpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwVpos, 28)
    TEST_FIELD_SIZE  (JOYINFOEX, dwButtons, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwButtons, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwButtons, 32)
    TEST_FIELD_SIZE  (JOYINFOEX, dwButtonNumber, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwButtonNumber, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwButtonNumber, 36)
    TEST_FIELD_SIZE  (JOYINFOEX, dwPOV, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwPOV, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwPOV, 40)
    TEST_FIELD_SIZE  (JOYINFOEX, dwReserved1, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwReserved1, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwReserved1, 44)
    TEST_FIELD_SIZE  (JOYINFOEX, dwReserved2, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwReserved2, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwReserved2, 48)
}

static void test_pack_MIXERCAPSA(void)
{
    /* MIXERCAPSA (pack 1) */
    TEST_FIELD_SIZE  (MIXERCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (MIXERCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(MIXERCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (MIXERCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (MIXERCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(MIXERCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (MIXERCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIXERCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIXERCAPSA, vDriverVersion, 4)
}

static void test_pack_MIXERCAPSW(void)
{
    /* MIXERCAPSW (pack 1) */
    TEST_FIELD_SIZE  (MIXERCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (MIXERCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(MIXERCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (MIXERCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (MIXERCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(MIXERCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (MIXERCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIXERCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIXERCAPSW, vDriverVersion, 4)
}

static void test_pack_MIXERCAPS2A(void)
{
    /* MIXERCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (MIXERCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (MIXERCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (MIXERCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (MIXERCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (MIXERCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIXERCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2A, vDriverVersion, 4)
}

static void test_pack_MIXERCAPS2W(void)
{
    /* MIXERCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (MIXERCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (MIXERCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (MIXERCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (MIXERCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (MIXERCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIXERCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2W, vDriverVersion, 4)
}

static void test_pack_MIXERLINEA(void)
{
    /* MIXERLINEA (pack 1) */
    TEST_FIELD_SIZE  (MIXERLINEA, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERLINEA, dwDestination, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, dwDestination, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwDestination, 4)
    TEST_FIELD_SIZE  (MIXERLINEA, dwSource, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, dwSource, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwSource, 8)
    TEST_FIELD_SIZE  (MIXERLINEA, dwLineID, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, dwLineID, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwLineID, 12)
    TEST_FIELD_SIZE  (MIXERLINEA, fdwLine, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, fdwLine, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, fdwLine, 16)
    TEST_FIELD_SIZE  (MIXERLINEA, dwUser, 8)
    TEST_FIELD_ALIGN (MIXERLINEA, dwUser, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwUser, 20)
    TEST_FIELD_SIZE  (MIXERLINEA, dwComponentType, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, dwComponentType, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwComponentType, 28)
    TEST_FIELD_SIZE  (MIXERLINEA, cChannels, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, cChannels, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, cChannels, 32)
    TEST_FIELD_SIZE  (MIXERLINEA, cConnections, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, cConnections, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, cConnections, 36)
    TEST_FIELD_SIZE  (MIXERLINEA, cControls, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, cControls, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, cControls, 40)
}

static void test_pack_MIXERLINEW(void)
{
    /* MIXERLINEW (pack 1) */
    TEST_FIELD_SIZE  (MIXERLINEW, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERLINEW, dwDestination, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, dwDestination, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwDestination, 4)
    TEST_FIELD_SIZE  (MIXERLINEW, dwSource, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, dwSource, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwSource, 8)
    TEST_FIELD_SIZE  (MIXERLINEW, dwLineID, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, dwLineID, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwLineID, 12)
    TEST_FIELD_SIZE  (MIXERLINEW, fdwLine, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, fdwLine, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, fdwLine, 16)
    TEST_FIELD_SIZE  (MIXERLINEW, dwUser, 8)
    TEST_FIELD_ALIGN (MIXERLINEW, dwUser, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwUser, 20)
    TEST_FIELD_SIZE  (MIXERLINEW, dwComponentType, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, dwComponentType, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwComponentType, 28)
    TEST_FIELD_SIZE  (MIXERLINEW, cChannels, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, cChannels, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, cChannels, 32)
    TEST_FIELD_SIZE  (MIXERLINEW, cConnections, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, cConnections, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, cConnections, 36)
    TEST_FIELD_SIZE  (MIXERLINEW, cControls, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, cControls, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, cControls, 40)
}

static void test_pack_MIXERCONTROLA(void)
{
    /* MIXERCONTROLA (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLA, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLA, dwControlID, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, dwControlID, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, dwControlID, 4)
    TEST_FIELD_SIZE  (MIXERCONTROLA, dwControlType, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, dwControlType, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, dwControlType, 8)
    TEST_FIELD_SIZE  (MIXERCONTROLA, fdwControl, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, fdwControl, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, fdwControl, 12)
    TEST_FIELD_SIZE  (MIXERCONTROLA, cMultipleItems, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, cMultipleItems, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, cMultipleItems, 16)
}

static void test_pack_MIXERCONTROLW(void)
{
    /* MIXERCONTROLW (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLW, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLW, dwControlID, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, dwControlID, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, dwControlID, 4)
    TEST_FIELD_SIZE  (MIXERCONTROLW, dwControlType, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, dwControlType, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, dwControlType, 8)
    TEST_FIELD_SIZE  (MIXERCONTROLW, fdwControl, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, fdwControl, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, fdwControl, 12)
    TEST_FIELD_SIZE  (MIXERCONTROLW, cMultipleItems, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, cMultipleItems, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, cMultipleItems, 16)
}

static void test_pack_MIXERCONTROLDETAILS(void)
{
    /* MIXERCONTROLDETAILS (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS, dwControlID, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS, dwControlID, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS, dwControlID, 4)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS, cChannels, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS, cChannels, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS, cChannels, 8)
}

static void test_pack_MIXERCONTROLDETAILS_LISTTEXTA(void)
{
    /* MIXERCONTROLDETAILS_LISTTEXTA (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_LISTTEXTA, dwParam1, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_LISTTEXTA, dwParam1, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_LISTTEXTA, dwParam1, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_LISTTEXTA, dwParam2, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_LISTTEXTA, dwParam2, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_LISTTEXTA, dwParam2, 4)
}

static void test_pack_MIXERCONTROLDETAILS_LISTTEXTW(void)
{
    /* MIXERCONTROLDETAILS_LISTTEXTW (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_LISTTEXTW, dwParam1, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_LISTTEXTW, dwParam1, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_LISTTEXTW, dwParam1, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_LISTTEXTW, dwParam2, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_LISTTEXTW, dwParam2, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_LISTTEXTW, dwParam2, 4)
}

static void test_pack_MIXERCONTROLDETAILS_BOOLEAN(void)
{
    /* MIXERCONTROLDETAILS_BOOLEAN (pack 1) */
    TEST_TYPE_SIZE   (MIXERCONTROLDETAILS_BOOLEAN, 4)
    TEST_TYPE_ALIGN  (MIXERCONTROLDETAILS_BOOLEAN, 1)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_BOOLEAN, fValue, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_BOOLEAN, fValue, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_BOOLEAN, fValue, 0)
}

static void test_pack_MIXERCONTROLDETAILS_SIGNED(void)
{
    /* MIXERCONTROLDETAILS_SIGNED (pack 1) */
    TEST_TYPE_SIZE   (MIXERCONTROLDETAILS_SIGNED, 4)
    TEST_TYPE_ALIGN  (MIXERCONTROLDETAILS_SIGNED, 1)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_SIGNED, lValue, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_SIGNED, lValue, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_SIGNED, lValue, 0)
}

static void test_pack_MIXERCONTROLDETAILS_UNSIGNED(void)
{
    /* MIXERCONTROLDETAILS_UNSIGNED (pack 1) */
    TEST_TYPE_SIZE   (MIXERCONTROLDETAILS_UNSIGNED, 4)
    TEST_TYPE_ALIGN  (MIXERCONTROLDETAILS_UNSIGNED, 1)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_UNSIGNED, dwValue, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_UNSIGNED, dwValue, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_UNSIGNED, dwValue, 0)
}

static void test_pack_MMIOINFO(void)
{
    /* MMIOINFO (pack 1) */
    TEST_FIELD_SIZE  (MMIOINFO, dwFlags, 4)
    TEST_FIELD_ALIGN (MMIOINFO, dwFlags, 1)
    TEST_FIELD_OFFSET(MMIOINFO, dwFlags, 0)
    TEST_FIELD_SIZE  (MMIOINFO, fccIOProc, 4)
    TEST_FIELD_ALIGN (MMIOINFO, fccIOProc, 1)
    TEST_FIELD_OFFSET(MMIOINFO, fccIOProc, 4)
    TEST_FIELD_SIZE  (MMIOINFO, pIOProc, 8)
    TEST_FIELD_ALIGN (MMIOINFO, pIOProc, 1)
    TEST_FIELD_OFFSET(MMIOINFO, pIOProc, 8)
    TEST_FIELD_SIZE  (MMIOINFO, wErrorRet, 4)
    TEST_FIELD_ALIGN (MMIOINFO, wErrorRet, 1)
    TEST_FIELD_OFFSET(MMIOINFO, wErrorRet, 16)
}

static void test_pack_MMCKINFO(void)
{
    /* MMCKINFO (pack 1) */
    TEST_TYPE_SIZE   (MMCKINFO, 20)
    TEST_TYPE_ALIGN  (MMCKINFO, 1)
    TEST_FIELD_SIZE  (MMCKINFO, ckid, 4)
    TEST_FIELD_ALIGN (MMCKINFO, ckid, 1)
    TEST_FIELD_OFFSET(MMCKINFO, ckid, 0)
    TEST_FIELD_SIZE  (MMCKINFO, cksize, 4)
    TEST_FIELD_ALIGN (MMCKINFO, cksize, 1)
    TEST_FIELD_OFFSET(MMCKINFO, cksize, 4)
    TEST_FIELD_SIZE  (MMCKINFO, fccType, 4)
    TEST_FIELD_ALIGN (MMCKINFO, fccType, 1)
    TEST_FIELD_OFFSET(MMCKINFO, fccType, 8)
    TEST_FIELD_SIZE  (MMCKINFO, dwDataOffset, 4)
    TEST_FIELD_ALIGN (MMCKINFO, dwDataOffset, 1)
    TEST_FIELD_OFFSET(MMCKINFO, dwDataOffset, 12)
    TEST_FIELD_SIZE  (MMCKINFO, dwFlags, 4)
    TEST_FIELD_ALIGN (MMCKINFO, dwFlags, 1)
    TEST_FIELD_OFFSET(MMCKINFO, dwFlags, 16)
}

static void test_pack_MCI_GENERIC_PARMS(void)
{
    /* MCI_GENERIC_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_GENERIC_PARMS, 8)
    TEST_TYPE_ALIGN  (MCI_GENERIC_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_GENERIC_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_GENERIC_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_GENERIC_PARMS, dwCallback, 0)
}

static void test_pack_MCI_OPEN_PARMSA(void)
{
    /* MCI_OPEN_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OPEN_PARMSA, 36)
    TEST_TYPE_ALIGN  (MCI_OPEN_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, wDeviceID, 8)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, lpstrDeviceType, 8)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, lpstrDeviceType, 12)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, lpstrElementName, 8)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, lpstrElementName, 20)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, lpstrAlias, 8)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, lpstrAlias, 28)
}

static void test_pack_MCI_OPEN_PARMSW(void)
{
    /* MCI_OPEN_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OPEN_PARMSW, 36)
    TEST_TYPE_ALIGN  (MCI_OPEN_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, wDeviceID, 8)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, lpstrDeviceType, 8)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, lpstrDeviceType, 12)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, lpstrElementName, 8)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, lpstrElementName, 20)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, lpstrAlias, 8)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, lpstrAlias, 28)
}

static void test_pack_MCI_PLAY_PARMS(void)
{
    /* MCI_PLAY_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_PLAY_PARMS, 16)
    TEST_TYPE_ALIGN  (MCI_PLAY_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_PLAY_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_PLAY_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_PLAY_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_PLAY_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_PLAY_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_PLAY_PARMS, dwFrom, 8)
    TEST_FIELD_SIZE  (MCI_PLAY_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_PLAY_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_PLAY_PARMS, dwTo, 12)
}

static void test_pack_MCI_SEEK_PARMS(void)
{
    /* MCI_SEEK_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_SEEK_PARMS, 12)
    TEST_TYPE_ALIGN  (MCI_SEEK_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_SEEK_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_SEEK_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SEEK_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SEEK_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_SEEK_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_SEEK_PARMS, dwTo, 8)
}

static void test_pack_MCI_STATUS_PARMS(void)
{
    /* MCI_STATUS_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_STATUS_PARMS, 24)
    TEST_TYPE_ALIGN  (MCI_STATUS_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_STATUS_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_STATUS_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_STATUS_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_STATUS_PARMS, dwReturn, 8)
    TEST_FIELD_ALIGN (MCI_STATUS_PARMS, dwReturn, 1)
    TEST_FIELD_OFFSET(MCI_STATUS_PARMS, dwReturn, 8)
    TEST_FIELD_SIZE  (MCI_STATUS_PARMS, dwItem, 4)
    TEST_FIELD_ALIGN (MCI_STATUS_PARMS, dwItem, 1)
    TEST_FIELD_OFFSET(MCI_STATUS_PARMS, dwItem, 16)
    TEST_FIELD_SIZE  (MCI_STATUS_PARMS, dwTrack, 4)
    TEST_FIELD_ALIGN (MCI_STATUS_PARMS, dwTrack, 1)
    TEST_FIELD_OFFSET(MCI_STATUS_PARMS, dwTrack, 20)
}

static void test_pack_MCI_INFO_PARMSA(void)
{
    /* MCI_INFO_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_INFO_PARMSA, 20)
    TEST_TYPE_ALIGN  (MCI_INFO_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSA, lpstrReturn, 8)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSA, lpstrReturn, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSA, lpstrReturn, 8)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSA, dwRetSize, 4)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSA, dwRetSize, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSA, dwRetSize, 16)
}

static void test_pack_MCI_INFO_PARMSW(void)
{
    /* MCI_INFO_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_INFO_PARMSW, 20)
    TEST_TYPE_ALIGN  (MCI_INFO_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSW, lpstrReturn, 8)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSW, lpstrReturn, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSW, lpstrReturn, 8)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSW, dwRetSize, 4)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSW, dwRetSize, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSW, dwRetSize, 16)
}

static void test_pack_MCI_GETDEVCAPS_PARMS(void)
{
    /* MCI_GETDEVCAPS_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_GETDEVCAPS_PARMS, 16)
    TEST_TYPE_ALIGN  (MCI_GETDEVCAPS_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_GETDEVCAPS_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_GETDEVCAPS_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_GETDEVCAPS_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_GETDEVCAPS_PARMS, dwReturn, 4)
    TEST_FIELD_ALIGN (MCI_GETDEVCAPS_PARMS, dwReturn, 1)
    TEST_FIELD_OFFSET(MCI_GETDEVCAPS_PARMS, dwReturn, 8)
    TEST_FIELD_SIZE  (MCI_GETDEVCAPS_PARMS, dwItem, 4)
    TEST_FIELD_ALIGN (MCI_GETDEVCAPS_PARMS, dwItem, 1)
    TEST_FIELD_OFFSET(MCI_GETDEVCAPS_PARMS, dwItem, 12)
}

static void test_pack_MCI_SYSINFO_PARMSA(void)
{
    /* MCI_SYSINFO_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_SYSINFO_PARMSA, 28)
    TEST_TYPE_ALIGN  (MCI_SYSINFO_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, lpstrReturn, 8)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, lpstrReturn, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, lpstrReturn, 8)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, dwRetSize, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, dwRetSize, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, dwRetSize, 16)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, dwNumber, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, dwNumber, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, dwNumber, 20)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, wDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, wDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, wDeviceType, 24)
}

static void test_pack_MCI_SYSINFO_PARMSW(void)
{
    /* MCI_SYSINFO_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_SYSINFO_PARMSW, 28)
    TEST_TYPE_ALIGN  (MCI_SYSINFO_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, lpstrReturn, 8)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, lpstrReturn, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, lpstrReturn, 8)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, dwRetSize, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, dwRetSize, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, dwRetSize, 16)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, dwNumber, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, dwNumber, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, dwNumber, 20)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, wDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, wDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, wDeviceType, 24)
}

static void test_pack_MCI_SET_PARMS(void)
{
    /* MCI_SET_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_SET_PARMS, 16)
    TEST_TYPE_ALIGN  (MCI_SET_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_SET_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_SET_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SET_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SET_PARMS, dwTimeFormat, 4)
    TEST_FIELD_ALIGN (MCI_SET_PARMS, dwTimeFormat, 1)
    TEST_FIELD_OFFSET(MCI_SET_PARMS, dwTimeFormat, 8)
    TEST_FIELD_SIZE  (MCI_SET_PARMS, dwAudio, 4)
    TEST_FIELD_ALIGN (MCI_SET_PARMS, dwAudio, 1)
    TEST_FIELD_OFFSET(MCI_SET_PARMS, dwAudio, 12)
}

static void test_pack_MCI_BREAK_PARMS(void)
{
    /* MCI_BREAK_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_BREAK_PARMS, 20)
    TEST_TYPE_ALIGN  (MCI_BREAK_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_BREAK_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_BREAK_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_BREAK_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_BREAK_PARMS, nVirtKey, 4)
    TEST_FIELD_ALIGN (MCI_BREAK_PARMS, nVirtKey, 1)
    TEST_FIELD_OFFSET(MCI_BREAK_PARMS, nVirtKey, 8)
    TEST_FIELD_SIZE  (MCI_BREAK_PARMS, hwndBreak, 8)
    TEST_FIELD_ALIGN (MCI_BREAK_PARMS, hwndBreak, 1)
    TEST_FIELD_OFFSET(MCI_BREAK_PARMS, hwndBreak, 12)
}

static void test_pack_MCI_SOUND_PARMSA(void)
{
    /* MCI_SOUND_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_SOUND_PARMSA, 16)
    TEST_TYPE_ALIGN  (MCI_SOUND_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_SOUND_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_SOUND_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SOUND_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SOUND_PARMSA, lpstrSoundName, 8)
    TEST_FIELD_ALIGN (MCI_SOUND_PARMSA, lpstrSoundName, 1)
    TEST_FIELD_OFFSET(MCI_SOUND_PARMSA, lpstrSoundName, 8)
}

static void test_pack_MCI_SOUND_PARMSW(void)
{
    /* MCI_SOUND_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_SOUND_PARMSW, 16)
    TEST_TYPE_ALIGN  (MCI_SOUND_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_SOUND_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_SOUND_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SOUND_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SOUND_PARMSW, lpstrSoundName, 8)
    TEST_FIELD_ALIGN (MCI_SOUND_PARMSW, lpstrSoundName, 1)
    TEST_FIELD_OFFSET(MCI_SOUND_PARMSW, lpstrSoundName, 8)
}

static void test_pack_MCI_SAVE_PARMSA(void)
{
    /* MCI_SAVE_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_SAVE_PARMSA, 16)
    TEST_TYPE_ALIGN  (MCI_SAVE_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_SAVE_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_SAVE_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SAVE_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SAVE_PARMSA, lpfilename, 8)
    TEST_FIELD_ALIGN (MCI_SAVE_PARMSA, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_SAVE_PARMSA, lpfilename, 8)
}

static void test_pack_MCI_SAVE_PARMSW(void)
{
    /* MCI_SAVE_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_SAVE_PARMSW, 16)
    TEST_TYPE_ALIGN  (MCI_SAVE_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_SAVE_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_SAVE_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SAVE_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SAVE_PARMSW, lpfilename, 8)
    TEST_FIELD_ALIGN (MCI_SAVE_PARMSW, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_SAVE_PARMSW, lpfilename, 8)
}

static void test_pack_MCI_LOAD_PARMSA(void)
{
    /* MCI_LOAD_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_LOAD_PARMSA, 16)
    TEST_TYPE_ALIGN  (MCI_LOAD_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_LOAD_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_LOAD_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_LOAD_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_LOAD_PARMSA, lpfilename, 8)
    TEST_FIELD_ALIGN (MCI_LOAD_PARMSA, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_LOAD_PARMSA, lpfilename, 8)
}

static void test_pack_MCI_LOAD_PARMSW(void)
{
    /* MCI_LOAD_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_LOAD_PARMSW, 16)
    TEST_TYPE_ALIGN  (MCI_LOAD_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_LOAD_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_LOAD_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_LOAD_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_LOAD_PARMSW, lpfilename, 8)
    TEST_FIELD_ALIGN (MCI_LOAD_PARMSW, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_LOAD_PARMSW, lpfilename, 8)
}

static void test_pack_MCI_RECORD_PARMS(void)
{
    /* MCI_RECORD_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_RECORD_PARMS, 16)
    TEST_TYPE_ALIGN  (MCI_RECORD_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_RECORD_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_RECORD_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_RECORD_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_RECORD_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_RECORD_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_RECORD_PARMS, dwFrom, 8)
    TEST_FIELD_SIZE  (MCI_RECORD_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_RECORD_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_RECORD_PARMS, dwTo, 12)
}

static void test_pack_MCI_VD_PLAY_PARMS(void)
{
    /* MCI_VD_PLAY_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_VD_PLAY_PARMS, 20)
    TEST_TYPE_ALIGN  (MCI_VD_PLAY_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_VD_PLAY_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_VD_PLAY_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_VD_PLAY_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_VD_PLAY_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_VD_PLAY_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_VD_PLAY_PARMS, dwFrom, 8)
    TEST_FIELD_SIZE  (MCI_VD_PLAY_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_VD_PLAY_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_VD_PLAY_PARMS, dwTo, 12)
    TEST_FIELD_SIZE  (MCI_VD_PLAY_PARMS, dwSpeed, 4)
    TEST_FIELD_ALIGN (MCI_VD_PLAY_PARMS, dwSpeed, 1)
    TEST_FIELD_OFFSET(MCI_VD_PLAY_PARMS, dwSpeed, 16)
}

static void test_pack_MCI_VD_STEP_PARMS(void)
{
    /* MCI_VD_STEP_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_VD_STEP_PARMS, 12)
    TEST_TYPE_ALIGN  (MCI_VD_STEP_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_VD_STEP_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_VD_STEP_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_VD_STEP_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_VD_STEP_PARMS, dwFrames, 4)
    TEST_FIELD_ALIGN (MCI_VD_STEP_PARMS, dwFrames, 1)
    TEST_FIELD_OFFSET(MCI_VD_STEP_PARMS, dwFrames, 8)
}

static void test_pack_MCI_VD_ESCAPE_PARMSA(void)
{
    /* MCI_VD_ESCAPE_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_VD_ESCAPE_PARMSA, 16)
    TEST_TYPE_ALIGN  (MCI_VD_ESCAPE_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_VD_ESCAPE_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_VD_ESCAPE_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_VD_ESCAPE_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_VD_ESCAPE_PARMSA, lpstrCommand, 8)
    TEST_FIELD_ALIGN (MCI_VD_ESCAPE_PARMSA, lpstrCommand, 1)
    TEST_FIELD_OFFSET(MCI_VD_ESCAPE_PARMSA, lpstrCommand, 8)
}

static void test_pack_MCI_VD_ESCAPE_PARMSW(void)
{
    /* MCI_VD_ESCAPE_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_VD_ESCAPE_PARMSW, 16)
    TEST_TYPE_ALIGN  (MCI_VD_ESCAPE_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_VD_ESCAPE_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_VD_ESCAPE_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_VD_ESCAPE_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_VD_ESCAPE_PARMSW, lpstrCommand, 8)
    TEST_FIELD_ALIGN (MCI_VD_ESCAPE_PARMSW, lpstrCommand, 1)
    TEST_FIELD_OFFSET(MCI_VD_ESCAPE_PARMSW, lpstrCommand, 8)
}

static void test_pack_MCI_WAVE_OPEN_PARMSA(void)
{
    /* MCI_WAVE_OPEN_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_WAVE_OPEN_PARMSA, 40)
    TEST_TYPE_ALIGN  (MCI_WAVE_OPEN_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, wDeviceID, 8)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, lpstrDeviceType, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, lpstrDeviceType, 12)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, lpstrElementName, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, lpstrElementName, 20)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, lpstrAlias, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, lpstrAlias, 28)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, dwBufferSeconds, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, dwBufferSeconds, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, dwBufferSeconds, 36)
}

static void test_pack_MCI_WAVE_OPEN_PARMSW(void)
{
    /* MCI_WAVE_OPEN_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_WAVE_OPEN_PARMSW, 40)
    TEST_TYPE_ALIGN  (MCI_WAVE_OPEN_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, wDeviceID, 8)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, lpstrDeviceType, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, lpstrDeviceType, 12)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, lpstrElementName, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, lpstrElementName, 20)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, lpstrAlias, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, lpstrAlias, 28)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, dwBufferSeconds, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, dwBufferSeconds, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, dwBufferSeconds, 36)
}

static void test_pack_MCI_WAVE_DELETE_PARMS(void)
{
    /* MCI_WAVE_DELETE_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_WAVE_DELETE_PARMS, 16)
    TEST_TYPE_ALIGN  (MCI_WAVE_DELETE_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_WAVE_DELETE_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_DELETE_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_DELETE_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_WAVE_DELETE_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_DELETE_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_DELETE_PARMS, dwFrom, 8)
    TEST_FIELD_SIZE  (MCI_WAVE_DELETE_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_DELETE_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_DELETE_PARMS, dwTo, 12)
}

static void test_pack_MCI_WAVE_SET_PARMS(void)
{
    /* MCI_WAVE_SET_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_WAVE_SET_PARMS, 48)
    TEST_TYPE_ALIGN  (MCI_WAVE_SET_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, dwTimeFormat, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, dwTimeFormat, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, dwTimeFormat, 8)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, dwAudio, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, dwAudio, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, dwAudio, 12)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, wInput, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, wInput, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, wInput, 16)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, wOutput, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, wOutput, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, wOutput, 20)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, wFormatTag, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, wFormatTag, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, wFormatTag, 24)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, nChannels, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, nChannels, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, nChannels, 28)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, nSamplesPerSec, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, nSamplesPerSec, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, nSamplesPerSec, 32)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, nAvgBytesPerSec, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, nAvgBytesPerSec, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, nAvgBytesPerSec, 36)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, nBlockAlign, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, nBlockAlign, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, nBlockAlign, 40)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, wBitsPerSample, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, wBitsPerSample, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, wBitsPerSample, 44)
}

static void test_pack_MCI_SEQ_SET_PARMS(void)
{
    /* MCI_SEQ_SET_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_SEQ_SET_PARMS, 36)
    TEST_TYPE_ALIGN  (MCI_SEQ_SET_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwTimeFormat, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwTimeFormat, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwTimeFormat, 8)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwAudio, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwAudio, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwAudio, 12)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwTempo, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwTempo, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwTempo, 16)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwPort, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwPort, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwPort, 20)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwSlave, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwSlave, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwSlave, 24)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwMaster, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwMaster, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwMaster, 28)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwOffset, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwOffset, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwOffset, 32)
}

static void test_pack_MCI_ANIM_OPEN_PARMSA(void)
{
    /* MCI_ANIM_OPEN_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_OPEN_PARMSA, 48)
    TEST_TYPE_ALIGN  (MCI_ANIM_OPEN_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, wDeviceID, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, lpstrDeviceType, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, lpstrDeviceType, 12)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, lpstrElementName, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, lpstrElementName, 20)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, lpstrAlias, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, lpstrAlias, 28)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, dwStyle, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, dwStyle, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, dwStyle, 36)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, hWndParent, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, hWndParent, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, hWndParent, 40)
}

static void test_pack_MCI_ANIM_OPEN_PARMSW(void)
{
    /* MCI_ANIM_OPEN_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_OPEN_PARMSW, 48)
    TEST_TYPE_ALIGN  (MCI_ANIM_OPEN_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, wDeviceID, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, lpstrDeviceType, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, lpstrDeviceType, 12)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, lpstrElementName, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, lpstrElementName, 20)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, lpstrAlias, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, lpstrAlias, 28)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, dwStyle, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, dwStyle, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, dwStyle, 36)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, hWndParent, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, hWndParent, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, hWndParent, 40)
}

static void test_pack_MCI_ANIM_PLAY_PARMS(void)
{
    /* MCI_ANIM_PLAY_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_PLAY_PARMS, 20)
    TEST_TYPE_ALIGN  (MCI_ANIM_PLAY_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_PLAY_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_PLAY_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_PLAY_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_PLAY_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_PLAY_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_PLAY_PARMS, dwFrom, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_PLAY_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_PLAY_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_PLAY_PARMS, dwTo, 12)
    TEST_FIELD_SIZE  (MCI_ANIM_PLAY_PARMS, dwSpeed, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_PLAY_PARMS, dwSpeed, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_PLAY_PARMS, dwSpeed, 16)
}

static void test_pack_MCI_ANIM_STEP_PARMS(void)
{
    /* MCI_ANIM_STEP_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_STEP_PARMS, 12)
    TEST_TYPE_ALIGN  (MCI_ANIM_STEP_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_STEP_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_STEP_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_STEP_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_STEP_PARMS, dwFrames, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_STEP_PARMS, dwFrames, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_STEP_PARMS, dwFrames, 8)
}

static void test_pack_MCI_ANIM_WINDOW_PARMSA(void)
{
    /* MCI_ANIM_WINDOW_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_WINDOW_PARMSA, 28)
    TEST_TYPE_ALIGN  (MCI_ANIM_WINDOW_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSA, hWnd, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSA, hWnd, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSA, hWnd, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSA, nCmdShow, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSA, nCmdShow, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSA, nCmdShow, 16)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSA, lpstrText, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSA, lpstrText, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSA, lpstrText, 20)
}

static void test_pack_MCI_ANIM_WINDOW_PARMSW(void)
{
    /* MCI_ANIM_WINDOW_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_WINDOW_PARMSW, 28)
    TEST_TYPE_ALIGN  (MCI_ANIM_WINDOW_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSW, hWnd, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSW, hWnd, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSW, hWnd, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSW, nCmdShow, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSW, nCmdShow, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSW, nCmdShow, 16)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSW, lpstrText, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSW, lpstrText, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSW, lpstrText, 20)
}

static void test_pack_MCI_ANIM_UPDATE_PARMS(void)
{
    /* MCI_ANIM_UPDATE_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_UPDATE_PARMS, 32)
    TEST_TYPE_ALIGN  (MCI_ANIM_UPDATE_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_UPDATE_PARMS, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_UPDATE_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_UPDATE_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_UPDATE_PARMS, rc, 16)
    TEST_FIELD_ALIGN (MCI_ANIM_UPDATE_PARMS, rc, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_UPDATE_PARMS, rc, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_UPDATE_PARMS, hDC, 8)
    TEST_FIELD_ALIGN (MCI_ANIM_UPDATE_PARMS, hDC, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_UPDATE_PARMS, hDC, 24)
}

static void test_pack_MCI_OVLY_OPEN_PARMSA(void)
{
    /* MCI_OVLY_OPEN_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_OPEN_PARMSA, 48)
    TEST_TYPE_ALIGN  (MCI_OVLY_OPEN_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, wDeviceID, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, lpstrDeviceType, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, lpstrDeviceType, 12)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, lpstrElementName, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, lpstrElementName, 20)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, lpstrAlias, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, lpstrAlias, 28)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, dwStyle, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, dwStyle, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, dwStyle, 36)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, hWndParent, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, hWndParent, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, hWndParent, 40)
}

static void test_pack_MCI_OVLY_OPEN_PARMSW(void)
{
    /* MCI_OVLY_OPEN_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_OPEN_PARMSW, 48)
    TEST_TYPE_ALIGN  (MCI_OVLY_OPEN_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, wDeviceID, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, lpstrDeviceType, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, lpstrDeviceType, 12)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, lpstrElementName, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, lpstrElementName, 20)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, lpstrAlias, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, lpstrAlias, 28)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, dwStyle, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, dwStyle, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, dwStyle, 36)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, hWndParent, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, hWndParent, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, hWndParent, 40)
}

static void test_pack_MCI_OVLY_WINDOW_PARMSA(void)
{
    /* MCI_OVLY_WINDOW_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_WINDOW_PARMSA, 28)
    TEST_TYPE_ALIGN  (MCI_OVLY_WINDOW_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSA, hWnd, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSA, hWnd, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSA, hWnd, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSA, nCmdShow, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSA, nCmdShow, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSA, nCmdShow, 16)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSA, lpstrText, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSA, lpstrText, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSA, lpstrText, 20)
}

static void test_pack_MCI_OVLY_WINDOW_PARMSW(void)
{
    /* MCI_OVLY_WINDOW_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_WINDOW_PARMSW, 28)
    TEST_TYPE_ALIGN  (MCI_OVLY_WINDOW_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSW, hWnd, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSW, hWnd, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSW, hWnd, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSW, nCmdShow, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSW, nCmdShow, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSW, nCmdShow, 16)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSW, lpstrText, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSW, lpstrText, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSW, lpstrText, 20)
}

static void test_pack_MCI_OVLY_SAVE_PARMSA(void)
{
    /* MCI_OVLY_SAVE_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_SAVE_PARMSA, 32)
    TEST_TYPE_ALIGN  (MCI_OVLY_SAVE_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSA, lpfilename, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSA, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSA, lpfilename, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSA, rc, 16)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSA, rc, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSA, rc, 16)
}

static void test_pack_MCI_OVLY_SAVE_PARMSW(void)
{
    /* MCI_OVLY_SAVE_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_SAVE_PARMSW, 32)
    TEST_TYPE_ALIGN  (MCI_OVLY_SAVE_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSW, lpfilename, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSW, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSW, lpfilename, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSW, rc, 16)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSW, rc, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSW, rc, 16)
}

static void test_pack_MCI_OVLY_LOAD_PARMSA(void)
{
    /* MCI_OVLY_LOAD_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_LOAD_PARMSA, 32)
    TEST_TYPE_ALIGN  (MCI_OVLY_LOAD_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSA, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSA, lpfilename, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSA, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSA, lpfilename, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSA, rc, 16)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSA, rc, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSA, rc, 16)
}

static void test_pack_MCI_OVLY_LOAD_PARMSW(void)
{
    /* MCI_OVLY_LOAD_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_LOAD_PARMSW, 32)
    TEST_TYPE_ALIGN  (MCI_OVLY_LOAD_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSW, dwCallback, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSW, lpfilename, 8)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSW, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSW, lpfilename, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSW, rc, 16)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSW, rc, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSW, rc, 16)
}

#else /* _WIN64 */

static void test_pack_MMTIME(void)
{
    /* MMTIME (pack 1) */
    TEST_FIELD_SIZE  (MMTIME, wType, 4)
    TEST_FIELD_ALIGN (MMTIME, wType, 1)
    TEST_FIELD_OFFSET(MMTIME, wType, 0)
}

static void test_pack_DRVCONFIGINFO(void)
{
    /* DRVCONFIGINFO (pack 1) */
    TEST_TYPE_SIZE   (DRVCONFIGINFO, 12)
    TEST_TYPE_ALIGN  (DRVCONFIGINFO, 1)
    TEST_FIELD_SIZE  (DRVCONFIGINFO, dwDCISize, 4)
    TEST_FIELD_ALIGN (DRVCONFIGINFO, dwDCISize, 1)
    TEST_FIELD_OFFSET(DRVCONFIGINFO, dwDCISize, 0)
    TEST_FIELD_SIZE  (DRVCONFIGINFO, lpszDCISectionName, 4)
    TEST_FIELD_ALIGN (DRVCONFIGINFO, lpszDCISectionName, 1)
    TEST_FIELD_OFFSET(DRVCONFIGINFO, lpszDCISectionName, 4)
    TEST_FIELD_SIZE  (DRVCONFIGINFO, lpszDCIAliasName, 4)
    TEST_FIELD_ALIGN (DRVCONFIGINFO, lpszDCIAliasName, 1)
    TEST_FIELD_OFFSET(DRVCONFIGINFO, lpszDCIAliasName, 8)
}

static void test_pack_WAVEHDR(void)
{
    /* WAVEHDR (pack 1) */
    TEST_TYPE_SIZE   (WAVEHDR, 32)
    TEST_TYPE_ALIGN  (WAVEHDR, 1)
    TEST_FIELD_SIZE  (WAVEHDR, lpData, 4)
    TEST_FIELD_ALIGN (WAVEHDR, lpData, 1)
    TEST_FIELD_OFFSET(WAVEHDR, lpData, 0)
    TEST_FIELD_SIZE  (WAVEHDR, dwBufferLength, 4)
    TEST_FIELD_ALIGN (WAVEHDR, dwBufferLength, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwBufferLength, 4)
    TEST_FIELD_SIZE  (WAVEHDR, dwBytesRecorded, 4)
    TEST_FIELD_ALIGN (WAVEHDR, dwBytesRecorded, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwBytesRecorded, 8)
    TEST_FIELD_SIZE  (WAVEHDR, dwUser, 4)
    TEST_FIELD_ALIGN (WAVEHDR, dwUser, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwUser, 12)
    TEST_FIELD_SIZE  (WAVEHDR, dwFlags, 4)
    TEST_FIELD_ALIGN (WAVEHDR, dwFlags, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwFlags, 16)
    TEST_FIELD_SIZE  (WAVEHDR, dwLoops, 4)
    TEST_FIELD_ALIGN (WAVEHDR, dwLoops, 1)
    TEST_FIELD_OFFSET(WAVEHDR, dwLoops, 20)
    TEST_FIELD_SIZE  (WAVEHDR, lpNext, 4)
    TEST_FIELD_ALIGN (WAVEHDR, lpNext, 1)
    TEST_FIELD_OFFSET(WAVEHDR, lpNext, 24)
    TEST_FIELD_SIZE  (WAVEHDR, reserved, 4)
    TEST_FIELD_ALIGN (WAVEHDR, reserved, 1)
    TEST_FIELD_OFFSET(WAVEHDR, reserved, 28)
}

static void test_pack_WAVEOUTCAPSA(void)
{
    /* WAVEOUTCAPSA (pack 1) */
    TEST_FIELD_SIZE  (WAVEOUTCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (WAVEOUTCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (WAVEOUTCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEOUTCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSA, vDriverVersion, 4)
}

static void test_pack_WAVEOUTCAPSW(void)
{
    /* WAVEOUTCAPSW (pack 1) */
    TEST_FIELD_SIZE  (WAVEOUTCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (WAVEOUTCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (WAVEOUTCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEOUTCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPSW, vDriverVersion, 4)
}

static void test_pack_WAVEOUTCAPS2A(void)
{
    /* WAVEOUTCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (WAVEOUTCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (WAVEOUTCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (WAVEOUTCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2A, vDriverVersion, 4)
}

static void test_pack_WAVEOUTCAPS2W(void)
{
    /* WAVEOUTCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (WAVEOUTCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (WAVEOUTCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (WAVEOUTCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEOUTCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEOUTCAPS2W, vDriverVersion, 4)
}

static void test_pack_WAVEINCAPSA(void)
{
    /* WAVEINCAPSA (pack 1) */
    TEST_FIELD_SIZE  (WAVEINCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (WAVEINCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (WAVEINCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEINCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSA, vDriverVersion, 4)
}

static void test_pack_WAVEINCAPSW(void)
{
    /* WAVEINCAPSW (pack 1) */
    TEST_FIELD_SIZE  (WAVEINCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (WAVEINCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (WAVEINCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEINCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEINCAPSW, vDriverVersion, 4)
}

static void test_pack_WAVEINCAPS2A(void)
{
    /* WAVEINCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (WAVEINCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (WAVEINCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (WAVEINCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEINCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2A, vDriverVersion, 4)
}

static void test_pack_WAVEINCAPS2W(void)
{
    /* WAVEINCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (WAVEINCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (WAVEINCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (WAVEINCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (WAVEINCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (WAVEINCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(WAVEINCAPS2W, vDriverVersion, 4)
}

static void test_pack_WAVEFORMAT(void)
{
    /* WAVEFORMAT (pack 1) */
    TEST_TYPE_SIZE   (WAVEFORMAT, 14)
    TEST_TYPE_ALIGN  (WAVEFORMAT, 1)
    TEST_FIELD_SIZE  (WAVEFORMAT, wFormatTag, 2)
    TEST_FIELD_ALIGN (WAVEFORMAT, wFormatTag, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, wFormatTag, 0)
    TEST_FIELD_SIZE  (WAVEFORMAT, nChannels, 2)
    TEST_FIELD_ALIGN (WAVEFORMAT, nChannels, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, nChannels, 2)
    TEST_FIELD_SIZE  (WAVEFORMAT, nSamplesPerSec, 4)
    TEST_FIELD_ALIGN (WAVEFORMAT, nSamplesPerSec, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, nSamplesPerSec, 4)
    TEST_FIELD_SIZE  (WAVEFORMAT, nAvgBytesPerSec, 4)
    TEST_FIELD_ALIGN (WAVEFORMAT, nAvgBytesPerSec, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, nAvgBytesPerSec, 8)
    TEST_FIELD_SIZE  (WAVEFORMAT, nBlockAlign, 2)
    TEST_FIELD_ALIGN (WAVEFORMAT, nBlockAlign, 1)
    TEST_FIELD_OFFSET(WAVEFORMAT, nBlockAlign, 12)
}

static void test_pack_PCMWAVEFORMAT(void)
{
    /* PCMWAVEFORMAT (pack 1) */
    TEST_TYPE_SIZE   (PCMWAVEFORMAT, 16)
    TEST_TYPE_ALIGN  (PCMWAVEFORMAT, 1)
    TEST_FIELD_SIZE  (PCMWAVEFORMAT, wf, 14)
    TEST_FIELD_ALIGN (PCMWAVEFORMAT, wf, 1)
    TEST_FIELD_OFFSET(PCMWAVEFORMAT, wf, 0)
    TEST_FIELD_SIZE  (PCMWAVEFORMAT, wBitsPerSample, 2)
    TEST_FIELD_ALIGN (PCMWAVEFORMAT, wBitsPerSample, 1)
    TEST_FIELD_OFFSET(PCMWAVEFORMAT, wBitsPerSample, 14)
}

static void test_pack_WAVEFORMATEX(void)
{
    /* WAVEFORMATEX (pack 1) */
    TEST_TYPE_SIZE   (WAVEFORMATEX, 18)
    TEST_TYPE_ALIGN  (WAVEFORMATEX, 1)
    TEST_FIELD_SIZE  (WAVEFORMATEX, wFormatTag, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, wFormatTag, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, wFormatTag, 0)
    TEST_FIELD_SIZE  (WAVEFORMATEX, nChannels, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, nChannels, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, nChannels, 2)
    TEST_FIELD_SIZE  (WAVEFORMATEX, nSamplesPerSec, 4)
    TEST_FIELD_ALIGN (WAVEFORMATEX, nSamplesPerSec, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, nSamplesPerSec, 4)
    TEST_FIELD_SIZE  (WAVEFORMATEX, nAvgBytesPerSec, 4)
    TEST_FIELD_ALIGN (WAVEFORMATEX, nAvgBytesPerSec, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, nAvgBytesPerSec, 8)
    TEST_FIELD_SIZE  (WAVEFORMATEX, nBlockAlign, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, nBlockAlign, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, nBlockAlign, 12)
    TEST_FIELD_SIZE  (WAVEFORMATEX, wBitsPerSample, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, wBitsPerSample, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, wBitsPerSample, 14)
    TEST_FIELD_SIZE  (WAVEFORMATEX, cbSize, 2)
    TEST_FIELD_ALIGN (WAVEFORMATEX, cbSize, 1)
    TEST_FIELD_OFFSET(WAVEFORMATEX, cbSize, 16)
}

static void test_pack_MIDIOUTCAPSA(void)
{
    /* MIDIOUTCAPSA (pack 1) */
    TEST_FIELD_SIZE  (MIDIOUTCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (MIDIOUTCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (MIDIOUTCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIOUTCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSA, vDriverVersion, 4)
}

static void test_pack_MIDIOUTCAPSW(void)
{
    /* MIDIOUTCAPSW (pack 1) */
    TEST_FIELD_SIZE  (MIDIOUTCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (MIDIOUTCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (MIDIOUTCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIOUTCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPSW, vDriverVersion, 4)
}

static void test_pack_MIDIOUTCAPS2A(void)
{
    /* MIDIOUTCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (MIDIOUTCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (MIDIOUTCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (MIDIOUTCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2A, vDriverVersion, 4)
}

static void test_pack_MIDIOUTCAPS2W(void)
{
    /* MIDIOUTCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (MIDIOUTCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (MIDIOUTCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (MIDIOUTCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIOUTCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIOUTCAPS2W, vDriverVersion, 4)
}

static void test_pack_MIDIINCAPSA(void)
{
    /* MIDIINCAPSA (pack 1) */
    TEST_FIELD_SIZE  (MIDIINCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (MIDIINCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (MIDIINCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIINCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSA, vDriverVersion, 4)
}

static void test_pack_MIDIINCAPSW(void)
{
    /* MIDIINCAPSW (pack 1) */
    TEST_FIELD_SIZE  (MIDIINCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (MIDIINCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (MIDIINCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIINCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIINCAPSW, vDriverVersion, 4)
}

static void test_pack_MIDIINCAPS2A(void)
{
    /* MIDIINCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (MIDIINCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (MIDIINCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (MIDIINCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIINCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2A, vDriverVersion, 4)
}

static void test_pack_MIDIINCAPS2W(void)
{
    /* MIDIINCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (MIDIINCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (MIDIINCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (MIDIINCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (MIDIINCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIDIINCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIDIINCAPS2W, vDriverVersion, 4)
}

static void test_pack_MIDIHDR(void)
{
    /* MIDIHDR (pack 1) */
    TEST_TYPE_SIZE   (MIDIHDR, 64)
    TEST_TYPE_ALIGN  (MIDIHDR, 1)
    TEST_FIELD_SIZE  (MIDIHDR, lpData, 4)
    TEST_FIELD_ALIGN (MIDIHDR, lpData, 1)
    TEST_FIELD_OFFSET(MIDIHDR, lpData, 0)
    TEST_FIELD_SIZE  (MIDIHDR, dwBufferLength, 4)
    TEST_FIELD_ALIGN (MIDIHDR, dwBufferLength, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwBufferLength, 4)
    TEST_FIELD_SIZE  (MIDIHDR, dwBytesRecorded, 4)
    TEST_FIELD_ALIGN (MIDIHDR, dwBytesRecorded, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwBytesRecorded, 8)
    TEST_FIELD_SIZE  (MIDIHDR, dwUser, 4)
    TEST_FIELD_ALIGN (MIDIHDR, dwUser, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwUser, 12)
    TEST_FIELD_SIZE  (MIDIHDR, dwFlags, 4)
    TEST_FIELD_ALIGN (MIDIHDR, dwFlags, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwFlags, 16)
    TEST_FIELD_SIZE  (MIDIHDR, lpNext, 4)
    TEST_FIELD_ALIGN (MIDIHDR, lpNext, 1)
    TEST_FIELD_OFFSET(MIDIHDR, lpNext, 20)
    TEST_FIELD_SIZE  (MIDIHDR, reserved, 4)
    TEST_FIELD_ALIGN (MIDIHDR, reserved, 1)
    TEST_FIELD_OFFSET(MIDIHDR, reserved, 24)
    TEST_FIELD_SIZE  (MIDIHDR, dwOffset, 4)
    TEST_FIELD_ALIGN (MIDIHDR, dwOffset, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwOffset, 28)
    TEST_FIELD_SIZE  (MIDIHDR, dwReserved, 32)
    TEST_FIELD_ALIGN (MIDIHDR, dwReserved, 1)
    TEST_FIELD_OFFSET(MIDIHDR, dwReserved, 32)
}

static void test_pack_MIDIEVENT(void)
{
    /* MIDIEVENT (pack 1) */
    TEST_TYPE_SIZE   (MIDIEVENT, 16)
    TEST_TYPE_ALIGN  (MIDIEVENT, 1)
    TEST_FIELD_SIZE  (MIDIEVENT, dwDeltaTime, 4)
    TEST_FIELD_ALIGN (MIDIEVENT, dwDeltaTime, 1)
    TEST_FIELD_OFFSET(MIDIEVENT, dwDeltaTime, 0)
    TEST_FIELD_SIZE  (MIDIEVENT, dwStreamID, 4)
    TEST_FIELD_ALIGN (MIDIEVENT, dwStreamID, 1)
    TEST_FIELD_OFFSET(MIDIEVENT, dwStreamID, 4)
    TEST_FIELD_SIZE  (MIDIEVENT, dwEvent, 4)
    TEST_FIELD_ALIGN (MIDIEVENT, dwEvent, 1)
    TEST_FIELD_OFFSET(MIDIEVENT, dwEvent, 8)
    TEST_FIELD_SIZE  (MIDIEVENT, dwParms, 4)
    TEST_FIELD_ALIGN (MIDIEVENT, dwParms, 1)
    TEST_FIELD_OFFSET(MIDIEVENT, dwParms, 12)
}

static void test_pack_AUXCAPSA(void)
{
    /* AUXCAPSA (pack 1) */
    TEST_FIELD_SIZE  (AUXCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (AUXCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(AUXCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (AUXCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (AUXCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(AUXCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (AUXCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (AUXCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(AUXCAPSA, vDriverVersion, 4)
}

static void test_pack_AUXCAPSW(void)
{
    /* AUXCAPSW (pack 1) */
    TEST_FIELD_SIZE  (AUXCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (AUXCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(AUXCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (AUXCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (AUXCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(AUXCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (AUXCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (AUXCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(AUXCAPSW, vDriverVersion, 4)
}

static void test_pack_AUXCAPS2A(void)
{
    /* AUXCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (AUXCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (AUXCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(AUXCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (AUXCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (AUXCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(AUXCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (AUXCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (AUXCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(AUXCAPS2A, vDriverVersion, 4)
}

static void test_pack_AUXCAPS2W(void)
{
    /* AUXCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (AUXCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (AUXCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(AUXCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (AUXCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (AUXCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(AUXCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (AUXCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (AUXCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(AUXCAPS2W, vDriverVersion, 4)
}

static void test_pack_TIMECAPS(void)
{
    /* TIMECAPS (pack 1) */
    TEST_TYPE_SIZE   (TIMECAPS, 8)
    TEST_TYPE_ALIGN  (TIMECAPS, 1)
    TEST_FIELD_SIZE  (TIMECAPS, wPeriodMin, 4)
    TEST_FIELD_ALIGN (TIMECAPS, wPeriodMin, 1)
    TEST_FIELD_OFFSET(TIMECAPS, wPeriodMin, 0)
    TEST_FIELD_SIZE  (TIMECAPS, wPeriodMax, 4)
    TEST_FIELD_ALIGN (TIMECAPS, wPeriodMax, 1)
    TEST_FIELD_OFFSET(TIMECAPS, wPeriodMax, 4)
}

static void test_pack_JOYCAPSA(void)
{
    /* JOYCAPSA (pack 1) */
    TEST_FIELD_SIZE  (JOYCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (JOYCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(JOYCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (JOYCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (JOYCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(JOYCAPSA, wPid, 2)
}

static void test_pack_JOYCAPSW(void)
{
    /* JOYCAPSW (pack 1) */
    TEST_FIELD_SIZE  (JOYCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (JOYCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(JOYCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (JOYCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (JOYCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(JOYCAPSW, wPid, 2)
}

static void test_pack_JOYCAPS2A(void)
{
    /* JOYCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (JOYCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (JOYCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(JOYCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (JOYCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (JOYCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(JOYCAPS2A, wPid, 2)
}

static void test_pack_JOYCAPS2W(void)
{
    /* JOYCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (JOYCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (JOYCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(JOYCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (JOYCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (JOYCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(JOYCAPS2W, wPid, 2)
}

static void test_pack_JOYINFO(void)
{
    /* JOYINFO (pack 1) */
    TEST_TYPE_SIZE   (JOYINFO, 16)
    TEST_TYPE_ALIGN  (JOYINFO, 1)
    TEST_FIELD_SIZE  (JOYINFO, wXpos, 4)
    TEST_FIELD_ALIGN (JOYINFO, wXpos, 1)
    TEST_FIELD_OFFSET(JOYINFO, wXpos, 0)
    TEST_FIELD_SIZE  (JOYINFO, wYpos, 4)
    TEST_FIELD_ALIGN (JOYINFO, wYpos, 1)
    TEST_FIELD_OFFSET(JOYINFO, wYpos, 4)
    TEST_FIELD_SIZE  (JOYINFO, wZpos, 4)
    TEST_FIELD_ALIGN (JOYINFO, wZpos, 1)
    TEST_FIELD_OFFSET(JOYINFO, wZpos, 8)
    TEST_FIELD_SIZE  (JOYINFO, wButtons, 4)
    TEST_FIELD_ALIGN (JOYINFO, wButtons, 1)
    TEST_FIELD_OFFSET(JOYINFO, wButtons, 12)
}

static void test_pack_JOYINFOEX(void)
{
    /* JOYINFOEX (pack 1) */
    TEST_TYPE_SIZE   (JOYINFOEX, 52)
    TEST_TYPE_ALIGN  (JOYINFOEX, 1)
    TEST_FIELD_SIZE  (JOYINFOEX, dwSize, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwSize, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwSize, 0)
    TEST_FIELD_SIZE  (JOYINFOEX, dwFlags, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwFlags, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwFlags, 4)
    TEST_FIELD_SIZE  (JOYINFOEX, dwXpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwXpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwXpos, 8)
    TEST_FIELD_SIZE  (JOYINFOEX, dwYpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwYpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwYpos, 12)
    TEST_FIELD_SIZE  (JOYINFOEX, dwZpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwZpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwZpos, 16)
    TEST_FIELD_SIZE  (JOYINFOEX, dwRpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwRpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwRpos, 20)
    TEST_FIELD_SIZE  (JOYINFOEX, dwUpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwUpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwUpos, 24)
    TEST_FIELD_SIZE  (JOYINFOEX, dwVpos, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwVpos, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwVpos, 28)
    TEST_FIELD_SIZE  (JOYINFOEX, dwButtons, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwButtons, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwButtons, 32)
    TEST_FIELD_SIZE  (JOYINFOEX, dwButtonNumber, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwButtonNumber, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwButtonNumber, 36)
    TEST_FIELD_SIZE  (JOYINFOEX, dwPOV, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwPOV, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwPOV, 40)
    TEST_FIELD_SIZE  (JOYINFOEX, dwReserved1, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwReserved1, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwReserved1, 44)
    TEST_FIELD_SIZE  (JOYINFOEX, dwReserved2, 4)
    TEST_FIELD_ALIGN (JOYINFOEX, dwReserved2, 1)
    TEST_FIELD_OFFSET(JOYINFOEX, dwReserved2, 48)
}

static void test_pack_MIXERCAPSA(void)
{
    /* MIXERCAPSA (pack 1) */
    TEST_FIELD_SIZE  (MIXERCAPSA, wMid, 2)
    TEST_FIELD_ALIGN (MIXERCAPSA, wMid, 1)
    TEST_FIELD_OFFSET(MIXERCAPSA, wMid, 0)
    TEST_FIELD_SIZE  (MIXERCAPSA, wPid, 2)
    TEST_FIELD_ALIGN (MIXERCAPSA, wPid, 1)
    TEST_FIELD_OFFSET(MIXERCAPSA, wPid, 2)
    TEST_FIELD_SIZE  (MIXERCAPSA, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIXERCAPSA, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIXERCAPSA, vDriverVersion, 4)
}

static void test_pack_MIXERCAPSW(void)
{
    /* MIXERCAPSW (pack 1) */
    TEST_FIELD_SIZE  (MIXERCAPSW, wMid, 2)
    TEST_FIELD_ALIGN (MIXERCAPSW, wMid, 1)
    TEST_FIELD_OFFSET(MIXERCAPSW, wMid, 0)
    TEST_FIELD_SIZE  (MIXERCAPSW, wPid, 2)
    TEST_FIELD_ALIGN (MIXERCAPSW, wPid, 1)
    TEST_FIELD_OFFSET(MIXERCAPSW, wPid, 2)
    TEST_FIELD_SIZE  (MIXERCAPSW, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIXERCAPSW, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIXERCAPSW, vDriverVersion, 4)
}

static void test_pack_MIXERCAPS2A(void)
{
    /* MIXERCAPS2A (pack 1) */
    TEST_FIELD_SIZE  (MIXERCAPS2A, wMid, 2)
    TEST_FIELD_ALIGN (MIXERCAPS2A, wMid, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2A, wMid, 0)
    TEST_FIELD_SIZE  (MIXERCAPS2A, wPid, 2)
    TEST_FIELD_ALIGN (MIXERCAPS2A, wPid, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2A, wPid, 2)
    TEST_FIELD_SIZE  (MIXERCAPS2A, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIXERCAPS2A, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2A, vDriverVersion, 4)
}

static void test_pack_MIXERCAPS2W(void)
{
    /* MIXERCAPS2W (pack 1) */
    TEST_FIELD_SIZE  (MIXERCAPS2W, wMid, 2)
    TEST_FIELD_ALIGN (MIXERCAPS2W, wMid, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2W, wMid, 0)
    TEST_FIELD_SIZE  (MIXERCAPS2W, wPid, 2)
    TEST_FIELD_ALIGN (MIXERCAPS2W, wPid, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2W, wPid, 2)
    TEST_FIELD_SIZE  (MIXERCAPS2W, vDriverVersion, 4)
    TEST_FIELD_ALIGN (MIXERCAPS2W, vDriverVersion, 1)
    TEST_FIELD_OFFSET(MIXERCAPS2W, vDriverVersion, 4)
}

static void test_pack_MIXERLINEA(void)
{
    /* MIXERLINEA (pack 1) */
    TEST_FIELD_SIZE  (MIXERLINEA, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERLINEA, dwDestination, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, dwDestination, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwDestination, 4)
    TEST_FIELD_SIZE  (MIXERLINEA, dwSource, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, dwSource, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwSource, 8)
    TEST_FIELD_SIZE  (MIXERLINEA, dwLineID, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, dwLineID, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwLineID, 12)
    TEST_FIELD_SIZE  (MIXERLINEA, fdwLine, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, fdwLine, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, fdwLine, 16)
    TEST_FIELD_SIZE  (MIXERLINEA, dwUser, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, dwUser, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwUser, 20)
    TEST_FIELD_SIZE  (MIXERLINEA, dwComponentType, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, dwComponentType, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, dwComponentType, 24)
    TEST_FIELD_SIZE  (MIXERLINEA, cChannels, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, cChannels, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, cChannels, 28)
    TEST_FIELD_SIZE  (MIXERLINEA, cConnections, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, cConnections, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, cConnections, 32)
    TEST_FIELD_SIZE  (MIXERLINEA, cControls, 4)
    TEST_FIELD_ALIGN (MIXERLINEA, cControls, 1)
    TEST_FIELD_OFFSET(MIXERLINEA, cControls, 36)
}

static void test_pack_MIXERLINEW(void)
{
    /* MIXERLINEW (pack 1) */
    TEST_FIELD_SIZE  (MIXERLINEW, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERLINEW, dwDestination, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, dwDestination, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwDestination, 4)
    TEST_FIELD_SIZE  (MIXERLINEW, dwSource, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, dwSource, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwSource, 8)
    TEST_FIELD_SIZE  (MIXERLINEW, dwLineID, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, dwLineID, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwLineID, 12)
    TEST_FIELD_SIZE  (MIXERLINEW, fdwLine, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, fdwLine, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, fdwLine, 16)
    TEST_FIELD_SIZE  (MIXERLINEW, dwUser, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, dwUser, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwUser, 20)
    TEST_FIELD_SIZE  (MIXERLINEW, dwComponentType, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, dwComponentType, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, dwComponentType, 24)
    TEST_FIELD_SIZE  (MIXERLINEW, cChannels, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, cChannels, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, cChannels, 28)
    TEST_FIELD_SIZE  (MIXERLINEW, cConnections, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, cConnections, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, cConnections, 32)
    TEST_FIELD_SIZE  (MIXERLINEW, cControls, 4)
    TEST_FIELD_ALIGN (MIXERLINEW, cControls, 1)
    TEST_FIELD_OFFSET(MIXERLINEW, cControls, 36)
}

static void test_pack_MIXERCONTROLA(void)
{
    /* MIXERCONTROLA (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLA, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLA, dwControlID, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, dwControlID, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, dwControlID, 4)
    TEST_FIELD_SIZE  (MIXERCONTROLA, dwControlType, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, dwControlType, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, dwControlType, 8)
    TEST_FIELD_SIZE  (MIXERCONTROLA, fdwControl, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, fdwControl, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, fdwControl, 12)
    TEST_FIELD_SIZE  (MIXERCONTROLA, cMultipleItems, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLA, cMultipleItems, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLA, cMultipleItems, 16)
}

static void test_pack_MIXERCONTROLW(void)
{
    /* MIXERCONTROLW (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLW, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLW, dwControlID, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, dwControlID, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, dwControlID, 4)
    TEST_FIELD_SIZE  (MIXERCONTROLW, dwControlType, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, dwControlType, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, dwControlType, 8)
    TEST_FIELD_SIZE  (MIXERCONTROLW, fdwControl, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, fdwControl, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, fdwControl, 12)
    TEST_FIELD_SIZE  (MIXERCONTROLW, cMultipleItems, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLW, cMultipleItems, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLW, cMultipleItems, 16)
}

static void test_pack_MIXERCONTROLDETAILS(void)
{
    /* MIXERCONTROLDETAILS (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS, cbStruct, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS, cbStruct, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS, cbStruct, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS, dwControlID, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS, dwControlID, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS, dwControlID, 4)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS, cChannels, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS, cChannels, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS, cChannels, 8)
}

static void test_pack_MIXERCONTROLDETAILS_LISTTEXTA(void)
{
    /* MIXERCONTROLDETAILS_LISTTEXTA (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_LISTTEXTA, dwParam1, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_LISTTEXTA, dwParam1, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_LISTTEXTA, dwParam1, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_LISTTEXTA, dwParam2, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_LISTTEXTA, dwParam2, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_LISTTEXTA, dwParam2, 4)
}

static void test_pack_MIXERCONTROLDETAILS_LISTTEXTW(void)
{
    /* MIXERCONTROLDETAILS_LISTTEXTW (pack 1) */
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_LISTTEXTW, dwParam1, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_LISTTEXTW, dwParam1, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_LISTTEXTW, dwParam1, 0)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_LISTTEXTW, dwParam2, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_LISTTEXTW, dwParam2, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_LISTTEXTW, dwParam2, 4)
}

static void test_pack_MIXERCONTROLDETAILS_BOOLEAN(void)
{
    /* MIXERCONTROLDETAILS_BOOLEAN (pack 1) */
    TEST_TYPE_SIZE   (MIXERCONTROLDETAILS_BOOLEAN, 4)
    TEST_TYPE_ALIGN  (MIXERCONTROLDETAILS_BOOLEAN, 1)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_BOOLEAN, fValue, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_BOOLEAN, fValue, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_BOOLEAN, fValue, 0)
}

static void test_pack_MIXERCONTROLDETAILS_SIGNED(void)
{
    /* MIXERCONTROLDETAILS_SIGNED (pack 1) */
    TEST_TYPE_SIZE   (MIXERCONTROLDETAILS_SIGNED, 4)
    TEST_TYPE_ALIGN  (MIXERCONTROLDETAILS_SIGNED, 1)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_SIGNED, lValue, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_SIGNED, lValue, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_SIGNED, lValue, 0)
}

static void test_pack_MIXERCONTROLDETAILS_UNSIGNED(void)
{
    /* MIXERCONTROLDETAILS_UNSIGNED (pack 1) */
    TEST_TYPE_SIZE   (MIXERCONTROLDETAILS_UNSIGNED, 4)
    TEST_TYPE_ALIGN  (MIXERCONTROLDETAILS_UNSIGNED, 1)
    TEST_FIELD_SIZE  (MIXERCONTROLDETAILS_UNSIGNED, dwValue, 4)
    TEST_FIELD_ALIGN (MIXERCONTROLDETAILS_UNSIGNED, dwValue, 1)
    TEST_FIELD_OFFSET(MIXERCONTROLDETAILS_UNSIGNED, dwValue, 0)
}

static void test_pack_MMIOINFO(void)
{
    /* MMIOINFO (pack 1) */
    TEST_FIELD_SIZE  (MMIOINFO, dwFlags, 4)
    TEST_FIELD_ALIGN (MMIOINFO, dwFlags, 1)
    TEST_FIELD_OFFSET(MMIOINFO, dwFlags, 0)
    TEST_FIELD_SIZE  (MMIOINFO, fccIOProc, 4)
    TEST_FIELD_ALIGN (MMIOINFO, fccIOProc, 1)
    TEST_FIELD_OFFSET(MMIOINFO, fccIOProc, 4)
    TEST_FIELD_SIZE  (MMIOINFO, pIOProc, 4)
    TEST_FIELD_ALIGN (MMIOINFO, pIOProc, 1)
    TEST_FIELD_OFFSET(MMIOINFO, pIOProc, 8)
    TEST_FIELD_SIZE  (MMIOINFO, wErrorRet, 4)
    TEST_FIELD_ALIGN (MMIOINFO, wErrorRet, 1)
    TEST_FIELD_OFFSET(MMIOINFO, wErrorRet, 12)
}

static void test_pack_MMCKINFO(void)
{
    /* MMCKINFO (pack 1) */
    TEST_TYPE_SIZE   (MMCKINFO, 20)
    TEST_TYPE_ALIGN  (MMCKINFO, 1)
    TEST_FIELD_SIZE  (MMCKINFO, ckid, 4)
    TEST_FIELD_ALIGN (MMCKINFO, ckid, 1)
    TEST_FIELD_OFFSET(MMCKINFO, ckid, 0)
    TEST_FIELD_SIZE  (MMCKINFO, cksize, 4)
    TEST_FIELD_ALIGN (MMCKINFO, cksize, 1)
    TEST_FIELD_OFFSET(MMCKINFO, cksize, 4)
    TEST_FIELD_SIZE  (MMCKINFO, fccType, 4)
    TEST_FIELD_ALIGN (MMCKINFO, fccType, 1)
    TEST_FIELD_OFFSET(MMCKINFO, fccType, 8)
    TEST_FIELD_SIZE  (MMCKINFO, dwDataOffset, 4)
    TEST_FIELD_ALIGN (MMCKINFO, dwDataOffset, 1)
    TEST_FIELD_OFFSET(MMCKINFO, dwDataOffset, 12)
    TEST_FIELD_SIZE  (MMCKINFO, dwFlags, 4)
    TEST_FIELD_ALIGN (MMCKINFO, dwFlags, 1)
    TEST_FIELD_OFFSET(MMCKINFO, dwFlags, 16)
}

static void test_pack_MCI_GENERIC_PARMS(void)
{
    /* MCI_GENERIC_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_GENERIC_PARMS, 4)
    TEST_TYPE_ALIGN  (MCI_GENERIC_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_GENERIC_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_GENERIC_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_GENERIC_PARMS, dwCallback, 0)
}

static void test_pack_MCI_OPEN_PARMSA(void)
{
    /* MCI_OPEN_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OPEN_PARMSA, 20)
    TEST_TYPE_ALIGN  (MCI_OPEN_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, lpstrDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, lpstrDeviceType, 8)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, lpstrElementName, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, lpstrElementName, 12)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSA, lpstrAlias, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSA, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSA, lpstrAlias, 16)
}

static void test_pack_MCI_OPEN_PARMSW(void)
{
    /* MCI_OPEN_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OPEN_PARMSW, 20)
    TEST_TYPE_ALIGN  (MCI_OPEN_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, lpstrDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, lpstrDeviceType, 8)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, lpstrElementName, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, lpstrElementName, 12)
    TEST_FIELD_SIZE  (MCI_OPEN_PARMSW, lpstrAlias, 4)
    TEST_FIELD_ALIGN (MCI_OPEN_PARMSW, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_OPEN_PARMSW, lpstrAlias, 16)
}

static void test_pack_MCI_PLAY_PARMS(void)
{
    /* MCI_PLAY_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_PLAY_PARMS, 12)
    TEST_TYPE_ALIGN  (MCI_PLAY_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_PLAY_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_PLAY_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_PLAY_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_PLAY_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_PLAY_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_PLAY_PARMS, dwFrom, 4)
    TEST_FIELD_SIZE  (MCI_PLAY_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_PLAY_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_PLAY_PARMS, dwTo, 8)
}

static void test_pack_MCI_SEEK_PARMS(void)
{
    /* MCI_SEEK_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_SEEK_PARMS, 8)
    TEST_TYPE_ALIGN  (MCI_SEEK_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_SEEK_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_SEEK_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SEEK_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SEEK_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_SEEK_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_SEEK_PARMS, dwTo, 4)
}

static void test_pack_MCI_STATUS_PARMS(void)
{
    /* MCI_STATUS_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_STATUS_PARMS, 16)
    TEST_TYPE_ALIGN  (MCI_STATUS_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_STATUS_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_STATUS_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_STATUS_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_STATUS_PARMS, dwReturn, 4)
    TEST_FIELD_ALIGN (MCI_STATUS_PARMS, dwReturn, 1)
    TEST_FIELD_OFFSET(MCI_STATUS_PARMS, dwReturn, 4)
    TEST_FIELD_SIZE  (MCI_STATUS_PARMS, dwItem, 4)
    TEST_FIELD_ALIGN (MCI_STATUS_PARMS, dwItem, 1)
    TEST_FIELD_OFFSET(MCI_STATUS_PARMS, dwItem, 8)
    TEST_FIELD_SIZE  (MCI_STATUS_PARMS, dwTrack, 4)
    TEST_FIELD_ALIGN (MCI_STATUS_PARMS, dwTrack, 1)
    TEST_FIELD_OFFSET(MCI_STATUS_PARMS, dwTrack, 12)
}

static void test_pack_MCI_INFO_PARMSA(void)
{
    /* MCI_INFO_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_INFO_PARMSA, 12)
    TEST_TYPE_ALIGN  (MCI_INFO_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSA, lpstrReturn, 4)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSA, lpstrReturn, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSA, lpstrReturn, 4)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSA, dwRetSize, 4)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSA, dwRetSize, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSA, dwRetSize, 8)
}

static void test_pack_MCI_INFO_PARMSW(void)
{
    /* MCI_INFO_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_INFO_PARMSW, 12)
    TEST_TYPE_ALIGN  (MCI_INFO_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSW, lpstrReturn, 4)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSW, lpstrReturn, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSW, lpstrReturn, 4)
    TEST_FIELD_SIZE  (MCI_INFO_PARMSW, dwRetSize, 4)
    TEST_FIELD_ALIGN (MCI_INFO_PARMSW, dwRetSize, 1)
    TEST_FIELD_OFFSET(MCI_INFO_PARMSW, dwRetSize, 8)
}

static void test_pack_MCI_GETDEVCAPS_PARMS(void)
{
    /* MCI_GETDEVCAPS_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_GETDEVCAPS_PARMS, 12)
    TEST_TYPE_ALIGN  (MCI_GETDEVCAPS_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_GETDEVCAPS_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_GETDEVCAPS_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_GETDEVCAPS_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_GETDEVCAPS_PARMS, dwReturn, 4)
    TEST_FIELD_ALIGN (MCI_GETDEVCAPS_PARMS, dwReturn, 1)
    TEST_FIELD_OFFSET(MCI_GETDEVCAPS_PARMS, dwReturn, 4)
    TEST_FIELD_SIZE  (MCI_GETDEVCAPS_PARMS, dwItem, 4)
    TEST_FIELD_ALIGN (MCI_GETDEVCAPS_PARMS, dwItem, 1)
    TEST_FIELD_OFFSET(MCI_GETDEVCAPS_PARMS, dwItem, 8)
}

static void test_pack_MCI_SYSINFO_PARMSA(void)
{
    /* MCI_SYSINFO_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_SYSINFO_PARMSA, 20)
    TEST_TYPE_ALIGN  (MCI_SYSINFO_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, lpstrReturn, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, lpstrReturn, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, lpstrReturn, 4)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, dwRetSize, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, dwRetSize, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, dwRetSize, 8)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, dwNumber, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, dwNumber, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, dwNumber, 12)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSA, wDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSA, wDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSA, wDeviceType, 16)
}

static void test_pack_MCI_SYSINFO_PARMSW(void)
{
    /* MCI_SYSINFO_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_SYSINFO_PARMSW, 20)
    TEST_TYPE_ALIGN  (MCI_SYSINFO_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, lpstrReturn, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, lpstrReturn, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, lpstrReturn, 4)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, dwRetSize, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, dwRetSize, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, dwRetSize, 8)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, dwNumber, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, dwNumber, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, dwNumber, 12)
    TEST_FIELD_SIZE  (MCI_SYSINFO_PARMSW, wDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_SYSINFO_PARMSW, wDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_SYSINFO_PARMSW, wDeviceType, 16)
}

static void test_pack_MCI_SET_PARMS(void)
{
    /* MCI_SET_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_SET_PARMS, 12)
    TEST_TYPE_ALIGN  (MCI_SET_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_SET_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_SET_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SET_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SET_PARMS, dwTimeFormat, 4)
    TEST_FIELD_ALIGN (MCI_SET_PARMS, dwTimeFormat, 1)
    TEST_FIELD_OFFSET(MCI_SET_PARMS, dwTimeFormat, 4)
    TEST_FIELD_SIZE  (MCI_SET_PARMS, dwAudio, 4)
    TEST_FIELD_ALIGN (MCI_SET_PARMS, dwAudio, 1)
    TEST_FIELD_OFFSET(MCI_SET_PARMS, dwAudio, 8)
}

static void test_pack_MCI_BREAK_PARMS(void)
{
    /* MCI_BREAK_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_BREAK_PARMS, 12)
    TEST_TYPE_ALIGN  (MCI_BREAK_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_BREAK_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_BREAK_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_BREAK_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_BREAK_PARMS, nVirtKey, 4)
    TEST_FIELD_ALIGN (MCI_BREAK_PARMS, nVirtKey, 1)
    TEST_FIELD_OFFSET(MCI_BREAK_PARMS, nVirtKey, 4)
    TEST_FIELD_SIZE  (MCI_BREAK_PARMS, hwndBreak, 4)
    TEST_FIELD_ALIGN (MCI_BREAK_PARMS, hwndBreak, 1)
    TEST_FIELD_OFFSET(MCI_BREAK_PARMS, hwndBreak, 8)
}

static void test_pack_MCI_SOUND_PARMSA(void)
{
    /* MCI_SOUND_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_SOUND_PARMSA, 8)
    TEST_TYPE_ALIGN  (MCI_SOUND_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_SOUND_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_SOUND_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SOUND_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SOUND_PARMSA, lpstrSoundName, 4)
    TEST_FIELD_ALIGN (MCI_SOUND_PARMSA, lpstrSoundName, 1)
    TEST_FIELD_OFFSET(MCI_SOUND_PARMSA, lpstrSoundName, 4)
}

static void test_pack_MCI_SOUND_PARMSW(void)
{
    /* MCI_SOUND_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_SOUND_PARMSW, 8)
    TEST_TYPE_ALIGN  (MCI_SOUND_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_SOUND_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_SOUND_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SOUND_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SOUND_PARMSW, lpstrSoundName, 4)
    TEST_FIELD_ALIGN (MCI_SOUND_PARMSW, lpstrSoundName, 1)
    TEST_FIELD_OFFSET(MCI_SOUND_PARMSW, lpstrSoundName, 4)
}

static void test_pack_MCI_SAVE_PARMSA(void)
{
    /* MCI_SAVE_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_SAVE_PARMSA, 8)
    TEST_TYPE_ALIGN  (MCI_SAVE_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_SAVE_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_SAVE_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SAVE_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SAVE_PARMSA, lpfilename, 4)
    TEST_FIELD_ALIGN (MCI_SAVE_PARMSA, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_SAVE_PARMSA, lpfilename, 4)
}

static void test_pack_MCI_SAVE_PARMSW(void)
{
    /* MCI_SAVE_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_SAVE_PARMSW, 8)
    TEST_TYPE_ALIGN  (MCI_SAVE_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_SAVE_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_SAVE_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SAVE_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SAVE_PARMSW, lpfilename, 4)
    TEST_FIELD_ALIGN (MCI_SAVE_PARMSW, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_SAVE_PARMSW, lpfilename, 4)
}

static void test_pack_MCI_LOAD_PARMSA(void)
{
    /* MCI_LOAD_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_LOAD_PARMSA, 8)
    TEST_TYPE_ALIGN  (MCI_LOAD_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_LOAD_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_LOAD_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_LOAD_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_LOAD_PARMSA, lpfilename, 4)
    TEST_FIELD_ALIGN (MCI_LOAD_PARMSA, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_LOAD_PARMSA, lpfilename, 4)
}

static void test_pack_MCI_LOAD_PARMSW(void)
{
    /* MCI_LOAD_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_LOAD_PARMSW, 8)
    TEST_TYPE_ALIGN  (MCI_LOAD_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_LOAD_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_LOAD_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_LOAD_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_LOAD_PARMSW, lpfilename, 4)
    TEST_FIELD_ALIGN (MCI_LOAD_PARMSW, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_LOAD_PARMSW, lpfilename, 4)
}

static void test_pack_MCI_RECORD_PARMS(void)
{
    /* MCI_RECORD_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_RECORD_PARMS, 12)
    TEST_TYPE_ALIGN  (MCI_RECORD_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_RECORD_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_RECORD_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_RECORD_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_RECORD_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_RECORD_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_RECORD_PARMS, dwFrom, 4)
    TEST_FIELD_SIZE  (MCI_RECORD_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_RECORD_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_RECORD_PARMS, dwTo, 8)
}

static void test_pack_MCI_VD_PLAY_PARMS(void)
{
    /* MCI_VD_PLAY_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_VD_PLAY_PARMS, 16)
    TEST_TYPE_ALIGN  (MCI_VD_PLAY_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_VD_PLAY_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_VD_PLAY_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_VD_PLAY_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_VD_PLAY_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_VD_PLAY_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_VD_PLAY_PARMS, dwFrom, 4)
    TEST_FIELD_SIZE  (MCI_VD_PLAY_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_VD_PLAY_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_VD_PLAY_PARMS, dwTo, 8)
    TEST_FIELD_SIZE  (MCI_VD_PLAY_PARMS, dwSpeed, 4)
    TEST_FIELD_ALIGN (MCI_VD_PLAY_PARMS, dwSpeed, 1)
    TEST_FIELD_OFFSET(MCI_VD_PLAY_PARMS, dwSpeed, 12)
}

static void test_pack_MCI_VD_STEP_PARMS(void)
{
    /* MCI_VD_STEP_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_VD_STEP_PARMS, 8)
    TEST_TYPE_ALIGN  (MCI_VD_STEP_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_VD_STEP_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_VD_STEP_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_VD_STEP_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_VD_STEP_PARMS, dwFrames, 4)
    TEST_FIELD_ALIGN (MCI_VD_STEP_PARMS, dwFrames, 1)
    TEST_FIELD_OFFSET(MCI_VD_STEP_PARMS, dwFrames, 4)
}

static void test_pack_MCI_VD_ESCAPE_PARMSA(void)
{
    /* MCI_VD_ESCAPE_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_VD_ESCAPE_PARMSA, 8)
    TEST_TYPE_ALIGN  (MCI_VD_ESCAPE_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_VD_ESCAPE_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_VD_ESCAPE_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_VD_ESCAPE_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_VD_ESCAPE_PARMSA, lpstrCommand, 4)
    TEST_FIELD_ALIGN (MCI_VD_ESCAPE_PARMSA, lpstrCommand, 1)
    TEST_FIELD_OFFSET(MCI_VD_ESCAPE_PARMSA, lpstrCommand, 4)
}

static void test_pack_MCI_VD_ESCAPE_PARMSW(void)
{
    /* MCI_VD_ESCAPE_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_VD_ESCAPE_PARMSW, 8)
    TEST_TYPE_ALIGN  (MCI_VD_ESCAPE_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_VD_ESCAPE_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_VD_ESCAPE_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_VD_ESCAPE_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_VD_ESCAPE_PARMSW, lpstrCommand, 4)
    TEST_FIELD_ALIGN (MCI_VD_ESCAPE_PARMSW, lpstrCommand, 1)
    TEST_FIELD_OFFSET(MCI_VD_ESCAPE_PARMSW, lpstrCommand, 4)
}

static void test_pack_MCI_WAVE_OPEN_PARMSA(void)
{
    /* MCI_WAVE_OPEN_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_WAVE_OPEN_PARMSA, 24)
    TEST_TYPE_ALIGN  (MCI_WAVE_OPEN_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, lpstrDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, lpstrDeviceType, 8)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, lpstrElementName, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, lpstrElementName, 12)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, lpstrAlias, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, lpstrAlias, 16)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSA, dwBufferSeconds, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSA, dwBufferSeconds, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSA, dwBufferSeconds, 20)
}

static void test_pack_MCI_WAVE_OPEN_PARMSW(void)
{
    /* MCI_WAVE_OPEN_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_WAVE_OPEN_PARMSW, 24)
    TEST_TYPE_ALIGN  (MCI_WAVE_OPEN_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, lpstrDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, lpstrDeviceType, 8)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, lpstrElementName, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, lpstrElementName, 12)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, lpstrAlias, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, lpstrAlias, 16)
    TEST_FIELD_SIZE  (MCI_WAVE_OPEN_PARMSW, dwBufferSeconds, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_OPEN_PARMSW, dwBufferSeconds, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_OPEN_PARMSW, dwBufferSeconds, 20)
}

static void test_pack_MCI_WAVE_DELETE_PARMS(void)
{
    /* MCI_WAVE_DELETE_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_WAVE_DELETE_PARMS, 12)
    TEST_TYPE_ALIGN  (MCI_WAVE_DELETE_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_WAVE_DELETE_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_DELETE_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_DELETE_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_WAVE_DELETE_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_DELETE_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_DELETE_PARMS, dwFrom, 4)
    TEST_FIELD_SIZE  (MCI_WAVE_DELETE_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_DELETE_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_DELETE_PARMS, dwTo, 8)
}

static void test_pack_MCI_WAVE_SET_PARMS(void)
{
    /* MCI_WAVE_SET_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_WAVE_SET_PARMS, 44)
    TEST_TYPE_ALIGN  (MCI_WAVE_SET_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, dwTimeFormat, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, dwTimeFormat, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, dwTimeFormat, 4)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, dwAudio, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, dwAudio, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, dwAudio, 8)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, wInput, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, wInput, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, wInput, 12)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, wOutput, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, wOutput, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, wOutput, 16)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, wFormatTag, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, wFormatTag, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, wFormatTag, 20)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, nChannels, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, nChannels, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, nChannels, 24)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, nSamplesPerSec, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, nSamplesPerSec, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, nSamplesPerSec, 28)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, nAvgBytesPerSec, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, nAvgBytesPerSec, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, nAvgBytesPerSec, 32)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, nBlockAlign, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, nBlockAlign, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, nBlockAlign, 36)
    TEST_FIELD_SIZE  (MCI_WAVE_SET_PARMS, wBitsPerSample, 4)
    TEST_FIELD_ALIGN (MCI_WAVE_SET_PARMS, wBitsPerSample, 1)
    TEST_FIELD_OFFSET(MCI_WAVE_SET_PARMS, wBitsPerSample, 40)
}

static void test_pack_MCI_SEQ_SET_PARMS(void)
{
    /* MCI_SEQ_SET_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_SEQ_SET_PARMS, 32)
    TEST_TYPE_ALIGN  (MCI_SEQ_SET_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwTimeFormat, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwTimeFormat, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwTimeFormat, 4)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwAudio, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwAudio, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwAudio, 8)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwTempo, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwTempo, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwTempo, 12)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwPort, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwPort, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwPort, 16)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwSlave, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwSlave, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwSlave, 20)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwMaster, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwMaster, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwMaster, 24)
    TEST_FIELD_SIZE  (MCI_SEQ_SET_PARMS, dwOffset, 4)
    TEST_FIELD_ALIGN (MCI_SEQ_SET_PARMS, dwOffset, 1)
    TEST_FIELD_OFFSET(MCI_SEQ_SET_PARMS, dwOffset, 28)
}

static void test_pack_MCI_ANIM_OPEN_PARMSA(void)
{
    /* MCI_ANIM_OPEN_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_OPEN_PARMSA, 28)
    TEST_TYPE_ALIGN  (MCI_ANIM_OPEN_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, lpstrDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, lpstrDeviceType, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, lpstrElementName, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, lpstrElementName, 12)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, lpstrAlias, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, lpstrAlias, 16)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, dwStyle, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, dwStyle, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, dwStyle, 20)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSA, hWndParent, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSA, hWndParent, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSA, hWndParent, 24)
}

static void test_pack_MCI_ANIM_OPEN_PARMSW(void)
{
    /* MCI_ANIM_OPEN_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_OPEN_PARMSW, 28)
    TEST_TYPE_ALIGN  (MCI_ANIM_OPEN_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, lpstrDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, lpstrDeviceType, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, lpstrElementName, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, lpstrElementName, 12)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, lpstrAlias, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, lpstrAlias, 16)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, dwStyle, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, dwStyle, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, dwStyle, 20)
    TEST_FIELD_SIZE  (MCI_ANIM_OPEN_PARMSW, hWndParent, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_OPEN_PARMSW, hWndParent, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_OPEN_PARMSW, hWndParent, 24)
}

static void test_pack_MCI_ANIM_PLAY_PARMS(void)
{
    /* MCI_ANIM_PLAY_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_PLAY_PARMS, 16)
    TEST_TYPE_ALIGN  (MCI_ANIM_PLAY_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_PLAY_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_PLAY_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_PLAY_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_PLAY_PARMS, dwFrom, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_PLAY_PARMS, dwFrom, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_PLAY_PARMS, dwFrom, 4)
    TEST_FIELD_SIZE  (MCI_ANIM_PLAY_PARMS, dwTo, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_PLAY_PARMS, dwTo, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_PLAY_PARMS, dwTo, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_PLAY_PARMS, dwSpeed, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_PLAY_PARMS, dwSpeed, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_PLAY_PARMS, dwSpeed, 12)
}

static void test_pack_MCI_ANIM_STEP_PARMS(void)
{
    /* MCI_ANIM_STEP_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_STEP_PARMS, 8)
    TEST_TYPE_ALIGN  (MCI_ANIM_STEP_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_STEP_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_STEP_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_STEP_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_STEP_PARMS, dwFrames, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_STEP_PARMS, dwFrames, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_STEP_PARMS, dwFrames, 4)
}

static void test_pack_MCI_ANIM_WINDOW_PARMSA(void)
{
    /* MCI_ANIM_WINDOW_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_WINDOW_PARMSA, 16)
    TEST_TYPE_ALIGN  (MCI_ANIM_WINDOW_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSA, hWnd, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSA, hWnd, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSA, hWnd, 4)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSA, nCmdShow, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSA, nCmdShow, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSA, nCmdShow, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSA, lpstrText, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSA, lpstrText, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSA, lpstrText, 12)
}

static void test_pack_MCI_ANIM_WINDOW_PARMSW(void)
{
    /* MCI_ANIM_WINDOW_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_WINDOW_PARMSW, 16)
    TEST_TYPE_ALIGN  (MCI_ANIM_WINDOW_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSW, hWnd, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSW, hWnd, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSW, hWnd, 4)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSW, nCmdShow, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSW, nCmdShow, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSW, nCmdShow, 8)
    TEST_FIELD_SIZE  (MCI_ANIM_WINDOW_PARMSW, lpstrText, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_WINDOW_PARMSW, lpstrText, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_WINDOW_PARMSW, lpstrText, 12)
}

static void test_pack_MCI_ANIM_UPDATE_PARMS(void)
{
    /* MCI_ANIM_UPDATE_PARMS (pack 1) */
    TEST_TYPE_SIZE   (MCI_ANIM_UPDATE_PARMS, 24)
    TEST_TYPE_ALIGN  (MCI_ANIM_UPDATE_PARMS, 1)
    TEST_FIELD_SIZE  (MCI_ANIM_UPDATE_PARMS, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_UPDATE_PARMS, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_UPDATE_PARMS, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_ANIM_UPDATE_PARMS, rc, 16)
    TEST_FIELD_ALIGN (MCI_ANIM_UPDATE_PARMS, rc, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_UPDATE_PARMS, rc, 4)
    TEST_FIELD_SIZE  (MCI_ANIM_UPDATE_PARMS, hDC, 4)
    TEST_FIELD_ALIGN (MCI_ANIM_UPDATE_PARMS, hDC, 1)
    TEST_FIELD_OFFSET(MCI_ANIM_UPDATE_PARMS, hDC, 20)
}

static void test_pack_MCI_OVLY_OPEN_PARMSA(void)
{
    /* MCI_OVLY_OPEN_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_OPEN_PARMSA, 28)
    TEST_TYPE_ALIGN  (MCI_OVLY_OPEN_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, wDeviceID, 4)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, lpstrDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, lpstrDeviceType, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, lpstrElementName, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, lpstrElementName, 12)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, lpstrAlias, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, lpstrAlias, 16)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, dwStyle, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, dwStyle, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, dwStyle, 20)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSA, hWndParent, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSA, hWndParent, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSA, hWndParent, 24)
}

static void test_pack_MCI_OVLY_OPEN_PARMSW(void)
{
    /* MCI_OVLY_OPEN_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_OPEN_PARMSW, 28)
    TEST_TYPE_ALIGN  (MCI_OVLY_OPEN_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, wDeviceID, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, wDeviceID, 4)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, lpstrDeviceType, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, lpstrDeviceType, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, lpstrDeviceType, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, lpstrElementName, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, lpstrElementName, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, lpstrElementName, 12)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, lpstrAlias, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, lpstrAlias, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, lpstrAlias, 16)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, dwStyle, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, dwStyle, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, dwStyle, 20)
    TEST_FIELD_SIZE  (MCI_OVLY_OPEN_PARMSW, hWndParent, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_OPEN_PARMSW, hWndParent, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_OPEN_PARMSW, hWndParent, 24)
}

static void test_pack_MCI_OVLY_WINDOW_PARMSA(void)
{
    /* MCI_OVLY_WINDOW_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_WINDOW_PARMSA, 16)
    TEST_TYPE_ALIGN  (MCI_OVLY_WINDOW_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSA, hWnd, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSA, hWnd, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSA, hWnd, 4)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSA, nCmdShow, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSA, nCmdShow, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSA, nCmdShow, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSA, lpstrText, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSA, lpstrText, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSA, lpstrText, 12)
}

static void test_pack_MCI_OVLY_WINDOW_PARMSW(void)
{
    /* MCI_OVLY_WINDOW_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_WINDOW_PARMSW, 16)
    TEST_TYPE_ALIGN  (MCI_OVLY_WINDOW_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSW, hWnd, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSW, hWnd, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSW, hWnd, 4)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSW, nCmdShow, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSW, nCmdShow, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSW, nCmdShow, 8)
    TEST_FIELD_SIZE  (MCI_OVLY_WINDOW_PARMSW, lpstrText, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_WINDOW_PARMSW, lpstrText, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_WINDOW_PARMSW, lpstrText, 12)
}

static void test_pack_MCI_OVLY_SAVE_PARMSA(void)
{
    /* MCI_OVLY_SAVE_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_SAVE_PARMSA, 24)
    TEST_TYPE_ALIGN  (MCI_OVLY_SAVE_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSA, lpfilename, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSA, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSA, lpfilename, 4)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSA, rc, 16)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSA, rc, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSA, rc, 8)
}

static void test_pack_MCI_OVLY_SAVE_PARMSW(void)
{
    /* MCI_OVLY_SAVE_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_SAVE_PARMSW, 24)
    TEST_TYPE_ALIGN  (MCI_OVLY_SAVE_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSW, lpfilename, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSW, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSW, lpfilename, 4)
    TEST_FIELD_SIZE  (MCI_OVLY_SAVE_PARMSW, rc, 16)
    TEST_FIELD_ALIGN (MCI_OVLY_SAVE_PARMSW, rc, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_SAVE_PARMSW, rc, 8)
}

static void test_pack_MCI_OVLY_LOAD_PARMSA(void)
{
    /* MCI_OVLY_LOAD_PARMSA (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_LOAD_PARMSA, 24)
    TEST_TYPE_ALIGN  (MCI_OVLY_LOAD_PARMSA, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSA, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSA, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSA, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSA, lpfilename, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSA, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSA, lpfilename, 4)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSA, rc, 16)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSA, rc, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSA, rc, 8)
}

static void test_pack_MCI_OVLY_LOAD_PARMSW(void)
{
    /* MCI_OVLY_LOAD_PARMSW (pack 1) */
    TEST_TYPE_SIZE   (MCI_OVLY_LOAD_PARMSW, 24)
    TEST_TYPE_ALIGN  (MCI_OVLY_LOAD_PARMSW, 1)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSW, dwCallback, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSW, dwCallback, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSW, dwCallback, 0)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSW, lpfilename, 4)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSW, lpfilename, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSW, lpfilename, 4)
    TEST_FIELD_SIZE  (MCI_OVLY_LOAD_PARMSW, rc, 16)
    TEST_FIELD_ALIGN (MCI_OVLY_LOAD_PARMSW, rc, 1)
    TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSW, rc, 8)
}

#endif /* _WIN64 */

static void test_pack(void)
{
    test_pack_AUXCAPS2A();
    test_pack_AUXCAPS2W();
    test_pack_AUXCAPSA();
    test_pack_AUXCAPSW();
    test_pack_DRVCONFIGINFO();
    test_pack_JOYCAPS2A();
    test_pack_JOYCAPS2W();
    test_pack_JOYCAPSA();
    test_pack_JOYCAPSW();
    test_pack_JOYINFO();
    test_pack_JOYINFOEX();
    test_pack_MCI_ANIM_OPEN_PARMSA();
    test_pack_MCI_ANIM_OPEN_PARMSW();
    test_pack_MCI_ANIM_PLAY_PARMS();
    test_pack_MCI_ANIM_STEP_PARMS();
    test_pack_MCI_ANIM_UPDATE_PARMS();
    test_pack_MCI_ANIM_WINDOW_PARMSA();
    test_pack_MCI_ANIM_WINDOW_PARMSW();
    test_pack_MCI_BREAK_PARMS();
    test_pack_MCI_GENERIC_PARMS();
    test_pack_MCI_GETDEVCAPS_PARMS();
    test_pack_MCI_INFO_PARMSA();
    test_pack_MCI_INFO_PARMSW();
    test_pack_MCI_LOAD_PARMSA();
    test_pack_MCI_LOAD_PARMSW();
    test_pack_MCI_OPEN_PARMSA();
    test_pack_MCI_OPEN_PARMSW();
    test_pack_MCI_OVLY_LOAD_PARMSA();
    test_pack_MCI_OVLY_LOAD_PARMSW();
    test_pack_MCI_OVLY_OPEN_PARMSA();
    test_pack_MCI_OVLY_OPEN_PARMSW();
    test_pack_MCI_OVLY_SAVE_PARMSA();
    test_pack_MCI_OVLY_SAVE_PARMSW();
    test_pack_MCI_OVLY_WINDOW_PARMSA();
    test_pack_MCI_OVLY_WINDOW_PARMSW();
    test_pack_MCI_PLAY_PARMS();
    test_pack_MCI_RECORD_PARMS();
    test_pack_MCI_SAVE_PARMSA();
    test_pack_MCI_SAVE_PARMSW();
    test_pack_MCI_SEEK_PARMS();
    test_pack_MCI_SEQ_SET_PARMS();
    test_pack_MCI_SET_PARMS();
    test_pack_MCI_SOUND_PARMSA();
    test_pack_MCI_SOUND_PARMSW();
    test_pack_MCI_STATUS_PARMS();
    test_pack_MCI_SYSINFO_PARMSA();
    test_pack_MCI_SYSINFO_PARMSW();
    test_pack_MCI_VD_ESCAPE_PARMSA();
    test_pack_MCI_VD_ESCAPE_PARMSW();
    test_pack_MCI_VD_PLAY_PARMS();
    test_pack_MCI_VD_STEP_PARMS();
    test_pack_MCI_WAVE_DELETE_PARMS();
    test_pack_MCI_WAVE_OPEN_PARMSA();
    test_pack_MCI_WAVE_OPEN_PARMSW();
    test_pack_MCI_WAVE_SET_PARMS();
    test_pack_MIDIEVENT();
    test_pack_MIDIHDR();
    test_pack_MIDIINCAPS2A();
    test_pack_MIDIINCAPS2W();
    test_pack_MIDIINCAPSA();
    test_pack_MIDIINCAPSW();
    test_pack_MIDIOUTCAPS2A();
    test_pack_MIDIOUTCAPS2W();
    test_pack_MIDIOUTCAPSA();
    test_pack_MIDIOUTCAPSW();
    test_pack_MIXERCAPS2A();
    test_pack_MIXERCAPS2W();
    test_pack_MIXERCAPSA();
    test_pack_MIXERCAPSW();
    test_pack_MIXERCONTROLA();
    test_pack_MIXERCONTROLDETAILS();
    test_pack_MIXERCONTROLDETAILS_BOOLEAN();
    test_pack_MIXERCONTROLDETAILS_LISTTEXTA();
    test_pack_MIXERCONTROLDETAILS_LISTTEXTW();
    test_pack_MIXERCONTROLDETAILS_SIGNED();
    test_pack_MIXERCONTROLDETAILS_UNSIGNED();
    test_pack_MIXERCONTROLW();
    test_pack_MIXERLINEA();
    test_pack_MIXERLINEW();
    test_pack_MMCKINFO();
    test_pack_MMIOINFO();
    test_pack_MMTIME();
    test_pack_PCMWAVEFORMAT();
    test_pack_TIMECAPS();
    test_pack_WAVEFORMAT();
    test_pack_WAVEFORMATEX();
    test_pack_WAVEHDR();
    test_pack_WAVEINCAPS2A();
    test_pack_WAVEINCAPS2W();
    test_pack_WAVEINCAPSA();
    test_pack_WAVEINCAPSW();
    test_pack_WAVEOUTCAPS2A();
    test_pack_WAVEOUTCAPS2W();
    test_pack_WAVEOUTCAPSA();
    test_pack_WAVEOUTCAPSW();
}

START_TEST(generated)
{
    test_pack();
}