master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6
  7#ifndef _MCIAPI_H_
  8#define _MCIAPI_H_
  9
 10#include <apiset.h>
 11#include <apisetcconv.h>
 12
 13#include <mmsyscom.h>
 14
 15#ifdef __cplusplus
 16extern "C" {
 17#endif
 18
 19#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
 20
 21#ifndef _MCIERROR_
 22#define _MCIERROR_
 23typedef DWORD MCIERROR;
 24#endif
 25
 26#ifndef _MCIDEVICEID_
 27#define _MCIDEVICEID_
 28typedef UINT  MCIDEVICEID;
 29#endif
 30
 31typedef UINT (CALLBACK *YIELDPROC)(MCIDEVICEID mciId, DWORD dwYieldData);
 32
 33WINMMAPI MCIERROR WINAPI mciSendCommandA(MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
 34WINMMAPI MCIERROR WINAPI mciSendCommandW(MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
 35#define mciSendCommand __MINGW_NAME_AW(mciSendCommand)
 36
 37WINMMAPI MCIERROR WINAPI mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
 38WINMMAPI MCIERROR WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
 39#define mciSendString __MINGW_NAME_AW(mciSendString)
 40
 41WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDA(LPCSTR pszDevice);
 42WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDW(LPCWSTR pszDevice);
 43#define mciGetDeviceID __MINGW_NAME_AW(mciGetDeviceID)
 44
 45WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDA(DWORD dwElementID, LPCSTR lpstrType);
 46WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDW(DWORD dwElementID, LPCWSTR lpstrType);
 47#define mciGetDeviceIDFromElementID __MINGW_NAME_AW(mciGetDeviceIDFromElementID)
 48
 49WINMMAPI WINBOOL WINAPI mciGetErrorStringA(MCIERROR mcierr, LPSTR pszText, UINT cchText);
 50WINMMAPI WINBOOL WINAPI mciGetErrorStringW(MCIERROR mcierr, LPWSTR pszText, UINT cchText);
 51#define mciGetErrorString __MINGW_NAME_AW(mciGetErrorString)
 52
 53WINMMAPI WINBOOL WINAPI mciSetYieldProc(MCIDEVICEID mciId, YIELDPROC fpYieldProc, DWORD dwYieldData);
 54
 55WINMMAPI HTASK WINAPI mciGetCreatorTask(MCIDEVICEID mciId);
 56WINMMAPI YIELDPROC WINAPI mciGetYieldProc(MCIDEVICEID mciId, LPDWORD pdwYieldData);
 57
 58WINMMAPI WINBOOL WINAPI mciExecute(LPCSTR pszCommand);
 59
 60#define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE + 1)
 61#define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE + 3)
 62#define MCIERR_UNRECOGNIZED_COMMAND (MCIERR_BASE + 5)
 63#define MCIERR_HARDWARE (MCIERR_BASE + 6)
 64#define MCIERR_INVALID_DEVICE_NAME (MCIERR_BASE + 7)
 65#define MCIERR_OUT_OF_MEMORY (MCIERR_BASE + 8)
 66#define MCIERR_DEVICE_OPEN (MCIERR_BASE + 9)
 67#define MCIERR_CANNOT_LOAD_DRIVER (MCIERR_BASE + 10)
 68#define MCIERR_MISSING_COMMAND_STRING (MCIERR_BASE + 11)
 69#define MCIERR_PARAM_OVERFLOW (MCIERR_BASE + 12)
 70#define MCIERR_MISSING_STRING_ARGUMENT (MCIERR_BASE + 13)
 71#define MCIERR_BAD_INTEGER (MCIERR_BASE + 14)
 72#define MCIERR_PARSER_INTERNAL (MCIERR_BASE + 15)
 73#define MCIERR_DRIVER_INTERNAL (MCIERR_BASE + 16)
 74#define MCIERR_MISSING_PARAMETER (MCIERR_BASE + 17)
 75#define MCIERR_UNSUPPORTED_FUNCTION (MCIERR_BASE + 18)
 76#define MCIERR_FILE_NOT_FOUND (MCIERR_BASE + 19)
 77#define MCIERR_DEVICE_NOT_READY (MCIERR_BASE + 20)
 78#define MCIERR_INTERNAL (MCIERR_BASE + 21)
 79#define MCIERR_DRIVER (MCIERR_BASE + 22)
 80#define MCIERR_CANNOT_USE_ALL (MCIERR_BASE + 23)
 81#define MCIERR_MULTIPLE (MCIERR_BASE + 24)
 82#define MCIERR_EXTENSION_NOT_FOUND (MCIERR_BASE + 25)
 83#define MCIERR_OUTOFRANGE (MCIERR_BASE + 26)
 84#define MCIERR_FLAGS_NOT_COMPATIBLE (MCIERR_BASE + 28)
 85#define MCIERR_FILE_NOT_SAVED (MCIERR_BASE + 30)
 86#define MCIERR_DEVICE_TYPE_REQUIRED (MCIERR_BASE + 31)
 87#define MCIERR_DEVICE_LOCKED (MCIERR_BASE + 32)
 88#define MCIERR_DUPLICATE_ALIAS (MCIERR_BASE + 33)
 89#define MCIERR_BAD_CONSTANT (MCIERR_BASE + 34)
 90#define MCIERR_MUST_USE_SHAREABLE (MCIERR_BASE + 35)
 91#define MCIERR_MISSING_DEVICE_NAME (MCIERR_BASE + 36)
 92#define MCIERR_BAD_TIME_FORMAT (MCIERR_BASE + 37)
 93#define MCIERR_NO_CLOSING_QUOTE (MCIERR_BASE + 38)
 94#define MCIERR_DUPLICATE_FLAGS (MCIERR_BASE + 39)
 95#define MCIERR_INVALID_FILE (MCIERR_BASE + 40)
 96#define MCIERR_NULL_PARAMETER_BLOCK (MCIERR_BASE + 41)
 97#define MCIERR_UNNAMED_RESOURCE (MCIERR_BASE + 42)
 98#define MCIERR_NEW_REQUIRES_ALIAS (MCIERR_BASE + 43)
 99#define MCIERR_NOTIFY_ON_AUTO_OPEN (MCIERR_BASE + 44)
100#define MCIERR_NO_ELEMENT_ALLOWED (MCIERR_BASE + 45)
101#define MCIERR_NONAPPLICABLE_FUNCTION (MCIERR_BASE + 46)
102#define MCIERR_ILLEGAL_FOR_AUTO_OPEN (MCIERR_BASE + 47)
103#define MCIERR_FILENAME_REQUIRED (MCIERR_BASE + 48)
104#define MCIERR_EXTRA_CHARACTERS (MCIERR_BASE + 49)
105#define MCIERR_DEVICE_NOT_INSTALLED (MCIERR_BASE + 50)
106#define MCIERR_GET_CD (MCIERR_BASE + 51)
107#define MCIERR_SET_CD (MCIERR_BASE + 52)
108#define MCIERR_SET_DRIVE (MCIERR_BASE + 53)
109#define MCIERR_DEVICE_LENGTH (MCIERR_BASE + 54)
110#define MCIERR_DEVICE_ORD_LENGTH (MCIERR_BASE + 55)
111#define MCIERR_NO_INTEGER (MCIERR_BASE + 56)
112
113#define MCIERR_WAVE_OUTPUTSINUSE (MCIERR_BASE + 64)
114#define MCIERR_WAVE_SETOUTPUTINUSE (MCIERR_BASE + 65)
115#define MCIERR_WAVE_INPUTSINUSE (MCIERR_BASE + 66)
116#define MCIERR_WAVE_SETINPUTINUSE (MCIERR_BASE + 67)
117#define MCIERR_WAVE_OUTPUTUNSPECIFIED (MCIERR_BASE + 68)
118#define MCIERR_WAVE_INPUTUNSPECIFIED (MCIERR_BASE + 69)
119#define MCIERR_WAVE_OUTPUTSUNSUITABLE (MCIERR_BASE + 70)
120#define MCIERR_WAVE_SETOUTPUTUNSUITABLE (MCIERR_BASE + 71)
121#define MCIERR_WAVE_INPUTSUNSUITABLE (MCIERR_BASE + 72)
122#define MCIERR_WAVE_SETINPUTUNSUITABLE (MCIERR_BASE + 73)
123
124#define MCIERR_SEQ_DIV_INCOMPATIBLE (MCIERR_BASE + 80)
125#define MCIERR_SEQ_PORT_INUSE (MCIERR_BASE + 81)
126#define MCIERR_SEQ_PORT_NONEXISTENT (MCIERR_BASE + 82)
127#define MCIERR_SEQ_PORT_MAPNODEVICE (MCIERR_BASE + 83)
128#define MCIERR_SEQ_PORT_MISCERROR (MCIERR_BASE + 84)
129#define MCIERR_SEQ_TIMER (MCIERR_BASE + 85)
130#define MCIERR_SEQ_PORTUNSPECIFIED (MCIERR_BASE + 86)
131#define MCIERR_SEQ_NOMIDIPRESENT (MCIERR_BASE + 87)
132
133#define MCIERR_NO_WINDOW (MCIERR_BASE + 90)
134#define MCIERR_CREATEWINDOW (MCIERR_BASE + 91)
135#define MCIERR_FILE_READ (MCIERR_BASE + 92)
136#define MCIERR_FILE_WRITE (MCIERR_BASE + 93)
137
138#define MCIERR_NO_IDENTITY (MCIERR_BASE + 94)
139
140#define MCIERR_CUSTOM_DRIVER_BASE (MCIERR_BASE + 256)
141
142#define MCI_FIRST DRV_MCI_FIRST
143
144#define MCI_OPEN 0x0803
145#define MCI_CLOSE 0x0804
146#define MCI_ESCAPE 0x0805
147#define MCI_PLAY 0x0806
148#define MCI_SEEK 0x0807
149#define MCI_STOP 0x0808
150#define MCI_PAUSE 0x0809
151#define MCI_INFO 0x080A
152#define MCI_GETDEVCAPS 0x080B
153#define MCI_SPIN 0x080C
154#define MCI_SET 0x080D
155#define MCI_STEP 0x080E
156#define MCI_RECORD 0x080F
157#define MCI_SYSINFO 0x0810
158#define MCI_BREAK 0x0811
159#define MCI_SAVE 0x0813
160#define MCI_STATUS 0x0814
161#define MCI_CUE 0x0830
162#define MCI_REALIZE 0x0840
163#define MCI_WINDOW 0x0841
164#define MCI_PUT 0x0842
165#define MCI_WHERE 0x0843
166#define MCI_FREEZE 0x0844
167#define MCI_UNFREEZE 0x0845
168#define MCI_LOAD 0x0850
169#define MCI_CUT 0x0851
170#define MCI_COPY 0x0852
171#define MCI_PASTE 0x0853
172#define MCI_UPDATE 0x0854
173#define MCI_RESUME 0x0855
174#define MCI_DELETE 0x0856
175
176#define MCI_USER_MESSAGES (DRV_MCI_FIRST + 0x400)
177#define MCI_LAST 0x0FFF
178
179#define MCI_ALL_DEVICE_ID ((MCIDEVICEID)-1)
180
181#define MCI_DEVTYPE_VCR 513
182#define MCI_DEVTYPE_VIDEODISC 514
183#define MCI_DEVTYPE_OVERLAY 515
184#define MCI_DEVTYPE_CD_AUDIO 516
185#define MCI_DEVTYPE_DAT 517
186#define MCI_DEVTYPE_SCANNER 518
187#define MCI_DEVTYPE_ANIMATION 519
188#define MCI_DEVTYPE_DIGITAL_VIDEO 520
189#define MCI_DEVTYPE_OTHER 521
190#define MCI_DEVTYPE_WAVEFORM_AUDIO 522
191#define MCI_DEVTYPE_SEQUENCER 523
192
193#define MCI_DEVTYPE_FIRST MCI_DEVTYPE_VCR
194#define MCI_DEVTYPE_LAST MCI_DEVTYPE_SEQUENCER
195
196#define MCI_DEVTYPE_FIRST_USER 0x1000
197
198#define MCI_MODE_NOT_READY (MCI_STRING_OFFSET + 12)
199#define MCI_MODE_STOP (MCI_STRING_OFFSET + 13)
200#define MCI_MODE_PLAY (MCI_STRING_OFFSET + 14)
201#define MCI_MODE_RECORD (MCI_STRING_OFFSET + 15)
202#define MCI_MODE_SEEK (MCI_STRING_OFFSET + 16)
203#define MCI_MODE_PAUSE (MCI_STRING_OFFSET + 17)
204#define MCI_MODE_OPEN (MCI_STRING_OFFSET + 18)
205
206#define MCI_FORMAT_MILLISECONDS 0
207#define MCI_FORMAT_HMS 1
208#define MCI_FORMAT_MSF 2
209#define MCI_FORMAT_FRAMES 3
210#define MCI_FORMAT_SMPTE_24 4
211#define MCI_FORMAT_SMPTE_25 5
212#define MCI_FORMAT_SMPTE_30 6
213#define MCI_FORMAT_SMPTE_30DROP 7
214#define MCI_FORMAT_BYTES 8
215#define MCI_FORMAT_SAMPLES 9
216#define MCI_FORMAT_TMSF 10
217
218#define MCI_MSF_MINUTE(msf) ((BYTE)(msf))
219#define MCI_MSF_SECOND(msf) ((BYTE)(((WORD)(msf)) >> 8))
220#define MCI_MSF_FRAME(msf) ((BYTE)((msf)>>16))
221
222#define MCI_MAKE_MSF(m, s, f) ((DWORD)(((BYTE)(m) | ((WORD)(s)<<8)) | (((DWORD)(BYTE)(f))<<16)))
223
224#define MCI_TMSF_TRACK(tmsf) ((BYTE)(tmsf))
225#define MCI_TMSF_MINUTE(tmsf) ((BYTE)(((WORD)(tmsf)) >> 8))
226#define MCI_TMSF_SECOND(tmsf) ((BYTE)((tmsf)>>16))
227#define MCI_TMSF_FRAME(tmsf) ((BYTE)((tmsf)>>24))
228
229#define MCI_MAKE_TMSF(t, m, s, f) ((DWORD)(((BYTE)(t) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s) | ((WORD)(f)<<8))<<16)))
230
231#define MCI_HMS_HOUR(hms) ((BYTE)(hms))
232#define MCI_HMS_MINUTE(hms) ((BYTE)(((WORD)(hms)) >> 8))
233#define MCI_HMS_SECOND(hms) ((BYTE)((hms)>>16))
234
235#define MCI_MAKE_HMS(h, m, s) ((DWORD)(((BYTE)(h) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s))<<16)))
236
237#define MCI_NOTIFY_SUCCESSFUL 0x0001
238#define MCI_NOTIFY_SUPERSEDED 0x0002
239#define MCI_NOTIFY_ABORTED 0x0004
240#define MCI_NOTIFY_FAILURE 0x0008
241
242#define MCI_NOTIFY __MSABI_LONG(0x00000001)
243#define MCI_WAIT __MSABI_LONG(0x00000002)
244#define MCI_FROM __MSABI_LONG(0x00000004)
245#define MCI_TO __MSABI_LONG(0x00000008)
246#define MCI_TRACK __MSABI_LONG(0x00000010)
247
248#define MCI_OPEN_SHAREABLE __MSABI_LONG(0x00000100)
249#define MCI_OPEN_ELEMENT __MSABI_LONG(0x00000200)
250#define MCI_OPEN_ALIAS __MSABI_LONG(0x00000400)
251#define MCI_OPEN_ELEMENT_ID __MSABI_LONG(0x00000800)
252#define MCI_OPEN_TYPE_ID __MSABI_LONG(0x00001000)
253#define MCI_OPEN_TYPE __MSABI_LONG(0x00002000)
254
255#define MCI_SEEK_TO_START __MSABI_LONG(0x00000100)
256#define MCI_SEEK_TO_END __MSABI_LONG(0x00000200)
257
258#define MCI_STATUS_ITEM __MSABI_LONG(0x00000100)
259#define MCI_STATUS_START __MSABI_LONG(0x00000200)
260
261#define MCI_STATUS_LENGTH __MSABI_LONG(0x00000001)
262#define MCI_STATUS_POSITION __MSABI_LONG(0x00000002)
263#define MCI_STATUS_NUMBER_OF_TRACKS __MSABI_LONG(0x00000003)
264#define MCI_STATUS_MODE __MSABI_LONG(0x00000004)
265#define MCI_STATUS_MEDIA_PRESENT __MSABI_LONG(0x00000005)
266#define MCI_STATUS_TIME_FORMAT __MSABI_LONG(0x00000006)
267#define MCI_STATUS_READY __MSABI_LONG(0x00000007)
268#define MCI_STATUS_CURRENT_TRACK __MSABI_LONG(0x00000008)
269
270#define MCI_INFO_PRODUCT __MSABI_LONG(0x00000100)
271#define MCI_INFO_FILE __MSABI_LONG(0x00000200)
272#define MCI_INFO_MEDIA_UPC __MSABI_LONG(0x00000400)
273#define MCI_INFO_MEDIA_IDENTITY __MSABI_LONG(0x00000800)
274#define MCI_INFO_NAME __MSABI_LONG(0x00001000)
275#define MCI_INFO_COPYRIGHT __MSABI_LONG(0x00002000)
276
277#define MCI_GETDEVCAPS_ITEM __MSABI_LONG(0x00000100)
278
279#define MCI_GETDEVCAPS_CAN_RECORD __MSABI_LONG(0x00000001)
280#define MCI_GETDEVCAPS_HAS_AUDIO __MSABI_LONG(0x00000002)
281#define MCI_GETDEVCAPS_HAS_VIDEO __MSABI_LONG(0x00000003)
282#define MCI_GETDEVCAPS_DEVICE_TYPE __MSABI_LONG(0x00000004)
283#define MCI_GETDEVCAPS_USES_FILES __MSABI_LONG(0x00000005)
284#define MCI_GETDEVCAPS_COMPOUND_DEVICE __MSABI_LONG(0x00000006)
285#define MCI_GETDEVCAPS_CAN_EJECT __MSABI_LONG(0x00000007)
286#define MCI_GETDEVCAPS_CAN_PLAY __MSABI_LONG(0x00000008)
287#define MCI_GETDEVCAPS_CAN_SAVE __MSABI_LONG(0x00000009)
288
289#define MCI_SYSINFO_QUANTITY __MSABI_LONG(0x00000100)
290#define MCI_SYSINFO_OPEN __MSABI_LONG(0x00000200)
291#define MCI_SYSINFO_NAME __MSABI_LONG(0x00000400)
292#define MCI_SYSINFO_INSTALLNAME __MSABI_LONG(0x00000800)
293
294#define MCI_SET_DOOR_OPEN __MSABI_LONG(0x00000100)
295#define MCI_SET_DOOR_CLOSED __MSABI_LONG(0x00000200)
296#define MCI_SET_TIME_FORMAT __MSABI_LONG(0x00000400)
297#define MCI_SET_AUDIO __MSABI_LONG(0x00000800)
298#define MCI_SET_VIDEO __MSABI_LONG(0x00001000)
299#define MCI_SET_ON __MSABI_LONG(0x00002000)
300#define MCI_SET_OFF __MSABI_LONG(0x00004000)
301
302#define MCI_SET_AUDIO_ALL __MSABI_LONG(0x00000000)
303#define MCI_SET_AUDIO_LEFT __MSABI_LONG(0x00000001)
304#define MCI_SET_AUDIO_RIGHT __MSABI_LONG(0x00000002)
305
306#define MCI_BREAK_KEY __MSABI_LONG(0x00000100)
307#define MCI_BREAK_HWND __MSABI_LONG(0x00000200)
308#define MCI_BREAK_OFF __MSABI_LONG(0x00000400)
309
310#define MCI_RECORD_INSERT __MSABI_LONG(0x00000100)
311#define MCI_RECORD_OVERWRITE __MSABI_LONG(0x00000200)
312
313#define MCI_SAVE_FILE __MSABI_LONG(0x00000100)
314
315#define MCI_LOAD_FILE __MSABI_LONG(0x00000100)
316
317typedef struct tagMCI_GENERIC_PARMS {
318  DWORD_PTR dwCallback;
319} MCI_GENERIC_PARMS, *PMCI_GENERIC_PARMS, *LPMCI_GENERIC_PARMS;
320
321typedef struct tagMCI_OPEN_PARMSA {
322  DWORD_PTR dwCallback;
323  MCIDEVICEID wDeviceID;
324  LPCSTR lpstrDeviceType;
325  LPCSTR lpstrElementName;
326  LPCSTR lpstrAlias;
327} MCI_OPEN_PARMSA, *PMCI_OPEN_PARMSA, *LPMCI_OPEN_PARMSA;
328
329typedef struct tagMCI_OPEN_PARMSW {
330  DWORD_PTR dwCallback;
331  MCIDEVICEID wDeviceID;
332  LPCWSTR lpstrDeviceType;
333  LPCWSTR lpstrElementName;
334  LPCWSTR lpstrAlias;
335} MCI_OPEN_PARMSW, *PMCI_OPEN_PARMSW, *LPMCI_OPEN_PARMSW;
336
337__MINGW_TYPEDEF_AW(MCI_OPEN_PARMS)
338__MINGW_TYPEDEF_AW(PMCI_OPEN_PARMS)
339__MINGW_TYPEDEF_AW(LPMCI_OPEN_PARMS)
340
341typedef struct tagMCI_PLAY_PARMS {
342  DWORD_PTR dwCallback;
343  DWORD dwFrom;
344  DWORD dwTo;
345} MCI_PLAY_PARMS, *PMCI_PLAY_PARMS, *LPMCI_PLAY_PARMS;
346
347typedef struct tagMCI_SEEK_PARMS {
348  DWORD_PTR dwCallback;
349  DWORD dwTo;
350} MCI_SEEK_PARMS, *PMCI_SEEK_PARMS, *LPMCI_SEEK_PARMS;
351
352typedef struct tagMCI_STATUS_PARMS {
353  DWORD_PTR dwCallback;
354  DWORD_PTR dwReturn;
355  DWORD dwItem;
356  DWORD dwTrack;
357} MCI_STATUS_PARMS, *PMCI_STATUS_PARMS, *LPMCI_STATUS_PARMS;
358
359typedef struct tagMCI_INFO_PARMSA {
360  DWORD_PTR dwCallback;
361  LPSTR lpstrReturn;
362  DWORD dwRetSize;
363} MCI_INFO_PARMSA, *LPMCI_INFO_PARMSA;
364
365typedef struct tagMCI_INFO_PARMSW {
366  DWORD_PTR dwCallback;
367  LPWSTR  lpstrReturn;
368  DWORD   dwRetSize;
369} MCI_INFO_PARMSW, *LPMCI_INFO_PARMSW;
370
371__MINGW_TYPEDEF_AW(MCI_INFO_PARMS)
372__MINGW_TYPEDEF_AW(LPMCI_INFO_PARMS)
373
374typedef struct tagMCI_GETDEVCAPS_PARMS {
375  DWORD_PTR dwCallback;
376  DWORD dwReturn;
377  DWORD dwItem;
378} MCI_GETDEVCAPS_PARMS, *PMCI_GETDEVCAPS_PARMS, *LPMCI_GETDEVCAPS_PARMS;
379
380typedef struct tagMCI_SYSINFO_PARMSA {
381  DWORD_PTR dwCallback;
382  LPSTR lpstrReturn;
383  DWORD dwRetSize;
384  DWORD dwNumber;
385  UINT wDeviceType;
386} MCI_SYSINFO_PARMSA, *PMCI_SYSINFO_PARMSA, *LPMCI_SYSINFO_PARMSA;
387
388typedef struct tagMCI_SYSINFO_PARMSW {
389  DWORD_PTR dwCallback;
390  LPWSTR lpstrReturn;
391  DWORD dwRetSize;
392  DWORD dwNumber;
393  UINT wDeviceType;
394} MCI_SYSINFO_PARMSW, *PMCI_SYSINFO_PARMSW, *LPMCI_SYSINFO_PARMSW;
395
396__MINGW_TYPEDEF_AW(MCI_SYSINFO_PARMS)
397__MINGW_TYPEDEF_AW(PMCI_SYSINFO_PARMS)
398__MINGW_TYPEDEF_AW(LPMCI_SYSINFO_PARMS)
399
400typedef struct tagMCI_SET_PARMS {
401  DWORD_PTR dwCallback;
402  DWORD dwTimeFormat;
403  DWORD dwAudio;
404} MCI_SET_PARMS, *PMCI_SET_PARMS, *LPMCI_SET_PARMS;
405
406typedef struct tagMCI_BREAK_PARMS {
407  DWORD_PTR dwCallback;
408  int nVirtKey;
409  HWND hwndBreak;
410} MCI_BREAK_PARMS, *PMCI_BREAK_PARMS, *LPMCI_BREAK_PARMS;
411
412typedef struct tagMCI_SAVE_PARMSA {
413  DWORD_PTR dwCallback;
414  LPCSTR lpfilename;
415} MCI_SAVE_PARMSA, *PMCI_SAVE_PARMSA, *LPMCI_SAVE_PARMSA;
416
417typedef struct tagMCI_SAVE_PARMSW {
418  DWORD_PTR dwCallback;
419  LPCWSTR lpfilename;
420} MCI_SAVE_PARMSW, *PMCI_SAVE_PARMSW, *LPMCI_SAVE_PARMSW;
421
422__MINGW_TYPEDEF_AW(MCI_SAVE_PARMS)
423__MINGW_TYPEDEF_AW(PMCI_SAVE_PARMS)
424__MINGW_TYPEDEF_AW(LPMCI_SAVE_PARMS)
425
426typedef struct tagMCI_LOAD_PARMSA {
427  DWORD_PTR dwCallback;
428  LPCSTR lpfilename;
429} MCI_LOAD_PARMSA, *PMCI_LOAD_PARMSA, *LPMCI_LOAD_PARMSA;
430
431typedef struct tagMCI_LOAD_PARMSW {
432  DWORD_PTR dwCallback;
433  LPCWSTR lpfilename;
434} MCI_LOAD_PARMSW, *PMCI_LOAD_PARMSW, *LPMCI_LOAD_PARMSW;
435
436__MINGW_TYPEDEF_AW(MCI_LOAD_PARMS)
437__MINGW_TYPEDEF_AW(PMCI_LOAD_PARMS)
438__MINGW_TYPEDEF_AW(LPMCI_LOAD_PARMS)
439
440typedef struct tagMCI_RECORD_PARMS {
441  DWORD_PTR dwCallback;
442  DWORD dwFrom;
443  DWORD dwTo;
444} MCI_RECORD_PARMS, *LPMCI_RECORD_PARMS;
445
446#define MCI_VD_MODE_PARK (MCI_VD_OFFSET + 1)
447
448#define MCI_VD_MEDIA_CLV (MCI_VD_OFFSET + 2)
449#define MCI_VD_MEDIA_CAV (MCI_VD_OFFSET + 3)
450#define MCI_VD_MEDIA_OTHER (MCI_VD_OFFSET + 4)
451
452#define MCI_VD_FORMAT_TRACK 0x4001
453
454#define MCI_VD_PLAY_REVERSE __MSABI_LONG(0x00010000)
455#define MCI_VD_PLAY_FAST __MSABI_LONG(0x00020000)
456#define MCI_VD_PLAY_SPEED __MSABI_LONG(0x00040000)
457#define MCI_VD_PLAY_SCAN __MSABI_LONG(0x00080000)
458#define MCI_VD_PLAY_SLOW __MSABI_LONG(0x00100000)
459
460#define MCI_VD_SEEK_REVERSE __MSABI_LONG(0x00010000)
461
462#define MCI_VD_STATUS_SPEED __MSABI_LONG(0x00004002)
463#define MCI_VD_STATUS_FORWARD __MSABI_LONG(0x00004003)
464#define MCI_VD_STATUS_MEDIA_TYPE __MSABI_LONG(0x00004004)
465#define MCI_VD_STATUS_SIDE __MSABI_LONG(0x00004005)
466#define MCI_VD_STATUS_DISC_SIZE __MSABI_LONG(0x00004006)
467
468#define MCI_VD_GETDEVCAPS_CLV __MSABI_LONG(0x00010000)
469#define MCI_VD_GETDEVCAPS_CAV __MSABI_LONG(0x00020000)
470
471#define MCI_VD_SPIN_UP __MSABI_LONG(0x00010000)
472#define MCI_VD_SPIN_DOWN __MSABI_LONG(0x00020000)
473
474#define MCI_VD_GETDEVCAPS_CAN_REVERSE __MSABI_LONG(0x00004002)
475#define MCI_VD_GETDEVCAPS_FAST_RATE __MSABI_LONG(0x00004003)
476#define MCI_VD_GETDEVCAPS_SLOW_RATE __MSABI_LONG(0x00004004)
477#define MCI_VD_GETDEVCAPS_NORMAL_RATE __MSABI_LONG(0x00004005)
478
479#define MCI_VD_STEP_FRAMES __MSABI_LONG(0x00010000)
480#define MCI_VD_STEP_REVERSE __MSABI_LONG(0x00020000)
481
482#define MCI_VD_ESCAPE_STRING __MSABI_LONG(0x00000100)
483
484typedef struct tagMCI_VD_PLAY_PARMS {
485  DWORD_PTR dwCallback;
486  DWORD dwFrom;
487  DWORD dwTo;
488  DWORD dwSpeed;
489} MCI_VD_PLAY_PARMS, *PMCI_VD_PLAY_PARMS, *LPMCI_VD_PLAY_PARMS;
490
491typedef struct tagMCI_VD_STEP_PARMS {
492  DWORD_PTR dwCallback;
493  DWORD dwFrames;
494} MCI_VD_STEP_PARMS, *PMCI_VD_STEP_PARMS, *LPMCI_VD_STEP_PARMS;
495
496typedef struct tagMCI_VD_ESCAPE_PARMSA {
497  DWORD_PTR dwCallback;
498  LPCSTR lpstrCommand;
499} MCI_VD_ESCAPE_PARMSA, *PMCI_VD_ESCAPE_PARMSA, *LPMCI_VD_ESCAPE_PARMSA;
500
501typedef struct tagMCI_VD_ESCAPE_PARMSW {
502  DWORD_PTR dwCallback;
503  LPCWSTR lpstrCommand;
504} MCI_VD_ESCAPE_PARMSW, *PMCI_VD_ESCAPE_PARMSW, *LPMCI_VD_ESCAPE_PARMSW;
505
506__MINGW_TYPEDEF_AW(MCI_VD_ESCAPE_PARMS)
507__MINGW_TYPEDEF_AW(PMCI_VD_ESCAPE_PARMS)
508__MINGW_TYPEDEF_AW(LPMCI_VD_ESCAPE_PARMS)
509
510#define MCI_CDA_STATUS_TYPE_TRACK __MSABI_LONG(0x00004001)
511
512#define MCI_CDA_TRACK_AUDIO (MCI_CD_OFFSET + 0)
513#define MCI_CDA_TRACK_OTHER (MCI_CD_OFFSET + 1)
514
515#define MCI_WAVE_PCM (MCI_WAVE_OFFSET + 0)
516#define MCI_WAVE_MAPPER (MCI_WAVE_OFFSET + 1)
517
518#define MCI_WAVE_OPEN_BUFFER __MSABI_LONG(0x00010000)
519
520#define MCI_WAVE_SET_FORMATTAG __MSABI_LONG(0x00010000)
521#define MCI_WAVE_SET_CHANNELS __MSABI_LONG(0x00020000)
522#define MCI_WAVE_SET_SAMPLESPERSEC __MSABI_LONG(0x00040000)
523#define MCI_WAVE_SET_AVGBYTESPERSEC __MSABI_LONG(0x00080000)
524#define MCI_WAVE_SET_BLOCKALIGN __MSABI_LONG(0x00100000)
525#define MCI_WAVE_SET_BITSPERSAMPLE __MSABI_LONG(0x00200000)
526
527#define MCI_WAVE_INPUT __MSABI_LONG(0x00400000)
528#define MCI_WAVE_OUTPUT __MSABI_LONG(0x00800000)
529
530#define MCI_WAVE_STATUS_FORMATTAG __MSABI_LONG(0x00004001)
531#define MCI_WAVE_STATUS_CHANNELS __MSABI_LONG(0x00004002)
532#define MCI_WAVE_STATUS_SAMPLESPERSEC __MSABI_LONG(0x00004003)
533#define MCI_WAVE_STATUS_AVGBYTESPERSEC __MSABI_LONG(0x00004004)
534#define MCI_WAVE_STATUS_BLOCKALIGN __MSABI_LONG(0x00004005)
535#define MCI_WAVE_STATUS_BITSPERSAMPLE __MSABI_LONG(0x00004006)
536#define MCI_WAVE_STATUS_LEVEL __MSABI_LONG(0x00004007)
537
538#define MCI_WAVE_SET_ANYINPUT __MSABI_LONG(0x04000000)
539#define MCI_WAVE_SET_ANYOUTPUT __MSABI_LONG(0x08000000)
540
541#define MCI_WAVE_GETDEVCAPS_INPUTS __MSABI_LONG(0x00004001)
542#define MCI_WAVE_GETDEVCAPS_OUTPUTS __MSABI_LONG(0x00004002)
543
544typedef struct tagMCI_WAVE_OPEN_PARMSA {
545  DWORD_PTR dwCallback;
546  MCIDEVICEID wDeviceID;
547  LPCSTR lpstrDeviceType;
548  LPCSTR lpstrElementName;
549  LPCSTR lpstrAlias;
550  DWORD dwBufferSeconds;
551} MCI_WAVE_OPEN_PARMSA, *PMCI_WAVE_OPEN_PARMSA, *LPMCI_WAVE_OPEN_PARMSA;
552
553typedef struct tagMCI_WAVE_OPEN_PARMSW {
554  DWORD_PTR dwCallback;
555  MCIDEVICEID wDeviceID;
556  LPCWSTR lpstrDeviceType;
557  LPCWSTR lpstrElementName;
558  LPCWSTR lpstrAlias;
559  DWORD dwBufferSeconds;
560} MCI_WAVE_OPEN_PARMSW, *PMCI_WAVE_OPEN_PARMSW, *LPMCI_WAVE_OPEN_PARMSW;
561
562__MINGW_TYPEDEF_AW(MCI_WAVE_OPEN_PARMS)
563__MINGW_TYPEDEF_AW(PMCI_WAVE_OPEN_PARMS)
564__MINGW_TYPEDEF_AW(LPMCI_WAVE_OPEN_PARMS)
565
566typedef struct tagMCI_WAVE_DELETE_PARMS {
567  DWORD_PTR dwCallback;
568  DWORD dwFrom;
569  DWORD dwTo;
570} MCI_WAVE_DELETE_PARMS, *PMCI_WAVE_DELETE_PARMS, *LPMCI_WAVE_DELETE_PARMS;
571
572typedef struct tagMCI_WAVE_SET_PARMS {
573  DWORD_PTR dwCallback;
574  DWORD dwTimeFormat;
575  DWORD dwAudio;
576  UINT wInput;
577  UINT wOutput;
578  WORD wFormatTag;
579  WORD wReserved2;
580  WORD nChannels;
581  WORD wReserved3;
582  DWORD nSamplesPerSec;
583  DWORD nAvgBytesPerSec;
584  WORD nBlockAlign;
585  WORD wReserved4;
586  WORD wBitsPerSample;
587  WORD wReserved5;
588} MCI_WAVE_SET_PARMS, *PMCI_WAVE_SET_PARMS, *LPMCI_WAVE_SET_PARMS;
589
590#define MCI_SEQ_DIV_PPQN (0 + MCI_SEQ_OFFSET)
591#define MCI_SEQ_DIV_SMPTE_24 (1 + MCI_SEQ_OFFSET)
592#define MCI_SEQ_DIV_SMPTE_25 (2 + MCI_SEQ_OFFSET)
593#define MCI_SEQ_DIV_SMPTE_30DROP (3 + MCI_SEQ_OFFSET)
594#define MCI_SEQ_DIV_SMPTE_30 (4 + MCI_SEQ_OFFSET)
595
596#define MCI_SEQ_FORMAT_SONGPTR 0x4001
597#define MCI_SEQ_FILE 0x4002
598#define MCI_SEQ_MIDI 0x4003
599#define MCI_SEQ_SMPTE 0x4004
600#define MCI_SEQ_NONE 65533
601#define MCI_SEQ_MAPPER 65535
602
603#define MCI_SEQ_STATUS_TEMPO __MSABI_LONG(0x00004002)
604#define MCI_SEQ_STATUS_PORT __MSABI_LONG(0x00004003)
605#define MCI_SEQ_STATUS_SLAVE __MSABI_LONG(0x00004007)
606#define MCI_SEQ_STATUS_MASTER __MSABI_LONG(0x00004008)
607#define MCI_SEQ_STATUS_OFFSET __MSABI_LONG(0x00004009)
608#define MCI_SEQ_STATUS_DIVTYPE __MSABI_LONG(0x0000400A)
609#define MCI_SEQ_STATUS_NAME __MSABI_LONG(0x0000400B)
610#define MCI_SEQ_STATUS_COPYRIGHT __MSABI_LONG(0x0000400C)
611
612#define MCI_SEQ_SET_TEMPO __MSABI_LONG(0x00010000)
613#define MCI_SEQ_SET_PORT __MSABI_LONG(0x00020000)
614#define MCI_SEQ_SET_SLAVE __MSABI_LONG(0x00040000)
615#define MCI_SEQ_SET_MASTER __MSABI_LONG(0x00080000)
616#define MCI_SEQ_SET_OFFSET __MSABI_LONG(0x01000000)
617
618typedef struct tagMCI_SEQ_SET_PARMS {
619  DWORD_PTR dwCallback;
620  DWORD dwTimeFormat;
621  DWORD dwAudio;
622  DWORD dwTempo;
623  DWORD dwPort;
624  DWORD dwSlave;
625  DWORD dwMaster;
626  DWORD dwOffset;
627} MCI_SEQ_SET_PARMS, *PMCI_SEQ_SET_PARMS, *LPMCI_SEQ_SET_PARMS;
628
629#define MCI_ANIM_OPEN_WS __MSABI_LONG(0x00010000)
630#define MCI_ANIM_OPEN_PARENT __MSABI_LONG(0x00020000)
631#define MCI_ANIM_OPEN_NOSTATIC __MSABI_LONG(0x00040000)
632
633#define MCI_ANIM_PLAY_SPEED __MSABI_LONG(0x00010000)
634#define MCI_ANIM_PLAY_REVERSE __MSABI_LONG(0x00020000)
635#define MCI_ANIM_PLAY_FAST __MSABI_LONG(0x00040000)
636#define MCI_ANIM_PLAY_SLOW __MSABI_LONG(0x00080000)
637#define MCI_ANIM_PLAY_SCAN __MSABI_LONG(0x00100000)
638
639#define MCI_ANIM_STEP_REVERSE __MSABI_LONG(0x00010000)
640#define MCI_ANIM_STEP_FRAMES __MSABI_LONG(0x00020000)
641
642#define MCI_ANIM_STATUS_SPEED __MSABI_LONG(0x00004001)
643#define MCI_ANIM_STATUS_FORWARD __MSABI_LONG(0x00004002)
644#define MCI_ANIM_STATUS_HWND __MSABI_LONG(0x00004003)
645#define MCI_ANIM_STATUS_HPAL __MSABI_LONG(0x00004004)
646#define MCI_ANIM_STATUS_STRETCH __MSABI_LONG(0x00004005)
647
648#define MCI_ANIM_INFO_TEXT __MSABI_LONG(0x00010000)
649
650#define MCI_ANIM_GETDEVCAPS_CAN_REVERSE __MSABI_LONG(0x00004001)
651#define MCI_ANIM_GETDEVCAPS_FAST_RATE __MSABI_LONG(0x00004002)
652#define MCI_ANIM_GETDEVCAPS_SLOW_RATE __MSABI_LONG(0x00004003)
653#define MCI_ANIM_GETDEVCAPS_NORMAL_RATE __MSABI_LONG(0x00004004)
654#define MCI_ANIM_GETDEVCAPS_PALETTES __MSABI_LONG(0x00004006)
655#define MCI_ANIM_GETDEVCAPS_CAN_STRETCH __MSABI_LONG(0x00004007)
656#define MCI_ANIM_GETDEVCAPS_MAX_WINDOWS __MSABI_LONG(0x00004008)
657
658#define MCI_ANIM_REALIZE_NORM __MSABI_LONG(0x00010000)
659#define MCI_ANIM_REALIZE_BKGD __MSABI_LONG(0x00020000)
660
661#define MCI_ANIM_WINDOW_HWND __MSABI_LONG(0x00010000)
662#define MCI_ANIM_WINDOW_STATE __MSABI_LONG(0x00040000)
663#define MCI_ANIM_WINDOW_TEXT __MSABI_LONG(0x00080000)
664#define MCI_ANIM_WINDOW_ENABLE_STRETCH __MSABI_LONG(0x00100000)
665#define MCI_ANIM_WINDOW_DISABLE_STRETCH __MSABI_LONG(0x00200000)
666
667#define MCI_ANIM_WINDOW_DEFAULT __MSABI_LONG(0x00000000)
668
669#define MCI_ANIM_RECT __MSABI_LONG(0x00010000)
670#define MCI_ANIM_PUT_SOURCE __MSABI_LONG(0x00020000)
671#define MCI_ANIM_PUT_DESTINATION __MSABI_LONG(0x00040000)
672
673#define MCI_ANIM_WHERE_SOURCE __MSABI_LONG(0x00020000)
674#define MCI_ANIM_WHERE_DESTINATION __MSABI_LONG(0x00040000)
675
676#define MCI_ANIM_UPDATE_HDC __MSABI_LONG(0x00020000)
677
678typedef struct tagMCI_ANIM_OPEN_PARMSA {
679  DWORD_PTR dwCallback;
680  MCIDEVICEID wDeviceID;
681  LPCSTR lpstrDeviceType;
682  LPCSTR lpstrElementName;
683  LPCSTR lpstrAlias;
684  DWORD dwStyle;
685  HWND hWndParent;
686} MCI_ANIM_OPEN_PARMSA, *PMCI_ANIM_OPEN_PARMSA, *LPMCI_ANIM_OPEN_PARMSA;
687
688typedef struct tagMCI_ANIM_OPEN_PARMSW {
689  DWORD_PTR dwCallback;
690  MCIDEVICEID wDeviceID;
691  LPCWSTR lpstrDeviceType;
692  LPCWSTR lpstrElementName;
693  LPCWSTR lpstrAlias;
694  DWORD dwStyle;
695  HWND hWndParent;
696} MCI_ANIM_OPEN_PARMSW, *PMCI_ANIM_OPEN_PARMSW, *LPMCI_ANIM_OPEN_PARMSW;
697
698__MINGW_TYPEDEF_AW(MCI_ANIM_OPEN_PARMS)
699__MINGW_TYPEDEF_AW(PMCI_ANIM_OPEN_PARMS)
700__MINGW_TYPEDEF_AW(LPMCI_ANIM_OPEN_PARMS)
701
702typedef struct tagMCI_ANIM_PLAY_PARMS {
703  DWORD_PTR dwCallback;
704  DWORD dwFrom;
705  DWORD dwTo;
706  DWORD dwSpeed;
707} MCI_ANIM_PLAY_PARMS, *PMCI_ANIM_PLAY_PARMS, *LPMCI_ANIM_PLAY_PARMS;
708
709typedef struct tagMCI_ANIM_STEP_PARMS {
710  DWORD_PTR dwCallback;
711  DWORD dwFrames;
712} MCI_ANIM_STEP_PARMS, *PMCI_ANIM_STEP_PARMS, *LPMCI_ANIM_STEP_PARMS;
713
714typedef struct tagMCI_ANIM_WINDOW_PARMSA {
715  DWORD_PTR dwCallback;
716  HWND hWnd;
717  UINT nCmdShow;
718  LPCSTR lpstrText;
719} MCI_ANIM_WINDOW_PARMSA, *PMCI_ANIM_WINDOW_PARMSA, *LPMCI_ANIM_WINDOW_PARMSA;
720
721typedef struct tagMCI_ANIM_WINDOW_PARMSW {
722  DWORD_PTR dwCallback;
723  HWND hWnd;
724  UINT nCmdShow;
725  LPCWSTR lpstrText;
726} MCI_ANIM_WINDOW_PARMSW, *PMCI_ANIM_WINDOW_PARMSW, *LPMCI_ANIM_WINDOW_PARMSW;
727
728__MINGW_TYPEDEF_AW(MCI_ANIM_WINDOW_PARMS)
729__MINGW_TYPEDEF_AW(PMCI_ANIM_WINDOW_PARMS)
730__MINGW_TYPEDEF_AW(LPMCI_ANIM_WINDOW_PARMS)
731
732typedef struct tagMCI_ANIM_RECT_PARMS {
733  DWORD_PTR dwCallback;
734#ifdef MCI_USE_OFFEXT
735  POINT ptOffset;
736  POINT ptExtent;
737#else
738  RECT rc;
739#endif
740} MCI_ANIM_RECT_PARMS, *PMCI_ANIM_RECT_PARMS, *LPMCI_ANIM_RECT_PARMS;
741
742typedef struct tagMCI_ANIM_UPDATE_PARMS {
743  DWORD_PTR dwCallback;
744  RECT rc;
745  HDC hDC;
746} MCI_ANIM_UPDATE_PARMS, *PMCI_ANIM_UPDATE_PARMS, *LPMCI_ANIM_UPDATE_PARMS;
747
748#define MCI_OVLY_OPEN_WS __MSABI_LONG(0x00010000)
749#define MCI_OVLY_OPEN_PARENT __MSABI_LONG(0x00020000)
750
751#define MCI_OVLY_STATUS_HWND __MSABI_LONG(0x00004001)
752#define MCI_OVLY_STATUS_STRETCH __MSABI_LONG(0x00004002)
753
754#define MCI_OVLY_INFO_TEXT __MSABI_LONG(0x00010000)
755
756#define MCI_OVLY_GETDEVCAPS_CAN_STRETCH __MSABI_LONG(0x00004001)
757#define MCI_OVLY_GETDEVCAPS_CAN_FREEZE __MSABI_LONG(0x00004002)
758#define MCI_OVLY_GETDEVCAPS_MAX_WINDOWS __MSABI_LONG(0x00004003)
759
760#define MCI_OVLY_WINDOW_HWND __MSABI_LONG(0x00010000)
761#define MCI_OVLY_WINDOW_STATE __MSABI_LONG(0x00040000)
762#define MCI_OVLY_WINDOW_TEXT __MSABI_LONG(0x00080000)
763#define MCI_OVLY_WINDOW_ENABLE_STRETCH __MSABI_LONG(0x00100000)
764#define MCI_OVLY_WINDOW_DISABLE_STRETCH __MSABI_LONG(0x00200000)
765
766#define MCI_OVLY_WINDOW_DEFAULT __MSABI_LONG(0x00000000)
767
768#define MCI_OVLY_RECT __MSABI_LONG(0x00010000)
769#define MCI_OVLY_PUT_SOURCE __MSABI_LONG(0x00020000)
770#define MCI_OVLY_PUT_DESTINATION __MSABI_LONG(0x00040000)
771#define MCI_OVLY_PUT_FRAME __MSABI_LONG(0x00080000)
772#define MCI_OVLY_PUT_VIDEO __MSABI_LONG(0x00100000)
773
774#define MCI_OVLY_WHERE_SOURCE __MSABI_LONG(0x00020000)
775#define MCI_OVLY_WHERE_DESTINATION __MSABI_LONG(0x00040000)
776#define MCI_OVLY_WHERE_FRAME __MSABI_LONG(0x00080000)
777#define MCI_OVLY_WHERE_VIDEO __MSABI_LONG(0x00100000)
778
779typedef struct tagMCI_OVLY_OPEN_PARMSA {
780  DWORD_PTR dwCallback;
781  MCIDEVICEID wDeviceID;
782  LPCSTR lpstrDeviceType;
783  LPCSTR lpstrElementName;
784  LPCSTR lpstrAlias;
785  DWORD dwStyle;
786  HWND hWndParent;
787} MCI_OVLY_OPEN_PARMSA, *PMCI_OVLY_OPEN_PARMSA, *LPMCI_OVLY_OPEN_PARMSA;
788
789typedef struct tagMCI_OVLY_OPEN_PARMSW {
790  DWORD_PTR dwCallback;
791  MCIDEVICEID wDeviceID;
792  LPCWSTR lpstrDeviceType;
793  LPCWSTR lpstrElementName;
794  LPCWSTR lpstrAlias;
795  DWORD dwStyle;
796  HWND hWndParent;
797} MCI_OVLY_OPEN_PARMSW, *PMCI_OVLY_OPEN_PARMSW, *LPMCI_OVLY_OPEN_PARMSW;
798
799__MINGW_TYPEDEF_AW(MCI_OVLY_OPEN_PARMS)
800__MINGW_TYPEDEF_AW(PMCI_OVLY_OPEN_PARMS)
801__MINGW_TYPEDEF_AW(LPMCI_OVLY_OPEN_PARMS)
802
803typedef struct tagMCI_OVLY_WINDOW_PARMSA {
804  DWORD_PTR dwCallback;
805  HWND hWnd;
806  UINT nCmdShow;
807  LPCSTR lpstrText;
808} MCI_OVLY_WINDOW_PARMSA, *PMCI_OVLY_WINDOW_PARMSA, *LPMCI_OVLY_WINDOW_PARMSA;
809
810typedef struct tagMCI_OVLY_WINDOW_PARMSW {
811  DWORD_PTR dwCallback;
812  HWND hWnd;
813  UINT nCmdShow;
814  LPCWSTR lpstrText;
815} MCI_OVLY_WINDOW_PARMSW, *PMCI_OVLY_WINDOW_PARMSW, *LPMCI_OVLY_WINDOW_PARMSW;
816
817__MINGW_TYPEDEF_AW(MCI_OVLY_WINDOW_PARMS)
818__MINGW_TYPEDEF_AW(PMCI_OVLY_WINDOW_PARMS)
819__MINGW_TYPEDEF_AW(LPMCI_OVLY_WINDOW_PARMS)
820
821typedef struct tagMCI_OVLY_RECT_PARMS {
822  DWORD_PTR dwCallback;
823#ifdef MCI_USE_OFFEXT
824  POINT ptOffset;
825  POINT ptExtent;
826#else
827  RECT rc;
828#endif
829} MCI_OVLY_RECT_PARMS, *PMCI_OVLY_RECT_PARMS, *LPMCI_OVLY_RECT_PARMS;
830
831typedef struct tagMCI_OVLY_SAVE_PARMSA {
832  DWORD_PTR dwCallback;
833  LPCSTR lpfilename;
834  RECT rc;
835} MCI_OVLY_SAVE_PARMSA, *PMCI_OVLY_SAVE_PARMSA, *LPMCI_OVLY_SAVE_PARMSA;
836
837typedef struct tagMCI_OVLY_SAVE_PARMSW {
838  DWORD_PTR dwCallback;
839  LPCWSTR lpfilename;
840  RECT rc;
841} MCI_OVLY_SAVE_PARMSW, *PMCI_OVLY_SAVE_PARMSW, *LPMCI_OVLY_SAVE_PARMSW;
842
843__MINGW_TYPEDEF_AW(MCI_OVLY_SAVE_PARMS)
844__MINGW_TYPEDEF_AW(PMCI_OVLY_SAVE_PARMS)
845__MINGW_TYPEDEF_AW(LPMCI_OVLY_SAVE_PARMS)
846
847typedef struct tagMCI_OVLY_LOAD_PARMSA {
848  DWORD_PTR dwCallback;
849  LPCSTR lpfilename;
850  RECT rc;
851} MCI_OVLY_LOAD_PARMSA, *PMCI_OVLY_LOAD_PARMSA, *LPMCI_OVLY_LOAD_PARMSA;
852
853typedef struct tagMCI_OVLY_LOAD_PARMSW {
854  DWORD_PTR dwCallback;
855  LPCWSTR lpfilename;
856  RECT rc;
857} MCI_OVLY_LOAD_PARMSW, *PMCI_OVLY_LOAD_PARMSW, *LPMCI_OVLY_LOAD_PARMSW;
858
859__MINGW_TYPEDEF_AW(MCI_OVLY_LOAD_PARMS)
860__MINGW_TYPEDEF_AW(PMCI_OVLY_LOAD_PARMS)
861__MINGW_TYPEDEF_AW(LPMCI_OVLY_LOAD_PARMS)
862
863DWORD_PTR APIENTRY mciGetDriverData(MCIDEVICEID wDeviceID);
864UINT APIENTRY mciLoadCommandResource(HANDLE hInstance, LPCWSTR lpResName, UINT wType);
865WINBOOL APIENTRY mciSetDriverData(MCIDEVICEID wDeviceID, DWORD_PTR dwData);
866UINT APIENTRY mciDriverYield(MCIDEVICEID wDeviceID);
867WINBOOL APIENTRY mciDriverNotify(HANDLE hwndCallback, MCIDEVICEID wDeviceID, UINT uStatus);
868WINBOOL APIENTRY mciFreeCommandResource(UINT wTable);
869
870#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
871
872#ifdef __cplusplus
873}
874#endif
875
876#endif /* _MCIAPI_H_ */