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