[PATCH] include: Fix packing of digitalv.h

Bernhard Übelacker bernhardu at vr-web.de
Sun Aug 2 09:45:33 CDT 2015


In wine64 the test winmm:mci is crashing because of this. [1]

The reason is mciSendStringW sends a struct MCI_OPEN_PARMSW.
This struct contains the pointer lpstrElementName.
Then MCIQTZ_taskThread casts this to LPMCI_DGV_OPEN_PARMSW.
Unfortunately both structs have currently differnt packing, therefore
lpstrElementName is invalid now.

Mingw-w64 includes pshpack1.h in both headers containing the structs. [2] [3]

[1] https://test.winehq.org/data/b3fe96a0a9748c71a24fe0393fd964f0fb2f4ff4/linux_cw-gtx560-wow64/winmm:mci.html
[2] http://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/mmsystem.h#l10
[3] http://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/digitalv.h#l10
---
 dlls/winmm/tests/generated.c | 1525 ++++++++++++++++++++++++++++++++++++++++++
 include/digitalv.h           |    2 +
 tools/winapi/tests.dat       |   39 ++
 3 files changed, 1566 insertions(+)

diff --git a/dlls/winmm/tests/generated.c b/dlls/winmm/tests/generated.c
index ccad9a7..ec25e07 100644
--- a/dlls/winmm/tests/generated.c
+++ b/dlls/winmm/tests/generated.c
@@ -13,6 +13,7 @@
 
 #include "windef.h"
 #include "mmsystem.h"
+#include "digitalv.h"
 
 #include "wine/test.h"
 
@@ -1737,6 +1738,750 @@ static void test_pack_MCI_OVLY_LOAD_PARMSW(void)
     TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSW, rc, 16)
 }
 
+static void test_pack_MCI_DGV_RECT_PARMS(void)
+{
+    /* MCI_DGV_RECT_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RECT_PARMS, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_RECT_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RECT_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RECT_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECT_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RECT_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_RECT_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECT_PARMS, rc, 8)
+}
+
+static void test_pack_MCI_DGV_CAPTURE_PARMSA(void)
+{
+    /* MCI_DGV_CAPTURE_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_CAPTURE_PARMSA, 32)
+    TEST_TYPE_ALIGN  (MCI_DGV_CAPTURE_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSA, lpstrFileName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSA, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSA, lpstrFileName, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSA, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSA, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSA, rc, 16)
+}
+
+static void test_pack_MCI_DGV_CAPTURE_PARMSW(void)
+{
+    /* MCI_DGV_CAPTURE_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_CAPTURE_PARMSW, 32)
+    TEST_TYPE_ALIGN  (MCI_DGV_CAPTURE_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSW, lpstrFileName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSW, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSW, lpstrFileName, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSW, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSW, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSW, rc, 16)
+}
+
+static void test_pack_MCI_DGV_COPY_PARMS(void)
+{
+    /* MCI_DGV_COPY_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_COPY_PARMS, 40)
+    TEST_TYPE_ALIGN  (MCI_DGV_COPY_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwFrom, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwFrom, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwFrom, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwTo, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, rc, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwAudioStream, 32)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwVideoStream, 36)
+}
+
+static void test_pack_MCI_DGV_CUE_PARMS(void)
+{
+    /* MCI_DGV_CUE_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_CUE_PARMS, 12)
+    TEST_TYPE_ALIGN  (MCI_DGV_CUE_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_CUE_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_CUE_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUE_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_CUE_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUE_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUE_PARMS, dwTo, 8)
+}
+
+static void test_pack_MCI_DGV_CUT_PARMS(void)
+{
+    /* MCI_DGV_CUT_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_CUT_PARMS, 40)
+    TEST_TYPE_ALIGN  (MCI_DGV_CUT_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwFrom, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwFrom, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwFrom, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwTo, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, rc, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwAudioStream, 32)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwVideoStream, 36)
+}
+
+static void test_pack_MCI_DGV_DELETE_PARMS(void)
+{
+    /* MCI_DGV_DELETE_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_DELETE_PARMS, 40)
+    TEST_TYPE_ALIGN  (MCI_DGV_DELETE_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwFrom, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwFrom, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwFrom, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwTo, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, rc, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwAudioStream, 32)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwVideoStream, 36)
+}
+
+static void test_pack_MCI_DGV_INFO_PARMSA(void)
+{
+    /* MCI_DGV_INFO_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_INFO_PARMSA, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_INFO_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSA, lpstrReturn, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSA, lpstrReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSA, lpstrReturn, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSA, dwRetSize, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSA, dwRetSize, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSA, dwRetSize, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSA, dwItem, 20)
+}
+
+static void test_pack_MCI_DGV_INFO_PARMSW(void)
+{
+    /* MCI_DGV_INFO_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_INFO_PARMSW, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_INFO_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSW, lpstrReturn, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSW, lpstrReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSW, lpstrReturn, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSW, dwRetSize, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSW, dwRetSize, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSW, dwRetSize, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSW, dwItem, 20)
+}
+
+static void test_pack_MCI_DGV_LIST_PARMSA(void)
+{
+    /* MCI_DGV_LIST_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_LIST_PARMSA, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_LIST_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, lpstrReturn, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, lpstrReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, lpstrReturn, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, dwLength, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, dwLength, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, dwLength, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, dwNumber, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, dwNumber, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, dwNumber, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, dwItem, 24)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, lpstrAlgorithm, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, lpstrAlgorithm, 28)
+}
+
+static void test_pack_MCI_DGV_LIST_PARMSW(void)
+{
+    /* MCI_DGV_LIST_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_LIST_PARMSW, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_LIST_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, lpstrReturn, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, lpstrReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, lpstrReturn, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, dwLength, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, dwLength, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, dwLength, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, dwNumber, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, dwNumber, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, dwNumber, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, dwItem, 24)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, lpstrAlgorithm, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, lpstrAlgorithm, 28)
+}
+
+static void test_pack_MCI_DGV_MONITOR_PARMS(void)
+{
+    /* MCI_DGV_MONITOR_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_MONITOR_PARMS, 16)
+    TEST_TYPE_ALIGN  (MCI_DGV_MONITOR_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_MONITOR_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_MONITOR_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_MONITOR_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_MONITOR_PARMS, dwSource, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_MONITOR_PARMS, dwSource, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_MONITOR_PARMS, dwSource, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_MONITOR_PARMS, dwMethod, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_MONITOR_PARMS, dwMethod, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_MONITOR_PARMS, dwMethod, 12)
+}
+
+static void test_pack_MCI_DGV_OPEN_PARMSA(void)
+{
+    /* MCI_DGV_OPEN_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_OPEN_PARMSA, 48)
+    TEST_TYPE_ALIGN  (MCI_DGV_OPEN_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, wDeviceID, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, wDeviceID, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, wDeviceID, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, lpstrDeviceType, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, lpstrDeviceType, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, lpstrDeviceType, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, lpstrElementName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, lpstrElementName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, lpstrElementName, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, lpstrAlias, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, lpstrAlias, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, lpstrAlias, 28)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, dwStyle, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, dwStyle, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, dwStyle, 36)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, hWndParent, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, hWndParent, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, hWndParent, 40)
+}
+
+static void test_pack_MCI_DGV_OPEN_PARMSW(void)
+{
+    /* MCI_DGV_OPEN_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_OPEN_PARMSW, 48)
+    TEST_TYPE_ALIGN  (MCI_DGV_OPEN_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, wDeviceID, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, wDeviceID, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, wDeviceID, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, lpstrDeviceType, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, lpstrDeviceType, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, lpstrDeviceType, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, lpstrElementName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, lpstrElementName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, lpstrElementName, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, lpstrAlias, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, lpstrAlias, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, lpstrAlias, 28)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, dwStyle, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, dwStyle, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, dwStyle, 36)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, hWndParent, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, hWndParent, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, hWndParent, 40)
+}
+
+static void test_pack_MCI_DGV_PASTE_PARMS(void)
+{
+    /* MCI_DGV_PASTE_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_PASTE_PARMS, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_PASTE_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, dwTo, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, rc, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, dwAudioStream, 28)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, dwVideoStream, 32)
+}
+
+static void test_pack_MCI_DGV_QUALITY_PARMSA(void)
+{
+    /* MCI_DGV_QUALITY_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_QUALITY_PARMSA, 28)
+    TEST_TYPE_ALIGN  (MCI_DGV_QUALITY_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, dwItem, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, lpstrName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, lpstrName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, lpstrName, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, lpstrAlgorithm, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, dwHandle, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, dwHandle, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, dwHandle, 24)
+}
+
+static void test_pack_MCI_DGV_QUALITY_PARMSW(void)
+{
+    /* MCI_DGV_QUALITY_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_QUALITY_PARMSW, 28)
+    TEST_TYPE_ALIGN  (MCI_DGV_QUALITY_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, dwItem, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, lpstrName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, lpstrName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, lpstrName, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, lpstrAlgorithm, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, dwHandle, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, dwHandle, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, dwHandle, 24)
+}
+
+static void test_pack_MCI_DGV_RECORD_PARMS(void)
+{
+    /* MCI_DGV_RECORD_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RECORD_PARMS, 40)
+    TEST_TYPE_ALIGN  (MCI_DGV_RECORD_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwFrom, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwFrom, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwFrom, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwTo, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, rc, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwAudioStream, 32)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwVideoStream, 36)
+}
+
+static void test_pack_MCI_DGV_RESERVE_PARMSA(void)
+{
+    /* MCI_DGV_RESERVE_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RESERVE_PARMSA, 20)
+    TEST_TYPE_ALIGN  (MCI_DGV_RESERVE_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSA, lpstrPath, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSA, lpstrPath, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSA, lpstrPath, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSA, dwSize, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSA, dwSize, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSA, dwSize, 16)
+}
+
+static void test_pack_MCI_DGV_RESERVE_PARMSW(void)
+{
+    /* MCI_DGV_RESERVE_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RESERVE_PARMSW, 20)
+    TEST_TYPE_ALIGN  (MCI_DGV_RESERVE_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSW, lpstrPath, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSW, lpstrPath, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSW, lpstrPath, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSW, dwSize, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSW, dwSize, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSW, dwSize, 16)
+}
+
+static void test_pack_MCI_DGV_RESTORE_PARMSA(void)
+{
+    /* MCI_DGV_RESTORE_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RESTORE_PARMSA, 32)
+    TEST_TYPE_ALIGN  (MCI_DGV_RESTORE_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSA, lpstrFileName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSA, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSA, lpstrFileName, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSA, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSA, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSA, rc, 16)
+}
+
+static void test_pack_MCI_DGV_RESTORE_PARMSW(void)
+{
+    /* MCI_DGV_RESTORE_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RESTORE_PARMSW, 32)
+    TEST_TYPE_ALIGN  (MCI_DGV_RESTORE_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSW, lpstrFileName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSW, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSW, lpstrFileName, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSW, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSW, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSW, rc, 16)
+}
+
+static void test_pack_MCI_DGV_SAVE_PARMSA(void)
+{
+    /* MCI_DGV_SAVE_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SAVE_PARMSA, 32)
+    TEST_TYPE_ALIGN  (MCI_DGV_SAVE_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSA, lpstrFileName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSA, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSA, lpstrFileName, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSA, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSA, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSA, rc, 16)
+}
+
+static void test_pack_MCI_DGV_SAVE_PARMSW(void)
+{
+    /* MCI_DGV_SAVE_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SAVE_PARMSW, 32)
+    TEST_TYPE_ALIGN  (MCI_DGV_SAVE_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSW, lpstrFileName, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSW, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSW, lpstrFileName, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSW, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSW, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSW, rc, 16)
+}
+
+static void test_pack_MCI_DGV_SET_PARMS(void)
+{
+    /* MCI_DGV_SET_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SET_PARMS, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_SET_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwTimeFormat, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwTimeFormat, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwTimeFormat, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwAudio, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwAudio, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwAudio, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwFileFormat, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwFileFormat, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwFileFormat, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwSpeed, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwSpeed, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwSpeed, 20)
+}
+
+static void test_pack_MCI_DGV_SETAUDIO_PARMSA(void)
+{
+    /* MCI_DGV_SETAUDIO_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SETAUDIO_PARMSA, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_SETAUDIO_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, dwItem, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, dwValue, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, dwValue, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, dwValue, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, dwOver, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, dwOver, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, dwOver, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, lpstrAlgorithm, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, lpstrAlgorithm, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, lpstrQuality, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, lpstrQuality, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, lpstrQuality, 28)
+}
+
+static void test_pack_MCI_DGV_SETAUDIO_PARMSW(void)
+{
+    /* MCI_DGV_SETAUDIO_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SETAUDIO_PARMSW, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_SETAUDIO_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, dwItem, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, dwValue, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, dwValue, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, dwValue, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, dwOver, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, dwOver, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, dwOver, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, lpstrAlgorithm, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, lpstrAlgorithm, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, lpstrQuality, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, lpstrQuality, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, lpstrQuality, 28)
+}
+
+static void test_pack_MCI_DGV_SIGNAL_PARMS(void)
+{
+    /* MCI_DGV_SIGNAL_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SIGNAL_PARMS, 20)
+    TEST_TYPE_ALIGN  (MCI_DGV_SIGNAL_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SIGNAL_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SIGNAL_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SIGNAL_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SIGNAL_PARMS, dwPosition, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SIGNAL_PARMS, dwPosition, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SIGNAL_PARMS, dwPosition, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SIGNAL_PARMS, dwPeriod, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SIGNAL_PARMS, dwPeriod, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SIGNAL_PARMS, dwPeriod, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SIGNAL_PARMS, dwUserParm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SIGNAL_PARMS, dwUserParm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SIGNAL_PARMS, dwUserParm, 16)
+}
+
+static void test_pack_MCI_DGV_SETVIDEO_PARMSA(void)
+{
+    /* MCI_DGV_SETVIDEO_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SETVIDEO_PARMSA, 40)
+    TEST_TYPE_ALIGN  (MCI_DGV_SETVIDEO_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwItem, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwValue, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwValue, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwValue, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwOver, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwOver, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwOver, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, lpstrAlgorithm, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, lpstrAlgorithm, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, lpstrQuality, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, lpstrQuality, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, lpstrQuality, 28)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwSourceNumber, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwSourceNumber, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwSourceNumber, 36)
+}
+
+static void test_pack_MCI_DGV_SETVIDEO_PARMSW(void)
+{
+    /* MCI_DGV_SETVIDEO_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SETVIDEO_PARMSW, 40)
+    TEST_TYPE_ALIGN  (MCI_DGV_SETVIDEO_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwItem, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwValue, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwValue, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwValue, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwOver, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwOver, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwOver, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, lpstrAlgorithm, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, lpstrAlgorithm, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, lpstrQuality, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, lpstrQuality, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, lpstrQuality, 28)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwSourceNumber, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwSourceNumber, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwSourceNumber, 36)
+}
+
+static void test_pack_MCI_DGV_STATUS_PARMSA(void)
+{
+    /* MCI_DGV_STATUS_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_STATUS_PARMSA, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_STATUS_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwReturn, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwReturn, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwItem, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwTrack, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwTrack, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwTrack, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, lpstrDrive, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, lpstrDrive, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, lpstrDrive, 24)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwReference, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwReference, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwReference, 32)
+}
+
+static void test_pack_MCI_DGV_STATUS_PARMSW(void)
+{
+    /* MCI_DGV_STATUS_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_STATUS_PARMSW, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_STATUS_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwReturn, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwReturn, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwItem, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwTrack, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwTrack, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwTrack, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, lpstrDrive, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, lpstrDrive, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, lpstrDrive, 24)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwReference, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwReference, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwReference, 32)
+}
+
+static void test_pack_MCI_DGV_STEP_PARMS(void)
+{
+    /* MCI_DGV_STEP_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_STEP_PARMS, 12)
+    TEST_TYPE_ALIGN  (MCI_DGV_STEP_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_STEP_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_STEP_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STEP_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_STEP_PARMS, dwFrames, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STEP_PARMS, dwFrames, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STEP_PARMS, dwFrames, 8)
+}
+
+static void test_pack_MCI_DGV_UPDATE_PARMS(void)
+{
+    /* MCI_DGV_UPDATE_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_UPDATE_PARMS, 32)
+    TEST_TYPE_ALIGN  (MCI_DGV_UPDATE_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_UPDATE_PARMS, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_UPDATE_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_UPDATE_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_UPDATE_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_UPDATE_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_UPDATE_PARMS, rc, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_UPDATE_PARMS, hDC, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_UPDATE_PARMS, hDC, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_UPDATE_PARMS, hDC, 24)
+}
+
+static void test_pack_MCI_DGV_WINDOW_PARMSA(void)
+{
+    /* MCI_DGV_WINDOW_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_WINDOW_PARMSA, 28)
+    TEST_TYPE_ALIGN  (MCI_DGV_WINDOW_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSA, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSA, hWnd, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSA, hWnd, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSA, hWnd, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSA, nCmdShow, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSA, nCmdShow, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSA, nCmdShow, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSA, lpstrText, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSA, lpstrText, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSA, lpstrText, 20)
+}
+
+static void test_pack_MCI_DGV_WINDOW_PARMSW(void)
+{
+    /* MCI_DGV_WINDOW_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_WINDOW_PARMSW, 28)
+    TEST_TYPE_ALIGN  (MCI_DGV_WINDOW_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSW, dwCallback, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSW, hWnd, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSW, hWnd, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSW, hWnd, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSW, nCmdShow, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSW, nCmdShow, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSW, nCmdShow, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSW, lpstrText, 8)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSW, lpstrText, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSW, lpstrText, 20)
+}
+
 #else /* _WIN64 */
 
 static void test_pack_MMTIME(void)
@@ -3398,6 +4143,750 @@ static void test_pack_MCI_OVLY_LOAD_PARMSW(void)
     TEST_FIELD_OFFSET(MCI_OVLY_LOAD_PARMSW, rc, 8)
 }
 
+static void test_pack_MCI_DGV_RECT_PARMS(void)
+{
+    /* MCI_DGV_RECT_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RECT_PARMS, 20)
+    TEST_TYPE_ALIGN  (MCI_DGV_RECT_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RECT_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECT_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECT_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RECT_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_RECT_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECT_PARMS, rc, 4)
+}
+
+static void test_pack_MCI_DGV_CAPTURE_PARMSA(void)
+{
+    /* MCI_DGV_CAPTURE_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_CAPTURE_PARMSA, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_CAPTURE_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSA, lpstrFileName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSA, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSA, lpstrFileName, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSA, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSA, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSA, rc, 8)
+}
+
+static void test_pack_MCI_DGV_CAPTURE_PARMSW(void)
+{
+    /* MCI_DGV_CAPTURE_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_CAPTURE_PARMSW, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_CAPTURE_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSW, lpstrFileName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSW, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSW, lpstrFileName, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_CAPTURE_PARMSW, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_CAPTURE_PARMSW, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CAPTURE_PARMSW, rc, 8)
+}
+
+static void test_pack_MCI_DGV_COPY_PARMS(void)
+{
+    /* MCI_DGV_COPY_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_COPY_PARMS, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_COPY_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwFrom, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwFrom, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwFrom, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwTo, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, rc, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwAudioStream, 28)
+    TEST_FIELD_SIZE  (MCI_DGV_COPY_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_COPY_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_COPY_PARMS, dwVideoStream, 32)
+}
+
+static void test_pack_MCI_DGV_CUE_PARMS(void)
+{
+    /* MCI_DGV_CUE_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_CUE_PARMS, 8)
+    TEST_TYPE_ALIGN  (MCI_DGV_CUE_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_CUE_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUE_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUE_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_CUE_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUE_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUE_PARMS, dwTo, 4)
+}
+
+static void test_pack_MCI_DGV_CUT_PARMS(void)
+{
+    /* MCI_DGV_CUT_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_CUT_PARMS, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_CUT_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwFrom, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwFrom, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwFrom, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwTo, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, rc, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwAudioStream, 28)
+    TEST_FIELD_SIZE  (MCI_DGV_CUT_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_CUT_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_CUT_PARMS, dwVideoStream, 32)
+}
+
+static void test_pack_MCI_DGV_DELETE_PARMS(void)
+{
+    /* MCI_DGV_DELETE_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_DELETE_PARMS, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_DELETE_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwFrom, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwFrom, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwFrom, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwTo, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, rc, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwAudioStream, 28)
+    TEST_FIELD_SIZE  (MCI_DGV_DELETE_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_DELETE_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_DELETE_PARMS, dwVideoStream, 32)
+}
+
+static void test_pack_MCI_DGV_INFO_PARMSA(void)
+{
+    /* MCI_DGV_INFO_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_INFO_PARMSA, 16)
+    TEST_TYPE_ALIGN  (MCI_DGV_INFO_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSA, lpstrReturn, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSA, lpstrReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSA, lpstrReturn, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSA, dwRetSize, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSA, dwRetSize, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSA, dwRetSize, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSA, dwItem, 12)
+}
+
+static void test_pack_MCI_DGV_INFO_PARMSW(void)
+{
+    /* MCI_DGV_INFO_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_INFO_PARMSW, 16)
+    TEST_TYPE_ALIGN  (MCI_DGV_INFO_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSW, lpstrReturn, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSW, lpstrReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSW, lpstrReturn, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSW, dwRetSize, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSW, dwRetSize, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSW, dwRetSize, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_INFO_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_INFO_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_INFO_PARMSW, dwItem, 12)
+}
+
+static void test_pack_MCI_DGV_LIST_PARMSA(void)
+{
+    /* MCI_DGV_LIST_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_LIST_PARMSA, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_LIST_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, lpstrReturn, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, lpstrReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, lpstrReturn, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, dwLength, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, dwLength, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, dwLength, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, dwNumber, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, dwNumber, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, dwNumber, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, dwItem, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSA, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSA, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSA, lpstrAlgorithm, 20)
+}
+
+static void test_pack_MCI_DGV_LIST_PARMSW(void)
+{
+    /* MCI_DGV_LIST_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_LIST_PARMSW, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_LIST_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, lpstrReturn, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, lpstrReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, lpstrReturn, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, dwLength, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, dwLength, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, dwLength, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, dwNumber, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, dwNumber, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, dwNumber, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, dwItem, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_LIST_PARMSW, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_LIST_PARMSW, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_LIST_PARMSW, lpstrAlgorithm, 20)
+}
+
+static void test_pack_MCI_DGV_MONITOR_PARMS(void)
+{
+    /* MCI_DGV_MONITOR_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_MONITOR_PARMS, 12)
+    TEST_TYPE_ALIGN  (MCI_DGV_MONITOR_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_MONITOR_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_MONITOR_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_MONITOR_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_MONITOR_PARMS, dwSource, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_MONITOR_PARMS, dwSource, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_MONITOR_PARMS, dwSource, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_MONITOR_PARMS, dwMethod, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_MONITOR_PARMS, dwMethod, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_MONITOR_PARMS, dwMethod, 8)
+}
+
+static void test_pack_MCI_DGV_OPEN_PARMSA(void)
+{
+    /* MCI_DGV_OPEN_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_OPEN_PARMSA, 28)
+    TEST_TYPE_ALIGN  (MCI_DGV_OPEN_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, wDeviceID, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, wDeviceID, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, wDeviceID, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, lpstrDeviceType, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, lpstrDeviceType, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, lpstrDeviceType, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, lpstrElementName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, lpstrElementName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, lpstrElementName, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, lpstrAlias, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, lpstrAlias, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, lpstrAlias, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, dwStyle, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, dwStyle, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, dwStyle, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSA, hWndParent, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSA, hWndParent, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSA, hWndParent, 24)
+}
+
+static void test_pack_MCI_DGV_OPEN_PARMSW(void)
+{
+    /* MCI_DGV_OPEN_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_OPEN_PARMSW, 28)
+    TEST_TYPE_ALIGN  (MCI_DGV_OPEN_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, wDeviceID, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, wDeviceID, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, wDeviceID, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, lpstrDeviceType, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, lpstrDeviceType, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, lpstrDeviceType, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, lpstrElementName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, lpstrElementName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, lpstrElementName, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, lpstrAlias, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, lpstrAlias, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, lpstrAlias, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, dwStyle, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, dwStyle, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, dwStyle, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_OPEN_PARMSW, hWndParent, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_OPEN_PARMSW, hWndParent, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_OPEN_PARMSW, hWndParent, 24)
+}
+
+static void test_pack_MCI_DGV_PASTE_PARMS(void)
+{
+    /* MCI_DGV_PASTE_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_PASTE_PARMS, 32)
+    TEST_TYPE_ALIGN  (MCI_DGV_PASTE_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, dwTo, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, rc, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, dwAudioStream, 24)
+    TEST_FIELD_SIZE  (MCI_DGV_PASTE_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_PASTE_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_PASTE_PARMS, dwVideoStream, 28)
+}
+
+static void test_pack_MCI_DGV_QUALITY_PARMSA(void)
+{
+    /* MCI_DGV_QUALITY_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_QUALITY_PARMSA, 20)
+    TEST_TYPE_ALIGN  (MCI_DGV_QUALITY_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, dwItem, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, lpstrName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, lpstrName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, lpstrName, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, lpstrAlgorithm, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSA, dwHandle, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSA, dwHandle, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSA, dwHandle, 16)
+}
+
+static void test_pack_MCI_DGV_QUALITY_PARMSW(void)
+{
+    /* MCI_DGV_QUALITY_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_QUALITY_PARMSW, 20)
+    TEST_TYPE_ALIGN  (MCI_DGV_QUALITY_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, dwItem, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, lpstrName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, lpstrName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, lpstrName, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, lpstrAlgorithm, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_QUALITY_PARMSW, dwHandle, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_QUALITY_PARMSW, dwHandle, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_QUALITY_PARMSW, dwHandle, 16)
+}
+
+static void test_pack_MCI_DGV_RECORD_PARMS(void)
+{
+    /* MCI_DGV_RECORD_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RECORD_PARMS, 36)
+    TEST_TYPE_ALIGN  (MCI_DGV_RECORD_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwFrom, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwFrom, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwFrom, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwTo, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwTo, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwTo, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, rc, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwAudioStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwAudioStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwAudioStream, 28)
+    TEST_FIELD_SIZE  (MCI_DGV_RECORD_PARMS, dwVideoStream, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RECORD_PARMS, dwVideoStream, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RECORD_PARMS, dwVideoStream, 32)
+}
+
+static void test_pack_MCI_DGV_RESERVE_PARMSA(void)
+{
+    /* MCI_DGV_RESERVE_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RESERVE_PARMSA, 12)
+    TEST_TYPE_ALIGN  (MCI_DGV_RESERVE_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSA, lpstrPath, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSA, lpstrPath, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSA, lpstrPath, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSA, dwSize, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSA, dwSize, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSA, dwSize, 8)
+}
+
+static void test_pack_MCI_DGV_RESERVE_PARMSW(void)
+{
+    /* MCI_DGV_RESERVE_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RESERVE_PARMSW, 12)
+    TEST_TYPE_ALIGN  (MCI_DGV_RESERVE_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSW, lpstrPath, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSW, lpstrPath, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSW, lpstrPath, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_RESERVE_PARMSW, dwSize, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESERVE_PARMSW, dwSize, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESERVE_PARMSW, dwSize, 8)
+}
+
+static void test_pack_MCI_DGV_RESTORE_PARMSA(void)
+{
+    /* MCI_DGV_RESTORE_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RESTORE_PARMSA, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_RESTORE_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSA, lpstrFileName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSA, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSA, lpstrFileName, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSA, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSA, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSA, rc, 8)
+}
+
+static void test_pack_MCI_DGV_RESTORE_PARMSW(void)
+{
+    /* MCI_DGV_RESTORE_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_RESTORE_PARMSW, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_RESTORE_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSW, lpstrFileName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSW, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSW, lpstrFileName, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_RESTORE_PARMSW, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_RESTORE_PARMSW, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_RESTORE_PARMSW, rc, 8)
+}
+
+static void test_pack_MCI_DGV_SAVE_PARMSA(void)
+{
+    /* MCI_DGV_SAVE_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SAVE_PARMSA, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_SAVE_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSA, lpstrFileName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSA, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSA, lpstrFileName, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSA, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSA, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSA, rc, 8)
+}
+
+static void test_pack_MCI_DGV_SAVE_PARMSW(void)
+{
+    /* MCI_DGV_SAVE_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SAVE_PARMSW, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_SAVE_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSW, lpstrFileName, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSW, lpstrFileName, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSW, lpstrFileName, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_SAVE_PARMSW, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_SAVE_PARMSW, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SAVE_PARMSW, rc, 8)
+}
+
+static void test_pack_MCI_DGV_SET_PARMS(void)
+{
+    /* MCI_DGV_SET_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SET_PARMS, 20)
+    TEST_TYPE_ALIGN  (MCI_DGV_SET_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwTimeFormat, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwTimeFormat, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwTimeFormat, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwAudio, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwAudio, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwAudio, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwFileFormat, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwFileFormat, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwFileFormat, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SET_PARMS, dwSpeed, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SET_PARMS, dwSpeed, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SET_PARMS, dwSpeed, 16)
+}
+
+static void test_pack_MCI_DGV_SETAUDIO_PARMSA(void)
+{
+    /* MCI_DGV_SETAUDIO_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SETAUDIO_PARMSA, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_SETAUDIO_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, dwItem, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, dwValue, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, dwValue, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, dwValue, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, dwOver, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, dwOver, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, dwOver, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, lpstrAlgorithm, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSA, lpstrQuality, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSA, lpstrQuality, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSA, lpstrQuality, 20)
+}
+
+static void test_pack_MCI_DGV_SETAUDIO_PARMSW(void)
+{
+    /* MCI_DGV_SETAUDIO_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SETAUDIO_PARMSW, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_SETAUDIO_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, dwItem, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, dwValue, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, dwValue, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, dwValue, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, dwOver, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, dwOver, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, dwOver, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, lpstrAlgorithm, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_SETAUDIO_PARMSW, lpstrQuality, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETAUDIO_PARMSW, lpstrQuality, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETAUDIO_PARMSW, lpstrQuality, 20)
+}
+
+static void test_pack_MCI_DGV_SIGNAL_PARMS(void)
+{
+    /* MCI_DGV_SIGNAL_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SIGNAL_PARMS, 16)
+    TEST_TYPE_ALIGN  (MCI_DGV_SIGNAL_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SIGNAL_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SIGNAL_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SIGNAL_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SIGNAL_PARMS, dwPosition, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SIGNAL_PARMS, dwPosition, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SIGNAL_PARMS, dwPosition, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_SIGNAL_PARMS, dwPeriod, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SIGNAL_PARMS, dwPeriod, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SIGNAL_PARMS, dwPeriod, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SIGNAL_PARMS, dwUserParm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SIGNAL_PARMS, dwUserParm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SIGNAL_PARMS, dwUserParm, 12)
+}
+
+static void test_pack_MCI_DGV_SETVIDEO_PARMSA(void)
+{
+    /* MCI_DGV_SETVIDEO_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SETVIDEO_PARMSA, 28)
+    TEST_TYPE_ALIGN  (MCI_DGV_SETVIDEO_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwItem, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwValue, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwValue, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwValue, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwOver, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwOver, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwOver, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, lpstrAlgorithm, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, lpstrQuality, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, lpstrQuality, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, lpstrQuality, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSA, dwSourceNumber, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSA, dwSourceNumber, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSA, dwSourceNumber, 24)
+}
+
+static void test_pack_MCI_DGV_SETVIDEO_PARMSW(void)
+{
+    /* MCI_DGV_SETVIDEO_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_SETVIDEO_PARMSW, 28)
+    TEST_TYPE_ALIGN  (MCI_DGV_SETVIDEO_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwItem, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwValue, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwValue, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwValue, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwOver, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwOver, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwOver, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, lpstrAlgorithm, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, lpstrAlgorithm, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, lpstrAlgorithm, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, lpstrQuality, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, lpstrQuality, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, lpstrQuality, 20)
+    TEST_FIELD_SIZE  (MCI_DGV_SETVIDEO_PARMSW, dwSourceNumber, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_SETVIDEO_PARMSW, dwSourceNumber, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_SETVIDEO_PARMSW, dwSourceNumber, 24)
+}
+
+static void test_pack_MCI_DGV_STATUS_PARMSA(void)
+{
+    /* MCI_DGV_STATUS_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_STATUS_PARMSA, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_STATUS_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwReturn, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwReturn, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwItem, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwTrack, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwTrack, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwTrack, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, lpstrDrive, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, lpstrDrive, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, lpstrDrive, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSA, dwReference, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSA, dwReference, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSA, dwReference, 20)
+}
+
+static void test_pack_MCI_DGV_STATUS_PARMSW(void)
+{
+    /* MCI_DGV_STATUS_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_STATUS_PARMSW, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_STATUS_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwReturn, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwReturn, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwReturn, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwItem, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwItem, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwItem, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwTrack, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwTrack, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwTrack, 12)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, lpstrDrive, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, lpstrDrive, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, lpstrDrive, 16)
+    TEST_FIELD_SIZE  (MCI_DGV_STATUS_PARMSW, dwReference, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STATUS_PARMSW, dwReference, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STATUS_PARMSW, dwReference, 20)
+}
+
+static void test_pack_MCI_DGV_STEP_PARMS(void)
+{
+    /* MCI_DGV_STEP_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_STEP_PARMS, 8)
+    TEST_TYPE_ALIGN  (MCI_DGV_STEP_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_STEP_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STEP_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STEP_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_STEP_PARMS, dwFrames, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_STEP_PARMS, dwFrames, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_STEP_PARMS, dwFrames, 4)
+}
+
+static void test_pack_MCI_DGV_UPDATE_PARMS(void)
+{
+    /* MCI_DGV_UPDATE_PARMS (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_UPDATE_PARMS, 24)
+    TEST_TYPE_ALIGN  (MCI_DGV_UPDATE_PARMS, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_UPDATE_PARMS, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_UPDATE_PARMS, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_UPDATE_PARMS, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_UPDATE_PARMS, rc, 16)
+    TEST_FIELD_ALIGN (MCI_DGV_UPDATE_PARMS, rc, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_UPDATE_PARMS, rc, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_UPDATE_PARMS, hDC, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_UPDATE_PARMS, hDC, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_UPDATE_PARMS, hDC, 20)
+}
+
+static void test_pack_MCI_DGV_WINDOW_PARMSA(void)
+{
+    /* MCI_DGV_WINDOW_PARMSA (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_WINDOW_PARMSA, 16)
+    TEST_TYPE_ALIGN  (MCI_DGV_WINDOW_PARMSA, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSA, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSA, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSA, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSA, hWnd, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSA, hWnd, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSA, hWnd, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSA, nCmdShow, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSA, nCmdShow, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSA, nCmdShow, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSA, lpstrText, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSA, lpstrText, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSA, lpstrText, 12)
+}
+
+static void test_pack_MCI_DGV_WINDOW_PARMSW(void)
+{
+    /* MCI_DGV_WINDOW_PARMSW (pack 1) */
+    TEST_TYPE_SIZE   (MCI_DGV_WINDOW_PARMSW, 16)
+    TEST_TYPE_ALIGN  (MCI_DGV_WINDOW_PARMSW, 1)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSW, dwCallback, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSW, dwCallback, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSW, dwCallback, 0)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSW, hWnd, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSW, hWnd, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSW, hWnd, 4)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSW, nCmdShow, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSW, nCmdShow, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSW, nCmdShow, 8)
+    TEST_FIELD_SIZE  (MCI_DGV_WINDOW_PARMSW, lpstrText, 4)
+    TEST_FIELD_ALIGN (MCI_DGV_WINDOW_PARMSW, lpstrText, 1)
+    TEST_FIELD_OFFSET(MCI_DGV_WINDOW_PARMSW, lpstrText, 12)
+}
+
 #endif /* _WIN64 */
 
 static void test_pack(void)
@@ -3421,6 +4910,42 @@ static void test_pack(void)
     test_pack_MCI_ANIM_WINDOW_PARMSA();
     test_pack_MCI_ANIM_WINDOW_PARMSW();
     test_pack_MCI_BREAK_PARMS();
+    test_pack_MCI_DGV_CAPTURE_PARMSA();
+    test_pack_MCI_DGV_CAPTURE_PARMSW();
+    test_pack_MCI_DGV_COPY_PARMS();
+    test_pack_MCI_DGV_CUE_PARMS();
+    test_pack_MCI_DGV_CUT_PARMS();
+    test_pack_MCI_DGV_DELETE_PARMS();
+    test_pack_MCI_DGV_INFO_PARMSA();
+    test_pack_MCI_DGV_INFO_PARMSW();
+    test_pack_MCI_DGV_LIST_PARMSA();
+    test_pack_MCI_DGV_LIST_PARMSW();
+    test_pack_MCI_DGV_MONITOR_PARMS();
+    test_pack_MCI_DGV_OPEN_PARMSA();
+    test_pack_MCI_DGV_OPEN_PARMSW();
+    test_pack_MCI_DGV_PASTE_PARMS();
+    test_pack_MCI_DGV_QUALITY_PARMSA();
+    test_pack_MCI_DGV_QUALITY_PARMSW();
+    test_pack_MCI_DGV_RECORD_PARMS();
+    test_pack_MCI_DGV_RECT_PARMS();
+    test_pack_MCI_DGV_RESERVE_PARMSA();
+    test_pack_MCI_DGV_RESERVE_PARMSW();
+    test_pack_MCI_DGV_RESTORE_PARMSA();
+    test_pack_MCI_DGV_RESTORE_PARMSW();
+    test_pack_MCI_DGV_SAVE_PARMSA();
+    test_pack_MCI_DGV_SAVE_PARMSW();
+    test_pack_MCI_DGV_SETAUDIO_PARMSA();
+    test_pack_MCI_DGV_SETAUDIO_PARMSW();
+    test_pack_MCI_DGV_SETVIDEO_PARMSA();
+    test_pack_MCI_DGV_SETVIDEO_PARMSW();
+    test_pack_MCI_DGV_SET_PARMS();
+    test_pack_MCI_DGV_SIGNAL_PARMS();
+    test_pack_MCI_DGV_STATUS_PARMSA();
+    test_pack_MCI_DGV_STATUS_PARMSW();
+    test_pack_MCI_DGV_STEP_PARMS();
+    test_pack_MCI_DGV_UPDATE_PARMS();
+    test_pack_MCI_DGV_WINDOW_PARMSA();
+    test_pack_MCI_DGV_WINDOW_PARMSW();
     test_pack_MCI_GENERIC_PARMS();
     test_pack_MCI_GETDEVCAPS_PARMS();
     test_pack_MCI_INFO_PARMSA();
diff --git a/include/digitalv.h b/include/digitalv.h
index a4ceb54..00601f4 100644
--- a/include/digitalv.h
+++ b/include/digitalv.h
@@ -23,6 +23,8 @@
  * Wine Digital Video extensions
  */
 
+#include <pshpack1.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/tools/winapi/tests.dat b/tools/winapi/tests.dat
index 4632a8b..9179d94 100644
--- a/tools/winapi/tests.dat
+++ b/tools/winapi/tests.dat
@@ -1734,11 +1734,13 @@ basetsd.h
 winnt.h
 windef.h
 mmsystem.h
+digitalv.h
 
 %include
 
 "windef.h"
 "mmsystem.h"
+"digitalv.h"
 
 %type
 
@@ -1842,3 +1844,40 @@ MCI_OVLY_SAVE_PARMSA
 MCI_OVLY_SAVE_PARMSW
 MCI_OVLY_LOAD_PARMSA
 MCI_OVLY_LOAD_PARMSW
+
+MCI_DGV_RECT_PARMS
+MCI_DGV_CAPTURE_PARMSA
+MCI_DGV_CAPTURE_PARMSW
+MCI_DGV_COPY_PARMS
+MCI_DGV_CUE_PARMS
+MCI_DGV_CUT_PARMS
+MCI_DGV_DELETE_PARMS
+MCI_DGV_INFO_PARMSA
+MCI_DGV_INFO_PARMSW
+MCI_DGV_LIST_PARMSA
+MCI_DGV_LIST_PARMSW
+MCI_DGV_MONITOR_PARMS
+MCI_DGV_OPEN_PARMSA
+MCI_DGV_OPEN_PARMSW
+MCI_DGV_PASTE_PARMS
+MCI_DGV_QUALITY_PARMSA
+MCI_DGV_QUALITY_PARMSW
+MCI_DGV_RECORD_PARMS
+MCI_DGV_RESERVE_PARMSA
+MCI_DGV_RESERVE_PARMSW
+MCI_DGV_RESTORE_PARMSA
+MCI_DGV_RESTORE_PARMSW
+MCI_DGV_SAVE_PARMSA
+MCI_DGV_SAVE_PARMSW
+MCI_DGV_SET_PARMS
+MCI_DGV_SETAUDIO_PARMSA
+MCI_DGV_SETAUDIO_PARMSW
+MCI_DGV_SIGNAL_PARMS
+MCI_DGV_SETVIDEO_PARMSA
+MCI_DGV_SETVIDEO_PARMSW
+MCI_DGV_STATUS_PARMSA
+MCI_DGV_STATUS_PARMSW
+MCI_DGV_STEP_PARMS
+MCI_DGV_UPDATE_PARMS
+MCI_DGV_WINDOW_PARMSA
+MCI_DGV_WINDOW_PARMSW
-- 
2.1.4




More information about the wine-patches mailing list