/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the w64 mingw-runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
#ifndef _INC_DIGITALV
#define _INC_DIGITALV 100

#include <_mingw_unicode.h>
#include <pshpack1.h>

#ifdef __cplusplus
extern "C" {
#endif

#define MCI_TEST 0x00000020L

#define MCI_CAPTURE 0x0870
#define MCI_MONITOR 0x0871
#define MCI_RESERVE 0x0872
#define MCI_SETAUDIO 0x0873
#define MCI_SIGNAL 0x0875
#define MCI_SETVIDEO 0x0876
#define MCI_QUALITY 0x0877
#define MCI_LIST 0x0878
#define MCI_UNDO 0x0879
#define MCI_CONFIGURE 0x087a
#define MCI_RESTORE 0x087b

#define MCI_ON 1
#define MCI_OFF 0

#define MCI_DGV_FILE_MODE_SAVING 0x0001
#define MCI_DGV_FILE_MODE_LOADING 0x0002
#define MCI_DGV_FILE_MODE_EDITING 0x0003
#define MCI_DGV_FILE_MODE_IDLE 0x0004

#define MCI_ON_S 0x00008000L
#define MCI_OFF_S 0x00008001L
#define MCI_DGV_FILE_S 0x00008002L
#define MCI_DGV_INPUT_S 0x00008003L

#define MCI_DGV_FILE_MODE_SAVING_S 0x00008004L
#define MCI_DGV_FILE_MODE_LOADING_S 0x00008005L
#define MCI_DGV_FILE_MODE_EDITING_S 0x00008006L
#define MCI_DGV_FILE_MODE_IDLE_S 0x00008007L

#define MCI_DGV_SETVIDEO_SRC_NTSC_S 0x00008010L
#define MCI_DGV_SETVIDEO_SRC_RGB_S 0x00008011L
#define MCI_DGV_SETVIDEO_SRC_SVIDEO_S 0x00008012L
#define MCI_DGV_SETVIDEO_SRC_PAL_S 0x00008013L
#define MCI_DGV_SETVIDEO_SRC_SECAM_S 0x00008014L
#define MCI_DGV_SETVIDEO_SRC_GENERIC_S 0x00008015L

#define MCI_DGV_SETAUDIO_SRC_LEFT_S 0x00008020L
#define MCI_DGV_SETAUDIO_SRC_RIGHT_S 0x00008021L
#define MCI_DGV_SETAUDIO_SRC_AVERAGE_S 0x00008022L
#define MCI_DGV_SETAUDIO_SRC_STEREO_S 0x00008023L

#define MM_MCISIGNAL 0x3CB

#define MCIERR_DGV_DEVICE_LIMIT (MCIERR_CUSTOM_DRIVER_BASE+0)
#define MCIERR_DGV_IOERR (MCIERR_CUSTOM_DRIVER_BASE+1)
#define MCIERR_DGV_WORKSPACE_EMPTY (MCIERR_CUSTOM_DRIVER_BASE+2)
#define MCIERR_DGV_DISK_FULL (MCIERR_CUSTOM_DRIVER_BASE+3)
#define MCIERR_DGV_DEVICE_MEMORY_FULL (MCIERR_CUSTOM_DRIVER_BASE+4)
#define MCIERR_DGV_BAD_CLIPBOARD_RANGE (MCIERR_CUSTOM_DRIVER_BASE+5)

#define MCI_DGV_METHOD_PRE 0x0000a000L
#define MCI_DGV_METHOD_POST 0x0000a001L
#define MCI_DGV_METHOD_DIRECT 0x0000a002L

#define MCI_DGV_FF_AVSS 0x00004000L
#define MCI_DGV_FF_AVI 0x00004001L
#define MCI_DGV_FF_DIB 0x00004002L
#define MCI_DGV_FF_RDIB 0x00004003L
#define MCI_DGV_FF_JPEG 0x00004004L
#define MCI_DGV_FF_RJPEG 0x00004005L
#define MCI_DGV_FF_JFIF 0x00004006L
#define MCI_DGV_FF_MPEG 0x00004007L

#define MCI_DGV_GETDEVCAPS_CAN_LOCK 0x00004000L
#define MCI_DGV_GETDEVCAPS_CAN_STRETCH 0x00004001L
#define MCI_DGV_GETDEVCAPS_CAN_FREEZE 0x00004002L
#define MCI_DGV_GETDEVCAPS_MAX_WINDOWS 0x00004003L
#define MCI_DGV_GETDEVCAPS_CAN_REVERSE 0x00004004L
#define MCI_DGV_GETDEVCAPS_HAS_STILL 0x00004005L
#define MCI_DGV_GETDEVCAPS_PALETTES 0x00004006L
#define MCI_DGV_GETDEVCAPS_CAN_STR_IN 0x00004008L
#define MCI_DGV_GETDEVCAPS_CAN_TEST 0x00004009L
#define MCI_DGV_GETDEVCAPS_MAXIMUM_RATE 0x0000400aL
#define MCI_DGV_GETDEVCAPS_MINIMUM_RATE 0x0000400bL

#define MCI_DGV_CAPTURE_AS 0x00010000L
#define MCI_DGV_CAPTURE_AT 0x00020000L

#define MCI_DGV_COPY_AT 0x00010000L
#define MCI_DGV_COPY_AUDIO_STREAM 0x00020000L
#define MCI_DGV_COPY_VIDEO_STREAM 0x00040000L

#define MCI_DGV_CUE_INPUT 0x00010000L
#define MCI_DGV_CUE_OUTPUT 0x00020000L
#define MCI_DGV_CUE_NOSHOW 0x00040000L

#define MCI_DGV_CUT_AT 0x00010000L
#define MCI_DGV_CUT_AUDIO_STREAM 0x00020000L
#define MCI_DGV_CUT_VIDEO_STREAM 0x00040000L

#define MCI_DGV_DELETE_AT 0x00010000L
#define MCI_DGV_DELETE_AUDIO_STREAM 0x00020000L
#define MCI_DGV_DELETE_VIDEO_STREAM 0x00040000L

#define MCI_DGV_FREEZE_AT 0x00010000L
#define MCI_DGV_FREEZE_OUTSIDE 0x00020000L

#define MCI_DGV_INFO_TEXT 0x00010000L
#define MCI_DGV_INFO_ITEM 0X00020000L

#define MCI_INFO_VERSION 0x00000400L

#define MCI_DGV_INFO_USAGE 0x00004000L
#define MCI_DGV_INFO_AUDIO_QUALITY 0x00004001L
#define MCI_DGV_INFO_STILL_QUALITY 0x00004002L
#define MCI_DGV_INFO_VIDEO_QUALITY 0x00004003L
#define MCI_DGV_INFO_AUDIO_ALG 0x00004004L
#define MCI_DGV_INFO_STILL_ALG 0x00004005L
#define MCI_DGV_INFO_VIDEO_ALG 0x00004006L

#define MCI_DGV_LIST_ITEM 0x00010000L
#define MCI_DGV_LIST_COUNT 0x00020000L
#define MCI_DGV_LIST_NUMBER 0x00040000L
#define MCI_DGV_LIST_ALG 0x00080000L

#define MCI_DGV_LIST_AUDIO_ALG 0x00004000L
#define MCI_DGV_LIST_AUDIO_QUALITY 0x00004001L
#define MCI_DGV_LIST_AUDIO_STREAM 0x00004002L
#define MCI_DGV_LIST_STILL_ALG 0x00004003L
#define MCI_DGV_LIST_STILL_QUALITY 0x00004004L
#define MCI_DGV_LIST_VIDEO_ALG 0x00004005L
#define MCI_DGV_LIST_VIDEO_QUALITY 0x00004006L
#define MCI_DGV_LIST_VIDEO_STREAM 0x00004007L
#define MCI_DGV_LIST_VIDEO_SOURCE 0x00004008L

#define MCI_DGV_MONITOR_METHOD 0x00010000L
#define MCI_DGV_MONITOR_SOURCE 0x00020000L

#define MCI_DGV_MONITOR_INPUT 0x00004000L
#define MCI_DGV_MONITOR_FILE 0x00004001L

#define MCI_DGV_OPEN_WS 0x00010000L
#define MCI_DGV_OPEN_PARENT 0x00020000L
#define MCI_DGV_OPEN_NOSTATIC 0x00040000L
#define MCI_DGV_OPEN_16BIT 0x00080000L
#define MCI_DGV_OPEN_32BIT 0x00100000L

#define MCI_DGV_PASTE_AT 0x00010000L
#define MCI_DGV_PASTE_AUDIO_STREAM 0x00020000L
#define MCI_DGV_PASTE_VIDEO_STREAM 0x00040000L
#define MCI_DGV_PASTE_INSERT 0x00080000L
#define MCI_DGV_PASTE_OVERWRITE 0x00100000L

#define MCI_DGV_PLAY_REPEAT 0x00010000L
#define MCI_DGV_PLAY_REVERSE 0x00020000L

#define MCI_DGV_RECT 0x00010000L
#define MCI_DGV_PUT_SOURCE 0x00020000L
#define MCI_DGV_PUT_DESTINATION 0x00040000L
#define MCI_DGV_PUT_FRAME 0x00080000L
#define MCI_DGV_PUT_VIDEO 0x00100000L
#define MCI_DGV_PUT_WINDOW 0x00200000L
#define MCI_DGV_PUT_CLIENT 0x00400000L

#define MCI_QUALITY_ITEM 0x00010000L
#define MCI_QUALITY_NAME 0x00020000L
#define MCI_QUALITY_ALG 0x00040000L
#define MCI_QUALITY_DIALOG 0x00080000L
#define MCI_QUALITY_HANDLE 0x00100000L

#define MCI_QUALITY_ITEM_AUDIO 0x00004000L
#define MCI_QUALITY_ITEM_STILL 0x00004001L
#define MCI_QUALITY_ITEM_VIDEO 0x00004002L

#define MCI_DGV_REALIZE_NORM 0x00010000L
#define MCI_DGV_REALIZE_BKGD 0x00020000L

#define MCI_DGV_RECORD_HOLD 0x00020000L
#define MCI_DGV_RECORD_AUDIO_STREAM 0x00040000L
#define MCI_DGV_RECORD_VIDEO_STREAM 0x00080000L

#define MCI_DGV_RESERVE_IN 0x00010000L
#define MCI_DGV_RESERVE_SIZE 0x00020000L

#define MCI_DGV_RESTORE_FROM 0x00010000L
#define MCI_DGV_RESTORE_AT 0x00020000L

#define MCI_DGV_SAVE_ABORT 0x00020000L
#define MCI_DGV_SAVE_KEEPRESERVE 0x00040000L

#define MCI_DGV_SET_SEEK_EXACTLY 0x00010000L
#define MCI_DGV_SET_SPEED 0x00020000L
#define MCI_DGV_SET_STILL 0x00040000L
#define MCI_DGV_SET_FILEFORMAT 0x00080000L

#define MCI_DGV_SETAUDIO_OVER 0x00010000L
#define MCI_DGV_SETAUDIO_CLOCKTIME 0x00020000L
#define MCI_DGV_SETAUDIO_ALG 0x00040000L
#define MCI_DGV_SETAUDIO_QUALITY 0x00080000L
#define MCI_DGV_SETAUDIO_RECORD 0x00100000L
#define MCI_DGV_SETAUDIO_LEFT 0x00200000L
#define MCI_DGV_SETAUDIO_RIGHT 0x00400000L
#define MCI_DGV_SETAUDIO_ITEM 0x00800000L
#define MCI_DGV_SETAUDIO_VALUE 0x01000000L
#define MCI_DGV_SETAUDIO_INPUT 0x02000000L
#define MCI_DGV_SETAUDIO_OUTPUT 0x04000000L

#define MCI_DGV_SETAUDIO_TREBLE 0x00004000L
#define MCI_DGV_SETAUDIO_BASS 0x00004001L
#define MCI_DGV_SETAUDIO_VOLUME 0x00004002L
#define MCI_DGV_SETAUDIO_STREAM 0x00004003L
#define MCI_DGV_SETAUDIO_SOURCE 0x00004004L
#define MCI_DGV_SETAUDIO_SAMPLESPERSEC 0x00004005L
#define MCI_DGV_SETAUDIO_AVGBYTESPERSEC 0x00004006L
#define MCI_DGV_SETAUDIO_BLOCKALIGN 0x00004007L
#define MCI_DGV_SETAUDIO_BITSPERSAMPLE 0x00004008L

#define MCI_DGV_SETAUDIO_SOURCE_STEREO 0x00000000L
#define MCI_DGV_SETAUDIO_SOURCE_LEFT 0x00000001L
#define MCI_DGV_SETAUDIO_SOURCE_RIGHT 0x00000002L
#define MCI_DGV_SETAUDIO_SOURCE_AVERAGE 0x00004000L

#define MCI_DGV_SETVIDEO_QUALITY 0x00010000L
#define MCI_DGV_SETVIDEO_ALG 0x00020000L
#define MCI_DGV_SETVIDEO_CLOCKTIME 0x00040000L
#define MCI_DGV_SETVIDEO_SRC_NUMBER 0x00080000L
#define MCI_DGV_SETVIDEO_ITEM 0x00100000L
#define MCI_DGV_SETVIDEO_OVER 0x00200000L
#define MCI_DGV_SETVIDEO_RECORD 0x00400000L
#define MCI_DGV_SETVIDEO_STILL 0x00800000L
#define MCI_DGV_SETVIDEO_VALUE 0x01000000L
#define MCI_DGV_SETVIDEO_INPUT 0x02000000L
#define MCI_DGV_SETVIDEO_OUTPUT 0x04000000L

#define MCI_DGV_SETVIDEO_SRC_NTSC 0x00004000L
#define MCI_DGV_SETVIDEO_SRC_RGB 0x00004001L
#define MCI_DGV_SETVIDEO_SRC_SVIDEO 0x00004002L
#define MCI_DGV_SETVIDEO_SRC_PAL 0x00004003L
#define MCI_DGV_SETVIDEO_SRC_SECAM 0x00004004L
#define MCI_DGV_SETVIDEO_SRC_GENERIC 0x00004005L

#define MCI_DGV_SETVIDEO_BRIGHTNESS 0x00004000L
#define MCI_DGV_SETVIDEO_COLOR 0x00004001L
#define MCI_DGV_SETVIDEO_CONTRAST 0x00004002L
#define MCI_DGV_SETVIDEO_TINT 0x00004003L
#define MCI_DGV_SETVIDEO_SHARPNESS 0x00004004L
#define MCI_DGV_SETVIDEO_GAMMA 0x00004005L
#define MCI_DGV_SETVIDEO_STREAM 0x00004006L
#define MCI_DGV_SETVIDEO_PALHANDLE 0x00004007L
#define MCI_DGV_SETVIDEO_FRAME_RATE 0x00004008L
#define MCI_DGV_SETVIDEO_SOURCE 0x00004009L
#define MCI_DGV_SETVIDEO_KEY_INDEX 0x0000400aL
#define MCI_DGV_SETVIDEO_KEY_COLOR 0x0000400bL
#define MCI_DGV_SETVIDEO_BITSPERPEL 0x0000400cL

#define MCI_DGV_SIGNAL_AT 0x00010000L
#define MCI_DGV_SIGNAL_EVERY 0x00020000L
#define MCI_DGV_SIGNAL_USERVAL 0x00040000L
#define MCI_DGV_SIGNAL_CANCEL 0x00080000L
#define MCI_DGV_SIGNAL_POSITION 0x00100000L

#define SEND_DGVSIGNAL(dwFlags,dwCallback,hDriver,wDeviceID,dwUser,dwPos) DriverCallback((dwCallback),DCB_WINDOW,(HANDLE)(wDeviceID),MM_MCISIGNAL,hDriver,((dwFlags) & MCI_DGV_SIGNAL_POSITION) ? (dwPos):(dwUser),((dwFlags) & MCI_DGV_SIGNAL_POSITION) ? (dwUser):(dwPos))

#define MCI_DGV_STATUS_NOMINAL 0x00020000L
#define MCI_DGV_STATUS_REFERENCE 0x00040000L
#define MCI_DGV_STATUS_LEFT 0x00080000L
#define MCI_DGV_STATUS_RIGHT 0x00100000L
#define MCI_DGV_STATUS_DISKSPACE 0x00200000L
#define MCI_DGV_STATUS_INPUT 0x00400000L
#define MCI_DGV_STATUS_OUTPUT 0x00800000L
#define MCI_DGV_STATUS_RECORD 0x01000000L

#define MCI_DGV_STATUS_AUDIO_INPUT 0x00004000L
#define MCI_DGV_STATUS_HWND 0x00004001L
#define MCI_DGV_STATUS_SPEED 0x00004003L
#define MCI_DGV_STATUS_HPAL 0x00004004L
#define MCI_DGV_STATUS_BRIGHTNESS 0x00004005L
#define MCI_DGV_STATUS_COLOR 0x00004006L
#define MCI_DGV_STATUS_CONTRAST 0x00004007L
#define MCI_DGV_STATUS_FILEFORMAT 0x00004008L
#define MCI_DGV_STATUS_AUDIO_SOURCE 0x00004009L
#define MCI_DGV_STATUS_GAMMA 0x0000400aL
#define MCI_DGV_STATUS_MONITOR 0x0000400bL
#define MCI_DGV_STATUS_MONITOR_METHOD 0x0000400cL
#define MCI_DGV_STATUS_FRAME_RATE 0x0000400eL
#define MCI_DGV_STATUS_BASS 0x0000400fL
#define MCI_DGV_STATUS_SIZE 0x00004010L
#define MCI_DGV_STATUS_SEEK_EXACTLY 0x00004011L
#define MCI_DGV_STATUS_SHARPNESS 0x00004012L
#define MCI_DGV_STATUS_SMPTE 0x00004013L
#define MCI_DGV_STATUS_AUDIO 0x00004014L
#define MCI_DGV_STATUS_TINT 0x00004015L
#define MCI_DGV_STATUS_TREBLE 0x00004016L
#define MCI_DGV_STATUS_UNSAVED 0x00004017L
#define MCI_DGV_STATUS_VIDEO 0x00004018L
#define MCI_DGV_STATUS_VOLUME 0x00004019L
#define MCI_DGV_STATUS_AUDIO_RECORD 0x0000401aL
#define MCI_DGV_STATUS_VIDEO_SOURCE 0x0000401bL
#define MCI_DGV_STATUS_VIDEO_RECORD 0x0000401cL
#define MCI_DGV_STATUS_STILL_FILEFORMAT 0x0000401dL
#define MCI_DGV_STATUS_VIDEO_SRC_NUM 0x0000401eL
#define MCI_DGV_STATUS_FILE_MODE 0x0000401fL
#define MCI_DGV_STATUS_FILE_COMPLETION 0x00004020L
#define MCI_DGV_STATUS_WINDOW_VISIBLE 0x00004021L
#define MCI_DGV_STATUS_WINDOW_MINIMIZED 0x00004022L
#define MCI_DGV_STATUS_WINDOW_MAXIMIZED 0x00004023L
#define MCI_DGV_STATUS_KEY_INDEX 0x00004024L
#define MCI_DGV_STATUS_KEY_COLOR 0x00004025L
#define MCI_DGV_STATUS_PAUSE_MODE 0x00004026L
#define MCI_DGV_STATUS_SAMPLESPERSEC 0x00004027L
#define MCI_DGV_STATUS_AVGBYTESPERSEC 0x00004028L
#define MCI_DGV_STATUS_BLOCKALIGN 0x00004029L
#define MCI_DGV_STATUS_BITSPERSAMPLE 0x0000402aL
#define MCI_DGV_STATUS_BITSPERPEL 0x0000402bL
#define MCI_DGV_STATUS_FORWARD 0x0000402cL
#define MCI_DGV_STATUS_AUDIO_STREAM 0x0000402dL
#define MCI_DGV_STATUS_VIDEO_STREAM 0x0000402eL

#define MCI_DGV_STEP_REVERSE 0x00010000L
#define MCI_DGV_STEP_FRAMES 0x00020000L

#define MCI_DGV_STOP_HOLD 0x00010000L

#define MCI_DGV_UPDATE_HDC 0x00020000L
#define MCI_DGV_UPDATE_PAINT 0x00040000L

#define MCI_DGV_WHERE_SOURCE 0x00020000L
#define MCI_DGV_WHERE_DESTINATION 0x00040000L
#define MCI_DGV_WHERE_FRAME 0x00080000L
#define MCI_DGV_WHERE_VIDEO 0x00100000L
#define MCI_DGV_WHERE_WINDOW 0x00200000L
#define MCI_DGV_WHERE_MAX 0x00400000L

#define MCI_DGV_WINDOW_HWND 0x00010000L
#define MCI_DGV_WINDOW_STATE 0x00040000L
#define MCI_DGV_WINDOW_TEXT 0x00080000L

#define MCI_DGV_WINDOW_DEFAULT 0x00000000L

  typedef struct {
    DWORD_PTR dwCallback;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
  } MCI_DGV_RECT_PARMS;

  typedef MCI_DGV_RECT_PARMS *LPMCI_DGV_RECT_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    LPSTR lpstrFileName;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
  } MCI_DGV_CAPTURE_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    LPWSTR lpstrFileName;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
  } MCI_DGV_CAPTURE_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_CAPTURE_PARMS)

  typedef MCI_DGV_CAPTURE_PARMSA *LPMCI_DGV_CAPTURE_PARMSA;
  typedef MCI_DGV_CAPTURE_PARMSW *LPMCI_DGV_CAPTURE_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_CAPTURE_PARMS)

  typedef MCI_GENERIC_PARMS MCI_CLOSE_PARMS;
  typedef MCI_CLOSE_PARMS *LPMCI_CLOSE_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwFrom;
    DWORD dwTo;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
    DWORD dwAudioStream;
    DWORD dwVideoStream;
  } MCI_DGV_COPY_PARMS;

  typedef MCI_DGV_COPY_PARMS *LPMCI_DGV_COPY_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwTo;
  } MCI_DGV_CUE_PARMS;

  typedef MCI_DGV_CUE_PARMS *LPMCI_DGV_CUE_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwFrom;
    DWORD dwTo;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
    DWORD dwAudioStream;
    DWORD dwVideoStream;
  } MCI_DGV_CUT_PARMS;

  typedef MCI_DGV_CUT_PARMS *LPMCI_DGV_CUT_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwFrom;
    DWORD dwTo;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
    DWORD dwAudioStream;
    DWORD dwVideoStream;
  } MCI_DGV_DELETE_PARMS;

  typedef MCI_DGV_DELETE_PARMS *LPMCI_DGV_DELETE_PARMS;
  typedef MCI_DGV_RECT_PARMS MCI_DGV_FREEZE_PARMS;
  typedef MCI_DGV_FREEZE_PARMS *LPMCI_DGV_FREEZE_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    LPSTR lpstrReturn;
    DWORD dwRetSize;
    DWORD dwItem;
  } MCI_DGV_INFO_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    LPWSTR lpstrReturn;
    DWORD dwRetSize;
    DWORD dwItem;
  } MCI_DGV_INFO_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_INFO_PARMS)

  typedef MCI_DGV_INFO_PARMSA *LPMCI_DGV_INFO_PARMSA;
  typedef MCI_DGV_INFO_PARMSW *LPMCI_DGV_INFO_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_INFO_PARMS)

  typedef struct {
    DWORD_PTR dwCallback;
    LPSTR lpstrReturn;
    DWORD dwLength;
    DWORD dwNumber;
    DWORD dwItem;
    LPSTR lpstrAlgorithm;
  } MCI_DGV_LIST_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    LPWSTR lpstrReturn;
    DWORD dwLength;
    DWORD dwNumber;
    DWORD dwItem;
    LPWSTR lpstrAlgorithm;
  } MCI_DGV_LIST_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_LIST_PARMS)

  typedef MCI_DGV_LIST_PARMSA *LPMCI_DGV_LIST_PARMSA;
  typedef MCI_DGV_LIST_PARMSW *LPMCI_DGV_LIST_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_LIST_PARMS)

  typedef MCI_LOAD_PARMS MCI_DGV_LOAD_PARMS;
  typedef MCI_DGV_LOAD_PARMS *LPMCI_DGV_LOAD_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwSource;
    DWORD dwMethod;
  } MCI_DGV_MONITOR_PARMS;

  typedef MCI_DGV_MONITOR_PARMS *LPMCI_DGV_MONITOR_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    UINT wDeviceID;
    LPSTR lpstrDeviceType;
    LPSTR lpstrElementName;
    LPSTR lpstrAlias;
    DWORD dwStyle;
    HWND hWndParent;
  } MCI_DGV_OPEN_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    UINT wDeviceID;
    LPWSTR lpstrDeviceType;
    LPWSTR lpstrElementName;
    LPWSTR lpstrAlias;
    DWORD dwStyle;
    HWND hWndParent;
  } MCI_DGV_OPEN_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_OPEN_PARMS)

  typedef MCI_DGV_OPEN_PARMSA *LPMCI_DGV_OPEN_PARMSA;
  typedef MCI_DGV_OPEN_PARMSW *LPMCI_DGV_OPEN_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_OPEN_PARMS)

  typedef MCI_GENERIC_PARMS MCI_DGV_PAUSE_PARMS;
  typedef MCI_DGV_PAUSE_PARMS *LPMCI_DGV_PAUSE_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwTo;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
    DWORD dwAudioStream;
    DWORD dwVideoStream;
  } MCI_DGV_PASTE_PARMS;

  typedef MCI_DGV_PASTE_PARMS *LPMCI_DGV_PASTE_PARMS;
  typedef MCI_PLAY_PARMS MCI_DGV_PLAY_PARMS;
  typedef MCI_DGV_PLAY_PARMS *LPMCI_DGV_PLAY_PARMS;
  typedef MCI_DGV_RECT_PARMS MCI_DGV_PUT_PARMS;
  typedef MCI_DGV_PUT_PARMS *LPMCI_DGV_PUT_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwItem;
    LPSTR lpstrName;
    DWORD lpstrAlgorithm;
    DWORD dwHandle;
  } MCI_DGV_QUALITY_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwItem;
    LPWSTR lpstrName;
    DWORD lpstrAlgorithm;
    DWORD dwHandle;
  } MCI_DGV_QUALITY_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_QUALITY_PARMS)

  typedef MCI_DGV_QUALITY_PARMSA *LPMCI_DGV_QUALITY_PARMSA;
  typedef MCI_DGV_QUALITY_PARMSW *LPMCI_DGV_QUALITY_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_QUALITY_PARMS)

  typedef MCI_GENERIC_PARMS MCI_REALIZE_PARMS;
  typedef MCI_REALIZE_PARMS *LPMCI_REALIZE_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwFrom;
    DWORD dwTo;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
    DWORD dwAudioStream;
    DWORD dwVideoStream;
  } MCI_DGV_RECORD_PARMS;

  typedef MCI_DGV_RECORD_PARMS *LPMCI_DGV_RECORD_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    LPSTR lpstrPath;
    DWORD dwSize;
  } MCI_DGV_RESERVE_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    LPWSTR lpstrPath;
    DWORD dwSize;
  } MCI_DGV_RESERVE_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_RESERVE_PARMS)

  typedef MCI_DGV_RESERVE_PARMSA *LPMCI_DGV_RESERVE_PARMSA;
  typedef MCI_DGV_RESERVE_PARMSW *LPMCI_DGV_RESERVE_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_RESERVE_PARMS)

  typedef struct {
    DWORD_PTR dwCallback;
    LPSTR lpstrFileName;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
  } MCI_DGV_RESTORE_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    LPWSTR lpstrFileName;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
  } MCI_DGV_RESTORE_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_RESTORE_PARMS)

  typedef MCI_DGV_RESTORE_PARMSA *LPMCI_DGV_RESTORE_PARMSA;
  typedef MCI_DGV_RESTORE_PARMSW *LPMCI_DGV_RESTORE_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_RESTORE_PARMS)

  typedef MCI_GENERIC_PARMS MCI_DGV_RESUME_PARMS;
  typedef MCI_DGV_RESUME_PARMS *LPMCI_DGV_RESUME_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    LPSTR lpstrFileName;
    RECT rc;
  } MCI_DGV_SAVE_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    LPWSTR lpstrFileName;
    RECT rc;
  } MCI_DGV_SAVE_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_SAVE_PARMS)

  typedef MCI_DGV_SAVE_PARMSA *LPMCI_DGV_SAVE_PARMSA;
  typedef MCI_DGV_SAVE_PARMSW *LPMCI_DGV_SAVE_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_SAVE_PARMS)

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwTimeFormat;
    DWORD dwAudio;
    DWORD dwFileFormat;
    DWORD dwSpeed;
  } MCI_DGV_SET_PARMS;

  typedef MCI_DGV_SET_PARMS *LPMCI_DGV_SET_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwItem;
    DWORD dwValue;
    DWORD dwOver;
    LPSTR lpstrAlgorithm;
    LPSTR lpstrQuality;
  } MCI_DGV_SETAUDIO_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwItem;
    DWORD dwValue;
    DWORD dwOver;
    LPWSTR lpstrAlgorithm;
    LPWSTR lpstrQuality;
  } MCI_DGV_SETAUDIO_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_SETAUDIO_PARMS)

  typedef MCI_DGV_SETAUDIO_PARMSA *LPMCI_DGV_SETAUDIO_PARMSA;
  typedef MCI_DGV_SETAUDIO_PARMSW *LPMCI_DGV_SETAUDIO_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_SETAUDIO_PARMS)

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwPosition;
    DWORD dwPeriod;
    DWORD dwUserParm;
  } MCI_DGV_SIGNAL_PARMS;
  typedef MCI_DGV_SIGNAL_PARMS *LPMCI_DGV_SIGNAL_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwItem;
    DWORD dwValue;
    DWORD dwOver;
    LPSTR lpstrAlgorithm;
    LPSTR lpstrQuality;
    DWORD dwSourceNumber;
  } MCI_DGV_SETVIDEO_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwItem;
    DWORD dwValue;
    DWORD dwOver;
    LPWSTR lpstrAlgorithm;
    LPWSTR lpstrQuality;
    DWORD dwSourceNumber;
  } MCI_DGV_SETVIDEO_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_SETVIDEO_PARMS)

  typedef MCI_DGV_SETVIDEO_PARMSA *LPMCI_DGV_SETVIDEO_PARMSA;
  typedef MCI_DGV_SETVIDEO_PARMSW *LPMCI_DGV_SETVIDEO_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_SETVIDEO_PARMS)

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD_PTR dwReturn;
    DWORD dwItem;
    DWORD dwTrack;
    LPSTR lpstrDrive;
    DWORD dwReference;
  } MCI_DGV_STATUS_PARMSA;
  typedef struct {
    DWORD_PTR dwCallback;
    DWORD_PTR dwReturn;
    DWORD dwItem;
    DWORD dwTrack;
    LPWSTR lpstrDrive;
    DWORD dwReference;
  } MCI_DGV_STATUS_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_STATUS_PARMS)

  typedef MCI_DGV_STATUS_PARMSA *LPMCI_DGV_STATUS_PARMSA;
  typedef MCI_DGV_STATUS_PARMSW *LPMCI_DGV_STATUS_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_STATUS_PARMS)

  typedef struct {
    DWORD_PTR dwCallback;
    DWORD dwFrames;
  } MCI_DGV_STEP_PARMS;
  typedef MCI_DGV_STEP_PARMS *LPMCI_DGV_STEP_PARMS;

  typedef MCI_GENERIC_PARMS MCI_DGV_STOP_PARMS;
  typedef MCI_DGV_STOP_PARMS *LPMCI_DGV_STOP_PARMS;

  typedef MCI_DGV_RECT_PARMS MCI_DGV_UNFREEZE_PARMS;
  typedef MCI_DGV_UNFREEZE_PARMS *LPMCI_DGV_UNFREEZE_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
#ifdef MCI_USE_OFFEXT
    POINT ptOffset;
    POINT ptExtent;
#else
    RECT rc;
#endif
    HDC hDC;
  } MCI_DGV_UPDATE_PARMS;

  typedef MCI_DGV_UPDATE_PARMS *LPMCI_DGV_UPDATE_PARMS;

  typedef MCI_DGV_RECT_PARMS MCI_DGV_WHERE_PARMS;
  typedef MCI_DGV_WHERE_PARMS *LPMCI_DGV_WHERE_PARMS;

  typedef struct {
    DWORD_PTR dwCallback;
    HWND hWnd;
    UINT nCmdShow;
    LPSTR lpstrText;
  } MCI_DGV_WINDOW_PARMSA;

  typedef struct {
    DWORD_PTR dwCallback;
    HWND hWnd;
    UINT nCmdShow;
    LPWSTR lpstrText;
  } MCI_DGV_WINDOW_PARMSW;

  __MINGW_TYPEDEF_AW(MCI_DGV_WINDOW_PARMS)

  typedef MCI_DGV_WINDOW_PARMSA *LPMCI_DGV_WINDOW_PARMSA;
  typedef MCI_DGV_WINDOW_PARMSW *LPMCI_DGV_WINDOW_PARMSW;

  __MINGW_TYPEDEF_AW(LPMCI_DGV_WINDOW_PARMS)

#ifdef __cplusplus
}
#endif

#include <poppack.h>

#endif
