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 #ifndef _INC_MMSYSTEM 7 #define _INC_MMSYSTEM 8 9 #include <_mingw_unicode.h> 10 #include <pshpack1.h> 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 16 #ifndef _WINMM_ 17 #define WINMMAPI DECLSPEC_IMPORT 18 #else 19 #define WINMMAPI 20 #endif 21 #define _loadds 22 #define _huge 23 24 #define MAXPNAMELEN 32 25 #define MAXERRORLENGTH 256 26 #define MAX_JOYSTICKOEMVXDNAME 260 27 28 typedef UINT MMVERSION; 29 typedef UINT MMRESULT; 30 31 #define _MMRESULT_ 32 33 #ifndef DEFINED_LPUINT 34 #define DEFINED_LPUINT 35 typedef UINT *LPUINT; 36 #endif 37 38 typedef struct mmtime_tag { 39 UINT wType; 40 union { 41 DWORD ms; 42 DWORD sample; 43 DWORD cb; 44 DWORD ticks; 45 struct { 46 BYTE hour; 47 BYTE min; 48 BYTE sec; 49 BYTE frame; 50 BYTE fps; 51 BYTE dummy; 52 BYTE pad[2]; 53 } smpte; 54 struct { 55 DWORD songptrpos; 56 } midi; 57 } u; 58 } MMTIME,*PMMTIME,NEAR *NPMMTIME,*LPMMTIME; 59 60 #define TIME_MS 0x0001 61 #define TIME_SAMPLES 0x0002 62 #define TIME_BYTES 0x0004 63 #define TIME_SMPTE 0x0008 64 #define TIME_MIDI 0x0010 65 #define TIME_TICKS 0x0020 66 67 #ifndef MAKEFOURCC 68 #define MAKEFOURCC(ch0,ch1,ch2,ch3) \ 69 ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \ 70 ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24)) 71 #endif /* MAKEFOURCC */ 72 73 #define MM_JOY1MOVE 0x3A0 74 #define MM_JOY2MOVE 0x3A1 75 #define MM_JOY1ZMOVE 0x3A2 76 #define MM_JOY2ZMOVE 0x3A3 77 #define MM_JOY1BUTTONDOWN 0x3B5 78 #define MM_JOY2BUTTONDOWN 0x3B6 79 #define MM_JOY1BUTTONUP 0x3B7 80 #define MM_JOY2BUTTONUP 0x3B8 81 82 #define MM_MCINOTIFY 0x3B9 83 84 #define MM_WOM_OPEN 0x3BB 85 #define MM_WOM_CLOSE 0x3BC 86 #define MM_WOM_DONE 0x3BD 87 88 #define MM_WIM_OPEN 0x3BE 89 #define MM_WIM_CLOSE 0x3BF 90 #define MM_WIM_DATA 0x3C0 91 92 #define MM_MIM_OPEN 0x3C1 93 #define MM_MIM_CLOSE 0x3C2 94 #define MM_MIM_DATA 0x3C3 95 #define MM_MIM_LONGDATA 0x3C4 96 #define MM_MIM_ERROR 0x3C5 97 #define MM_MIM_LONGERROR 0x3C6 98 99 #define MM_MOM_OPEN 0x3C7 100 #define MM_MOM_CLOSE 0x3C8 101 #define MM_MOM_DONE 0x3C9 102 103 #ifndef MM_DRVM_OPEN 104 #define MM_DRVM_OPEN 0x3D0 105 #define MM_DRVM_CLOSE 0x3D1 106 #define MM_DRVM_DATA 0x3D2 107 #define MM_DRVM_ERROR 0x3D3 108 #endif 109 110 #define MM_STREAM_OPEN 0x3D4 111 #define MM_STREAM_CLOSE 0x3D5 112 #define MM_STREAM_DONE 0x3D6 113 #define MM_STREAM_ERROR 0x3D7 114 115 #define MM_MOM_POSITIONCB 0x3CA 116 117 #ifndef MM_MCISIGNAL 118 #define MM_MCISIGNAL 0x3CB 119 #endif 120 121 #define MM_MIM_MOREDATA 0x3CC 122 123 #define MM_MIXM_LINE_CHANGE 0x3D0 124 #define MM_MIXM_CONTROL_CHANGE 0x3D1 125 126 #define MMSYSERR_BASE 0 127 #define WAVERR_BASE 32 128 #define MIDIERR_BASE 64 129 #define TIMERR_BASE 96 130 #define JOYERR_BASE 160 131 #define MCIERR_BASE 256 132 #define MIXERR_BASE 1024 133 134 #define MCI_STRING_OFFSET 512 135 #define MCI_VD_OFFSET 1024 136 #define MCI_CD_OFFSET 1088 137 #define MCI_WAVE_OFFSET 1152 138 #define MCI_SEQ_OFFSET 1216 139 140 #define MMSYSERR_NOERROR 0 141 #define MMSYSERR_ERROR (MMSYSERR_BASE + 1) 142 #define MMSYSERR_BADDEVICEID (MMSYSERR_BASE + 2) 143 #define MMSYSERR_NOTENABLED (MMSYSERR_BASE + 3) 144 #define MMSYSERR_ALLOCATED (MMSYSERR_BASE + 4) 145 #define MMSYSERR_INVALHANDLE (MMSYSERR_BASE + 5) 146 #define MMSYSERR_NODRIVER (MMSYSERR_BASE + 6) 147 #define MMSYSERR_NOMEM (MMSYSERR_BASE + 7) 148 #define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE + 8) 149 #define MMSYSERR_BADERRNUM (MMSYSERR_BASE + 9) 150 #define MMSYSERR_INVALFLAG (MMSYSERR_BASE + 10) 151 #define MMSYSERR_INVALPARAM (MMSYSERR_BASE + 11) 152 #define MMSYSERR_HANDLEBUSY (MMSYSERR_BASE + 12) 153 154 #define MMSYSERR_INVALIDALIAS (MMSYSERR_BASE + 13) 155 #define MMSYSERR_BADDB (MMSYSERR_BASE + 14) 156 #define MMSYSERR_KEYNOTFOUND (MMSYSERR_BASE + 15) 157 #define MMSYSERR_READERROR (MMSYSERR_BASE + 16) 158 #define MMSYSERR_WRITEERROR (MMSYSERR_BASE + 17) 159 #define MMSYSERR_DELETEERROR (MMSYSERR_BASE + 18) 160 #define MMSYSERR_VALNOTFOUND (MMSYSERR_BASE + 19) 161 #define MMSYSERR_NODRIVERCB (MMSYSERR_BASE + 20) 162 #define MMSYSERR_MOREDATA (MMSYSERR_BASE + 21) 163 #define MMSYSERR_LASTERROR (MMSYSERR_BASE + 21) 164 165 DECLARE_HANDLE(HDRVR); 166 167 #ifndef MMNODRV 168 169 typedef struct DRVCONFIGINFOEX { 170 DWORD dwDCISize; 171 LPCWSTR lpszDCISectionName; 172 LPCWSTR lpszDCIAliasName; 173 DWORD dnDevNode; 174 } DRVCONFIGINFOEX,*PDRVCONFIGINFOEX,NEAR *NPDRVCONFIGINFOEX,*LPDRVCONFIGINFOEX; 175 176 #ifndef DRV_LOAD 177 #define DRV_LOAD 0x0001 178 #define DRV_ENABLE 0x0002 179 #define DRV_OPEN 0x0003 180 #define DRV_CLOSE 0x0004 181 #define DRV_DISABLE 0x0005 182 #define DRV_FREE 0x0006 183 #define DRV_CONFIGURE 0x0007 184 #define DRV_QUERYCONFIGURE 0x0008 185 #define DRV_INSTALL 0x0009 186 #define DRV_REMOVE 0x000A 187 #define DRV_EXITSESSION 0x000B 188 #define DRV_POWER 0x000F 189 #define DRV_RESERVED 0x0800 190 #define DRV_USER 0x4000 191 192 typedef struct tagDRVCONFIGINFO { 193 DWORD dwDCISize; 194 LPCWSTR lpszDCISectionName; 195 LPCWSTR lpszDCIAliasName; 196 } DRVCONFIGINFO,*PDRVCONFIGINFO,NEAR *NPDRVCONFIGINFO,*LPDRVCONFIGINFO; 197 198 #define DRVCNF_CANCEL 0x0000 199 #define DRVCNF_OK 0x0001 200 #define DRVCNF_RESTART 0x0002 201 202 typedef LRESULT (CALLBACK *DRIVERPROC)(DWORD_PTR,HDRVR,UINT,LPARAM,LPARAM); 203 204 WINMMAPI LRESULT WINAPI CloseDriver(HDRVR hDriver,LPARAM lParam1,LPARAM lParam2); 205 WINMMAPI HDRVR WINAPI OpenDriver(LPCWSTR szDriverName,LPCWSTR szSectionName,LPARAM lParam2); 206 WINMMAPI LRESULT WINAPI SendDriverMessage(HDRVR hDriver,UINT message,LPARAM lParam1,LPARAM lParam2); 207 WINMMAPI HMODULE WINAPI DrvGetModuleHandle(HDRVR hDriver); 208 WINMMAPI HMODULE WINAPI GetDriverModuleHandle(HDRVR hDriver); 209 WINMMAPI LRESULT WINAPI DefDriverProc(DWORD_PTR dwDriverIdentifier,HDRVR hdrvr,UINT uMsg,LPARAM lParam1,LPARAM lParam2); 210 #endif 211 212 #define DRV_CANCEL DRVCNF_CANCEL 213 #define DRV_OK DRVCNF_OK 214 #define DRV_RESTART DRVCNF_RESTART 215 #define DRV_MCI_FIRST DRV_RESERVED 216 #define DRV_MCI_LAST (DRV_RESERVED + 0xFFF) 217 #endif 218 219 #define CALLBACK_TYPEMASK __MSABI_LONG(0x00070000) 220 #define CALLBACK_NULL __MSABI_LONG(0x00000000) 221 #define CALLBACK_WINDOW __MSABI_LONG(0x00010000) 222 #define CALLBACK_TASK __MSABI_LONG(0x00020000) 223 #define CALLBACK_FUNCTION __MSABI_LONG(0x00030000) 224 #define CALLBACK_THREAD (CALLBACK_TASK) 225 #define CALLBACK_EVENT __MSABI_LONG(0x00050000) 226 typedef void (CALLBACK DRVCALLBACK)(HDRVR hdrvr,UINT uMsg,DWORD_PTR dwUser,DWORD_PTR dw1,DWORD_PTR dw2); 227 228 typedef DRVCALLBACK *LPDRVCALLBACK; 229 typedef DRVCALLBACK *PDRVCALLBACK; 230 231 #ifndef MMNOMMSYSTEM 232 #define OutputDebugStr OutputDebugString 233 #endif 234 235 #ifndef MMNOSOUND 236 237 WINMMAPI WINBOOL WINAPI sndPlaySoundA(LPCSTR pszSound,UINT fuSound); 238 WINMMAPI WINBOOL WINAPI sndPlaySoundW(LPCWSTR pszSound,UINT fuSound); 239 240 #define sndPlaySound __MINGW_NAME_AW(sndPlaySound) 241 242 #define SND_SYNC 0x0000 243 #define SND_ASYNC 0x0001 244 #define SND_NODEFAULT 0x0002 245 #define SND_MEMORY 0x0004 246 #define SND_LOOP 0x0008 247 #define SND_NOSTOP 0x0010 248 #define SND_NOWAIT __MSABI_LONG(0x00002000) 249 #define SND_ALIAS __MSABI_LONG(0x00010000) 250 #define SND_ALIAS_ID __MSABI_LONG(0x00110000) 251 #define SND_FILENAME __MSABI_LONG(0x00020000) 252 #define SND_RESOURCE __MSABI_LONG(0x00040004) 253 #define SND_PURGE 0x0040 254 #define SND_APPLICATION 0x0080 255 256 #define SND_ALIAS_START 0 257 258 #define sndAlias(c0,c1) (SND_ALIAS_START+((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8))) 259 260 #define SND_ALIAS_SYSTEMASTERISK sndAlias('S','*') 261 #define SND_ALIAS_SYSTEMQUESTION sndAlias('S','?') 262 #define SND_ALIAS_SYSTEMHAND sndAlias('S','H') 263 #define SND_ALIAS_SYSTEMEXIT sndAlias('S','E') 264 #define SND_ALIAS_SYSTEMSTART sndAlias('S','S') 265 #define SND_ALIAS_SYSTEMWELCOME sndAlias('S','W') 266 #define SND_ALIAS_SYSTEMEXCLAMATION sndAlias('S','!') 267 #define SND_ALIAS_SYSTEMDEFAULT sndAlias('S','D') 268 269 WINMMAPI WINBOOL WINAPI PlaySoundA(LPCSTR pszSound,HMODULE hmod,DWORD fdwSound); 270 WINMMAPI WINBOOL WINAPI PlaySoundW(LPCWSTR pszSound,HMODULE hmod,DWORD fdwSound); 271 272 #define PlaySound __MINGW_NAME_AW(PlaySound) 273 #endif 274 275 #ifndef MMNOWAVE 276 277 #define WAVERR_BADFORMAT (WAVERR_BASE + 0) 278 #define WAVERR_STILLPLAYING (WAVERR_BASE + 1) 279 #define WAVERR_UNPREPARED (WAVERR_BASE + 2) 280 #define WAVERR_SYNC (WAVERR_BASE + 3) 281 #define WAVERR_LASTERROR (WAVERR_BASE + 3) 282 283 DECLARE_HANDLE(HWAVE); 284 DECLARE_HANDLE(HWAVEIN); 285 DECLARE_HANDLE(HWAVEOUT); 286 typedef HWAVEIN *LPHWAVEIN; 287 typedef HWAVEOUT *LPHWAVEOUT; 288 typedef DRVCALLBACK WAVECALLBACK; 289 typedef WAVECALLBACK *LPWAVECALLBACK; 290 291 #define WOM_OPEN MM_WOM_OPEN 292 #define WOM_CLOSE MM_WOM_CLOSE 293 #define WOM_DONE MM_WOM_DONE 294 #define WIM_OPEN MM_WIM_OPEN 295 #define WIM_CLOSE MM_WIM_CLOSE 296 #define WIM_DATA MM_WIM_DATA 297 298 #define WAVE_MAPPER ((UINT)-1) 299 300 #define WAVE_FORMAT_QUERY 0x0001 301 #define WAVE_ALLOWSYNC 0x0002 302 #define WAVE_MAPPED 0x0004 303 #define WAVE_FORMAT_DIRECT 0x0008 304 #define WAVE_FORMAT_DIRECT_QUERY (WAVE_FORMAT_QUERY | WAVE_FORMAT_DIRECT) 305 306 typedef struct wavehdr_tag { 307 LPSTR lpData; 308 DWORD dwBufferLength; 309 DWORD dwBytesRecorded; 310 DWORD_PTR dwUser; 311 DWORD dwFlags; 312 DWORD dwLoops; 313 struct wavehdr_tag *lpNext; 314 DWORD_PTR reserved; 315 } WAVEHDR,*PWAVEHDR,NEAR *NPWAVEHDR,*LPWAVEHDR; 316 317 #define WHDR_DONE 0x00000001 318 #define WHDR_PREPARED 0x00000002 319 #define WHDR_BEGINLOOP 0x00000004 320 #define WHDR_ENDLOOP 0x00000008 321 #define WHDR_INQUEUE 0x00000010 322 323 typedef struct tagWAVEOUTCAPSA { 324 WORD wMid; 325 WORD wPid; 326 MMVERSION vDriverVersion; 327 CHAR szPname[MAXPNAMELEN]; 328 DWORD dwFormats; 329 WORD wChannels; 330 WORD wReserved1; 331 DWORD dwSupport; 332 } WAVEOUTCAPSA,*PWAVEOUTCAPSA,*NPWAVEOUTCAPSA,*LPWAVEOUTCAPSA; 333 334 typedef struct tagWAVEOUTCAPSW { 335 WORD wMid; 336 WORD wPid; 337 MMVERSION vDriverVersion; 338 WCHAR szPname[MAXPNAMELEN]; 339 DWORD dwFormats; 340 WORD wChannels; 341 WORD wReserved1; 342 DWORD dwSupport; 343 } WAVEOUTCAPSW,*PWAVEOUTCAPSW,*NPWAVEOUTCAPSW,*LPWAVEOUTCAPSW; 344 345 __MINGW_TYPEDEF_AW(WAVEOUTCAPS) 346 __MINGW_TYPEDEF_AW(PWAVEOUTCAPS) 347 __MINGW_TYPEDEF_AW(NPWAVEOUTCAPS) 348 __MINGW_TYPEDEF_AW(LPWAVEOUTCAPS) 349 350 typedef struct tagWAVEOUTCAPS2A { 351 WORD wMid; 352 WORD wPid; 353 MMVERSION vDriverVersion; 354 CHAR szPname[MAXPNAMELEN]; 355 DWORD dwFormats; 356 WORD wChannels; 357 WORD wReserved1; 358 DWORD dwSupport; 359 GUID ManufacturerGuid; 360 GUID ProductGuid; 361 GUID NameGuid; 362 } WAVEOUTCAPS2A,*PWAVEOUTCAPS2A,*NPWAVEOUTCAPS2A,*LPWAVEOUTCAPS2A; 363 364 typedef struct tagWAVEOUTCAPS2W { 365 WORD wMid; 366 WORD wPid; 367 MMVERSION vDriverVersion; 368 WCHAR szPname[MAXPNAMELEN]; 369 DWORD dwFormats; 370 WORD wChannels; 371 WORD wReserved1; 372 DWORD dwSupport; 373 GUID ManufacturerGuid; 374 GUID ProductGuid; 375 GUID NameGuid; 376 } WAVEOUTCAPS2W,*PWAVEOUTCAPS2W,*NPWAVEOUTCAPS2W,*LPWAVEOUTCAPS2W; 377 378 __MINGW_TYPEDEF_AW(WAVEOUTCAPS2) 379 __MINGW_TYPEDEF_AW(PWAVEOUTCAPS2) 380 __MINGW_TYPEDEF_AW(NPWAVEOUTCAPS2) 381 __MINGW_TYPEDEF_AW(LPWAVEOUTCAPS2) 382 383 #define WAVECAPS_PITCH 0x0001 384 #define WAVECAPS_PLAYBACKRATE 0x0002 385 #define WAVECAPS_VOLUME 0x0004 386 #define WAVECAPS_LRVOLUME 0x0008 387 #define WAVECAPS_SYNC 0x0010 388 #define WAVECAPS_SAMPLEACCURATE 0x0020 389 390 typedef struct tagWAVEINCAPSA { 391 WORD wMid; 392 WORD wPid; 393 MMVERSION vDriverVersion; 394 CHAR szPname[MAXPNAMELEN]; 395 DWORD dwFormats; 396 WORD wChannels; 397 WORD wReserved1; 398 } WAVEINCAPSA,*PWAVEINCAPSA,*NPWAVEINCAPSA,*LPWAVEINCAPSA; 399 400 typedef struct tagWAVEINCAPSW { 401 WORD wMid; 402 WORD wPid; 403 MMVERSION vDriverVersion; 404 WCHAR szPname[MAXPNAMELEN]; 405 DWORD dwFormats; 406 WORD wChannels; 407 WORD wReserved1; 408 } WAVEINCAPSW,*PWAVEINCAPSW,*NPWAVEINCAPSW,*LPWAVEINCAPSW; 409 410 __MINGW_TYPEDEF_AW(WAVEINCAPS) 411 __MINGW_TYPEDEF_AW(PWAVEINCAPS) 412 __MINGW_TYPEDEF_AW(NPWAVEINCAPS) 413 __MINGW_TYPEDEF_AW(LPWAVEINCAPS) 414 415 typedef struct tagWAVEINCAPS2A { 416 WORD wMid; 417 WORD wPid; 418 MMVERSION vDriverVersion; 419 CHAR szPname[MAXPNAMELEN]; 420 DWORD dwFormats; 421 WORD wChannels; 422 WORD wReserved1; 423 GUID ManufacturerGuid; 424 GUID ProductGuid; 425 GUID NameGuid; 426 } WAVEINCAPS2A,*PWAVEINCAPS2A,*NPWAVEINCAPS2A,*LPWAVEINCAPS2A; 427 428 typedef struct tagWAVEINCAPS2W { 429 WORD wMid; 430 WORD wPid; 431 MMVERSION vDriverVersion; 432 WCHAR szPname[MAXPNAMELEN]; 433 DWORD dwFormats; 434 WORD wChannels; 435 WORD wReserved1; 436 GUID ManufacturerGuid; 437 GUID ProductGuid; 438 GUID NameGuid; 439 } WAVEINCAPS2W,*PWAVEINCAPS2W,*NPWAVEINCAPS2W,*LPWAVEINCAPS2W; 440 441 __MINGW_TYPEDEF_AW(WAVEINCAPS2) 442 __MINGW_TYPEDEF_AW(PWAVEINCAPS2) 443 __MINGW_TYPEDEF_AW(NPWAVEINCAPS2) 444 __MINGW_TYPEDEF_AW(LPWAVEINCAPS2) 445 446 #define WAVE_INVALIDFORMAT 0x00000000 447 #define WAVE_FORMAT_1M08 0x00000001 448 #define WAVE_FORMAT_1S08 0x00000002 449 #define WAVE_FORMAT_1M16 0x00000004 450 #define WAVE_FORMAT_1S16 0x00000008 451 #define WAVE_FORMAT_2M08 0x00000010 452 #define WAVE_FORMAT_2S08 0x00000020 453 #define WAVE_FORMAT_2M16 0x00000040 454 #define WAVE_FORMAT_2S16 0x00000080 455 #define WAVE_FORMAT_4M08 0x00000100 456 #define WAVE_FORMAT_4S08 0x00000200 457 #define WAVE_FORMAT_4M16 0x00000400 458 #define WAVE_FORMAT_4S16 0x00000800 459 460 #define WAVE_FORMAT_44M08 0x00000100 461 #define WAVE_FORMAT_44S08 0x00000200 462 #define WAVE_FORMAT_44M16 0x00000400 463 #define WAVE_FORMAT_44S16 0x00000800 464 #define WAVE_FORMAT_48M08 0x00001000 465 #define WAVE_FORMAT_48S08 0x00002000 466 #define WAVE_FORMAT_48M16 0x00004000 467 #define WAVE_FORMAT_48S16 0x00008000 468 #define WAVE_FORMAT_96M08 0x00010000 469 #define WAVE_FORMAT_96S08 0x00020000 470 #define WAVE_FORMAT_96M16 0x00040000 471 #define WAVE_FORMAT_96S16 0x00080000 472 473 #ifndef WAVE_FORMAT_PCM 474 typedef struct waveformat_tag { 475 WORD wFormatTag; 476 WORD nChannels; 477 DWORD nSamplesPerSec; 478 DWORD nAvgBytesPerSec; 479 WORD nBlockAlign; 480 } WAVEFORMAT,*PWAVEFORMAT,NEAR *NPWAVEFORMAT,*LPWAVEFORMAT; 481 482 #define WAVE_FORMAT_PCM 1 483 484 typedef struct pcmwaveformat_tag { 485 WAVEFORMAT wf; 486 WORD wBitsPerSample; 487 } PCMWAVEFORMAT,*PPCMWAVEFORMAT,NEAR *NPPCMWAVEFORMAT,*LPPCMWAVEFORMAT; 488 #endif 489 490 #ifndef _WAVEFORMATEX_ 491 #define _WAVEFORMATEX_ 492 493 typedef struct tWAVEFORMATEX { 494 WORD wFormatTag; 495 WORD nChannels; 496 DWORD nSamplesPerSec; 497 DWORD nAvgBytesPerSec; 498 WORD nBlockAlign; 499 WORD wBitsPerSample; 500 WORD cbSize; 501 } WAVEFORMATEX,*PWAVEFORMATEX,NEAR *NPWAVEFORMATEX,*LPWAVEFORMATEX; 502 #endif 503 typedef const WAVEFORMATEX *LPCWAVEFORMATEX; 504 505 WINMMAPI UINT WINAPI waveOutGetNumDevs(void); 506 WINMMAPI MMRESULT WINAPI waveOutGetDevCapsA(UINT_PTR uDeviceID,LPWAVEOUTCAPSA pwoc,UINT cbwoc); 507 WINMMAPI MMRESULT WINAPI waveOutGetDevCapsW(UINT_PTR uDeviceID,LPWAVEOUTCAPSW pwoc,UINT cbwoc); 508 509 #define waveOutGetDevCaps __MINGW_NAME_AW(waveOutGetDevCaps) 510 511 WINMMAPI MMRESULT WINAPI waveOutGetVolume(HWAVEOUT hwo,LPDWORD pdwVolume); 512 WINMMAPI MMRESULT WINAPI waveOutSetVolume(HWAVEOUT hwo,DWORD dwVolume); 513 WINMMAPI MMRESULT WINAPI waveOutGetErrorTextA(MMRESULT mmrError,LPSTR pszText,UINT cchText); 514 WINMMAPI MMRESULT WINAPI waveOutGetErrorTextW(MMRESULT mmrError,LPWSTR pszText,UINT cchText); 515 516 #define waveOutGetErrorText __MINGW_NAME_AW(waveOutGetErrorText) 517 518 WINMMAPI MMRESULT WINAPI waveOutOpen(LPHWAVEOUT phwo,UINT uDeviceID,LPCWAVEFORMATEX pwfx,DWORD_PTR dwCallback,DWORD_PTR dwInstance,DWORD fdwOpen); 519 WINMMAPI MMRESULT WINAPI waveOutClose(HWAVEOUT hwo); 520 WINMMAPI MMRESULT WINAPI waveOutPrepareHeader(HWAVEOUT hwo,LPWAVEHDR pwh,UINT cbwh); 521 WINMMAPI MMRESULT WINAPI waveOutUnprepareHeader(HWAVEOUT hwo,LPWAVEHDR pwh,UINT cbwh); 522 WINMMAPI MMRESULT WINAPI waveOutWrite(HWAVEOUT hwo,LPWAVEHDR pwh,UINT cbwh); 523 WINMMAPI MMRESULT WINAPI waveOutPause(HWAVEOUT hwo); 524 WINMMAPI MMRESULT WINAPI waveOutRestart(HWAVEOUT hwo); 525 WINMMAPI MMRESULT WINAPI waveOutReset(HWAVEOUT hwo); 526 WINMMAPI MMRESULT WINAPI waveOutBreakLoop(HWAVEOUT hwo); 527 WINMMAPI MMRESULT WINAPI waveOutGetPosition(HWAVEOUT hwo,LPMMTIME pmmt,UINT cbmmt); 528 WINMMAPI MMRESULT WINAPI waveOutGetPitch(HWAVEOUT hwo,LPDWORD pdwPitch); 529 WINMMAPI MMRESULT WINAPI waveOutSetPitch(HWAVEOUT hwo,DWORD dwPitch); 530 WINMMAPI MMRESULT WINAPI waveOutGetPlaybackRate(HWAVEOUT hwo,LPDWORD pdwRate); 531 WINMMAPI MMRESULT WINAPI waveOutSetPlaybackRate(HWAVEOUT hwo,DWORD dwRate); 532 WINMMAPI MMRESULT WINAPI waveOutGetID(HWAVEOUT hwo,LPUINT puDeviceID); 533 WINMMAPI MMRESULT WINAPI waveOutMessage(HWAVEOUT hwo,UINT uMsg,DWORD_PTR dw1,DWORD_PTR dw2); 534 WINMMAPI UINT WINAPI waveInGetNumDevs(void); 535 WINMMAPI MMRESULT WINAPI waveInGetDevCapsA(UINT_PTR uDeviceID,LPWAVEINCAPSA pwic,UINT cbwic); 536 WINMMAPI MMRESULT WINAPI waveInGetDevCapsW(UINT_PTR uDeviceID,LPWAVEINCAPSW pwic,UINT cbwic); 537 538 #define waveInGetDevCaps __MINGW_NAME_AW(waveInGetDevCaps) 539 540 WINMMAPI MMRESULT WINAPI waveInGetErrorTextA(MMRESULT mmrError,LPSTR pszText,UINT cchText); 541 WINMMAPI MMRESULT WINAPI waveInGetErrorTextW(MMRESULT mmrError,LPWSTR pszText,UINT cchText); 542 543 #define waveInGetErrorText __MINGW_NAME_AW(waveInGetErrorText) 544 545 WINMMAPI MMRESULT WINAPI waveInOpen(LPHWAVEIN phwi,UINT uDeviceID,LPCWAVEFORMATEX pwfx,DWORD_PTR dwCallback,DWORD_PTR dwInstance,DWORD fdwOpen); 546 WINMMAPI MMRESULT WINAPI waveInClose(HWAVEIN hwi); 547 WINMMAPI MMRESULT WINAPI waveInPrepareHeader(HWAVEIN hwi,LPWAVEHDR pwh,UINT cbwh); 548 WINMMAPI MMRESULT WINAPI waveInUnprepareHeader(HWAVEIN hwi,LPWAVEHDR pwh,UINT cbwh); 549 WINMMAPI MMRESULT WINAPI waveInAddBuffer(HWAVEIN hwi,LPWAVEHDR pwh,UINT cbwh); 550 WINMMAPI MMRESULT WINAPI waveInStart(HWAVEIN hwi); 551 WINMMAPI MMRESULT WINAPI waveInStop(HWAVEIN hwi); 552 WINMMAPI MMRESULT WINAPI waveInReset(HWAVEIN hwi); 553 WINMMAPI MMRESULT WINAPI waveInGetPosition(HWAVEIN hwi,LPMMTIME pmmt,UINT cbmmt); 554 WINMMAPI MMRESULT WINAPI waveInGetID(HWAVEIN hwi,LPUINT puDeviceID); 555 WINMMAPI MMRESULT WINAPI waveInMessage(HWAVEIN hwi,UINT uMsg,DWORD_PTR dw1,DWORD_PTR dw2); 556 #endif 557 558 #ifndef MMNOMIDI 559 560 #define MIDIERR_UNPREPARED (MIDIERR_BASE + 0) 561 #define MIDIERR_STILLPLAYING (MIDIERR_BASE + 1) 562 #define MIDIERR_NOMAP (MIDIERR_BASE + 2) 563 #define MIDIERR_NOTREADY (MIDIERR_BASE + 3) 564 #define MIDIERR_NODEVICE (MIDIERR_BASE + 4) 565 #define MIDIERR_INVALIDSETUP (MIDIERR_BASE + 5) 566 #define MIDIERR_BADOPENMODE (MIDIERR_BASE + 6) 567 #define MIDIERR_DONT_CONTINUE (MIDIERR_BASE + 7) 568 #define MIDIERR_LASTERROR (MIDIERR_BASE + 7) 569 570 DECLARE_HANDLE(HMIDI); 571 DECLARE_HANDLE(HMIDIIN); 572 DECLARE_HANDLE(HMIDIOUT); 573 DECLARE_HANDLE(HMIDISTRM); 574 typedef HMIDI *LPHMIDI; 575 typedef HMIDIIN *LPHMIDIIN; 576 typedef HMIDIOUT *LPHMIDIOUT; 577 typedef HMIDISTRM *LPHMIDISTRM; 578 typedef DRVCALLBACK MIDICALLBACK; 579 typedef MIDICALLBACK *LPMIDICALLBACK; 580 #define MIDIPATCHSIZE 128 581 typedef WORD PATCHARRAY[MIDIPATCHSIZE]; 582 typedef WORD *LPPATCHARRAY; 583 typedef WORD KEYARRAY[MIDIPATCHSIZE]; 584 typedef WORD *LPKEYARRAY; 585 586 #define MIM_OPEN MM_MIM_OPEN 587 #define MIM_CLOSE MM_MIM_CLOSE 588 #define MIM_DATA MM_MIM_DATA 589 #define MIM_LONGDATA MM_MIM_LONGDATA 590 #define MIM_ERROR MM_MIM_ERROR 591 #define MIM_LONGERROR MM_MIM_LONGERROR 592 #define MOM_OPEN MM_MOM_OPEN 593 #define MOM_CLOSE MM_MOM_CLOSE 594 #define MOM_DONE MM_MOM_DONE 595 596 #define MIM_MOREDATA MM_MIM_MOREDATA 597 #define MOM_POSITIONCB MM_MOM_POSITIONCB 598 599 #define MIDIMAPPER ((UINT)-1) 600 #define MIDI_MAPPER ((UINT)-1) 601 602 #define MIDI_IO_STATUS __MSABI_LONG(0x00000020) 603 604 #define MIDI_CACHE_ALL 1 605 #define MIDI_CACHE_BESTFIT 2 606 #define MIDI_CACHE_QUERY 3 607 #define MIDI_UNCACHE 4 608 609 typedef struct tagMIDIOUTCAPSA { 610 WORD wMid; 611 WORD wPid; 612 MMVERSION vDriverVersion; 613 CHAR szPname[MAXPNAMELEN]; 614 WORD wTechnology; 615 WORD wVoices; 616 WORD wNotes; 617 WORD wChannelMask; 618 DWORD dwSupport; 619 } MIDIOUTCAPSA,*PMIDIOUTCAPSA,*NPMIDIOUTCAPSA,*LPMIDIOUTCAPSA; 620 621 typedef struct tagMIDIOUTCAPSW { 622 WORD wMid; 623 WORD wPid; 624 MMVERSION vDriverVersion; 625 WCHAR szPname[MAXPNAMELEN]; 626 WORD wTechnology; 627 WORD wVoices; 628 WORD wNotes; 629 WORD wChannelMask; 630 DWORD dwSupport; 631 } MIDIOUTCAPSW,*PMIDIOUTCAPSW,*NPMIDIOUTCAPSW,*LPMIDIOUTCAPSW; 632 633 __MINGW_TYPEDEF_AW(MIDIOUTCAPS) 634 __MINGW_TYPEDEF_AW(PMIDIOUTCAPS) 635 __MINGW_TYPEDEF_AW(NPMIDIOUTCAPS) 636 __MINGW_TYPEDEF_AW(LPMIDIOUTCAPS) 637 638 typedef struct tagMIDIOUTCAPS2A { 639 WORD wMid; 640 WORD wPid; 641 MMVERSION vDriverVersion; 642 CHAR szPname[MAXPNAMELEN]; 643 WORD wTechnology; 644 WORD wVoices; 645 WORD wNotes; 646 WORD wChannelMask; 647 DWORD dwSupport; 648 GUID ManufacturerGuid; 649 GUID ProductGuid; 650 GUID NameGuid; 651 } MIDIOUTCAPS2A,*PMIDIOUTCAPS2A,*NPMIDIOUTCAPS2A,*LPMIDIOUTCAPS2A; 652 653 typedef struct tagMIDIOUTCAPS2W { 654 WORD wMid; 655 WORD wPid; 656 MMVERSION vDriverVersion; 657 WCHAR szPname[MAXPNAMELEN]; 658 WORD wTechnology; 659 WORD wVoices; 660 WORD wNotes; 661 WORD wChannelMask; 662 DWORD dwSupport; 663 GUID ManufacturerGuid; 664 GUID ProductGuid; 665 GUID NameGuid; 666 } MIDIOUTCAPS2W,*PMIDIOUTCAPS2W,*NPMIDIOUTCAPS2W,*LPMIDIOUTCAPS2W; 667 668 __MINGW_TYPEDEF_AW(MIDIOUTCAPS2) 669 __MINGW_TYPEDEF_AW(PMIDIOUTCAPS2) 670 __MINGW_TYPEDEF_AW(NPMIDIOUTCAPS2) 671 __MINGW_TYPEDEF_AW(LPMIDIOUTCAPS2) 672 673 #define MOD_MIDIPORT 1 674 #define MOD_SYNTH 2 675 #define MOD_SQSYNTH 3 676 #define MOD_FMSYNTH 4 677 #define MOD_MAPPER 5 678 #define MOD_WAVETABLE 6 679 #define MOD_SWSYNTH 7 680 681 #define MIDICAPS_VOLUME 0x0001 682 #define MIDICAPS_LRVOLUME 0x0002 683 #define MIDICAPS_CACHE 0x0004 684 #define MIDICAPS_STREAM 0x0008 685 686 typedef struct tagMIDIINCAPSA { 687 WORD wMid; 688 WORD wPid; 689 MMVERSION vDriverVersion; 690 CHAR szPname[MAXPNAMELEN]; 691 DWORD dwSupport; 692 } MIDIINCAPSA,*PMIDIINCAPSA,*NPMIDIINCAPSA,*LPMIDIINCAPSA; 693 694 typedef struct tagMIDIINCAPSW { 695 WORD wMid; 696 WORD wPid; 697 MMVERSION vDriverVersion; 698 WCHAR szPname[MAXPNAMELEN]; 699 DWORD dwSupport; 700 } MIDIINCAPSW,*PMIDIINCAPSW,*NPMIDIINCAPSW,*LPMIDIINCAPSW; 701 702 __MINGW_TYPEDEF_AW(MIDIINCAPS) 703 __MINGW_TYPEDEF_AW(PMIDIINCAPS) 704 __MINGW_TYPEDEF_AW(NPMIDIINCAPS) 705 __MINGW_TYPEDEF_AW(LPMIDIINCAPS) 706 707 typedef struct tagMIDIINCAPS2A { 708 WORD wMid; 709 WORD wPid; 710 MMVERSION vDriverVersion; 711 CHAR szPname[MAXPNAMELEN]; 712 DWORD dwSupport; 713 GUID ManufacturerGuid; 714 GUID ProductGuid; 715 GUID NameGuid; 716 } MIDIINCAPS2A,*PMIDIINCAPS2A,*NPMIDIINCAPS2A,*LPMIDIINCAPS2A; 717 718 typedef struct tagMIDIINCAPS2W { 719 WORD wMid; 720 WORD wPid; 721 MMVERSION vDriverVersion; 722 WCHAR szPname[MAXPNAMELEN]; 723 DWORD dwSupport; 724 GUID ManufacturerGuid; 725 GUID ProductGuid; 726 GUID NameGuid; 727 } MIDIINCAPS2W,*PMIDIINCAPS2W,*NPMIDIINCAPS2W,*LPMIDIINCAPS2W; 728 729 __MINGW_TYPEDEF_AW(MIDIINCAPS2) 730 __MINGW_TYPEDEF_AW(PMIDIINCAPS2) 731 __MINGW_TYPEDEF_AW(NPMIDIINCAPS2) 732 __MINGW_TYPEDEF_AW(LPMIDIINCAPS2) 733 734 typedef struct midihdr_tag { 735 LPSTR lpData; 736 DWORD dwBufferLength; 737 DWORD dwBytesRecorded; 738 DWORD_PTR dwUser; 739 DWORD dwFlags; 740 struct midihdr_tag far *lpNext; 741 DWORD_PTR reserved; 742 DWORD dwOffset; 743 DWORD_PTR dwReserved[8]; 744 } MIDIHDR,*PMIDIHDR,NEAR *NPMIDIHDR,*LPMIDIHDR; 745 746 typedef struct midievent_tag { 747 DWORD dwDeltaTime; 748 DWORD dwStreamID; 749 DWORD dwEvent; 750 DWORD dwParms[1]; 751 } MIDIEVENT; 752 753 typedef struct midistrmbuffver_tag { 754 DWORD dwVersion; 755 DWORD dwMid; 756 DWORD dwOEMVersion; 757 } MIDISTRMBUFFVER; 758 759 #define MHDR_DONE 0x00000001 760 #define MHDR_PREPARED 0x00000002 761 #define MHDR_INQUEUE 0x00000004 762 #define MHDR_ISSTRM 0x00000008 763 764 #define MEVT_F_SHORT __MSABI_LONG(0x00000000) 765 #define MEVT_F_LONG __MSABI_LONG(0x80000000) 766 #define MEVT_F_CALLBACK __MSABI_LONG(0x40000000) 767 768 #define MEVT_EVENTTYPE(x) ((BYTE)(((x)>>24)&0xFF)) 769 #define MEVT_EVENTPARM(x) ((DWORD)((x)&0x00FFFFFF)) 770 771 #define MEVT_SHORTMSG ((BYTE)0x00) 772 #define MEVT_TEMPO ((BYTE)0x01) 773 #define MEVT_NOP ((BYTE)0x02) 774 775 #define MEVT_LONGMSG ((BYTE)0x80) 776 #define MEVT_COMMENT ((BYTE)0x82) 777 #define MEVT_VERSION ((BYTE)0x84) 778 779 #define MIDISTRM_ERROR (-2) 780 781 #define MIDIPROP_SET __MSABI_LONG(0x80000000) 782 #define MIDIPROP_GET __MSABI_LONG(0x40000000) 783 784 #define MIDIPROP_TIMEDIV __MSABI_LONG(0x00000001) 785 #define MIDIPROP_TEMPO __MSABI_LONG(0x00000002) 786 787 typedef struct midiproptimediv_tag { 788 DWORD cbStruct; 789 DWORD dwTimeDiv; 790 } MIDIPROPTIMEDIV,*LPMIDIPROPTIMEDIV; 791 792 typedef struct midiproptempo_tag { 793 DWORD cbStruct; 794 DWORD dwTempo; 795 } MIDIPROPTEMPO,*LPMIDIPROPTEMPO; 796 797 WINMMAPI UINT WINAPI midiOutGetNumDevs(void); 798 WINMMAPI MMRESULT WINAPI midiStreamOpen(LPHMIDISTRM phms,LPUINT puDeviceID,DWORD cMidi,DWORD_PTR dwCallback,DWORD_PTR dwInstance,DWORD fdwOpen); 799 WINMMAPI MMRESULT WINAPI midiStreamClose(HMIDISTRM hms); 800 WINMMAPI MMRESULT WINAPI midiStreamProperty(HMIDISTRM hms,LPBYTE lppropdata,DWORD dwProperty); 801 WINMMAPI MMRESULT WINAPI midiStreamPosition(HMIDISTRM hms,LPMMTIME lpmmt,UINT cbmmt); 802 WINMMAPI MMRESULT WINAPI midiStreamOut(HMIDISTRM hms,LPMIDIHDR pmh,UINT cbmh); 803 WINMMAPI MMRESULT WINAPI midiStreamPause(HMIDISTRM hms); 804 WINMMAPI MMRESULT WINAPI midiStreamRestart(HMIDISTRM hms); 805 WINMMAPI MMRESULT WINAPI midiStreamStop(HMIDISTRM hms); 806 WINMMAPI MMRESULT WINAPI midiConnect(HMIDI hmi,HMIDIOUT hmo,LPVOID pReserved); 807 WINMMAPI MMRESULT WINAPI midiDisconnect(HMIDI hmi,HMIDIOUT hmo,LPVOID pReserved); 808 WINMMAPI MMRESULT WINAPI midiOutGetDevCapsA(UINT_PTR uDeviceID,LPMIDIOUTCAPSA pmoc,UINT cbmoc); 809 WINMMAPI MMRESULT WINAPI midiOutGetDevCapsW(UINT_PTR uDeviceID,LPMIDIOUTCAPSW pmoc,UINT cbmoc); 810 811 #define midiOutGetDevCaps __MINGW_NAME_AW(midiOutGetDevCaps) 812 813 WINMMAPI MMRESULT WINAPI midiOutGetVolume(HMIDIOUT hmo,LPDWORD pdwVolume); 814 WINMMAPI MMRESULT WINAPI midiOutSetVolume(HMIDIOUT hmo,DWORD dwVolume); 815 WINMMAPI MMRESULT WINAPI midiOutGetErrorTextA(MMRESULT mmrError,LPSTR pszText,UINT cchText); 816 WINMMAPI MMRESULT WINAPI midiOutGetErrorTextW(MMRESULT mmrError,LPWSTR pszText,UINT cchText); 817 818 #define midiOutGetErrorText __MINGW_NAME_AW(midiOutGetErrorText) 819 820 WINMMAPI MMRESULT WINAPI midiOutOpen(LPHMIDIOUT phmo,UINT uDeviceID,DWORD_PTR dwCallback,DWORD_PTR dwInstance,DWORD fdwOpen); 821 WINMMAPI MMRESULT WINAPI midiOutClose(HMIDIOUT hmo); 822 WINMMAPI MMRESULT WINAPI midiOutPrepareHeader(HMIDIOUT hmo,LPMIDIHDR pmh,UINT cbmh); 823 WINMMAPI MMRESULT WINAPI midiOutUnprepareHeader(HMIDIOUT hmo,LPMIDIHDR pmh,UINT cbmh); 824 WINMMAPI MMRESULT WINAPI midiOutShortMsg(HMIDIOUT hmo,DWORD dwMsg); 825 WINMMAPI MMRESULT WINAPI midiOutLongMsg(HMIDIOUT hmo,LPMIDIHDR pmh,UINT cbmh); 826 WINMMAPI MMRESULT WINAPI midiOutReset(HMIDIOUT hmo); 827 WINMMAPI MMRESULT WINAPI midiOutCachePatches(HMIDIOUT hmo,UINT uBank,LPWORD pwpa,UINT fuCache); 828 WINMMAPI MMRESULT WINAPI midiOutCacheDrumPatches(HMIDIOUT hmo,UINT uPatch,LPWORD pwkya,UINT fuCache); 829 WINMMAPI MMRESULT WINAPI midiOutGetID(HMIDIOUT hmo,LPUINT puDeviceID); 830 WINMMAPI MMRESULT WINAPI midiOutMessage(HMIDIOUT hmo,UINT uMsg,DWORD_PTR dw1,DWORD_PTR dw2); 831 WINMMAPI UINT WINAPI midiInGetNumDevs(void); 832 WINMMAPI MMRESULT WINAPI midiInGetDevCapsA(UINT_PTR uDeviceID,LPMIDIINCAPSA pmic,UINT cbmic); 833 WINMMAPI MMRESULT WINAPI midiInGetDevCapsW(UINT_PTR uDeviceID,LPMIDIINCAPSW pmic,UINT cbmic); 834 835 #define midiInGetDevCaps __MINGW_NAME_AW(midiInGetDevCaps) 836 837 WINMMAPI MMRESULT WINAPI midiInGetErrorTextA(MMRESULT mmrError,LPSTR pszText,UINT cchText); 838 WINMMAPI MMRESULT WINAPI midiInGetErrorTextW(MMRESULT mmrError,LPWSTR pszText,UINT cchText); 839 840 #define midiInGetErrorText __MINGW_NAME_AW(midiInGetErrorText) 841 842 WINMMAPI MMRESULT WINAPI midiInOpen(LPHMIDIIN phmi,UINT uDeviceID,DWORD_PTR dwCallback,DWORD_PTR dwInstance,DWORD fdwOpen); 843 WINMMAPI MMRESULT WINAPI midiInClose(HMIDIIN hmi); 844 WINMMAPI MMRESULT WINAPI midiInPrepareHeader(HMIDIIN hmi,LPMIDIHDR pmh,UINT cbmh); 845 WINMMAPI MMRESULT WINAPI midiInUnprepareHeader(HMIDIIN hmi,LPMIDIHDR pmh,UINT cbmh); 846 WINMMAPI MMRESULT WINAPI midiInAddBuffer(HMIDIIN hmi,LPMIDIHDR pmh,UINT cbmh); 847 WINMMAPI MMRESULT WINAPI midiInStart(HMIDIIN hmi); 848 WINMMAPI MMRESULT WINAPI midiInStop(HMIDIIN hmi); 849 WINMMAPI MMRESULT WINAPI midiInReset(HMIDIIN hmi); 850 WINMMAPI MMRESULT WINAPI midiInGetID(HMIDIIN hmi,LPUINT puDeviceID); 851 WINMMAPI MMRESULT WINAPI midiInMessage(HMIDIIN hmi,UINT uMsg,DWORD_PTR dw1,DWORD_PTR dw2); 852 #endif 853 854 #ifndef MMNOAUX 855 856 #define AUX_MAPPER ((UINT)-1) 857 858 typedef struct tagAUXCAPSA { 859 WORD wMid; 860 WORD wPid; 861 MMVERSION vDriverVersion; 862 CHAR szPname[MAXPNAMELEN]; 863 WORD wTechnology; 864 WORD wReserved1; 865 DWORD dwSupport; 866 } AUXCAPSA,*PAUXCAPSA,*NPAUXCAPSA,*LPAUXCAPSA; 867 868 typedef struct tagAUXCAPSW { 869 WORD wMid; 870 WORD wPid; 871 MMVERSION vDriverVersion; 872 WCHAR szPname[MAXPNAMELEN]; 873 WORD wTechnology; 874 WORD wReserved1; 875 DWORD dwSupport; 876 } AUXCAPSW,*PAUXCAPSW,*NPAUXCAPSW,*LPAUXCAPSW; 877 878 __MINGW_TYPEDEF_AW(AUXCAPS) 879 __MINGW_TYPEDEF_AW(PAUXCAPS) 880 __MINGW_TYPEDEF_AW(NPAUXCAPS) 881 __MINGW_TYPEDEF_AW(LPAUXCAPS) 882 883 typedef struct tagAUXCAPS2A { 884 WORD wMid; 885 WORD wPid; 886 MMVERSION vDriverVersion; 887 CHAR szPname[MAXPNAMELEN]; 888 WORD wTechnology; 889 WORD wReserved1; 890 DWORD dwSupport; 891 GUID ManufacturerGuid; 892 GUID ProductGuid; 893 GUID NameGuid; 894 } AUXCAPS2A,*PAUXCAPS2A,*NPAUXCAPS2A,*LPAUXCAPS2A; 895 896 typedef struct tagAUXCAPS2W { 897 WORD wMid; 898 WORD wPid; 899 MMVERSION vDriverVersion; 900 WCHAR szPname[MAXPNAMELEN]; 901 WORD wTechnology; 902 WORD wReserved1; 903 DWORD dwSupport; 904 GUID ManufacturerGuid; 905 GUID ProductGuid; 906 GUID NameGuid; 907 } AUXCAPS2W,*PAUXCAPS2W,*NPAUXCAPS2W,*LPAUXCAPS2W; 908 909 __MINGW_TYPEDEF_AW(AUXCAPS2) 910 __MINGW_TYPEDEF_AW(PAUXCAPS2) 911 __MINGW_TYPEDEF_AW(NPAUXCAPS2) 912 __MINGW_TYPEDEF_AW(LPAUXCAPS2) 913 914 #define AUXCAPS_CDAUDIO 1 915 #define AUXCAPS_AUXIN 2 916 917 #define AUXCAPS_VOLUME 0x0001 918 #define AUXCAPS_LRVOLUME 0x0002 919 920 WINMMAPI UINT WINAPI auxGetNumDevs(void); 921 WINMMAPI MMRESULT WINAPI auxGetDevCapsA(UINT_PTR uDeviceID,LPAUXCAPSA pac,UINT cbac); 922 WINMMAPI MMRESULT WINAPI auxGetDevCapsW(UINT_PTR uDeviceID,LPAUXCAPSW pac,UINT cbac); 923 924 #define auxGetDevCaps __MINGW_NAME_AW(auxGetDevCaps) 925 926 WINMMAPI MMRESULT WINAPI auxSetVolume(UINT uDeviceID,DWORD dwVolume); 927 WINMMAPI MMRESULT WINAPI auxGetVolume(UINT uDeviceID,LPDWORD pdwVolume); 928 WINMMAPI MMRESULT WINAPI auxOutMessage(UINT uDeviceID,UINT uMsg,DWORD_PTR dw1,DWORD_PTR dw2); 929 #endif 930 931 #ifndef MMNOMIXER 932 933 DECLARE_HANDLE(HMIXEROBJ); 934 typedef HMIXEROBJ *LPHMIXEROBJ; 935 936 DECLARE_HANDLE(HMIXER); 937 typedef HMIXER *LPHMIXER; 938 939 #define MIXER_SHORT_NAME_CHARS 16 940 #define MIXER_LONG_NAME_CHARS 64 941 942 #define MIXERR_INVALLINE (MIXERR_BASE + 0) 943 #define MIXERR_INVALCONTROL (MIXERR_BASE + 1) 944 #define MIXERR_INVALVALUE (MIXERR_BASE + 2) 945 #define MIXERR_LASTERROR (MIXERR_BASE + 2) 946 947 #define MIXER_OBJECTF_HANDLE __MSABI_LONG(0x80000000) 948 #define MIXER_OBJECTF_MIXER __MSABI_LONG(0x00000000) 949 #define MIXER_OBJECTF_HMIXER (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER) 950 #define MIXER_OBJECTF_WAVEOUT __MSABI_LONG(0x10000000) 951 #define MIXER_OBJECTF_HWAVEOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT) 952 #define MIXER_OBJECTF_WAVEIN __MSABI_LONG(0x20000000) 953 #define MIXER_OBJECTF_HWAVEIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN) 954 #define MIXER_OBJECTF_MIDIOUT __MSABI_LONG(0x30000000) 955 #define MIXER_OBJECTF_HMIDIOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT) 956 #define MIXER_OBJECTF_MIDIIN __MSABI_LONG(0x40000000) 957 #define MIXER_OBJECTF_HMIDIIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN) 958 #define MIXER_OBJECTF_AUX __MSABI_LONG(0x50000000) 959 960 WINMMAPI UINT WINAPI mixerGetNumDevs(void); 961 962 typedef struct tagMIXERCAPSA { 963 WORD wMid; 964 WORD wPid; 965 MMVERSION vDriverVersion; 966 CHAR szPname[MAXPNAMELEN]; 967 DWORD fdwSupport; 968 DWORD cDestinations; 969 } MIXERCAPSA,*PMIXERCAPSA,*LPMIXERCAPSA; 970 971 typedef struct tagMIXERCAPSW { 972 WORD wMid; 973 WORD wPid; 974 MMVERSION vDriverVersion; 975 WCHAR szPname[MAXPNAMELEN]; 976 DWORD fdwSupport; 977 DWORD cDestinations; 978 } MIXERCAPSW,*PMIXERCAPSW,*LPMIXERCAPSW; 979 980 __MINGW_TYPEDEF_AW(MIXERCAPS) 981 __MINGW_TYPEDEF_AW(PMIXERCAPS) 982 __MINGW_TYPEDEF_AW(LPMIXERCAPS) 983 984 typedef struct tagMIXERCAPS2A { 985 WORD wMid; 986 WORD wPid; 987 MMVERSION vDriverVersion; 988 CHAR szPname[MAXPNAMELEN]; 989 DWORD fdwSupport; 990 DWORD cDestinations; 991 GUID ManufacturerGuid; 992 GUID ProductGuid; 993 GUID NameGuid; 994 } MIXERCAPS2A,*PMIXERCAPS2A,*LPMIXERCAPS2A; 995 996 typedef struct tagMIXERCAPS2W { 997 WORD wMid; 998 WORD wPid; 999 MMVERSION vDriverVersion; 1000 WCHAR szPname[MAXPNAMELEN]; 1001 DWORD fdwSupport; 1002 DWORD cDestinations; 1003 GUID ManufacturerGuid; 1004 GUID ProductGuid; 1005 GUID NameGuid; 1006 } MIXERCAPS2W,*PMIXERCAPS2W,*LPMIXERCAPS2W; 1007 1008 __MINGW_TYPEDEF_AW(MIXERCAPS2) 1009 __MINGW_TYPEDEF_AW(PMIXERCAPS2) 1010 __MINGW_TYPEDEF_AW(LPMIXERCAPS2) 1011 1012 WINMMAPI MMRESULT WINAPI mixerGetDevCapsA(UINT_PTR uMxId,LPMIXERCAPSA pmxcaps,UINT cbmxcaps); 1013 WINMMAPI MMRESULT WINAPI mixerGetDevCapsW(UINT_PTR uMxId,LPMIXERCAPSW pmxcaps,UINT cbmxcaps); 1014 1015 #define mixerGetDevCaps __MINGW_NAME_AW(mixerGetDevCaps) 1016 1017 WINMMAPI MMRESULT WINAPI mixerOpen(LPHMIXER phmx,UINT uMxId,DWORD_PTR dwCallback,DWORD_PTR dwInstance,DWORD fdwOpen); 1018 WINMMAPI MMRESULT WINAPI mixerClose(HMIXER hmx); 1019 WINMMAPI DWORD WINAPI mixerMessage(HMIXER hmx,UINT uMsg,DWORD_PTR dwParam1,DWORD_PTR dwParam2); 1020 1021 typedef struct tagMIXERLINEA { 1022 DWORD cbStruct; 1023 DWORD dwDestination; 1024 DWORD dwSource; 1025 DWORD dwLineID; 1026 DWORD fdwLine; 1027 DWORD_PTR dwUser; 1028 DWORD dwComponentType; 1029 DWORD cChannels; 1030 DWORD cConnections; 1031 DWORD cControls; 1032 CHAR szShortName[MIXER_SHORT_NAME_CHARS]; 1033 CHAR szName[MIXER_LONG_NAME_CHARS]; 1034 struct { 1035 DWORD dwType; 1036 DWORD dwDeviceID; 1037 WORD wMid; 1038 WORD wPid; 1039 MMVERSION vDriverVersion; 1040 CHAR szPname[MAXPNAMELEN]; 1041 } Target; 1042 } MIXERLINEA,*PMIXERLINEA,*LPMIXERLINEA; 1043 1044 typedef struct tagMIXERLINEW { 1045 DWORD cbStruct; 1046 DWORD dwDestination; 1047 DWORD dwSource; 1048 DWORD dwLineID; 1049 DWORD fdwLine; 1050 DWORD_PTR dwUser; 1051 DWORD dwComponentType; 1052 DWORD cChannels; 1053 DWORD cConnections; 1054 DWORD cControls; 1055 WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; 1056 WCHAR szName[MIXER_LONG_NAME_CHARS]; 1057 struct { 1058 DWORD dwType; 1059 DWORD dwDeviceID; 1060 WORD wMid; 1061 WORD wPid; 1062 MMVERSION vDriverVersion; 1063 WCHAR szPname[MAXPNAMELEN]; 1064 } Target; 1065 } MIXERLINEW,*PMIXERLINEW,*LPMIXERLINEW; 1066 1067 __MINGW_TYPEDEF_AW(MIXERLINE) 1068 __MINGW_TYPEDEF_AW(PMIXERLINE) 1069 __MINGW_TYPEDEF_AW(LPMIXERLINE) 1070 1071 #define MIXERLINE_LINEF_ACTIVE __MSABI_LONG(0x00000001) 1072 #define MIXERLINE_LINEF_DISCONNECTED __MSABI_LONG(0x00008000) 1073 #define MIXERLINE_LINEF_SOURCE __MSABI_LONG(0x80000000) 1074 1075 #define MIXERLINE_COMPONENTTYPE_DST_FIRST __MSABI_LONG(0x0) 1076 #define MIXERLINE_COMPONENTTYPE_DST_UNDEFINED (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0) 1077 #define MIXERLINE_COMPONENTTYPE_DST_DIGITAL (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1) 1078 #define MIXERLINE_COMPONENTTYPE_DST_LINE (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2) 1079 #define MIXERLINE_COMPONENTTYPE_DST_MONITOR (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3) 1080 #define MIXERLINE_COMPONENTTYPE_DST_SPEAKERS (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4) 1081 #define MIXERLINE_COMPONENTTYPE_DST_HEADPHONES (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5) 1082 #define MIXERLINE_COMPONENTTYPE_DST_TELEPHONE (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6) 1083 #define MIXERLINE_COMPONENTTYPE_DST_WAVEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7) 1084 #define MIXERLINE_COMPONENTTYPE_DST_VOICEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8) 1085 #define MIXERLINE_COMPONENTTYPE_DST_LAST (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8) 1086 #define MIXERLINE_COMPONENTTYPE_SRC_FIRST __MSABI_LONG(0x00001000) 1087 #define MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0) 1088 #define MIXERLINE_COMPONENTTYPE_SRC_DIGITAL (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1) 1089 #define MIXERLINE_COMPONENTTYPE_SRC_LINE (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2) 1090 #define MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3) 1091 #define MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4) 1092 #define MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5) 1093 #define MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6) 1094 #define MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7) 1095 #define MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8) 1096 #define MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9) 1097 #define MIXERLINE_COMPONENTTYPE_SRC_ANALOG (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10) 1098 #define MIXERLINE_COMPONENTTYPE_SRC_LAST (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10) 1099 1100 #define MIXERLINE_TARGETTYPE_UNDEFINED 0 1101 #define MIXERLINE_TARGETTYPE_WAVEOUT 1 1102 #define MIXERLINE_TARGETTYPE_WAVEIN 2 1103 #define MIXERLINE_TARGETTYPE_MIDIOUT 3 1104 #define MIXERLINE_TARGETTYPE_MIDIIN 4 1105 #define MIXERLINE_TARGETTYPE_AUX 5 1106 1107 WINMMAPI MMRESULT WINAPI mixerGetLineInfoA(HMIXEROBJ hmxobj,LPMIXERLINEA pmxl,DWORD fdwInfo); 1108 WINMMAPI MMRESULT WINAPI mixerGetLineInfoW(HMIXEROBJ hmxobj,LPMIXERLINEW pmxl,DWORD fdwInfo); 1109 1110 #define mixerGetLineInfo __MINGW_NAME_AW(mixerGetLineInfo) 1111 1112 #define MIXER_GETLINEINFOF_DESTINATION __MSABI_LONG(0x00000000) 1113 #define MIXER_GETLINEINFOF_SOURCE __MSABI_LONG(0x00000001) 1114 #define MIXER_GETLINEINFOF_LINEID __MSABI_LONG(0x00000002) 1115 #define MIXER_GETLINEINFOF_COMPONENTTYPE __MSABI_LONG(0x00000003) 1116 #define MIXER_GETLINEINFOF_TARGETTYPE __MSABI_LONG(0x00000004) 1117 1118 #define MIXER_GETLINEINFOF_QUERYMASK __MSABI_LONG(0x0000000F) 1119 1120 WINMMAPI MMRESULT WINAPI mixerGetID(HMIXEROBJ hmxobj,UINT *puMxId,DWORD fdwId); 1121 1122 typedef struct tagMIXERCONTROLA { 1123 DWORD cbStruct; 1124 DWORD dwControlID; 1125 DWORD dwControlType; 1126 DWORD fdwControl; 1127 DWORD cMultipleItems; 1128 CHAR szShortName[MIXER_SHORT_NAME_CHARS]; 1129 CHAR szName[MIXER_LONG_NAME_CHARS]; 1130 union { 1131 __C89_NAMELESS struct { 1132 LONG lMinimum; 1133 LONG lMaximum; 1134 } DUMMYSTRUCTNAME; 1135 __C89_NAMELESS struct { 1136 DWORD dwMinimum; 1137 DWORD dwMaximum; 1138 } DUMMYSTRUCTNAME2; 1139 DWORD dwReserved[6]; 1140 } Bounds; 1141 union { 1142 DWORD cSteps; 1143 DWORD cbCustomData; 1144 DWORD dwReserved[6]; 1145 } Metrics; 1146 } MIXERCONTROLA,*PMIXERCONTROLA,*LPMIXERCONTROLA; 1147 1148 typedef struct tagMIXERCONTROLW { 1149 DWORD cbStruct; 1150 DWORD dwControlID; 1151 DWORD dwControlType; 1152 DWORD fdwControl; 1153 DWORD cMultipleItems; 1154 WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; 1155 WCHAR szName[MIXER_LONG_NAME_CHARS]; 1156 union { 1157 __C89_NAMELESS struct { 1158 LONG lMinimum; 1159 LONG lMaximum; 1160 } DUMMYSTRUCTNAME; 1161 __C89_NAMELESS struct { 1162 DWORD dwMinimum; 1163 DWORD dwMaximum; 1164 } DUMMYSTRUCTNAME2; 1165 DWORD dwReserved[6]; 1166 } Bounds; 1167 union { 1168 DWORD cSteps; 1169 DWORD cbCustomData; 1170 DWORD dwReserved[6]; 1171 } Metrics; 1172 } MIXERCONTROLW,*PMIXERCONTROLW,*LPMIXERCONTROLW; 1173 1174 __MINGW_TYPEDEF_AW(MIXERCONTROL) 1175 __MINGW_TYPEDEF_AW(PMIXERCONTROL) 1176 __MINGW_TYPEDEF_AW(LPMIXERCONTROL) 1177 1178 #define MIXERCONTROL_CONTROLF_UNIFORM __MSABI_LONG(0x00000001) 1179 #define MIXERCONTROL_CONTROLF_MULTIPLE __MSABI_LONG(0x00000002) 1180 #define MIXERCONTROL_CONTROLF_DISABLED __MSABI_LONG(0x80000000) 1181 1182 #define MIXERCONTROL_CT_CLASS_MASK __MSABI_LONG(0xF0000000) 1183 #define MIXERCONTROL_CT_CLASS_CUSTOM __MSABI_LONG(0x00000000) 1184 #define MIXERCONTROL_CT_CLASS_METER __MSABI_LONG(0x10000000) 1185 #define MIXERCONTROL_CT_CLASS_SWITCH __MSABI_LONG(0x20000000) 1186 #define MIXERCONTROL_CT_CLASS_NUMBER __MSABI_LONG(0x30000000) 1187 #define MIXERCONTROL_CT_CLASS_SLIDER __MSABI_LONG(0x40000000) 1188 #define MIXERCONTROL_CT_CLASS_FADER __MSABI_LONG(0x50000000) 1189 #define MIXERCONTROL_CT_CLASS_TIME __MSABI_LONG(0x60000000) 1190 #define MIXERCONTROL_CT_CLASS_LIST __MSABI_LONG(0x70000000) 1191 1192 #define MIXERCONTROL_CT_SUBCLASS_MASK __MSABI_LONG(0x0F000000) 1193 1194 #define MIXERCONTROL_CT_SC_SWITCH_BOOLEAN __MSABI_LONG(0x00000000) 1195 #define MIXERCONTROL_CT_SC_SWITCH_BUTTON __MSABI_LONG(0x01000000) 1196 1197 #define MIXERCONTROL_CT_SC_METER_POLLED __MSABI_LONG(0x00000000) 1198 1199 #define MIXERCONTROL_CT_SC_TIME_MICROSECS __MSABI_LONG(0x00000000) 1200 #define MIXERCONTROL_CT_SC_TIME_MILLISECS __MSABI_LONG(0x01000000) 1201 1202 #define MIXERCONTROL_CT_SC_LIST_SINGLE __MSABI_LONG(0x00000000) 1203 #define MIXERCONTROL_CT_SC_LIST_MULTIPLE __MSABI_LONG(0x01000000) 1204 1205 #define MIXERCONTROL_CT_UNITS_MASK __MSABI_LONG(0x00FF0000) 1206 #define MIXERCONTROL_CT_UNITS_CUSTOM __MSABI_LONG(0x00000000) 1207 #define MIXERCONTROL_CT_UNITS_BOOLEAN __MSABI_LONG(0x00010000) 1208 #define MIXERCONTROL_CT_UNITS_SIGNED __MSABI_LONG(0x00020000) 1209 #define MIXERCONTROL_CT_UNITS_UNSIGNED __MSABI_LONG(0x00030000) 1210 #define MIXERCONTROL_CT_UNITS_DECIBELS __MSABI_LONG(0x00040000) 1211 #define MIXERCONTROL_CT_UNITS_PERCENT __MSABI_LONG(0x00050000) 1212 1213 #define MIXERCONTROL_CONTROLTYPE_CUSTOM (MIXERCONTROL_CT_CLASS_CUSTOM | MIXERCONTROL_CT_UNITS_CUSTOM) 1214 #define MIXERCONTROL_CONTROLTYPE_BOOLEANMETER (MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_BOOLEAN) 1215 #define MIXERCONTROL_CONTROLTYPE_SIGNEDMETER (MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_SIGNED) 1216 #define MIXERCONTROL_CONTROLTYPE_PEAKMETER (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1) 1217 #define MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER (MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_UNSIGNED) 1218 #define MIXERCONTROL_CONTROLTYPE_BOOLEAN (MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BOOLEAN | MIXERCONTROL_CT_UNITS_BOOLEAN) 1219 #define MIXERCONTROL_CONTROLTYPE_ONOFF (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1) 1220 #define MIXERCONTROL_CONTROLTYPE_MUTE (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2) 1221 #define MIXERCONTROL_CONTROLTYPE_MONO (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3) 1222 #define MIXERCONTROL_CONTROLTYPE_LOUDNESS (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4) 1223 #define MIXERCONTROL_CONTROLTYPE_STEREOENH (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5) 1224 #define MIXERCONTROL_CONTROLTYPE_BASS_BOOST (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 0x00002277) 1225 #define MIXERCONTROL_CONTROLTYPE_BUTTON (MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BUTTON | MIXERCONTROL_CT_UNITS_BOOLEAN) 1226 #define MIXERCONTROL_CONTROLTYPE_DECIBELS (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_DECIBELS) 1227 #define MIXERCONTROL_CONTROLTYPE_SIGNED (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_SIGNED) 1228 #define MIXERCONTROL_CONTROLTYPE_UNSIGNED (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_UNSIGNED) 1229 #define MIXERCONTROL_CONTROLTYPE_PERCENT (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_PERCENT) 1230 #define MIXERCONTROL_CONTROLTYPE_SLIDER (MIXERCONTROL_CT_CLASS_SLIDER | MIXERCONTROL_CT_UNITS_SIGNED) 1231 #define MIXERCONTROL_CONTROLTYPE_PAN (MIXERCONTROL_CONTROLTYPE_SLIDER + 1) 1232 #define MIXERCONTROL_CONTROLTYPE_QSOUNDPAN (MIXERCONTROL_CONTROLTYPE_SLIDER + 2) 1233 #define MIXERCONTROL_CONTROLTYPE_FADER (MIXERCONTROL_CT_CLASS_FADER | MIXERCONTROL_CT_UNITS_UNSIGNED) 1234 #define MIXERCONTROL_CONTROLTYPE_VOLUME (MIXERCONTROL_CONTROLTYPE_FADER + 1) 1235 #define MIXERCONTROL_CONTROLTYPE_BASS (MIXERCONTROL_CONTROLTYPE_FADER + 2) 1236 #define MIXERCONTROL_CONTROLTYPE_TREBLE (MIXERCONTROL_CONTROLTYPE_FADER + 3) 1237 #define MIXERCONTROL_CONTROLTYPE_EQUALIZER (MIXERCONTROL_CONTROLTYPE_FADER + 4) 1238 #define MIXERCONTROL_CONTROLTYPE_SINGLESELECT (MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_SINGLE | MIXERCONTROL_CT_UNITS_BOOLEAN) 1239 #define MIXERCONTROL_CONTROLTYPE_MUX (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1) 1240 #define MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT (MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_MULTIPLE | MIXERCONTROL_CT_UNITS_BOOLEAN) 1241 #define MIXERCONTROL_CONTROLTYPE_MIXER (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1) 1242 #define MIXERCONTROL_CONTROLTYPE_MICROTIME (MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MICROSECS | MIXERCONTROL_CT_UNITS_UNSIGNED) 1243 #define MIXERCONTROL_CONTROLTYPE_MILLITIME (MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MILLISECS | MIXERCONTROL_CT_UNITS_UNSIGNED) 1244 1245 typedef struct tagMIXERLINECONTROLSA { 1246 DWORD cbStruct; 1247 DWORD dwLineID; 1248 __C89_NAMELESS union { 1249 DWORD dwControlID; 1250 DWORD dwControlType; 1251 } DUMMYUNIONNAME; 1252 DWORD cControls; 1253 DWORD cbmxctrl; 1254 LPMIXERCONTROLA pamxctrl; 1255 } MIXERLINECONTROLSA,*PMIXERLINECONTROLSA,*LPMIXERLINECONTROLSA; 1256 1257 typedef struct tagMIXERLINECONTROLSW { 1258 DWORD cbStruct; 1259 DWORD dwLineID; 1260 __C89_NAMELESS union { 1261 DWORD dwControlID; 1262 DWORD dwControlType; 1263 } DUMMYUNIONNAME; 1264 DWORD cControls; 1265 DWORD cbmxctrl; 1266 LPMIXERCONTROLW pamxctrl; 1267 } MIXERLINECONTROLSW,*PMIXERLINECONTROLSW,*LPMIXERLINECONTROLSW; 1268 1269 __MINGW_TYPEDEF_AW(MIXERLINECONTROLS) 1270 __MINGW_TYPEDEF_AW(PMIXERLINECONTROLS) 1271 __MINGW_TYPEDEF_AW(LPMIXERLINECONTROLS) 1272 1273 WINMMAPI MMRESULT WINAPI mixerGetLineControlsA(HMIXEROBJ hmxobj,LPMIXERLINECONTROLSA pmxlc,DWORD fdwControls); 1274 WINMMAPI MMRESULT WINAPI mixerGetLineControlsW(HMIXEROBJ hmxobj,LPMIXERLINECONTROLSW pmxlc,DWORD fdwControls); 1275 1276 #define mixerGetLineControls __MINGW_NAME_AW(mixerGetLineControls) 1277 1278 #define MIXER_GETLINECONTROLSF_ALL __MSABI_LONG(0x00000000) 1279 #define MIXER_GETLINECONTROLSF_ONEBYID __MSABI_LONG(0x00000001) 1280 #define MIXER_GETLINECONTROLSF_ONEBYTYPE __MSABI_LONG(0x00000002) 1281 1282 #define MIXER_GETLINECONTROLSF_QUERYMASK __MSABI_LONG(0x0000000F) 1283 1284 typedef struct tMIXERCONTROLDETAILS { 1285 DWORD cbStruct; 1286 DWORD dwControlID; 1287 DWORD cChannels; 1288 __C89_NAMELESS union { 1289 HWND hwndOwner; 1290 DWORD cMultipleItems; 1291 } DUMMYUNIONNAME; 1292 DWORD cbDetails; 1293 LPVOID paDetails; 1294 } MIXERCONTROLDETAILS,*PMIXERCONTROLDETAILS,*LPMIXERCONTROLDETAILS; 1295 1296 typedef struct tagMIXERCONTROLDETAILS_LISTTEXTA { 1297 DWORD dwParam1; 1298 DWORD dwParam2; 1299 CHAR szName[MIXER_LONG_NAME_CHARS]; 1300 } MIXERCONTROLDETAILS_LISTTEXTA,*PMIXERCONTROLDETAILS_LISTTEXTA,*LPMIXERCONTROLDETAILS_LISTTEXTA; 1301 typedef struct tagMIXERCONTROLDETAILS_LISTTEXTW { 1302 DWORD dwParam1; 1303 DWORD dwParam2; 1304 WCHAR szName[MIXER_LONG_NAME_CHARS]; 1305 } MIXERCONTROLDETAILS_LISTTEXTW,*PMIXERCONTROLDETAILS_LISTTEXTW,*LPMIXERCONTROLDETAILS_LISTTEXTW; 1306 1307 __MINGW_TYPEDEF_AW(MIXERCONTROLDETAILS_LISTTEXT) 1308 __MINGW_TYPEDEF_AW(PMIXERCONTROLDETAILS_LISTTEXT) 1309 __MINGW_TYPEDEF_AW(LPMIXERCONTROLDETAILS_LISTTEXT) 1310 1311 typedef struct tMIXERCONTROLDETAILS_BOOLEAN { 1312 LONG fValue; 1313 } MIXERCONTROLDETAILS_BOOLEAN,*PMIXERCONTROLDETAILS_BOOLEAN,*LPMIXERCONTROLDETAILS_BOOLEAN; 1314 1315 typedef struct tMIXERCONTROLDETAILS_SIGNED { 1316 LONG lValue; 1317 } MIXERCONTROLDETAILS_SIGNED,*PMIXERCONTROLDETAILS_SIGNED,*LPMIXERCONTROLDETAILS_SIGNED; 1318 1319 typedef struct tMIXERCONTROLDETAILS_UNSIGNED { 1320 DWORD dwValue; 1321 } MIXERCONTROLDETAILS_UNSIGNED,*PMIXERCONTROLDETAILS_UNSIGNED,*LPMIXERCONTROLDETAILS_UNSIGNED; 1322 1323 WINMMAPI MMRESULT WINAPI mixerGetControlDetailsA(HMIXEROBJ hmxobj,LPMIXERCONTROLDETAILS pmxcd,DWORD fdwDetails); 1324 WINMMAPI MMRESULT WINAPI mixerGetControlDetailsW(HMIXEROBJ hmxobj,LPMIXERCONTROLDETAILS pmxcd,DWORD fdwDetails); 1325 1326 #define mixerGetControlDetails __MINGW_NAME_AW(mixerGetControlDetails) 1327 1328 #define MIXER_GETCONTROLDETAILSF_VALUE __MSABI_LONG(0x00000000) 1329 #define MIXER_GETCONTROLDETAILSF_LISTTEXT __MSABI_LONG(0x00000001) 1330 1331 #define MIXER_GETCONTROLDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F) 1332 1333 WINMMAPI MMRESULT WINAPI mixerSetControlDetails(HMIXEROBJ hmxobj,LPMIXERCONTROLDETAILS pmxcd,DWORD fdwDetails); 1334 1335 #define MIXER_SETCONTROLDETAILSF_VALUE __MSABI_LONG(0x00000000) 1336 #define MIXER_SETCONTROLDETAILSF_CUSTOM __MSABI_LONG(0x00000001) 1337 1338 #define MIXER_SETCONTROLDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F) 1339 #endif 1340 1341 #ifndef MMNOTIMER 1342 1343 #define TIMERR_NOERROR (0) 1344 #define TIMERR_NOCANDO (TIMERR_BASE+1) 1345 #define TIMERR_STRUCT (TIMERR_BASE+33) 1346 1347 typedef void (CALLBACK TIMECALLBACK)(UINT uTimerID,UINT uMsg,DWORD_PTR dwUser,DWORD_PTR dw1,DWORD_PTR dw2); 1348 typedef TIMECALLBACK *LPTIMECALLBACK; 1349 1350 #define TIME_ONESHOT 0x0000 1351 #define TIME_PERIODIC 0x0001 1352 1353 #define TIME_CALLBACK_FUNCTION 0x0000 1354 #define TIME_CALLBACK_EVENT_SET 0x0010 1355 #define TIME_CALLBACK_EVENT_PULSE 0x0020 1356 #define TIME_KILL_SYNCHRONOUS 0x0100 1357 1358 typedef struct timecaps_tag { 1359 UINT wPeriodMin; 1360 UINT wPeriodMax; 1361 } TIMECAPS,*PTIMECAPS,NEAR *NPTIMECAPS,*LPTIMECAPS; 1362 1363 WINMMAPI MMRESULT WINAPI timeGetSystemTime(LPMMTIME pmmt,UINT cbmmt); 1364 WINMMAPI DWORD WINAPI timeGetTime(void); 1365 WINMMAPI MMRESULT WINAPI timeSetEvent(UINT uDelay,UINT uResolution,LPTIMECALLBACK fptc,DWORD_PTR dwUser,UINT fuEvent); 1366 WINMMAPI MMRESULT WINAPI timeKillEvent(UINT uTimerID); 1367 WINMMAPI MMRESULT WINAPI timeGetDevCaps(LPTIMECAPS ptc,UINT cbtc); 1368 WINMMAPI MMRESULT WINAPI timeBeginPeriod(UINT uPeriod); 1369 WINMMAPI MMRESULT WINAPI timeEndPeriod(UINT uPeriod); 1370 #endif 1371 1372 #ifndef MMNOJOY 1373 1374 #define JOYERR_NOERROR (0) 1375 #define JOYERR_PARMS (JOYERR_BASE+5) 1376 #define JOYERR_NOCANDO (JOYERR_BASE+6) 1377 #define JOYERR_UNPLUGGED (JOYERR_BASE+7) 1378 1379 #define JOY_BUTTON1 0x0001 1380 #define JOY_BUTTON2 0x0002 1381 #define JOY_BUTTON3 0x0004 1382 #define JOY_BUTTON4 0x0008 1383 #define JOY_BUTTON1CHG 0x0100 1384 #define JOY_BUTTON2CHG 0x0200 1385 #define JOY_BUTTON3CHG 0x0400 1386 #define JOY_BUTTON4CHG 0x0800 1387 1388 #define JOY_BUTTON5 __MSABI_LONG(0x00000010) 1389 #define JOY_BUTTON6 __MSABI_LONG(0x00000020) 1390 #define JOY_BUTTON7 __MSABI_LONG(0x00000040) 1391 #define JOY_BUTTON8 __MSABI_LONG(0x00000080) 1392 #define JOY_BUTTON9 __MSABI_LONG(0x00000100) 1393 #define JOY_BUTTON10 __MSABI_LONG(0x00000200) 1394 #define JOY_BUTTON11 __MSABI_LONG(0x00000400) 1395 #define JOY_BUTTON12 __MSABI_LONG(0x00000800) 1396 #define JOY_BUTTON13 __MSABI_LONG(0x00001000) 1397 #define JOY_BUTTON14 __MSABI_LONG(0x00002000) 1398 #define JOY_BUTTON15 __MSABI_LONG(0x00004000) 1399 #define JOY_BUTTON16 __MSABI_LONG(0x00008000) 1400 #define JOY_BUTTON17 __MSABI_LONG(0x00010000) 1401 #define JOY_BUTTON18 __MSABI_LONG(0x00020000) 1402 #define JOY_BUTTON19 __MSABI_LONG(0x00040000) 1403 #define JOY_BUTTON20 __MSABI_LONG(0x00080000) 1404 #define JOY_BUTTON21 __MSABI_LONG(0x00100000) 1405 #define JOY_BUTTON22 __MSABI_LONG(0x00200000) 1406 #define JOY_BUTTON23 __MSABI_LONG(0x00400000) 1407 #define JOY_BUTTON24 __MSABI_LONG(0x00800000) 1408 #define JOY_BUTTON25 __MSABI_LONG(0x01000000) 1409 #define JOY_BUTTON26 __MSABI_LONG(0x02000000) 1410 #define JOY_BUTTON27 __MSABI_LONG(0x04000000) 1411 #define JOY_BUTTON28 __MSABI_LONG(0x08000000) 1412 #define JOY_BUTTON29 __MSABI_LONG(0x10000000) 1413 #define JOY_BUTTON30 __MSABI_LONG(0x20000000) 1414 #define JOY_BUTTON31 __MSABI_LONG(0x40000000) 1415 #define JOY_BUTTON32 __MSABI_LONG(0x80000000) 1416 1417 #define JOY_POVCENTERED (WORD) -1 1418 #define JOY_POVFORWARD 0 1419 #define JOY_POVRIGHT 9000 1420 #define JOY_POVBACKWARD 18000 1421 #define JOY_POVLEFT 27000 1422 1423 #define JOY_RETURNX __MSABI_LONG(0x00000001) 1424 #define JOY_RETURNY __MSABI_LONG(0x00000002) 1425 #define JOY_RETURNZ __MSABI_LONG(0x00000004) 1426 #define JOY_RETURNR __MSABI_LONG(0x00000008) 1427 #define JOY_RETURNU __MSABI_LONG(0x00000010) 1428 #define JOY_RETURNV __MSABI_LONG(0x00000020) 1429 #define JOY_RETURNPOV __MSABI_LONG(0x00000040) 1430 #define JOY_RETURNBUTTONS __MSABI_LONG(0x00000080) 1431 #define JOY_RETURNRAWDATA __MSABI_LONG(0x00000100) 1432 #define JOY_RETURNPOVCTS __MSABI_LONG(0x00000200) 1433 #define JOY_RETURNCENTERED __MSABI_LONG(0x00000400) 1434 #define JOY_USEDEADZONE __MSABI_LONG(0x00000800) 1435 #define JOY_RETURNALL (JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR | JOY_RETURNU | JOY_RETURNV | JOY_RETURNPOV | JOY_RETURNBUTTONS) 1436 #define JOY_CAL_READALWAYS __MSABI_LONG(0x00010000) 1437 #define JOY_CAL_READXYONLY __MSABI_LONG(0x00020000) 1438 #define JOY_CAL_READ3 __MSABI_LONG(0x00040000) 1439 #define JOY_CAL_READ4 __MSABI_LONG(0x00080000) 1440 #define JOY_CAL_READXONLY __MSABI_LONG(0x00100000) 1441 #define JOY_CAL_READYONLY __MSABI_LONG(0x00200000) 1442 #define JOY_CAL_READ5 __MSABI_LONG(0x00400000) 1443 #define JOY_CAL_READ6 __MSABI_LONG(0x00800000) 1444 #define JOY_CAL_READZONLY __MSABI_LONG(0x01000000) 1445 #define JOY_CAL_READRONLY __MSABI_LONG(0x02000000) 1446 #define JOY_CAL_READUONLY __MSABI_LONG(0x04000000) 1447 #define JOY_CAL_READVONLY __MSABI_LONG(0x08000000) 1448 1449 #define JOYSTICKID1 0 1450 #define JOYSTICKID2 1 1451 1452 #define JOYCAPS_HASZ 0x0001 1453 #define JOYCAPS_HASR 0x0002 1454 #define JOYCAPS_HASU 0x0004 1455 #define JOYCAPS_HASV 0x0008 1456 #define JOYCAPS_HASPOV 0x0010 1457 #define JOYCAPS_POV4DIR 0x0020 1458 #define JOYCAPS_POVCTS 0x0040 1459 1460 typedef struct tagJOYCAPSA { 1461 WORD wMid; 1462 WORD wPid; 1463 CHAR szPname[MAXPNAMELEN]; 1464 UINT wXmin; 1465 UINT wXmax; 1466 UINT wYmin; 1467 UINT wYmax; 1468 UINT wZmin; 1469 UINT wZmax; 1470 UINT wNumButtons; 1471 UINT wPeriodMin; 1472 UINT wPeriodMax; 1473 UINT wRmin; 1474 UINT wRmax; 1475 UINT wUmin; 1476 UINT wUmax; 1477 UINT wVmin; 1478 UINT wVmax; 1479 UINT wCaps; 1480 UINT wMaxAxes; 1481 UINT wNumAxes; 1482 UINT wMaxButtons; 1483 CHAR szRegKey[MAXPNAMELEN]; 1484 CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; 1485 } JOYCAPSA,*PJOYCAPSA,*NPJOYCAPSA,*LPJOYCAPSA; 1486 1487 typedef struct tagJOYCAPSW { 1488 WORD wMid; 1489 WORD wPid; 1490 WCHAR szPname[MAXPNAMELEN]; 1491 UINT wXmin; 1492 UINT wXmax; 1493 UINT wYmin; 1494 UINT wYmax; 1495 UINT wZmin; 1496 UINT wZmax; 1497 UINT wNumButtons; 1498 UINT wPeriodMin; 1499 UINT wPeriodMax; 1500 UINT wRmin; 1501 UINT wRmax; 1502 UINT wUmin; 1503 UINT wUmax; 1504 UINT wVmin; 1505 UINT wVmax; 1506 UINT wCaps; 1507 UINT wMaxAxes; 1508 UINT wNumAxes; 1509 UINT wMaxButtons; 1510 WCHAR szRegKey[MAXPNAMELEN]; 1511 WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; 1512 } JOYCAPSW,*PJOYCAPSW,*NPJOYCAPSW,*LPJOYCAPSW; 1513 1514 __MINGW_TYPEDEF_AW(JOYCAPS) 1515 __MINGW_TYPEDEF_AW(PJOYCAPS) 1516 __MINGW_TYPEDEF_AW(NPJOYCAPS) 1517 __MINGW_TYPEDEF_AW(LPJOYCAPS) 1518 1519 typedef struct tagJOYCAPS2A { 1520 WORD wMid; 1521 WORD wPid; 1522 CHAR szPname[MAXPNAMELEN]; 1523 UINT wXmin; 1524 UINT wXmax; 1525 UINT wYmin; 1526 UINT wYmax; 1527 UINT wZmin; 1528 UINT wZmax; 1529 UINT wNumButtons; 1530 UINT wPeriodMin; 1531 UINT wPeriodMax; 1532 UINT wRmin; 1533 UINT wRmax; 1534 UINT wUmin; 1535 UINT wUmax; 1536 UINT wVmin; 1537 UINT wVmax; 1538 UINT wCaps; 1539 UINT wMaxAxes; 1540 UINT wNumAxes; 1541 UINT wMaxButtons; 1542 CHAR szRegKey[MAXPNAMELEN]; 1543 CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; 1544 GUID ManufacturerGuid; 1545 GUID ProductGuid; 1546 GUID NameGuid; 1547 } JOYCAPS2A,*PJOYCAPS2A,*NPJOYCAPS2A,*LPJOYCAPS2A; 1548 1549 typedef struct tagJOYCAPS2W { 1550 WORD wMid; 1551 WORD wPid; 1552 WCHAR szPname[MAXPNAMELEN]; 1553 UINT wXmin; 1554 UINT wXmax; 1555 UINT wYmin; 1556 UINT wYmax; 1557 UINT wZmin; 1558 UINT wZmax; 1559 UINT wNumButtons; 1560 UINT wPeriodMin; 1561 UINT wPeriodMax; 1562 UINT wRmin; 1563 UINT wRmax; 1564 UINT wUmin; 1565 UINT wUmax; 1566 UINT wVmin; 1567 UINT wVmax; 1568 UINT wCaps; 1569 UINT wMaxAxes; 1570 UINT wNumAxes; 1571 UINT wMaxButtons; 1572 WCHAR szRegKey[MAXPNAMELEN]; 1573 WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; 1574 GUID ManufacturerGuid; 1575 GUID ProductGuid; 1576 GUID NameGuid; 1577 } JOYCAPS2W,*PJOYCAPS2W,*NPJOYCAPS2W,*LPJOYCAPS2W; 1578 1579 __MINGW_TYPEDEF_AW(JOYCAPS2) 1580 __MINGW_TYPEDEF_AW(PJOYCAPS2) 1581 __MINGW_TYPEDEF_AW(NPJOYCAPS2) 1582 __MINGW_TYPEDEF_AW(LPJOYCAPS2) 1583 1584 typedef struct joyinfo_tag { 1585 UINT wXpos; 1586 UINT wYpos; 1587 UINT wZpos; 1588 UINT wButtons; 1589 } JOYINFO,*PJOYINFO,NEAR *NPJOYINFO,*LPJOYINFO; 1590 1591 typedef struct joyinfoex_tag { 1592 DWORD dwSize; 1593 DWORD dwFlags; 1594 DWORD dwXpos; 1595 DWORD dwYpos; 1596 DWORD dwZpos; 1597 DWORD dwRpos; 1598 DWORD dwUpos; 1599 DWORD dwVpos; 1600 DWORD dwButtons; 1601 DWORD dwButtonNumber; 1602 DWORD dwPOV; 1603 DWORD dwReserved1; 1604 DWORD dwReserved2; 1605 } JOYINFOEX,*PJOYINFOEX,NEAR *NPJOYINFOEX,*LPJOYINFOEX; 1606 1607 WINMMAPI UINT WINAPI joyGetNumDevs(void); 1608 WINMMAPI MMRESULT WINAPI joyGetDevCapsA(UINT_PTR uJoyID,LPJOYCAPSA pjc,UINT cbjc); 1609 WINMMAPI MMRESULT WINAPI joyGetDevCapsW(UINT_PTR uJoyID,LPJOYCAPSW pjc,UINT cbjc); 1610 1611 #define joyGetDevCaps __MINGW_NAME_AW(joyGetDevCaps) 1612 1613 WINMMAPI MMRESULT WINAPI joyGetPos(UINT uJoyID,LPJOYINFO pji); 1614 WINMMAPI MMRESULT WINAPI joyGetPosEx(UINT uJoyID,LPJOYINFOEX pji); 1615 WINMMAPI MMRESULT WINAPI joyGetThreshold(UINT uJoyID,LPUINT puThreshold); 1616 WINMMAPI MMRESULT WINAPI joyReleaseCapture(UINT uJoyID); 1617 WINMMAPI MMRESULT WINAPI joySetCapture(HWND hwnd,UINT uJoyID,UINT uPeriod,WINBOOL fChanged); 1618 WINMMAPI MMRESULT WINAPI joySetThreshold(UINT uJoyID,UINT uThreshold); 1619 #endif 1620 1621 #ifndef MMNOMMIO 1622 1623 #define MMIOERR_BASE 256 1624 #define MMIOERR_FILENOTFOUND (MMIOERR_BASE + 1) 1625 #define MMIOERR_OUTOFMEMORY (MMIOERR_BASE + 2) 1626 #define MMIOERR_CANNOTOPEN (MMIOERR_BASE + 3) 1627 #define MMIOERR_CANNOTCLOSE (MMIOERR_BASE + 4) 1628 #define MMIOERR_CANNOTREAD (MMIOERR_BASE + 5) 1629 #define MMIOERR_CANNOTWRITE (MMIOERR_BASE + 6) 1630 #define MMIOERR_CANNOTSEEK (MMIOERR_BASE + 7) 1631 #define MMIOERR_CANNOTEXPAND (MMIOERR_BASE + 8) 1632 #define MMIOERR_CHUNKNOTFOUND (MMIOERR_BASE + 9) 1633 #define MMIOERR_UNBUFFERED (MMIOERR_BASE + 10) 1634 #define MMIOERR_PATHNOTFOUND (MMIOERR_BASE + 11) 1635 #define MMIOERR_ACCESSDENIED (MMIOERR_BASE + 12) 1636 #define MMIOERR_SHARINGVIOLATION (MMIOERR_BASE + 13) 1637 #define MMIOERR_NETWORKERROR (MMIOERR_BASE + 14) 1638 #define MMIOERR_TOOMANYOPENFILES (MMIOERR_BASE + 15) 1639 #define MMIOERR_INVALIDFILE (MMIOERR_BASE + 16) 1640 1641 #define CFSEPCHAR '+' 1642 1643 typedef DWORD FOURCC; 1644 typedef char _huge *HPSTR; 1645 DECLARE_HANDLE(HMMIO); 1646 typedef LRESULT (CALLBACK MMIOPROC)(LPSTR lpmmioinfo,UINT uMsg,LPARAM lParam1,LPARAM lParam2); 1647 typedef MMIOPROC *LPMMIOPROC; 1648 1649 typedef struct _MMIOINFO { 1650 DWORD dwFlags; 1651 FOURCC fccIOProc; 1652 LPMMIOPROC pIOProc; 1653 UINT wErrorRet; 1654 HTASK htask; 1655 LONG cchBuffer; 1656 HPSTR pchBuffer; 1657 HPSTR pchNext; 1658 HPSTR pchEndRead; 1659 HPSTR pchEndWrite; 1660 LONG lBufOffset; 1661 LONG lDiskOffset; 1662 DWORD adwInfo[3]; 1663 DWORD dwReserved1; 1664 DWORD dwReserved2; 1665 HMMIO hmmio; 1666 } MMIOINFO,*PMMIOINFO,NEAR *NPMMIOINFO,*LPMMIOINFO; 1667 1668 typedef const MMIOINFO *LPCMMIOINFO; 1669 1670 typedef struct _MMCKINFO { 1671 FOURCC ckid; 1672 DWORD cksize; 1673 FOURCC fccType; 1674 DWORD dwDataOffset; 1675 DWORD dwFlags; 1676 } MMCKINFO,*PMMCKINFO,NEAR *NPMMCKINFO,*LPMMCKINFO; 1677 1678 typedef const MMCKINFO *LPCMMCKINFO; 1679 1680 #define MMIO_RWMODE 0x00000003 1681 #define MMIO_SHAREMODE 0x00000070 1682 1683 #define MMIO_CREATE 0x00001000 1684 #define MMIO_PARSE 0x00000100 1685 #define MMIO_DELETE 0x00000200 1686 #define MMIO_EXIST 0x00004000 1687 #define MMIO_ALLOCBUF 0x00010000 1688 #define MMIO_GETTEMP 0x00020000 1689 1690 #define MMIO_DIRTY 0x10000000 1691 1692 #define MMIO_READ 0x00000000 1693 #define MMIO_WRITE 0x00000001 1694 #define MMIO_READWRITE 0x00000002 1695 1696 #define MMIO_COMPAT 0x00000000 1697 #define MMIO_EXCLUSIVE 0x00000010 1698 #define MMIO_DENYWRITE 0x00000020 1699 #define MMIO_DENYREAD 0x00000030 1700 #define MMIO_DENYNONE 0x00000040 1701 1702 #define MMIO_FHOPEN 0x0010 1703 #define MMIO_EMPTYBUF 0x0010 1704 #define MMIO_TOUPPER 0x0010 1705 #define MMIO_INSTALLPROC 0x00010000 1706 #define MMIO_GLOBALPROC 0x10000000 1707 #define MMIO_REMOVEPROC 0x00020000 1708 #define MMIO_UNICODEPROC 0x01000000 1709 #define MMIO_FINDPROC 0x00040000 1710 #define MMIO_FINDCHUNK 0x0010 1711 #define MMIO_FINDRIFF 0x0020 1712 #define MMIO_FINDLIST 0x0040 1713 #define MMIO_CREATERIFF 0x0020 1714 #define MMIO_CREATELIST 0x0040 1715 1716 #define MMIOM_READ MMIO_READ 1717 #define MMIOM_WRITE MMIO_WRITE 1718 #define MMIOM_SEEK 2 1719 #define MMIOM_OPEN 3 1720 #define MMIOM_CLOSE 4 1721 #define MMIOM_WRITEFLUSH 5 1722 #define MMIOM_RENAME 6 1723 1724 #define MMIOM_USER 0x8000 1725 1726 #define FOURCC_RIFF mmioFOURCC('R','I','F','F') 1727 #define FOURCC_LIST mmioFOURCC('L','I','S','T') 1728 1729 #define FOURCC_DOS mmioFOURCC('D','O','S',' ') 1730 #define FOURCC_MEM mmioFOURCC('M','E','M',' ') 1731 1732 #ifndef SEEK_SET 1733 #define SEEK_SET 0 1734 #define SEEK_CUR 1 1735 #define SEEK_END 2 1736 #endif 1737 1738 #define MMIO_DEFAULTBUFFER 8192 1739 1740 #define mmioFOURCC(ch0,ch1,ch2,ch3) MAKEFOURCC(ch0,ch1,ch2,ch3) 1741 1742 WINMMAPI FOURCC WINAPI mmioStringToFOURCCA(LPCSTR sz,UINT uFlags); 1743 WINMMAPI FOURCC WINAPI mmioStringToFOURCCW(LPCWSTR sz,UINT uFlags); 1744 1745 #define mmioStringToFOURCC __MINGW_NAME_AW(mmioStringToFOURCC) 1746 1747 WINMMAPI LPMMIOPROC WINAPI mmioInstallIOProcA(FOURCC fccIOProc,LPMMIOPROC pIOProc,DWORD dwFlags); 1748 WINMMAPI LPMMIOPROC WINAPI mmioInstallIOProcW(FOURCC fccIOProc,LPMMIOPROC pIOProc,DWORD dwFlags); 1749 1750 #define mmioInstallIOProc __MINGW_NAME_AW(mmioInstallIOProc) 1751 1752 WINMMAPI HMMIO WINAPI mmioOpenA(LPSTR pszFileName,LPMMIOINFO pmmioinfo,DWORD fdwOpen); 1753 WINMMAPI HMMIO WINAPI mmioOpenW(LPWSTR pszFileName,LPMMIOINFO pmmioinfo,DWORD fdwOpen); 1754 1755 #define mmioOpen __MINGW_NAME_AW(mmioOpen) 1756 1757 WINMMAPI MMRESULT WINAPI mmioRenameA(LPCSTR pszFileName,LPCSTR pszNewFileName,LPCMMIOINFO pmmioinfo,DWORD fdwRename); 1758 WINMMAPI MMRESULT WINAPI mmioRenameW(LPCWSTR pszFileName,LPCWSTR pszNewFileName,LPCMMIOINFO pmmioinfo,DWORD fdwRename); 1759 1760 #define mmioRename __MINGW_NAME_AW(mmioRename) 1761 1762 WINMMAPI MMRESULT WINAPI mmioClose(HMMIO hmmio,UINT fuClose); 1763 WINMMAPI LONG WINAPI mmioRead(HMMIO hmmio,HPSTR pch,LONG cch); 1764 WINMMAPI LONG WINAPI mmioWrite(HMMIO hmmio,const char _huge *pch,LONG cch); 1765 WINMMAPI LONG WINAPI mmioSeek(HMMIO hmmio,LONG lOffset,int iOrigin); 1766 WINMMAPI MMRESULT WINAPI mmioGetInfo(HMMIO hmmio,LPMMIOINFO pmmioinfo,UINT fuInfo); 1767 WINMMAPI MMRESULT WINAPI mmioSetInfo(HMMIO hmmio,LPCMMIOINFO pmmioinfo,UINT fuInfo); 1768 WINMMAPI MMRESULT WINAPI mmioSetBuffer(HMMIO hmmio,LPSTR pchBuffer,LONG cchBuffer,UINT fuBuffer); 1769 WINMMAPI MMRESULT WINAPI mmioFlush(HMMIO hmmio,UINT fuFlush); 1770 WINMMAPI MMRESULT WINAPI mmioAdvance(HMMIO hmmio,LPMMIOINFO pmmioinfo,UINT fuAdvance); 1771 WINMMAPI LRESULT WINAPI mmioSendMessage(HMMIO hmmio,UINT uMsg,LPARAM lParam1,LPARAM lParam2); 1772 WINMMAPI MMRESULT WINAPI mmioDescend(HMMIO hmmio,LPMMCKINFO pmmcki,const MMCKINFO *pmmckiParent,UINT fuDescend); 1773 WINMMAPI MMRESULT WINAPI mmioAscend(HMMIO hmmio,LPMMCKINFO pmmcki,UINT fuAscend); 1774 WINMMAPI MMRESULT WINAPI mmioCreateChunk(HMMIO hmmio,LPMMCKINFO pmmcki,UINT fuCreate); 1775 #endif 1776 1777 #ifndef MMNOMCI 1778 1779 #ifndef _MCIERROR_ 1780 #define _MCIERROR_ 1781 typedef DWORD MCIERROR; 1782 #endif 1783 1784 #ifndef _MCIDEVICEID_ 1785 #define _MCIDEVICEID_ 1786 typedef UINT MCIDEVICEID; 1787 #endif 1788 1789 typedef UINT (CALLBACK *YIELDPROC)(MCIDEVICEID mciId,DWORD dwYieldData); 1790 1791 WINMMAPI MCIERROR WINAPI mciSendCommandA(MCIDEVICEID mciId,UINT uMsg,DWORD_PTR dwParam1,DWORD_PTR dwParam2); 1792 WINMMAPI MCIERROR WINAPI mciSendCommandW(MCIDEVICEID mciId,UINT uMsg,DWORD_PTR dwParam1,DWORD_PTR dwParam2); 1793 1794 #define mciSendCommand __MINGW_NAME_AW(mciSendCommand) 1795 1796 WINMMAPI MCIERROR WINAPI mciSendStringA(LPCSTR lpstrCommand,LPSTR lpstrReturnString,UINT uReturnLength,HWND hwndCallback); 1797 WINMMAPI MCIERROR WINAPI mciSendStringW(LPCWSTR lpstrCommand,LPWSTR lpstrReturnString,UINT uReturnLength,HWND hwndCallback); 1798 1799 #define mciSendString __MINGW_NAME_AW(mciSendString) 1800 1801 WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDA(LPCSTR pszDevice); 1802 WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDW(LPCWSTR pszDevice); 1803 1804 #define mciGetDeviceID __MINGW_NAME_AW(mciGetDeviceID) 1805 1806 WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDA(DWORD dwElementID,LPCSTR lpstrType); 1807 WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDW(DWORD dwElementID,LPCWSTR lpstrType); 1808 1809 #define mciGetDeviceIDFromElementID __MINGW_NAME_AW(mciGetDeviceIDFromElementID) 1810 1811 WINMMAPI WINBOOL WINAPI mciGetErrorStringA(MCIERROR mcierr,LPSTR pszText,UINT cchText); 1812 WINMMAPI WINBOOL WINAPI mciGetErrorStringW(MCIERROR mcierr,LPWSTR pszText,UINT cchText); 1813 1814 #define mciGetErrorString __MINGW_NAME_AW(mciGetErrorString) 1815 1816 WINMMAPI WINBOOL WINAPI mciSetYieldProc(MCIDEVICEID mciId,YIELDPROC fpYieldProc,DWORD dwYieldData); 1817 WINMMAPI HTASK WINAPI mciGetCreatorTask(MCIDEVICEID mciId); 1818 WINMMAPI YIELDPROC WINAPI mciGetYieldProc(MCIDEVICEID mciId,LPDWORD pdwYieldData); 1819 1820 #define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE + 1) 1821 #define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE + 3) 1822 #define MCIERR_UNRECOGNIZED_COMMAND (MCIERR_BASE + 5) 1823 #define MCIERR_HARDWARE (MCIERR_BASE + 6) 1824 #define MCIERR_INVALID_DEVICE_NAME (MCIERR_BASE + 7) 1825 #define MCIERR_OUT_OF_MEMORY (MCIERR_BASE + 8) 1826 #define MCIERR_DEVICE_OPEN (MCIERR_BASE + 9) 1827 #define MCIERR_CANNOT_LOAD_DRIVER (MCIERR_BASE + 10) 1828 #define MCIERR_MISSING_COMMAND_STRING (MCIERR_BASE + 11) 1829 #define MCIERR_PARAM_OVERFLOW (MCIERR_BASE + 12) 1830 #define MCIERR_MISSING_STRING_ARGUMENT (MCIERR_BASE + 13) 1831 #define MCIERR_BAD_INTEGER (MCIERR_BASE + 14) 1832 #define MCIERR_PARSER_INTERNAL (MCIERR_BASE + 15) 1833 #define MCIERR_DRIVER_INTERNAL (MCIERR_BASE + 16) 1834 #define MCIERR_MISSING_PARAMETER (MCIERR_BASE + 17) 1835 #define MCIERR_UNSUPPORTED_FUNCTION (MCIERR_BASE + 18) 1836 #define MCIERR_FILE_NOT_FOUND (MCIERR_BASE + 19) 1837 #define MCIERR_DEVICE_NOT_READY (MCIERR_BASE + 20) 1838 #define MCIERR_INTERNAL (MCIERR_BASE + 21) 1839 #define MCIERR_DRIVER (MCIERR_BASE + 22) 1840 #define MCIERR_CANNOT_USE_ALL (MCIERR_BASE + 23) 1841 #define MCIERR_MULTIPLE (MCIERR_BASE + 24) 1842 #define MCIERR_EXTENSION_NOT_FOUND (MCIERR_BASE + 25) 1843 #define MCIERR_OUTOFRANGE (MCIERR_BASE + 26) 1844 #define MCIERR_FLAGS_NOT_COMPATIBLE (MCIERR_BASE + 28) 1845 #define MCIERR_FILE_NOT_SAVED (MCIERR_BASE + 30) 1846 #define MCIERR_DEVICE_TYPE_REQUIRED (MCIERR_BASE + 31) 1847 #define MCIERR_DEVICE_LOCKED (MCIERR_BASE + 32) 1848 #define MCIERR_DUPLICATE_ALIAS (MCIERR_BASE + 33) 1849 #define MCIERR_BAD_CONSTANT (MCIERR_BASE + 34) 1850 #define MCIERR_MUST_USE_SHAREABLE (MCIERR_BASE + 35) 1851 #define MCIERR_MISSING_DEVICE_NAME (MCIERR_BASE + 36) 1852 #define MCIERR_BAD_TIME_FORMAT (MCIERR_BASE + 37) 1853 #define MCIERR_NO_CLOSING_QUOTE (MCIERR_BASE + 38) 1854 #define MCIERR_DUPLICATE_FLAGS (MCIERR_BASE + 39) 1855 #define MCIERR_INVALID_FILE (MCIERR_BASE + 40) 1856 #define MCIERR_NULL_PARAMETER_BLOCK (MCIERR_BASE + 41) 1857 #define MCIERR_UNNAMED_RESOURCE (MCIERR_BASE + 42) 1858 #define MCIERR_NEW_REQUIRES_ALIAS (MCIERR_BASE + 43) 1859 #define MCIERR_NOTIFY_ON_AUTO_OPEN (MCIERR_BASE + 44) 1860 #define MCIERR_NO_ELEMENT_ALLOWED (MCIERR_BASE + 45) 1861 #define MCIERR_NONAPPLICABLE_FUNCTION (MCIERR_BASE + 46) 1862 #define MCIERR_ILLEGAL_FOR_AUTO_OPEN (MCIERR_BASE + 47) 1863 #define MCIERR_FILENAME_REQUIRED (MCIERR_BASE + 48) 1864 #define MCIERR_EXTRA_CHARACTERS (MCIERR_BASE + 49) 1865 #define MCIERR_DEVICE_NOT_INSTALLED (MCIERR_BASE + 50) 1866 #define MCIERR_GET_CD (MCIERR_BASE + 51) 1867 #define MCIERR_SET_CD (MCIERR_BASE + 52) 1868 #define MCIERR_SET_DRIVE (MCIERR_BASE + 53) 1869 #define MCIERR_DEVICE_LENGTH (MCIERR_BASE + 54) 1870 #define MCIERR_DEVICE_ORD_LENGTH (MCIERR_BASE + 55) 1871 #define MCIERR_NO_INTEGER (MCIERR_BASE + 56) 1872 #define MCIERR_WAVE_OUTPUTSINUSE (MCIERR_BASE + 64) 1873 #define MCIERR_WAVE_SETOUTPUTINUSE (MCIERR_BASE + 65) 1874 #define MCIERR_WAVE_INPUTSINUSE (MCIERR_BASE + 66) 1875 #define MCIERR_WAVE_SETINPUTINUSE (MCIERR_BASE + 67) 1876 #define MCIERR_WAVE_OUTPUTUNSPECIFIED (MCIERR_BASE + 68) 1877 #define MCIERR_WAVE_INPUTUNSPECIFIED (MCIERR_BASE + 69) 1878 #define MCIERR_WAVE_OUTPUTSUNSUITABLE (MCIERR_BASE + 70) 1879 #define MCIERR_WAVE_SETOUTPUTUNSUITABLE (MCIERR_BASE + 71) 1880 #define MCIERR_WAVE_INPUTSUNSUITABLE (MCIERR_BASE + 72) 1881 #define MCIERR_WAVE_SETINPUTUNSUITABLE (MCIERR_BASE + 73) 1882 #define MCIERR_SEQ_DIV_INCOMPATIBLE (MCIERR_BASE + 80) 1883 #define MCIERR_SEQ_PORT_INUSE (MCIERR_BASE + 81) 1884 #define MCIERR_SEQ_PORT_NONEXISTENT (MCIERR_BASE + 82) 1885 #define MCIERR_SEQ_PORT_MAPNODEVICE (MCIERR_BASE + 83) 1886 #define MCIERR_SEQ_PORT_MISCERROR (MCIERR_BASE + 84) 1887 #define MCIERR_SEQ_TIMER (MCIERR_BASE + 85) 1888 #define MCIERR_SEQ_PORTUNSPECIFIED (MCIERR_BASE + 86) 1889 #define MCIERR_SEQ_NOMIDIPRESENT (MCIERR_BASE + 87) 1890 #define MCIERR_NO_WINDOW (MCIERR_BASE + 90) 1891 #define MCIERR_CREATEWINDOW (MCIERR_BASE + 91) 1892 #define MCIERR_FILE_READ (MCIERR_BASE + 92) 1893 #define MCIERR_FILE_WRITE (MCIERR_BASE + 93) 1894 #define MCIERR_NO_IDENTITY (MCIERR_BASE + 94) 1895 #define MCIERR_CUSTOM_DRIVER_BASE (MCIERR_BASE + 256) 1896 1897 #define MCI_FIRST DRV_MCI_FIRST 1898 1899 #define MCI_OPEN 0x0803 1900 #define MCI_CLOSE 0x0804 1901 #define MCI_ESCAPE 0x0805 1902 #define MCI_PLAY 0x0806 1903 #define MCI_SEEK 0x0807 1904 #define MCI_STOP 0x0808 1905 #define MCI_PAUSE 0x0809 1906 #define MCI_INFO 0x080A 1907 #define MCI_GETDEVCAPS 0x080B 1908 #define MCI_SPIN 0x080C 1909 #define MCI_SET 0x080D 1910 #define MCI_STEP 0x080E 1911 #define MCI_RECORD 0x080F 1912 #define MCI_SYSINFO 0x0810 1913 #define MCI_BREAK 0x0811 1914 #define MCI_SAVE 0x0813 1915 #define MCI_STATUS 0x0814 1916 #define MCI_CUE 0x0830 1917 #define MCI_REALIZE 0x0840 1918 #define MCI_WINDOW 0x0841 1919 #define MCI_PUT 0x0842 1920 #define MCI_WHERE 0x0843 1921 #define MCI_FREEZE 0x0844 1922 #define MCI_UNFREEZE 0x0845 1923 #define MCI_LOAD 0x0850 1924 #define MCI_CUT 0x0851 1925 #define MCI_COPY 0x0852 1926 #define MCI_PASTE 0x0853 1927 #define MCI_UPDATE 0x0854 1928 #define MCI_RESUME 0x0855 1929 #define MCI_DELETE 0x0856 1930 1931 #define MCI_USER_MESSAGES (DRV_MCI_FIRST + 0x400) 1932 #define MCI_LAST 0x0FFF 1933 1934 #define MCI_ALL_DEVICE_ID ((MCIDEVICEID)-1) 1935 1936 #define MCI_DEVTYPE_VCR 513 1937 #define MCI_DEVTYPE_VIDEODISC 514 1938 #define MCI_DEVTYPE_OVERLAY 515 1939 #define MCI_DEVTYPE_CD_AUDIO 516 1940 #define MCI_DEVTYPE_DAT 517 1941 #define MCI_DEVTYPE_SCANNER 518 1942 #define MCI_DEVTYPE_ANIMATION 519 1943 #define MCI_DEVTYPE_DIGITAL_VIDEO 520 1944 #define MCI_DEVTYPE_OTHER 521 1945 #define MCI_DEVTYPE_WAVEFORM_AUDIO 522 1946 #define MCI_DEVTYPE_SEQUENCER 523 1947 1948 #define MCI_DEVTYPE_FIRST MCI_DEVTYPE_VCR 1949 #define MCI_DEVTYPE_LAST MCI_DEVTYPE_SEQUENCER 1950 1951 #define MCI_DEVTYPE_FIRST_USER 0x1000 1952 1953 #define MCI_MODE_NOT_READY (MCI_STRING_OFFSET + 12) 1954 #define MCI_MODE_STOP (MCI_STRING_OFFSET + 13) 1955 #define MCI_MODE_PLAY (MCI_STRING_OFFSET + 14) 1956 #define MCI_MODE_RECORD (MCI_STRING_OFFSET + 15) 1957 #define MCI_MODE_SEEK (MCI_STRING_OFFSET + 16) 1958 #define MCI_MODE_PAUSE (MCI_STRING_OFFSET + 17) 1959 #define MCI_MODE_OPEN (MCI_STRING_OFFSET + 18) 1960 1961 #define MCI_FORMAT_MILLISECONDS 0 1962 #define MCI_FORMAT_HMS 1 1963 #define MCI_FORMAT_MSF 2 1964 #define MCI_FORMAT_FRAMES 3 1965 #define MCI_FORMAT_SMPTE_24 4 1966 #define MCI_FORMAT_SMPTE_25 5 1967 #define MCI_FORMAT_SMPTE_30 6 1968 #define MCI_FORMAT_SMPTE_30DROP 7 1969 #define MCI_FORMAT_BYTES 8 1970 #define MCI_FORMAT_SAMPLES 9 1971 #define MCI_FORMAT_TMSF 10 1972 1973 #define MCI_MSF_MINUTE(msf) ((BYTE)(msf)) 1974 #define MCI_MSF_SECOND(msf) ((BYTE)(((WORD)(msf)) >> 8)) 1975 #define MCI_MSF_FRAME(msf) ((BYTE)((msf)>>16)) 1976 1977 #define MCI_MAKE_MSF(m,s,f) ((DWORD)(((BYTE)(m) | ((WORD)(s)<<8)) | (((DWORD)(BYTE)(f))<<16))) 1978 1979 #define MCI_TMSF_TRACK(tmsf) ((BYTE)(tmsf)) 1980 #define MCI_TMSF_MINUTE(tmsf) ((BYTE)(((WORD)(tmsf)) >> 8)) 1981 #define MCI_TMSF_SECOND(tmsf) ((BYTE)((tmsf)>>16)) 1982 #define MCI_TMSF_FRAME(tmsf) ((BYTE)((tmsf)>>24)) 1983 1984 #define MCI_MAKE_TMSF(t,m,s,f) ((DWORD)(((BYTE)(t) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s) | ((WORD)(f)<<8))<<16))) 1985 1986 #define MCI_HMS_HOUR(hms) ((BYTE)(hms)) 1987 #define MCI_HMS_MINUTE(hms) ((BYTE)(((WORD)(hms)) >> 8)) 1988 #define MCI_HMS_SECOND(hms) ((BYTE)((hms)>>16)) 1989 1990 #define MCI_MAKE_HMS(h,m,s) ((DWORD)(((BYTE)(h) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s))<<16))) 1991 1992 #define MCI_NOTIFY_SUCCESSFUL 0x0001 1993 #define MCI_NOTIFY_SUPERSEDED 0x0002 1994 #define MCI_NOTIFY_ABORTED 0x0004 1995 #define MCI_NOTIFY_FAILURE 0x0008 1996 1997 #define MCI_NOTIFY __MSABI_LONG(0x00000001) 1998 #define MCI_WAIT __MSABI_LONG(0x00000002) 1999 #define MCI_FROM __MSABI_LONG(0x00000004) 2000 #define MCI_TO __MSABI_LONG(0x00000008) 2001 #define MCI_TRACK __MSABI_LONG(0x00000010) 2002 2003 #define MCI_OPEN_SHAREABLE __MSABI_LONG(0x00000100) 2004 #define MCI_OPEN_ELEMENT __MSABI_LONG(0x00000200) 2005 #define MCI_OPEN_ALIAS __MSABI_LONG(0x00000400) 2006 #define MCI_OPEN_ELEMENT_ID __MSABI_LONG(0x00000800) 2007 #define MCI_OPEN_TYPE_ID __MSABI_LONG(0x00001000) 2008 #define MCI_OPEN_TYPE __MSABI_LONG(0x00002000) 2009 2010 #define MCI_SEEK_TO_START __MSABI_LONG(0x00000100) 2011 #define MCI_SEEK_TO_END __MSABI_LONG(0x00000200) 2012 2013 #define MCI_STATUS_ITEM __MSABI_LONG(0x00000100) 2014 #define MCI_STATUS_START __MSABI_LONG(0x00000200) 2015 2016 #define MCI_STATUS_LENGTH __MSABI_LONG(0x00000001) 2017 #define MCI_STATUS_POSITION __MSABI_LONG(0x00000002) 2018 #define MCI_STATUS_NUMBER_OF_TRACKS __MSABI_LONG(0x00000003) 2019 #define MCI_STATUS_MODE __MSABI_LONG(0x00000004) 2020 #define MCI_STATUS_MEDIA_PRESENT __MSABI_LONG(0x00000005) 2021 #define MCI_STATUS_TIME_FORMAT __MSABI_LONG(0x00000006) 2022 #define MCI_STATUS_READY __MSABI_LONG(0x00000007) 2023 #define MCI_STATUS_CURRENT_TRACK __MSABI_LONG(0x00000008) 2024 2025 #define MCI_INFO_PRODUCT __MSABI_LONG(0x00000100) 2026 #define MCI_INFO_FILE __MSABI_LONG(0x00000200) 2027 #define MCI_INFO_MEDIA_UPC __MSABI_LONG(0x00000400) 2028 #define MCI_INFO_MEDIA_IDENTITY __MSABI_LONG(0x00000800) 2029 #define MCI_INFO_NAME __MSABI_LONG(0x00001000) 2030 #define MCI_INFO_COPYRIGHT __MSABI_LONG(0x00002000) 2031 2032 #define MCI_GETDEVCAPS_ITEM __MSABI_LONG(0x00000100) 2033 2034 #define MCI_GETDEVCAPS_CAN_RECORD __MSABI_LONG(0x00000001) 2035 #define MCI_GETDEVCAPS_HAS_AUDIO __MSABI_LONG(0x00000002) 2036 #define MCI_GETDEVCAPS_HAS_VIDEO __MSABI_LONG(0x00000003) 2037 #define MCI_GETDEVCAPS_DEVICE_TYPE __MSABI_LONG(0x00000004) 2038 #define MCI_GETDEVCAPS_USES_FILES __MSABI_LONG(0x00000005) 2039 #define MCI_GETDEVCAPS_COMPOUND_DEVICE __MSABI_LONG(0x00000006) 2040 #define MCI_GETDEVCAPS_CAN_EJECT __MSABI_LONG(0x00000007) 2041 #define MCI_GETDEVCAPS_CAN_PLAY __MSABI_LONG(0x00000008) 2042 #define MCI_GETDEVCAPS_CAN_SAVE __MSABI_LONG(0x00000009) 2043 2044 #define MCI_SYSINFO_QUANTITY __MSABI_LONG(0x00000100) 2045 #define MCI_SYSINFO_OPEN __MSABI_LONG(0x00000200) 2046 #define MCI_SYSINFO_NAME __MSABI_LONG(0x00000400) 2047 #define MCI_SYSINFO_INSTALLNAME __MSABI_LONG(0x00000800) 2048 2049 #define MCI_SET_DOOR_OPEN __MSABI_LONG(0x00000100) 2050 #define MCI_SET_DOOR_CLOSED __MSABI_LONG(0x00000200) 2051 #define MCI_SET_TIME_FORMAT __MSABI_LONG(0x00000400) 2052 #define MCI_SET_AUDIO __MSABI_LONG(0x00000800) 2053 #define MCI_SET_VIDEO __MSABI_LONG(0x00001000) 2054 #define MCI_SET_ON __MSABI_LONG(0x00002000) 2055 #define MCI_SET_OFF __MSABI_LONG(0x00004000) 2056 2057 #define MCI_SET_AUDIO_ALL __MSABI_LONG(0x00000000) 2058 #define MCI_SET_AUDIO_LEFT __MSABI_LONG(0x00000001) 2059 #define MCI_SET_AUDIO_RIGHT __MSABI_LONG(0x00000002) 2060 2061 #define MCI_BREAK_KEY __MSABI_LONG(0x00000100) 2062 #define MCI_BREAK_HWND __MSABI_LONG(0x00000200) 2063 #define MCI_BREAK_OFF __MSABI_LONG(0x00000400) 2064 2065 #define MCI_RECORD_INSERT __MSABI_LONG(0x00000100) 2066 #define MCI_RECORD_OVERWRITE __MSABI_LONG(0x00000200) 2067 2068 #define MCI_SAVE_FILE __MSABI_LONG(0x00000100) 2069 2070 #define MCI_LOAD_FILE __MSABI_LONG(0x00000100) 2071 2072 typedef struct tagMCI_GENERIC_PARMS { 2073 DWORD_PTR dwCallback; 2074 } MCI_GENERIC_PARMS,*PMCI_GENERIC_PARMS,*LPMCI_GENERIC_PARMS; 2075 2076 typedef struct tagMCI_OPEN_PARMSA { 2077 DWORD_PTR dwCallback; 2078 MCIDEVICEID wDeviceID; 2079 LPCSTR lpstrDeviceType; 2080 LPCSTR lpstrElementName; 2081 LPCSTR lpstrAlias; 2082 } MCI_OPEN_PARMSA,*PMCI_OPEN_PARMSA,*LPMCI_OPEN_PARMSA; 2083 2084 typedef struct tagMCI_OPEN_PARMSW { 2085 DWORD_PTR dwCallback; 2086 MCIDEVICEID wDeviceID; 2087 LPCWSTR lpstrDeviceType; 2088 LPCWSTR lpstrElementName; 2089 LPCWSTR lpstrAlias; 2090 } MCI_OPEN_PARMSW,*PMCI_OPEN_PARMSW,*LPMCI_OPEN_PARMSW; 2091 2092 __MINGW_TYPEDEF_AW(MCI_OPEN_PARMS) 2093 __MINGW_TYPEDEF_AW(PMCI_OPEN_PARMS) 2094 __MINGW_TYPEDEF_AW(LPMCI_OPEN_PARMS) 2095 2096 typedef struct tagMCI_PLAY_PARMS { 2097 DWORD_PTR dwCallback; 2098 DWORD dwFrom; 2099 DWORD dwTo; 2100 } MCI_PLAY_PARMS,*PMCI_PLAY_PARMS,*LPMCI_PLAY_PARMS; 2101 2102 typedef struct tagMCI_SEEK_PARMS { 2103 DWORD_PTR dwCallback; 2104 DWORD dwTo; 2105 } MCI_SEEK_PARMS,*PMCI_SEEK_PARMS,*LPMCI_SEEK_PARMS; 2106 2107 typedef struct tagMCI_STATUS_PARMS { 2108 DWORD_PTR dwCallback; 2109 DWORD_PTR dwReturn; 2110 DWORD dwItem; 2111 DWORD dwTrack; 2112 } MCI_STATUS_PARMS,*PMCI_STATUS_PARMS,*LPMCI_STATUS_PARMS; 2113 2114 typedef struct tagMCI_INFO_PARMSA { 2115 DWORD_PTR dwCallback; 2116 LPSTR lpstrReturn; 2117 DWORD dwRetSize; 2118 } MCI_INFO_PARMSA,*LPMCI_INFO_PARMSA; 2119 typedef struct tagMCI_INFO_PARMSW { 2120 DWORD_PTR dwCallback; 2121 LPWSTR lpstrReturn; 2122 DWORD dwRetSize; 2123 } MCI_INFO_PARMSW,*LPMCI_INFO_PARMSW; 2124 2125 __MINGW_TYPEDEF_AW(MCI_INFO_PARMS) 2126 __MINGW_TYPEDEF_AW(LPMCI_INFO_PARMS) 2127 2128 typedef struct tagMCI_GETDEVCAPS_PARMS { 2129 DWORD_PTR dwCallback; 2130 DWORD dwReturn; 2131 DWORD dwItem; 2132 } MCI_GETDEVCAPS_PARMS,*PMCI_GETDEVCAPS_PARMS,*LPMCI_GETDEVCAPS_PARMS; 2133 2134 typedef struct tagMCI_SYSINFO_PARMSA { 2135 DWORD_PTR dwCallback; 2136 LPSTR lpstrReturn; 2137 DWORD dwRetSize; 2138 DWORD dwNumber; 2139 UINT wDeviceType; 2140 } MCI_SYSINFO_PARMSA,*PMCI_SYSINFO_PARMSA,*LPMCI_SYSINFO_PARMSA; 2141 2142 typedef struct tagMCI_SYSINFO_PARMSW { 2143 DWORD_PTR dwCallback; 2144 LPWSTR lpstrReturn; 2145 DWORD dwRetSize; 2146 DWORD dwNumber; 2147 UINT wDeviceType; 2148 } MCI_SYSINFO_PARMSW,*PMCI_SYSINFO_PARMSW,*LPMCI_SYSINFO_PARMSW; 2149 2150 __MINGW_TYPEDEF_AW(MCI_SYSINFO_PARMS) 2151 __MINGW_TYPEDEF_AW(PMCI_SYSINFO_PARMS) 2152 __MINGW_TYPEDEF_AW(LPMCI_SYSINFO_PARMS) 2153 2154 typedef struct tagMCI_SET_PARMS { 2155 DWORD_PTR dwCallback; 2156 DWORD dwTimeFormat; 2157 DWORD dwAudio; 2158 } MCI_SET_PARMS,*PMCI_SET_PARMS,*LPMCI_SET_PARMS; 2159 2160 typedef struct tagMCI_BREAK_PARMS { 2161 DWORD_PTR dwCallback; 2162 int nVirtKey; 2163 HWND hwndBreak; 2164 } MCI_BREAK_PARMS,*PMCI_BREAK_PARMS,*LPMCI_BREAK_PARMS; 2165 2166 typedef struct tagMCI_SAVE_PARMSA { 2167 DWORD_PTR dwCallback; 2168 LPCSTR lpfilename; 2169 } MCI_SAVE_PARMSA,*PMCI_SAVE_PARMSA,*LPMCI_SAVE_PARMSA; 2170 2171 typedef struct tagMCI_SAVE_PARMSW { 2172 DWORD_PTR dwCallback; 2173 LPCWSTR lpfilename; 2174 } MCI_SAVE_PARMSW,*PMCI_SAVE_PARMSW,*LPMCI_SAVE_PARMSW; 2175 2176 __MINGW_TYPEDEF_AW(MCI_SAVE_PARMS) 2177 __MINGW_TYPEDEF_AW(PMCI_SAVE_PARMS) 2178 __MINGW_TYPEDEF_AW(LPMCI_SAVE_PARMS) 2179 2180 typedef struct tagMCI_LOAD_PARMSA { 2181 DWORD_PTR dwCallback; 2182 LPCSTR lpfilename; 2183 } MCI_LOAD_PARMSA,*PMCI_LOAD_PARMSA,*LPMCI_LOAD_PARMSA; 2184 2185 typedef struct tagMCI_LOAD_PARMSW { 2186 DWORD_PTR dwCallback; 2187 LPCWSTR lpfilename; 2188 } MCI_LOAD_PARMSW,*PMCI_LOAD_PARMSW,*LPMCI_LOAD_PARMSW; 2189 2190 __MINGW_TYPEDEF_AW(MCI_LOAD_PARMS) 2191 __MINGW_TYPEDEF_AW(PMCI_LOAD_PARMS) 2192 __MINGW_TYPEDEF_AW(LPMCI_LOAD_PARMS) 2193 2194 typedef struct tagMCI_RECORD_PARMS { 2195 DWORD_PTR dwCallback; 2196 DWORD dwFrom; 2197 DWORD dwTo; 2198 } MCI_RECORD_PARMS,*LPMCI_RECORD_PARMS; 2199 2200 #define MCI_VD_MODE_PARK (MCI_VD_OFFSET + 1) 2201 2202 #define MCI_VD_MEDIA_CLV (MCI_VD_OFFSET + 2) 2203 #define MCI_VD_MEDIA_CAV (MCI_VD_OFFSET + 3) 2204 #define MCI_VD_MEDIA_OTHER (MCI_VD_OFFSET + 4) 2205 2206 #define MCI_VD_FORMAT_TRACK 0x4001 2207 2208 #define MCI_VD_PLAY_REVERSE __MSABI_LONG(0x00010000) 2209 #define MCI_VD_PLAY_FAST __MSABI_LONG(0x00020000) 2210 #define MCI_VD_PLAY_SPEED __MSABI_LONG(0x00040000) 2211 #define MCI_VD_PLAY_SCAN __MSABI_LONG(0x00080000) 2212 #define MCI_VD_PLAY_SLOW __MSABI_LONG(0x00100000) 2213 2214 #define MCI_VD_SEEK_REVERSE __MSABI_LONG(0x00010000) 2215 2216 #define MCI_VD_STATUS_SPEED __MSABI_LONG(0x00004002) 2217 #define MCI_VD_STATUS_FORWARD __MSABI_LONG(0x00004003) 2218 #define MCI_VD_STATUS_MEDIA_TYPE __MSABI_LONG(0x00004004) 2219 #define MCI_VD_STATUS_SIDE __MSABI_LONG(0x00004005) 2220 #define MCI_VD_STATUS_DISC_SIZE __MSABI_LONG(0x00004006) 2221 2222 #define MCI_VD_GETDEVCAPS_CLV __MSABI_LONG(0x00010000) 2223 #define MCI_VD_GETDEVCAPS_CAV __MSABI_LONG(0x00020000) 2224 2225 #define MCI_VD_SPIN_UP __MSABI_LONG(0x00010000) 2226 #define MCI_VD_SPIN_DOWN __MSABI_LONG(0x00020000) 2227 2228 #define MCI_VD_GETDEVCAPS_CAN_REVERSE __MSABI_LONG(0x00004002) 2229 #define MCI_VD_GETDEVCAPS_FAST_RATE __MSABI_LONG(0x00004003) 2230 #define MCI_VD_GETDEVCAPS_SLOW_RATE __MSABI_LONG(0x00004004) 2231 #define MCI_VD_GETDEVCAPS_NORMAL_RATE __MSABI_LONG(0x00004005) 2232 2233 #define MCI_VD_STEP_FRAMES __MSABI_LONG(0x00010000) 2234 #define MCI_VD_STEP_REVERSE __MSABI_LONG(0x00020000) 2235 2236 #define MCI_VD_ESCAPE_STRING __MSABI_LONG(0x00000100) 2237 2238 typedef struct tagMCI_VD_PLAY_PARMS { 2239 DWORD_PTR dwCallback; 2240 DWORD dwFrom; 2241 DWORD dwTo; 2242 DWORD dwSpeed; 2243 } MCI_VD_PLAY_PARMS,*PMCI_VD_PLAY_PARMS,*LPMCI_VD_PLAY_PARMS; 2244 2245 typedef struct tagMCI_VD_STEP_PARMS { 2246 DWORD_PTR dwCallback; 2247 DWORD dwFrames; 2248 } MCI_VD_STEP_PARMS,*PMCI_VD_STEP_PARMS,*LPMCI_VD_STEP_PARMS; 2249 2250 typedef struct tagMCI_VD_ESCAPE_PARMSA { 2251 DWORD_PTR dwCallback; 2252 LPCSTR lpstrCommand; 2253 } MCI_VD_ESCAPE_PARMSA,*PMCI_VD_ESCAPE_PARMSA,*LPMCI_VD_ESCAPE_PARMSA; 2254 2255 typedef struct tagMCI_VD_ESCAPE_PARMSW { 2256 DWORD_PTR dwCallback; 2257 LPCWSTR lpstrCommand; 2258 } MCI_VD_ESCAPE_PARMSW,*PMCI_VD_ESCAPE_PARMSW,*LPMCI_VD_ESCAPE_PARMSW; 2259 2260 __MINGW_TYPEDEF_AW(MCI_VD_ESCAPE_PARMS) 2261 __MINGW_TYPEDEF_AW(PMCI_VD_ESCAPE_PARMS) 2262 __MINGW_TYPEDEF_AW(LPMCI_VD_ESCAPE_PARMS) 2263 2264 #define MCI_CDA_STATUS_TYPE_TRACK __MSABI_LONG(0x00004001) 2265 #define MCI_CDA_TRACK_AUDIO (MCI_CD_OFFSET + 0) 2266 #define MCI_CDA_TRACK_OTHER (MCI_CD_OFFSET + 1) 2267 2268 #define MCI_WAVE_PCM (MCI_WAVE_OFFSET + 0) 2269 #define MCI_WAVE_MAPPER (MCI_WAVE_OFFSET + 1) 2270 2271 #define MCI_WAVE_OPEN_BUFFER __MSABI_LONG(0x00010000) 2272 2273 #define MCI_WAVE_SET_FORMATTAG __MSABI_LONG(0x00010000) 2274 #define MCI_WAVE_SET_CHANNELS __MSABI_LONG(0x00020000) 2275 #define MCI_WAVE_SET_SAMPLESPERSEC __MSABI_LONG(0x00040000) 2276 #define MCI_WAVE_SET_AVGBYTESPERSEC __MSABI_LONG(0x00080000) 2277 #define MCI_WAVE_SET_BLOCKALIGN __MSABI_LONG(0x00100000) 2278 #define MCI_WAVE_SET_BITSPERSAMPLE __MSABI_LONG(0x00200000) 2279 2280 #define MCI_WAVE_INPUT __MSABI_LONG(0x00400000) 2281 #define MCI_WAVE_OUTPUT __MSABI_LONG(0x00800000) 2282 2283 #define MCI_WAVE_STATUS_FORMATTAG __MSABI_LONG(0x00004001) 2284 #define MCI_WAVE_STATUS_CHANNELS __MSABI_LONG(0x00004002) 2285 #define MCI_WAVE_STATUS_SAMPLESPERSEC __MSABI_LONG(0x00004003) 2286 #define MCI_WAVE_STATUS_AVGBYTESPERSEC __MSABI_LONG(0x00004004) 2287 #define MCI_WAVE_STATUS_BLOCKALIGN __MSABI_LONG(0x00004005) 2288 #define MCI_WAVE_STATUS_BITSPERSAMPLE __MSABI_LONG(0x00004006) 2289 #define MCI_WAVE_STATUS_LEVEL __MSABI_LONG(0x00004007) 2290 2291 #define MCI_WAVE_SET_ANYINPUT __MSABI_LONG(0x04000000) 2292 #define MCI_WAVE_SET_ANYOUTPUT __MSABI_LONG(0x08000000) 2293 2294 #define MCI_WAVE_GETDEVCAPS_INPUTS __MSABI_LONG(0x00004001) 2295 #define MCI_WAVE_GETDEVCAPS_OUTPUTS __MSABI_LONG(0x00004002) 2296 2297 typedef struct tagMCI_WAVE_OPEN_PARMSA { 2298 DWORD_PTR dwCallback; 2299 MCIDEVICEID wDeviceID; 2300 LPCSTR lpstrDeviceType; 2301 LPCSTR lpstrElementName; 2302 LPCSTR lpstrAlias; 2303 DWORD dwBufferSeconds; 2304 } MCI_WAVE_OPEN_PARMSA,*PMCI_WAVE_OPEN_PARMSA,*LPMCI_WAVE_OPEN_PARMSA; 2305 2306 typedef struct tagMCI_WAVE_OPEN_PARMSW { 2307 DWORD_PTR dwCallback; 2308 MCIDEVICEID wDeviceID; 2309 LPCWSTR lpstrDeviceType; 2310 LPCWSTR lpstrElementName; 2311 LPCWSTR lpstrAlias; 2312 DWORD dwBufferSeconds; 2313 } MCI_WAVE_OPEN_PARMSW,*PMCI_WAVE_OPEN_PARMSW,*LPMCI_WAVE_OPEN_PARMSW; 2314 2315 __MINGW_TYPEDEF_AW(MCI_WAVE_OPEN_PARMS) 2316 __MINGW_TYPEDEF_AW(PMCI_WAVE_OPEN_PARMS) 2317 __MINGW_TYPEDEF_AW(LPMCI_WAVE_OPEN_PARMS) 2318 2319 typedef struct tagMCI_WAVE_DELETE_PARMS { 2320 DWORD_PTR dwCallback; 2321 DWORD dwFrom; 2322 DWORD dwTo; 2323 } MCI_WAVE_DELETE_PARMS,*PMCI_WAVE_DELETE_PARMS,*LPMCI_WAVE_DELETE_PARMS; 2324 2325 typedef struct tagMCI_WAVE_SET_PARMS { 2326 DWORD_PTR dwCallback; 2327 DWORD dwTimeFormat; 2328 DWORD dwAudio; 2329 UINT wInput; 2330 UINT wOutput; 2331 WORD wFormatTag; 2332 WORD wReserved2; 2333 WORD nChannels; 2334 WORD wReserved3; 2335 DWORD nSamplesPerSec; 2336 DWORD nAvgBytesPerSec; 2337 WORD nBlockAlign; 2338 WORD wReserved4; 2339 WORD wBitsPerSample; 2340 WORD wReserved5; 2341 } MCI_WAVE_SET_PARMS,*PMCI_WAVE_SET_PARMS,*LPMCI_WAVE_SET_PARMS; 2342 2343 #define MCI_SEQ_DIV_PPQN (0 + MCI_SEQ_OFFSET) 2344 #define MCI_SEQ_DIV_SMPTE_24 (1 + MCI_SEQ_OFFSET) 2345 #define MCI_SEQ_DIV_SMPTE_25 (2 + MCI_SEQ_OFFSET) 2346 #define MCI_SEQ_DIV_SMPTE_30DROP (3 + MCI_SEQ_OFFSET) 2347 #define MCI_SEQ_DIV_SMPTE_30 (4 + MCI_SEQ_OFFSET) 2348 2349 #define MCI_SEQ_FORMAT_SONGPTR 0x4001 2350 #define MCI_SEQ_FILE 0x4002 2351 #define MCI_SEQ_MIDI 0x4003 2352 #define MCI_SEQ_SMPTE 0x4004 2353 #define MCI_SEQ_NONE 65533 2354 #define MCI_SEQ_MAPPER 65535 2355 2356 #define MCI_SEQ_STATUS_TEMPO __MSABI_LONG(0x00004002) 2357 #define MCI_SEQ_STATUS_PORT __MSABI_LONG(0x00004003) 2358 #define MCI_SEQ_STATUS_SLAVE __MSABI_LONG(0x00004007) 2359 #define MCI_SEQ_STATUS_MASTER __MSABI_LONG(0x00004008) 2360 #define MCI_SEQ_STATUS_OFFSET __MSABI_LONG(0x00004009) 2361 #define MCI_SEQ_STATUS_DIVTYPE __MSABI_LONG(0x0000400A) 2362 #define MCI_SEQ_STATUS_NAME __MSABI_LONG(0x0000400B) 2363 #define MCI_SEQ_STATUS_COPYRIGHT __MSABI_LONG(0x0000400C) 2364 2365 #define MCI_SEQ_SET_TEMPO __MSABI_LONG(0x00010000) 2366 #define MCI_SEQ_SET_PORT __MSABI_LONG(0x00020000) 2367 #define MCI_SEQ_SET_SLAVE __MSABI_LONG(0x00040000) 2368 #define MCI_SEQ_SET_MASTER __MSABI_LONG(0x00080000) 2369 #define MCI_SEQ_SET_OFFSET __MSABI_LONG(0x01000000) 2370 2371 typedef struct tagMCI_SEQ_SET_PARMS { 2372 DWORD_PTR dwCallback; 2373 DWORD dwTimeFormat; 2374 DWORD dwAudio; 2375 DWORD dwTempo; 2376 DWORD dwPort; 2377 DWORD dwSlave; 2378 DWORD dwMaster; 2379 DWORD dwOffset; 2380 } MCI_SEQ_SET_PARMS,*PMCI_SEQ_SET_PARMS,*LPMCI_SEQ_SET_PARMS; 2381 2382 #define MCI_ANIM_OPEN_WS __MSABI_LONG(0x00010000) 2383 #define MCI_ANIM_OPEN_PARENT __MSABI_LONG(0x00020000) 2384 #define MCI_ANIM_OPEN_NOSTATIC __MSABI_LONG(0x00040000) 2385 2386 #define MCI_ANIM_PLAY_SPEED __MSABI_LONG(0x00010000) 2387 #define MCI_ANIM_PLAY_REVERSE __MSABI_LONG(0x00020000) 2388 #define MCI_ANIM_PLAY_FAST __MSABI_LONG(0x00040000) 2389 #define MCI_ANIM_PLAY_SLOW __MSABI_LONG(0x00080000) 2390 #define MCI_ANIM_PLAY_SCAN __MSABI_LONG(0x00100000) 2391 2392 #define MCI_ANIM_STEP_REVERSE __MSABI_LONG(0x00010000) 2393 #define MCI_ANIM_STEP_FRAMES __MSABI_LONG(0x00020000) 2394 2395 #define MCI_ANIM_STATUS_SPEED __MSABI_LONG(0x00004001) 2396 #define MCI_ANIM_STATUS_FORWARD __MSABI_LONG(0x00004002) 2397 #define MCI_ANIM_STATUS_HWND __MSABI_LONG(0x00004003) 2398 #define MCI_ANIM_STATUS_HPAL __MSABI_LONG(0x00004004) 2399 #define MCI_ANIM_STATUS_STRETCH __MSABI_LONG(0x00004005) 2400 2401 #define MCI_ANIM_INFO_TEXT __MSABI_LONG(0x00010000) 2402 2403 #define MCI_ANIM_GETDEVCAPS_CAN_REVERSE __MSABI_LONG(0x00004001) 2404 #define MCI_ANIM_GETDEVCAPS_FAST_RATE __MSABI_LONG(0x00004002) 2405 #define MCI_ANIM_GETDEVCAPS_SLOW_RATE __MSABI_LONG(0x00004003) 2406 #define MCI_ANIM_GETDEVCAPS_NORMAL_RATE __MSABI_LONG(0x00004004) 2407 #define MCI_ANIM_GETDEVCAPS_PALETTES __MSABI_LONG(0x00004006) 2408 #define MCI_ANIM_GETDEVCAPS_CAN_STRETCH __MSABI_LONG(0x00004007) 2409 #define MCI_ANIM_GETDEVCAPS_MAX_WINDOWS __MSABI_LONG(0x00004008) 2410 2411 #define MCI_ANIM_REALIZE_NORM __MSABI_LONG(0x00010000) 2412 #define MCI_ANIM_REALIZE_BKGD __MSABI_LONG(0x00020000) 2413 2414 #define MCI_ANIM_WINDOW_HWND __MSABI_LONG(0x00010000) 2415 #define MCI_ANIM_WINDOW_STATE __MSABI_LONG(0x00040000) 2416 #define MCI_ANIM_WINDOW_TEXT __MSABI_LONG(0x00080000) 2417 #define MCI_ANIM_WINDOW_ENABLE_STRETCH __MSABI_LONG(0x00100000) 2418 #define MCI_ANIM_WINDOW_DISABLE_STRETCH __MSABI_LONG(0x00200000) 2419 2420 #define MCI_ANIM_WINDOW_DEFAULT __MSABI_LONG(0x00000000) 2421 2422 #define MCI_ANIM_RECT __MSABI_LONG(0x00010000) 2423 #define MCI_ANIM_PUT_SOURCE __MSABI_LONG(0x00020000) 2424 #define MCI_ANIM_PUT_DESTINATION __MSABI_LONG(0x00040000) 2425 2426 #define MCI_ANIM_WHERE_SOURCE __MSABI_LONG(0x00020000) 2427 #define MCI_ANIM_WHERE_DESTINATION __MSABI_LONG(0x00040000) 2428 2429 #define MCI_ANIM_UPDATE_HDC __MSABI_LONG(0x00020000) 2430 2431 typedef struct tagMCI_ANIM_OPEN_PARMSA { 2432 DWORD_PTR dwCallback; 2433 MCIDEVICEID wDeviceID; 2434 LPCSTR lpstrDeviceType; 2435 LPCSTR lpstrElementName; 2436 LPCSTR lpstrAlias; 2437 DWORD dwStyle; 2438 HWND hWndParent; 2439 } MCI_ANIM_OPEN_PARMSA,*PMCI_ANIM_OPEN_PARMSA,*LPMCI_ANIM_OPEN_PARMSA; 2440 2441 typedef struct tagMCI_ANIM_OPEN_PARMSW { 2442 DWORD_PTR dwCallback; 2443 MCIDEVICEID wDeviceID; 2444 LPCWSTR lpstrDeviceType; 2445 LPCWSTR lpstrElementName; 2446 LPCWSTR lpstrAlias; 2447 DWORD dwStyle; 2448 HWND hWndParent; 2449 } MCI_ANIM_OPEN_PARMSW,*PMCI_ANIM_OPEN_PARMSW,*LPMCI_ANIM_OPEN_PARMSW; 2450 2451 __MINGW_TYPEDEF_AW(MCI_ANIM_OPEN_PARMS) 2452 __MINGW_TYPEDEF_AW(PMCI_ANIM_OPEN_PARMS) 2453 __MINGW_TYPEDEF_AW(LPMCI_ANIM_OPEN_PARMS) 2454 2455 typedef struct tagMCI_ANIM_PLAY_PARMS { 2456 DWORD_PTR dwCallback; 2457 DWORD dwFrom; 2458 DWORD dwTo; 2459 DWORD dwSpeed; 2460 } MCI_ANIM_PLAY_PARMS,*PMCI_ANIM_PLAY_PARMS,*LPMCI_ANIM_PLAY_PARMS; 2461 2462 typedef struct tagMCI_ANIM_STEP_PARMS { 2463 DWORD_PTR dwCallback; 2464 DWORD dwFrames; 2465 } MCI_ANIM_STEP_PARMS,*PMCI_ANIM_STEP_PARMS,*LPMCI_ANIM_STEP_PARMS; 2466 2467 typedef struct tagMCI_ANIM_WINDOW_PARMSA { 2468 DWORD_PTR dwCallback; 2469 HWND hWnd; 2470 UINT nCmdShow; 2471 LPCSTR lpstrText; 2472 } MCI_ANIM_WINDOW_PARMSA,*PMCI_ANIM_WINDOW_PARMSA,*LPMCI_ANIM_WINDOW_PARMSA; 2473 2474 typedef struct tagMCI_ANIM_WINDOW_PARMSW { 2475 DWORD_PTR dwCallback; 2476 HWND hWnd; 2477 UINT nCmdShow; 2478 LPCWSTR lpstrText; 2479 } MCI_ANIM_WINDOW_PARMSW,*PMCI_ANIM_WINDOW_PARMSW,*LPMCI_ANIM_WINDOW_PARMSW; 2480 2481 __MINGW_TYPEDEF_AW(MCI_ANIM_WINDOW_PARMS) 2482 __MINGW_TYPEDEF_AW(PMCI_ANIM_WINDOW_PARMS) 2483 __MINGW_TYPEDEF_AW(LPMCI_ANIM_WINDOW_PARMS) 2484 2485 typedef struct tagMCI_ANIM_RECT_PARMS { 2486 DWORD_PTR dwCallback; 2487 #ifdef MCI_USE_OFFEXT 2488 POINT ptOffset; 2489 POINT ptExtent; 2490 #else 2491 RECT rc; 2492 #endif 2493 } MCI_ANIM_RECT_PARMS; 2494 2495 typedef MCI_ANIM_RECT_PARMS *PMCI_ANIM_RECT_PARMS; 2496 typedef MCI_ANIM_RECT_PARMS *LPMCI_ANIM_RECT_PARMS; 2497 2498 typedef struct tagMCI_ANIM_UPDATE_PARMS { 2499 DWORD_PTR dwCallback; 2500 RECT rc; 2501 HDC hDC; 2502 } MCI_ANIM_UPDATE_PARMS,*PMCI_ANIM_UPDATE_PARMS,*LPMCI_ANIM_UPDATE_PARMS; 2503 2504 #define MCI_OVLY_OPEN_WS __MSABI_LONG(0x00010000) 2505 #define MCI_OVLY_OPEN_PARENT __MSABI_LONG(0x00020000) 2506 2507 #define MCI_OVLY_STATUS_HWND __MSABI_LONG(0x00004001) 2508 #define MCI_OVLY_STATUS_STRETCH __MSABI_LONG(0x00004002) 2509 2510 #define MCI_OVLY_INFO_TEXT __MSABI_LONG(0x00010000) 2511 2512 #define MCI_OVLY_GETDEVCAPS_CAN_STRETCH __MSABI_LONG(0x00004001) 2513 #define MCI_OVLY_GETDEVCAPS_CAN_FREEZE __MSABI_LONG(0x00004002) 2514 #define MCI_OVLY_GETDEVCAPS_MAX_WINDOWS __MSABI_LONG(0x00004003) 2515 2516 #define MCI_OVLY_WINDOW_HWND __MSABI_LONG(0x00010000) 2517 #define MCI_OVLY_WINDOW_STATE __MSABI_LONG(0x00040000) 2518 #define MCI_OVLY_WINDOW_TEXT __MSABI_LONG(0x00080000) 2519 #define MCI_OVLY_WINDOW_ENABLE_STRETCH __MSABI_LONG(0x00100000) 2520 #define MCI_OVLY_WINDOW_DISABLE_STRETCH __MSABI_LONG(0x00200000) 2521 2522 #define MCI_OVLY_WINDOW_DEFAULT __MSABI_LONG(0x00000000) 2523 2524 #define MCI_OVLY_RECT __MSABI_LONG(0x00010000) 2525 #define MCI_OVLY_PUT_SOURCE __MSABI_LONG(0x00020000) 2526 #define MCI_OVLY_PUT_DESTINATION __MSABI_LONG(0x00040000) 2527 #define MCI_OVLY_PUT_FRAME __MSABI_LONG(0x00080000) 2528 #define MCI_OVLY_PUT_VIDEO __MSABI_LONG(0x00100000) 2529 2530 #define MCI_OVLY_WHERE_SOURCE __MSABI_LONG(0x00020000) 2531 #define MCI_OVLY_WHERE_DESTINATION __MSABI_LONG(0x00040000) 2532 #define MCI_OVLY_WHERE_FRAME __MSABI_LONG(0x00080000) 2533 #define MCI_OVLY_WHERE_VIDEO __MSABI_LONG(0x00100000) 2534 2535 typedef struct tagMCI_OVLY_OPEN_PARMSA { 2536 DWORD_PTR dwCallback; 2537 MCIDEVICEID wDeviceID; 2538 LPCSTR lpstrDeviceType; 2539 LPCSTR lpstrElementName; 2540 LPCSTR lpstrAlias; 2541 DWORD dwStyle; 2542 HWND hWndParent; 2543 } MCI_OVLY_OPEN_PARMSA,*PMCI_OVLY_OPEN_PARMSA,*LPMCI_OVLY_OPEN_PARMSA; 2544 2545 typedef struct tagMCI_OVLY_OPEN_PARMSW { 2546 DWORD_PTR dwCallback; 2547 MCIDEVICEID wDeviceID; 2548 LPCWSTR lpstrDeviceType; 2549 LPCWSTR lpstrElementName; 2550 LPCWSTR lpstrAlias; 2551 DWORD dwStyle; 2552 HWND hWndParent; 2553 } MCI_OVLY_OPEN_PARMSW,*PMCI_OVLY_OPEN_PARMSW,*LPMCI_OVLY_OPEN_PARMSW; 2554 2555 __MINGW_TYPEDEF_AW(MCI_OVLY_OPEN_PARMS) 2556 __MINGW_TYPEDEF_AW(PMCI_OVLY_OPEN_PARMS) 2557 __MINGW_TYPEDEF_AW(LPMCI_OVLY_OPEN_PARMS) 2558 2559 typedef struct tagMCI_OVLY_WINDOW_PARMSA { 2560 DWORD_PTR dwCallback; 2561 HWND hWnd; 2562 UINT nCmdShow; 2563 LPCSTR lpstrText; 2564 } MCI_OVLY_WINDOW_PARMSA,*PMCI_OVLY_WINDOW_PARMSA,*LPMCI_OVLY_WINDOW_PARMSA; 2565 2566 typedef struct tagMCI_OVLY_WINDOW_PARMSW { 2567 DWORD_PTR dwCallback; 2568 HWND hWnd; 2569 UINT nCmdShow; 2570 LPCWSTR lpstrText; 2571 } MCI_OVLY_WINDOW_PARMSW,*PMCI_OVLY_WINDOW_PARMSW,*LPMCI_OVLY_WINDOW_PARMSW; 2572 2573 __MINGW_TYPEDEF_AW(MCI_OVLY_WINDOW_PARMS) 2574 __MINGW_TYPEDEF_AW(PMCI_OVLY_WINDOW_PARMS) 2575 __MINGW_TYPEDEF_AW(LPMCI_OVLY_WINDOW_PARMS) 2576 2577 typedef struct tagMCI_OVLY_RECT_PARMS { 2578 DWORD_PTR dwCallback; 2579 #ifdef MCI_USE_OFFEXT 2580 POINT ptOffset; 2581 POINT ptExtent; 2582 #else 2583 RECT rc; 2584 #endif 2585 } MCI_OVLY_RECT_PARMS,*PMCI_OVLY_RECT_PARMS,*LPMCI_OVLY_RECT_PARMS; 2586 2587 typedef struct tagMCI_OVLY_SAVE_PARMSA { 2588 DWORD_PTR dwCallback; 2589 LPCSTR lpfilename; 2590 RECT rc; 2591 } MCI_OVLY_SAVE_PARMSA,*PMCI_OVLY_SAVE_PARMSA,*LPMCI_OVLY_SAVE_PARMSA; 2592 2593 typedef struct tagMCI_OVLY_SAVE_PARMSW { 2594 DWORD_PTR dwCallback; 2595 LPCWSTR lpfilename; 2596 RECT rc; 2597 } MCI_OVLY_SAVE_PARMSW,*PMCI_OVLY_SAVE_PARMSW,*LPMCI_OVLY_SAVE_PARMSW; 2598 2599 __MINGW_TYPEDEF_AW(MCI_OVLY_SAVE_PARMS) 2600 __MINGW_TYPEDEF_AW(PMCI_OVLY_SAVE_PARMS) 2601 __MINGW_TYPEDEF_AW(LPMCI_OVLY_SAVE_PARMS) 2602 2603 typedef struct tagMCI_OVLY_LOAD_PARMSA { 2604 DWORD_PTR dwCallback; 2605 LPCSTR lpfilename; 2606 RECT rc; 2607 } MCI_OVLY_LOAD_PARMSA,*PMCI_OVLY_LOAD_PARMSA,*LPMCI_OVLY_LOAD_PARMSA; 2608 2609 typedef struct tagMCI_OVLY_LOAD_PARMSW { 2610 DWORD_PTR dwCallback; 2611 LPCWSTR lpfilename; 2612 RECT rc; 2613 } MCI_OVLY_LOAD_PARMSW,*PMCI_OVLY_LOAD_PARMSW,*LPMCI_OVLY_LOAD_PARMSW; 2614 2615 __MINGW_TYPEDEF_AW(MCI_OVLY_LOAD_PARMS) 2616 __MINGW_TYPEDEF_AW(PMCI_OVLY_LOAD_PARMS) 2617 __MINGW_TYPEDEF_AW(LPMCI_OVLY_LOAD_PARMS) 2618 #endif 2619 2620 #ifndef NEWTRANSPARENT 2621 #define NEWTRANSPARENT 3 2622 #define QUERYROPSUPPORT 40 2623 #endif 2624 2625 #define SELECTDIB 41 2626 #define DIBINDEX(n) MAKELONG((n),0x10FF) 2627 2628 #ifndef SC_SCREENSAVE 2629 #define SC_SCREENSAVE 0xF140 2630 #endif 2631 2632 #ifdef __cplusplus 2633 } 2634 #endif 2635 2636 #include <poppack.h> 2637 #endif 2638