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