#ifdef _MSC_VER
#pragma once
#endif
#ifndef _MCIAPI_H_
#define _MCIAPI_H_
#include <apiset.h>
#include <apisetcconv.h>
#include <mmsyscom.h>
#ifdef __cplusplus
extern
"C"
{
#endif
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef _MCIERROR_ /* MCIERROR is defined in some post 3.1 apps */
#define _MCIERROR_
typedef
;
#endif
#ifndef _MCIDEVICEID_ /* Same with MCIDEVICEID */
#define _MCIDEVICEID_
typedef
;
#endif
typedef UINT (CALLBACK *YIELDPROC)(MCIDEVICEID mciId, DWORD dwYieldData);
typedef
(
__stdcall
*
)(
mciId,
dwYieldData);
#ifdef _WIN32
(
_In_opt_ DWORD_PTR dwParam1,
_In_opt_ DWORD_PTR dwParam2
);
(
_In_opt_ DWORD_PTR dwParam1,
_In_opt_ DWORD_PTR dwParam2
);
#ifdef UNICODE
#define mciSendCommand mciSendCommandW
#else
#define mciSendCommand mciSendCommandA
#endif // !UNICODE
(
_In_ LPCSTR lpstrCommand,
_Out_writes_opt_(uReturnLength) LPSTR lpstrReturnString,
_In_opt_ HWND hwndCallback
);
(
_In_ LPCWSTR lpstrCommand,
_Out_writes_opt_(uReturnLength) LPWSTR lpstrReturnString,
_In_opt_ HWND hwndCallback
);
#ifdef UNICODE
#define mciSendString mciSendStringW
#else
#define mciSendString mciSendStringA
#endif // !UNICODE
(
);
(
);
#ifdef UNICODE
#define mciGetDeviceID mciGetDeviceIDW
#else
#define mciGetDeviceID mciGetDeviceIDA
#endif // !UNICODE
mciGetDeviceIDFromElementIDA
(
);
mciGetDeviceIDFromElementIDW
(
);
#ifdef UNICODE
#define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDW
#else
#define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDA
#endif // !UNICODE
(
_Out_writes_(cchText) LPSTR pszText,
);
(
_Out_writes_(cchText) LPWSTR pszText,
);
#ifdef UNICODE
#define mciGetErrorString mciGetErrorStringW
#else
#define mciGetErrorString mciGetErrorStringA
#endif // !UNICODE
#else
MCIERROR WINAPI mciSendCommand(MCIDEVICEID mciId, UINT uMsg, DWORD dwParam1, DWORD dwParam2);
MCIERROR WINAPI mciSendString(LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
MCIDEVICEID WINAPI mciGetDeviceID(LPCSTR pszDevice);
BOOL WINAPI mciGetErrorString(MCIERROR mcierr, LPSTR pszText, UINT cchText);
#endif
(
_In_opt_ YIELDPROC fpYieldProc,
);
#if (WINVER >= 0x030a)
(
);
(
_In_ LPDWORD pdwYieldData
);
#endif /* ifdef WINVER >= 0x030a */
#if (WINVER < 0x030a)
WINMMAPI
BOOL
WINAPI
mciExecute(
LPCSTR pszCommand
);
#endif /* ifdef WINVER < 0x030a */
#define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE + 1)
#define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE + 3)
#define MCIERR_UNRECOGNIZED_COMMAND (MCIERR_BASE + 5)
#define MCIERR_HARDWARE (MCIERR_BASE + 6)
#define MCIERR_INVALID_DEVICE_NAME (MCIERR_BASE + 7)
#define MCIERR_OUT_OF_MEMORY (MCIERR_BASE + 8)
#define MCIERR_DEVICE_OPEN (MCIERR_BASE + 9)
#define MCIERR_CANNOT_LOAD_DRIVER (MCIERR_BASE + 10)
#define MCIERR_MISSING_COMMAND_STRING (MCIERR_BASE + 11)
#define MCIERR_PARAM_OVERFLOW (MCIERR_BASE + 12)
#define MCIERR_MISSING_STRING_ARGUMENT (MCIERR_BASE + 13)
#define MCIERR_BAD_INTEGER (MCIERR_BASE + 14)
#define MCIERR_PARSER_INTERNAL (MCIERR_BASE + 15)
#define MCIERR_DRIVER_INTERNAL (MCIERR_BASE + 16)
#define MCIERR_MISSING_PARAMETER (MCIERR_BASE + 17)
#define MCIERR_UNSUPPORTED_FUNCTION (MCIERR_BASE + 18)
#define MCIERR_FILE_NOT_FOUND (MCIERR_BASE + 19)
#define MCIERR_DEVICE_NOT_READY (MCIERR_BASE + 20)
#define MCIERR_INTERNAL (MCIERR_BASE + 21)
#define MCIERR_DRIVER (MCIERR_BASE + 22)
#define MCIERR_CANNOT_USE_ALL (MCIERR_BASE + 23)
#define MCIERR_MULTIPLE (MCIERR_BASE + 24)
#define MCIERR_EXTENSION_NOT_FOUND (MCIERR_BASE + 25)
#define MCIERR_OUTOFRANGE (MCIERR_BASE + 26)
#define MCIERR_FLAGS_NOT_COMPATIBLE (MCIERR_BASE + 28)
#define MCIERR_FILE_NOT_SAVED (MCIERR_BASE + 30)
#define MCIERR_DEVICE_TYPE_REQUIRED (MCIERR_BASE + 31)
#define MCIERR_DEVICE_LOCKED (MCIERR_BASE + 32)
#define MCIERR_DUPLICATE_ALIAS (MCIERR_BASE + 33)
#define MCIERR_BAD_CONSTANT (MCIERR_BASE + 34)
#define MCIERR_MUST_USE_SHAREABLE (MCIERR_BASE + 35)
#define MCIERR_MISSING_DEVICE_NAME (MCIERR_BASE + 36)
#define MCIERR_BAD_TIME_FORMAT (MCIERR_BASE + 37)
#define MCIERR_NO_CLOSING_QUOTE (MCIERR_BASE + 38)
#define MCIERR_DUPLICATE_FLAGS (MCIERR_BASE + 39)
#define MCIERR_INVALID_FILE (MCIERR_BASE + 40)
#define MCIERR_NULL_PARAMETER_BLOCK (MCIERR_BASE + 41)
#define MCIERR_UNNAMED_RESOURCE (MCIERR_BASE + 42)
#define MCIERR_NEW_REQUIRES_ALIAS (MCIERR_BASE + 43)
#define MCIERR_NOTIFY_ON_AUTO_OPEN (MCIERR_BASE + 44)
#define MCIERR_NO_ELEMENT_ALLOWED (MCIERR_BASE + 45)
#define MCIERR_NONAPPLICABLE_FUNCTION (MCIERR_BASE + 46)
#define MCIERR_ILLEGAL_FOR_AUTO_OPEN (MCIERR_BASE + 47)
#define MCIERR_FILENAME_REQUIRED (MCIERR_BASE + 48)
#define MCIERR_EXTRA_CHARACTERS (MCIERR_BASE + 49)
#define MCIERR_DEVICE_NOT_INSTALLED (MCIERR_BASE + 50)
#define MCIERR_GET_CD (MCIERR_BASE + 51)
#define MCIERR_SET_CD (MCIERR_BASE + 52)
#define MCIERR_SET_DRIVE (MCIERR_BASE + 53)
#define MCIERR_DEVICE_LENGTH (MCIERR_BASE + 54)
#define MCIERR_DEVICE_ORD_LENGTH (MCIERR_BASE + 55)
#define MCIERR_NO_INTEGER (MCIERR_BASE + 56)
#define MCIERR_WAVE_OUTPUTSINUSE (MCIERR_BASE + 64)
#define MCIERR_WAVE_SETOUTPUTINUSE (MCIERR_BASE + 65)
#define MCIERR_WAVE_INPUTSINUSE (MCIERR_BASE + 66)
#define MCIERR_WAVE_SETINPUTINUSE (MCIERR_BASE + 67)
#define MCIERR_WAVE_OUTPUTUNSPECIFIED (MCIERR_BASE + 68)
#define MCIERR_WAVE_INPUTUNSPECIFIED (MCIERR_BASE + 69)
#define MCIERR_WAVE_OUTPUTSUNSUITABLE (MCIERR_BASE + 70)
#define MCIERR_WAVE_SETOUTPUTUNSUITABLE (MCIERR_BASE + 71)
#define MCIERR_WAVE_INPUTSUNSUITABLE (MCIERR_BASE + 72)
#define MCIERR_WAVE_SETINPUTUNSUITABLE (MCIERR_BASE + 73)
#define MCIERR_SEQ_DIV_INCOMPATIBLE (MCIERR_BASE + 80)
#define MCIERR_SEQ_PORT_INUSE (MCIERR_BASE + 81)
#define MCIERR_SEQ_PORT_NONEXISTENT (MCIERR_BASE + 82)
#define MCIERR_SEQ_PORT_MAPNODEVICE (MCIERR_BASE + 83)
#define MCIERR_SEQ_PORT_MISCERROR (MCIERR_BASE + 84)
#define MCIERR_SEQ_TIMER (MCIERR_BASE + 85)
#define MCIERR_SEQ_PORTUNSPECIFIED (MCIERR_BASE + 86)
#define MCIERR_SEQ_NOMIDIPRESENT (MCIERR_BASE + 87)
#define MCIERR_NO_WINDOW (MCIERR_BASE + 90)
#define MCIERR_CREATEWINDOW (MCIERR_BASE + 91)
#define MCIERR_FILE_READ (MCIERR_BASE + 92)
#define MCIERR_FILE_WRITE (MCIERR_BASE + 93)
#define MCIERR_NO_IDENTITY (MCIERR_BASE + 94)
#define MCIERR_CUSTOM_DRIVER_BASE (MCIERR_BASE + 256)
#define MCI_FIRST DRV_MCI_FIRST /* 0x0800 */
#define MCI_OPEN 0x0803
#define MCI_CLOSE 0x0804
#define MCI_ESCAPE 0x0805
#define MCI_PLAY 0x0806
#define MCI_SEEK 0x0807
#define MCI_STOP 0x0808
#define MCI_PAUSE 0x0809
#define MCI_INFO 0x080A
#define MCI_GETDEVCAPS 0x080B
#define MCI_SPIN 0x080C
#define MCI_SET 0x080D
#define MCI_STEP 0x080E
#define MCI_RECORD 0x080F
#define MCI_SYSINFO 0x0810
#define MCI_BREAK 0x0811
#define MCI_SAVE 0x0813
#define MCI_STATUS 0x0814
#define MCI_CUE 0x0830
#define MCI_REALIZE 0x0840
#define MCI_WINDOW 0x0841
#define MCI_PUT 0x0842
#define MCI_WHERE 0x0843
#define MCI_FREEZE 0x0844
#define MCI_UNFREEZE 0x0845
#define MCI_LOAD 0x0850
#define MCI_CUT 0x0851
#define MCI_COPY 0x0852
#define MCI_PASTE 0x0853
#define MCI_UPDATE 0x0854
#define MCI_RESUME 0x0855
#define MCI_DELETE 0x0856
#define MCI_USER_MESSAGES (DRV_MCI_FIRST + 0x400)
#define MCI_LAST 0x0FFF
#define MCI_ALL_DEVICE_ID ((MCIDEVICEID)-1)
#define MCI_DEVTYPE_VCR 513 /* (MCI_STRING_OFFSET + 1) */
#define MCI_DEVTYPE_VIDEODISC 514 /* (MCI_STRING_OFFSET + 2) */
#define MCI_DEVTYPE_OVERLAY 515 /* (MCI_STRING_OFFSET + 3) */
#define MCI_DEVTYPE_CD_AUDIO 516 /* (MCI_STRING_OFFSET + 4) */
#define MCI_DEVTYPE_DAT 517 /* (MCI_STRING_OFFSET + 5) */
#define MCI_DEVTYPE_SCANNER 518 /* (MCI_STRING_OFFSET + 6) */
#define MCI_DEVTYPE_ANIMATION 519 /* (MCI_STRING_OFFSET + 7) */
#define MCI_DEVTYPE_DIGITAL_VIDEO 520 /* (MCI_STRING_OFFSET + 8) */
#define MCI_DEVTYPE_OTHER 521 /* (MCI_STRING_OFFSET + 9) */
#define MCI_DEVTYPE_WAVEFORM_AUDIO 522 /* (MCI_STRING_OFFSET + 10) */
#define MCI_DEVTYPE_SEQUENCER 523 /* (MCI_STRING_OFFSET + 11) */
#define MCI_DEVTYPE_FIRST MCI_DEVTYPE_VCR
#define MCI_DEVTYPE_LAST MCI_DEVTYPE_SEQUENCER
#define MCI_DEVTYPE_FIRST_USER 0x1000
#define MCI_MODE_NOT_READY (MCI_STRING_OFFSET + 12)
#define MCI_MODE_STOP (MCI_STRING_OFFSET + 13)
#define MCI_MODE_PLAY (MCI_STRING_OFFSET + 14)
#define MCI_MODE_RECORD (MCI_STRING_OFFSET + 15)
#define MCI_MODE_SEEK (MCI_STRING_OFFSET + 16)
#define MCI_MODE_PAUSE (MCI_STRING_OFFSET + 17)
#define MCI_MODE_OPEN (MCI_STRING_OFFSET + 18)
#define MCI_FORMAT_MILLISECONDS 0
#define MCI_FORMAT_HMS 1
#define MCI_FORMAT_MSF 2
#define MCI_FORMAT_FRAMES 3
#define MCI_FORMAT_SMPTE_24 4
#define MCI_FORMAT_SMPTE_25 5
#define MCI_FORMAT_SMPTE_30 6
#define MCI_FORMAT_SMPTE_30DROP 7
#define MCI_FORMAT_BYTES 8
#define MCI_FORMAT_SAMPLES 9
#define MCI_FORMAT_TMSF 10
#define MCI_MSF_MINUTE(msf) ((BYTE)(msf))
#define MCI_MSF_SECOND(msf) ((BYTE)(((WORD)(msf)) >> 8))
#define MCI_MSF_FRAME(msf) ((BYTE)((msf)>>16))
#define MCI_MAKE_MSF(m, s, f) ((DWORD)(((BYTE)(m) | \
((WORD)(s)<<8)) | \
(((DWORD)(BYTE)(f))<<16)))
#define MCI_TMSF_TRACK(tmsf) ((BYTE)(tmsf))
#define MCI_TMSF_MINUTE(tmsf) ((BYTE)(((WORD)(tmsf)) >> 8))
#define MCI_TMSF_SECOND(tmsf) ((BYTE)((tmsf)>>16))
#define MCI_TMSF_FRAME(tmsf) ((BYTE)((tmsf)>>24))
#define MCI_MAKE_TMSF(t, m, s, f) ((DWORD)(((BYTE)(t) | \
((WORD)(m)<<8)) | \
(((DWORD)(BYTE)(s) | \
((WORD)(f)<<8))<<16)))
#define MCI_HMS_HOUR(hms) ((BYTE)(hms))
#define MCI_HMS_MINUTE(hms) ((BYTE)(((WORD)(hms)) >> 8))
#define MCI_HMS_SECOND(hms) ((BYTE)((hms)>>16))
#define MCI_MAKE_HMS(h, m, s) ((DWORD)(((BYTE)(h) | \
((WORD)(m)<<8)) | \
(((DWORD)(BYTE)(s))<<16)))
#define MCI_NOTIFY_SUCCESSFUL 0x0001
#define MCI_NOTIFY_SUPERSEDED 0x0002
#define MCI_NOTIFY_ABORTED 0x0004
#define MCI_NOTIFY_FAILURE 0x0008
#define MCI_NOTIFY 0x00000001L
#define MCI_WAIT 0x00000002L
#define MCI_FROM 0x00000004L
#define MCI_TO 0x00000008L
#define MCI_TRACK 0x00000010L
#define MCI_OPEN_SHAREABLE 0x00000100L
#define MCI_OPEN_ELEMENT 0x00000200L
#define MCI_OPEN_ALIAS 0x00000400L
#define MCI_OPEN_ELEMENT_ID 0x00000800L
#define MCI_OPEN_TYPE_ID 0x00001000L
#define MCI_OPEN_TYPE 0x00002000L
#define MCI_SEEK_TO_START 0x00000100L
#define MCI_SEEK_TO_END 0x00000200L
#define MCI_STATUS_ITEM 0x00000100L
#define MCI_STATUS_START 0x00000200L
#define MCI_STATUS_LENGTH 0x00000001L
#define MCI_STATUS_POSITION 0x00000002L
#define MCI_STATUS_NUMBER_OF_TRACKS 0x00000003L
#define MCI_STATUS_MODE 0x00000004L
#define MCI_STATUS_MEDIA_PRESENT 0x00000005L
#define MCI_STATUS_TIME_FORMAT 0x00000006L
#define MCI_STATUS_READY 0x00000007L
#define MCI_STATUS_CURRENT_TRACK 0x00000008L
#define MCI_INFO_PRODUCT 0x00000100L
#define MCI_INFO_FILE 0x00000200L
#define MCI_INFO_MEDIA_UPC 0x00000400L
#define MCI_INFO_MEDIA_IDENTITY 0x00000800L
#define MCI_INFO_NAME 0x00001000L
#define MCI_INFO_COPYRIGHT 0x00002000L
#define MCI_GETDEVCAPS_ITEM 0x00000100L
#define MCI_GETDEVCAPS_CAN_RECORD 0x00000001L
#define MCI_GETDEVCAPS_HAS_AUDIO 0x00000002L
#define MCI_GETDEVCAPS_HAS_VIDEO 0x00000003L
#define MCI_GETDEVCAPS_DEVICE_TYPE 0x00000004L
#define MCI_GETDEVCAPS_USES_FILES 0x00000005L
#define MCI_GETDEVCAPS_COMPOUND_DEVICE 0x00000006L
#define MCI_GETDEVCAPS_CAN_EJECT 0x00000007L
#define MCI_GETDEVCAPS_CAN_PLAY 0x00000008L
#define MCI_GETDEVCAPS_CAN_SAVE 0x00000009L
#define MCI_SYSINFO_QUANTITY 0x00000100L
#define MCI_SYSINFO_OPEN 0x00000200L
#define MCI_SYSINFO_NAME 0x00000400L
#define MCI_SYSINFO_INSTALLNAME 0x00000800L
#define MCI_SET_DOOR_OPEN 0x00000100L
#define MCI_SET_DOOR_CLOSED 0x00000200L
#define MCI_SET_TIME_FORMAT 0x00000400L
#define MCI_SET_AUDIO 0x00000800L
#define MCI_SET_VIDEO 0x00001000L
#define MCI_SET_ON 0x00002000L
#define MCI_SET_OFF 0x00004000L
#define MCI_SET_AUDIO_ALL 0x00000000L
#define MCI_SET_AUDIO_LEFT 0x00000001L
#define MCI_SET_AUDIO_RIGHT 0x00000002L
#define MCI_BREAK_KEY 0x00000100L
#define MCI_BREAK_HWND 0x00000200L
#define MCI_BREAK_OFF 0x00000400L
#define MCI_RECORD_INSERT 0x00000100L
#define MCI_RECORD_OVERWRITE 0x00000200L
#define MCI_SAVE_FILE 0x00000100L
#define MCI_LOAD_FILE 0x00000100L
typedef
struct
{
;
} MCI_GENERIC_PARMS, *PMCI_GENERIC_PARMS, FAR *LPMCI_GENERIC_PARMS;
#ifdef _WIN32
typedef
struct
{
;
;
;
;
;
}
, *
, *
;
typedef
struct
{
;
;
;
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_OPEN_PARMSA MCI_OPEN_PARMS;
typedef PMCI_OPEN_PARMSA PMCI_OPEN_PARMS;
typedef LPMCI_OPEN_PARMSA LPMCI_OPEN_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_OPEN_PARMS {
DWORD dwCallback;
MCIDEVICEID wDeviceID;
WORD wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
} MCI_OPEN_PARMS, FAR *LPMCI_OPEN_PARMS;
#endif
typedef
struct
{
;
;
;
} MCI_PLAY_PARMS, *PMCI_PLAY_PARMS, FAR *LPMCI_PLAY_PARMS;
typedef
struct
{
;
;
} MCI_SEEK_PARMS, *PMCI_SEEK_PARMS, FAR *LPMCI_SEEK_PARMS;
typedef
struct
{
;
;
;
;
} MCI_STATUS_PARMS, *PMCI_STATUS_PARMS, FAR * LPMCI_STATUS_PARMS;
#ifdef _WIN32
typedef
struct
{
;
;
;
}
, *
;
typedef
struct
{
;
;
;
}
, *
;
#ifdef UNICODE
typedef
;
typedef
;
#else
typedef MCI_INFO_PARMSA MCI_INFO_PARMS;
typedef LPMCI_INFO_PARMSA LPMCI_INFO_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_INFO_PARMS {
DWORD dwCallback;
LPSTR lpstrReturn;
DWORD dwRetSize;
} MCI_INFO_PARMS, FAR * LPMCI_INFO_PARMS;
#endif
typedef
struct
{
;
;
;
} MCI_GETDEVCAPS_PARMS, *PMCI_GETDEVCAPS_PARMS, FAR * LPMCI_GETDEVCAPS_PARMS;
#ifdef _WIN32
typedef
struct
{
;
;
;
;
;
}
, *
, *
;
typedef
struct
{
;
;
;
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_SYSINFO_PARMSA MCI_SYSINFO_PARMS;
typedef PMCI_SYSINFO_PARMSA PMCI_SYSINFO_PARMS;
typedef LPMCI_SYSINFO_PARMSA LPMCI_SYSINFO_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_SYSINFO_PARMS {
DWORD dwCallback;
LPSTR lpstrReturn;
DWORD dwRetSize;
DWORD dwNumber;
WORD wDeviceType;
WORD wReserved0;
} MCI_SYSINFO_PARMS, FAR * LPMCI_SYSINFO_PARMS;
#endif
typedef
struct
{
;
;
;
} MCI_SET_PARMS, *PMCI_SET_PARMS, FAR *LPMCI_SET_PARMS;
typedef
struct
{
;
#ifdef _WIN32
int
;
;
#else
short nVirtKey;
WORD wReserved0; /* padding for Win 16 */
HWND hwndBreak;
WORD wReserved1; /* padding for Win 16 */
#endif
} MCI_BREAK_PARMS, *PMCI_BREAK_PARMS, FAR * LPMCI_BREAK_PARMS;
#ifdef _WIN32
typedef
struct
{
;
;
}
, *
, *
;
typedef
struct
{
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_SAVE_PARMSA MCI_SAVE_PARMS;
typedef PMCI_SAVE_PARMSA PMCI_SAVE_PARMS;
typedef LPMCI_SAVE_PARMSA LPMCI_SAVE_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_SAVE_PARMS {
DWORD_PTR dwCallback;
LPCSTR lpfilename;
} MCI_SAVE_PARMS, FAR * LPMCI_SAVE_PARMS;
#endif
#ifdef _WIN32
typedef
struct
{
;
;
}
, *
, *
;
typedef
struct
{
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_LOAD_PARMSA MCI_LOAD_PARMS;
typedef PMCI_LOAD_PARMSA PMCI_LOAD_PARMS;
typedef LPMCI_LOAD_PARMSA LPMCI_LOAD_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_LOAD_PARMS {
DWORD dwCallback;
LPCSTR lpfilename;
} MCI_LOAD_PARMS, FAR * LPMCI_LOAD_PARMS;
#endif
typedef
struct
{
;
;
;
} MCI_RECORD_PARMS, FAR *LPMCI_RECORD_PARMS;
#define MCI_VD_MODE_PARK (MCI_VD_OFFSET + 1)
#define MCI_VD_MEDIA_CLV (MCI_VD_OFFSET + 2)
#define MCI_VD_MEDIA_CAV (MCI_VD_OFFSET + 3)
#define MCI_VD_MEDIA_OTHER (MCI_VD_OFFSET + 4)
#define MCI_VD_FORMAT_TRACK 0x4001
#define MCI_VD_PLAY_REVERSE 0x00010000L
#define MCI_VD_PLAY_FAST 0x00020000L
#define MCI_VD_PLAY_SPEED 0x00040000L
#define MCI_VD_PLAY_SCAN 0x00080000L
#define MCI_VD_PLAY_SLOW 0x00100000L
#define MCI_VD_SEEK_REVERSE 0x00010000L
#define MCI_VD_STATUS_SPEED 0x00004002L
#define MCI_VD_STATUS_FORWARD 0x00004003L
#define MCI_VD_STATUS_MEDIA_TYPE 0x00004004L
#define MCI_VD_STATUS_SIDE 0x00004005L
#define MCI_VD_STATUS_DISC_SIZE 0x00004006L
#define MCI_VD_GETDEVCAPS_CLV 0x00010000L
#define MCI_VD_GETDEVCAPS_CAV 0x00020000L
#define MCI_VD_SPIN_UP 0x00010000L
#define MCI_VD_SPIN_DOWN 0x00020000L
#define MCI_VD_GETDEVCAPS_CAN_REVERSE 0x00004002L
#define MCI_VD_GETDEVCAPS_FAST_RATE 0x00004003L
#define MCI_VD_GETDEVCAPS_SLOW_RATE 0x00004004L
#define MCI_VD_GETDEVCAPS_NORMAL_RATE 0x00004005L
#define MCI_VD_STEP_FRAMES 0x00010000L
#define MCI_VD_STEP_REVERSE 0x00020000L
#define MCI_VD_ESCAPE_STRING 0x00000100L
typedef
struct
{
;
;
;
;
} MCI_VD_PLAY_PARMS, *PMCI_VD_PLAY_PARMS, FAR *LPMCI_VD_PLAY_PARMS;
typedef
struct
{
;
;
} MCI_VD_STEP_PARMS, *PMCI_VD_STEP_PARMS, FAR *LPMCI_VD_STEP_PARMS;
#ifdef _WIN32
typedef
struct
{
;
;
}
, *
, *
;
typedef
struct
{
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMS;
typedef PMCI_VD_ESCAPE_PARMSA PMCI_VD_ESCAPE_PARMS;
typedef LPMCI_VD_ESCAPE_PARMSA LPMCI_VD_ESCAPE_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_VD_ESCAPE_PARMS {
DWORD dwCallback;
LPCSTR lpstrCommand;
} MCI_VD_ESCAPE_PARMS, FAR *LPMCI_VD_ESCAPE_PARMS;
#endif
#define MCI_CDA_STATUS_TYPE_TRACK 0x00004001L
#define MCI_CDA_TRACK_AUDIO (MCI_CD_OFFSET + 0)
#define MCI_CDA_TRACK_OTHER (MCI_CD_OFFSET + 1)
#define MCI_WAVE_PCM (MCI_WAVE_OFFSET + 0)
#define MCI_WAVE_MAPPER (MCI_WAVE_OFFSET + 1)
#define MCI_WAVE_OPEN_BUFFER 0x00010000L
#define MCI_WAVE_SET_FORMATTAG 0x00010000L
#define MCI_WAVE_SET_CHANNELS 0x00020000L
#define MCI_WAVE_SET_SAMPLESPERSEC 0x00040000L
#define MCI_WAVE_SET_AVGBYTESPERSEC 0x00080000L
#define MCI_WAVE_SET_BLOCKALIGN 0x00100000L
#define MCI_WAVE_SET_BITSPERSAMPLE 0x00200000L
#define MCI_WAVE_INPUT 0x00400000L
#define MCI_WAVE_OUTPUT 0x00800000L
#define MCI_WAVE_STATUS_FORMATTAG 0x00004001L
#define MCI_WAVE_STATUS_CHANNELS 0x00004002L
#define MCI_WAVE_STATUS_SAMPLESPERSEC 0x00004003L
#define MCI_WAVE_STATUS_AVGBYTESPERSEC 0x00004004L
#define MCI_WAVE_STATUS_BLOCKALIGN 0x00004005L
#define MCI_WAVE_STATUS_BITSPERSAMPLE 0x00004006L
#define MCI_WAVE_STATUS_LEVEL 0x00004007L
#define MCI_WAVE_SET_ANYINPUT 0x04000000L
#define MCI_WAVE_SET_ANYOUTPUT 0x08000000L
#define MCI_WAVE_GETDEVCAPS_INPUTS 0x00004001L
#define MCI_WAVE_GETDEVCAPS_OUTPUTS 0x00004002L
#ifdef _WIN32
typedef
struct
{
;
;
;
;
;
;
}
, *
, *
;
typedef
struct
{
;
;
;
;
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMS;
typedef PMCI_WAVE_OPEN_PARMSA PMCI_WAVE_OPEN_PARMS;
typedef LPMCI_WAVE_OPEN_PARMSA LPMCI_WAVE_OPEN_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_WAVE_OPEN_PARMS {
DWORD dwCallback;
MCIDEVICEID wDeviceID;
WORD wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
DWORD dwBufferSeconds;
} MCI_WAVE_OPEN_PARMS, FAR *LPMCI_WAVE_OPEN_PARMS;
#endif
typedef
struct
{
;
;
;
} MCI_WAVE_DELETE_PARMS, *PMCI_WAVE_DELETE_PARMS, FAR *LPMCI_WAVE_DELETE_PARMS;
typedef
struct
{
;
;
;
#ifdef _WIN32
;
;
#else
WORD wInput;
WORD wReserved0;
WORD wOutput;
WORD wReserved1;
#endif
;
;
;
;
;
;
;
;
;
;
} MCI_WAVE_SET_PARMS, *PMCI_WAVE_SET_PARMS, FAR * LPMCI_WAVE_SET_PARMS;
#define MCI_SEQ_DIV_PPQN (0 + MCI_SEQ_OFFSET)
#define MCI_SEQ_DIV_SMPTE_24 (1 + MCI_SEQ_OFFSET)
#define MCI_SEQ_DIV_SMPTE_25 (2 + MCI_SEQ_OFFSET)
#define MCI_SEQ_DIV_SMPTE_30DROP (3 + MCI_SEQ_OFFSET)
#define MCI_SEQ_DIV_SMPTE_30 (4 + MCI_SEQ_OFFSET)
#define MCI_SEQ_FORMAT_SONGPTR 0x4001
#define MCI_SEQ_FILE 0x4002
#define MCI_SEQ_MIDI 0x4003
#define MCI_SEQ_SMPTE 0x4004
#define MCI_SEQ_NONE 65533
#define MCI_SEQ_MAPPER 65535
#define MCI_SEQ_STATUS_TEMPO 0x00004002L
#define MCI_SEQ_STATUS_PORT 0x00004003L
#define MCI_SEQ_STATUS_SLAVE 0x00004007L
#define MCI_SEQ_STATUS_MASTER 0x00004008L
#define MCI_SEQ_STATUS_OFFSET 0x00004009L
#define MCI_SEQ_STATUS_DIVTYPE 0x0000400AL
#define MCI_SEQ_STATUS_NAME 0x0000400BL
#define MCI_SEQ_STATUS_COPYRIGHT 0x0000400CL
#define MCI_SEQ_SET_TEMPO 0x00010000L
#define MCI_SEQ_SET_PORT 0x00020000L
#define MCI_SEQ_SET_SLAVE 0x00040000L
#define MCI_SEQ_SET_MASTER 0x00080000L
#define MCI_SEQ_SET_OFFSET 0x01000000L
typedef
struct
{
;
;
;
;
;
;
;
;
} MCI_SEQ_SET_PARMS, *PMCI_SEQ_SET_PARMS, FAR * LPMCI_SEQ_SET_PARMS;
#define MCI_ANIM_OPEN_WS 0x00010000L
#define MCI_ANIM_OPEN_PARENT 0x00020000L
#define MCI_ANIM_OPEN_NOSTATIC 0x00040000L
#define MCI_ANIM_PLAY_SPEED 0x00010000L
#define MCI_ANIM_PLAY_REVERSE 0x00020000L
#define MCI_ANIM_PLAY_FAST 0x00040000L
#define MCI_ANIM_PLAY_SLOW 0x00080000L
#define MCI_ANIM_PLAY_SCAN 0x00100000L
#define MCI_ANIM_STEP_REVERSE 0x00010000L
#define MCI_ANIM_STEP_FRAMES 0x00020000L
#define MCI_ANIM_STATUS_SPEED 0x00004001L
#define MCI_ANIM_STATUS_FORWARD 0x00004002L
#define MCI_ANIM_STATUS_HWND 0x00004003L
#define MCI_ANIM_STATUS_HPAL 0x00004004L
#define MCI_ANIM_STATUS_STRETCH 0x00004005L
#define MCI_ANIM_INFO_TEXT 0x00010000L
#define MCI_ANIM_GETDEVCAPS_CAN_REVERSE 0x00004001L
#define MCI_ANIM_GETDEVCAPS_FAST_RATE 0x00004002L
#define MCI_ANIM_GETDEVCAPS_SLOW_RATE 0x00004003L
#define MCI_ANIM_GETDEVCAPS_NORMAL_RATE 0x00004004L
#define MCI_ANIM_GETDEVCAPS_PALETTES 0x00004006L
#define MCI_ANIM_GETDEVCAPS_CAN_STRETCH 0x00004007L
#define MCI_ANIM_GETDEVCAPS_MAX_WINDOWS 0x00004008L
#define MCI_ANIM_REALIZE_NORM 0x00010000L
#define MCI_ANIM_REALIZE_BKGD 0x00020000L
#define MCI_ANIM_WINDOW_HWND 0x00010000L
#define MCI_ANIM_WINDOW_STATE 0x00040000L
#define MCI_ANIM_WINDOW_TEXT 0x00080000L
#define MCI_ANIM_WINDOW_ENABLE_STRETCH 0x00100000L
#define MCI_ANIM_WINDOW_DISABLE_STRETCH 0x00200000L
#define MCI_ANIM_WINDOW_DEFAULT 0x00000000L
#define MCI_ANIM_RECT 0x00010000L
#define MCI_ANIM_PUT_SOURCE 0x00020000L
#define MCI_ANIM_PUT_DESTINATION 0x00040000L
#define MCI_ANIM_WHERE_SOURCE 0x00020000L
#define MCI_ANIM_WHERE_DESTINATION 0x00040000L
#define MCI_ANIM_UPDATE_HDC 0x00020000L
#ifdef _WIN32
typedef
struct
{
;
;
;
;
;
;
;
}
, *
, *
;
typedef
struct
{
;
;
;
;
;
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMS;
typedef PMCI_ANIM_OPEN_PARMSA PMCI_ANIM_OPEN_PARMS;
typedef LPMCI_ANIM_OPEN_PARMSA LPMCI_ANIM_OPEN_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_ANIM_OPEN_PARMS {
DWORD dwCallback;
MCIDEVICEID wDeviceID;
WORD wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
DWORD dwStyle;
HWND hWndParent;
WORD wReserved1;
} MCI_ANIM_OPEN_PARMS, FAR *LPMCI_ANIM_OPEN_PARMS;
#endif
typedef
struct
{
;
;
;
;
} MCI_ANIM_PLAY_PARMS, *PMCI_ANIM_PLAY_PARMS, FAR *LPMCI_ANIM_PLAY_PARMS;
typedef
struct
{
;
;
} MCI_ANIM_STEP_PARMS, *PMCI_ANIM_STEP_PARMS, FAR *LPMCI_ANIM_STEP_PARMS;
#ifdef _WIN32
typedef
struct
tagMCI_ANIM_WINDOW_PARMSA
{
;
;
;
;
}
, *
, *
;
typedef
struct
tagMCI_ANIM_WINDOW_PARMSW
{
;
;
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMS;
typedef PMCI_ANIM_WINDOW_PARMSA PMCI_ANIM_WINDOW_PARMS;
typedef LPMCI_ANIM_WINDOW_PARMSA LPMCI_ANIM_WINDOW_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_ANIM_WINDOW_PARMS {
DWORD dwCallback;
HWND hWnd;
WORD wReserved1;
WORD nCmdShow;
WORD wReserved2;
LPCSTR lpstrText;
} MCI_ANIM_WINDOW_PARMS, FAR * LPMCI_ANIM_WINDOW_PARMS;
#endif
typedef
struct
{
;
#ifdef MCI_USE_OFFEXT
POINT ptOffset;
POINT ptExtent;
#else /* ifdef MCI_USE_OFFEXT */
;
#endif /* ifdef MCI_USE_OFFEXT */
}
;
typedef
*
;
typedef MCI_ANIM_RECT_PARMS FAR * LPMCI_ANIM_RECT_PARMS;
typedef
struct
{
;
;
;
} MCI_ANIM_UPDATE_PARMS, *PMCI_ANIM_UPDATE_PARMS, FAR * LPMCI_ANIM_UPDATE_PARMS;
#define MCI_OVLY_OPEN_WS 0x00010000L
#define MCI_OVLY_OPEN_PARENT 0x00020000L
#define MCI_OVLY_STATUS_HWND 0x00004001L
#define MCI_OVLY_STATUS_STRETCH 0x00004002L
#define MCI_OVLY_INFO_TEXT 0x00010000L
#define MCI_OVLY_GETDEVCAPS_CAN_STRETCH 0x00004001L
#define MCI_OVLY_GETDEVCAPS_CAN_FREEZE 0x00004002L
#define MCI_OVLY_GETDEVCAPS_MAX_WINDOWS 0x00004003L
#define MCI_OVLY_WINDOW_HWND 0x00010000L
#define MCI_OVLY_WINDOW_STATE 0x00040000L
#define MCI_OVLY_WINDOW_TEXT 0x00080000L
#define MCI_OVLY_WINDOW_ENABLE_STRETCH 0x00100000L
#define MCI_OVLY_WINDOW_DISABLE_STRETCH 0x00200000L
#define MCI_OVLY_WINDOW_DEFAULT 0x00000000L
#define MCI_OVLY_RECT 0x00010000L
#define MCI_OVLY_PUT_SOURCE 0x00020000L
#define MCI_OVLY_PUT_DESTINATION 0x00040000L
#define MCI_OVLY_PUT_FRAME 0x00080000L
#define MCI_OVLY_PUT_VIDEO 0x00100000L
#define MCI_OVLY_WHERE_SOURCE 0x00020000L
#define MCI_OVLY_WHERE_DESTINATION 0x00040000L
#define MCI_OVLY_WHERE_FRAME 0x00080000L
#define MCI_OVLY_WHERE_VIDEO 0x00100000L
#ifdef _WIN32
typedef
struct
{
;
;
;
;
;
;
;
}
, *
, *
;
typedef
struct
{
;
;
;
;
;
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMS;
typedef PMCI_OVLY_OPEN_PARMSA PMCI_OVLY_OPEN_PARMS;
typedef LPMCI_OVLY_OPEN_PARMSA LPMCI_OVLY_OPEN_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_OVLY_OPEN_PARMS {
DWORD dwCallback;
MCIDEVICEID wDeviceID;
WORD wReserved0;
LPCSTR lpstrDeviceType;
LPCSTR lpstrElementName;
LPCSTR lpstrAlias;
DWORD dwStyle;
HWND hWndParent;
WORD wReserved1;
} MCI_OVLY_OPEN_PARMS, FAR *LPMCI_OVLY_OPEN_PARMS;
#endif
#ifdef _WIN32
typedef
struct
tagMCI_OVLY_WINDOW_PARMSA
{
;
;
;
;
}
, *
, *
;
typedef
struct
tagMCI_OVLY_WINDOW_PARMSW
{
;
;
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMS;
typedef PMCI_OVLY_WINDOW_PARMSA PMCI_OVLY_WINDOW_PARMS;
typedef LPMCI_OVLY_WINDOW_PARMSA LPMCI_OVLY_WINDOW_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_OVLY_WINDOW_PARMS {
DWORD dwCallback;
HWND hWnd;
WORD wReserved1;
UINT nCmdShow;
WORD wReserved2;
LPCSTR lpstrText;
} MCI_OVLY_WINDOW_PARMS, FAR * LPMCI_OVLY_WINDOW_PARMS;
#endif
typedef
struct
{
;
#ifdef MCI_USE_OFFEXT
POINT ptOffset;
POINT ptExtent;
#else /* ifdef MCI_USE_OFFEXT */
;
#endif /* ifdef MCI_USE_OFFEXT */
} MCI_OVLY_RECT_PARMS, *PMCI_OVLY_RECT_PARMS, FAR * LPMCI_OVLY_RECT_PARMS;
#ifdef _WIN32
typedef
struct
{
;
;
;
}
, *
, *
;
typedef
struct
{
;
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMS;
typedef PMCI_OVLY_SAVE_PARMSA PMCI_OVLY_SAVE_PARMS;
typedef LPMCI_OVLY_SAVE_PARMSA LPMCI_OVLY_SAVE_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_OVLY_SAVE_PARMS {
DWORD dwCallback;
LPCSTR lpfilename;
RECT rc;
} MCI_OVLY_SAVE_PARMS, FAR * LPMCI_OVLY_SAVE_PARMS;
#endif
#ifdef _WIN32
typedef
struct
{
;
;
;
}
, *
, *
;
typedef
struct
{
;
;
;
}
, *
, *
;
#ifdef UNICODE
typedef
;
typedef
;
typedef
;
#else
typedef MCI_OVLY_LOAD_PARMSA MCI_OVLY_LOAD_PARMS;
typedef PMCI_OVLY_LOAD_PARMSA PMCI_OVLY_LOAD_PARMS;
typedef LPMCI_OVLY_LOAD_PARMSA LPMCI_OVLY_LOAD_PARMS;
#endif // UNICODE
#else
typedef struct tagMCI_OVLY_LOAD_PARMS {
DWORD dwCallback;
LPCSTR lpfilename;
RECT rc;
} MCI_OVLY_LOAD_PARMS, FAR * LPMCI_OVLY_LOAD_PARMS;
#endif
(
);
(
,
,
);
(
,
);
(
);
(
,
,
);
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#pragma endregion
#ifdef __cplusplus
}
#endif
#endif // _MCIAPI_H_