Differences From Artifact [f5def972cae0b61c]:
- File
src/win32/mmsystem.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
To Artifact [e73903b559a6e2de]:
- File
src/win32/mmsystem.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
1 +/***********************************************************************\
2 +* mmsystem.d *
3 +* *
4 +* Windows API header module *
5 +* *
6 +* Translated from MinGW Windows headers *
7 +* *
8 +* Placed into public domain *
9 +\***********************************************************************/
1 10 module win32.mmsystem;
11 +pragma(lib, "winmm.lib");
2 12
3 -// Translated from Microsoft Platform SDK August 2001 Edition
4 -// by Y.Tomino (demoonlit@inter7.jp)
13 +/* The #defines MAKEFOURCC, mmioFOURCC, sndAlias are used to define
14 + * compile-time constants, so they are implemented as templates.
15 + */
5 16
6 -import win32.winbase;
17 +private import win32.w32api, win32.windef, win32.winver;
7 18
8 -// #ifndef _INC_MMSYSTEM
9 -// #define _INC_MMSYSTEM
10 -
11 -// #ifdef _WIN32
12 19 align(1):
13 -// #else
14 -// #ifndef RC_INVOKED
15 -// #...
16 -// #endif
17 -// #endif
18 -
19 -// #ifdef __cplusplus
20 -// extern "C" { /* Assume C declarations for C++ */
21 -// #endif /* __cplusplus */
22 -
23 -// #ifdef _WIN32
24 -// #ifndef _WINMM_
25 -// #define WINMMAPI DECLSPEC_IMPORT
26 -// #else
27 -// #...
28 -// #endif
29 -// #define _loadds
30 -// #define _huge
31 -// #else
32 -// #...
33 -// #endif
34 -
35 -// #ifdef _MAC
36 -// #...
37 -// #endif //_MAC
38 -
39 -enum : uint { MAXPNAMELEN = 32 }
40 -enum : uint { MAXERRORLENGTH = 256 }
41 -enum : uint { MAX_JOYSTICKOEMVXDNAME = 260 }
42 -
43 -// #if (WINVER <= 0x0400)
44 -// #ifndef MM_MICROSOFT
45 -// #...
46 -// #endif
47 -
48 -// #ifndef MM_MIDI_MAPPER
49 -// #...
50 -// #...
51 -// #...
52 -// #...
53 -// #...
54 -// #...
55 -// #...
56 -// #...
57 -// #...
58 -// #...
59 -// #...
60 -// #endif
61 -// #endif
62 -
63 -// #ifdef _WIN32
64 -alias UINT MMVERSION;
65 -// #else
66 -// ...
67 -// #endif
20 +
21 +const MAXPNAMELEN = 32;
22 +const MAXERRORLENGTH = 256;
23 +const MAX_JOYSTICKOEMVXDNAME = 260;
24 +
25 +const TIME_MS = 1;
26 +const TIME_SAMPLES = 2;
27 +const TIME_BYTES = 4;
28 +const TIME_SMPTE = 8;
29 +const TIME_MIDI = 16;
30 +const TIME_TICKS = 32;
31 +
32 +template MAKEFOURCC(char c0, char c1, char c2, char c3)
33 +{
34 + const DWORD MAKEFOURCC = c0 | (c1<<8) | (c2<<16) | (cast(DWORD)c3 <<24);
35 +}
36 +
37 +template mmioFOURCC(char c0, char c1, char c2, char c3)
38 +{
39 + const DWORD mmioFOURCC = c0 | (c1<<8) | (c2<<16) | (cast(DWORD)c3 <<24);
40 +}
41 +
42 +enum {
43 + MM_JOY1MOVE = 0x3A0,
44 + MM_JOY2MOVE,
45 + MM_JOY1ZMOVE,
46 + MM_JOY2ZMOVE, // = 0x3A3
47 + MM_JOY1BUTTONDOWN = 0x3B5,
48 + MM_JOY2BUTTONDOWN,
49 + MM_JOY1BUTTONUP,
50 + MM_JOY2BUTTONUP,
51 + MM_MCINOTIFY, // = 0x3B9
52 + MM_WOM_OPEN = 0x3BB,
53 + MM_WOM_CLOSE,
54 + MM_WOM_DONE,
55 + MM_WIM_OPEN,
56 + MM_WIM_CLOSE,
57 + MM_WIM_DATA,
58 + MM_MIM_OPEN,
59 + MM_MIM_CLOSE,
60 + MM_MIM_DATA,
61 + MM_MIM_LONGDATA,
62 + MM_MIM_ERROR,
63 + MM_MIM_LONGERROR,
64 + MM_MOM_OPEN,
65 + MM_MOM_CLOSE,
66 + MM_MOM_DONE, // = 0x3C9
67 + MM_DRVM_OPEN = 0x3D0,
68 + MM_DRVM_CLOSE,
69 + MM_DRVM_DATA,
70 + MM_DRVM_ERROR,
71 + MM_STREAM_OPEN,
72 + MM_STREAM_CLOSE,
73 + MM_STREAM_DONE,
74 + MM_STREAM_ERROR, // = 0x3D7
75 + MM_MOM_POSITIONCB = 0x3CA,
76 + MM_MCISIGNAL,
77 + MM_MIM_MOREDATA, // = 0x3CC
78 + MM_MIXM_LINE_CHANGE = 0x3D0,
79 + MM_MIXM_CONTROL_CHANGE = 0x3D1
80 +}
81 +
82 +const MMSYSERR_BASE = 0;
83 +const WAVERR_BASE = 32;
84 +const MIDIERR_BASE = 64;
85 +const TIMERR_BASE = 96;
86 +const JOYERR_BASE = 160;
87 +const MCIERR_BASE = 256;
88 +const MIXERR_BASE = 1024;
89 +const MCI_STRING_OFFSET = 512;
90 +const MCI_VD_OFFSET = 1024;
91 +const MCI_CD_OFFSET = 1088;
92 +const MCI_WAVE_OFFSET = 1152;
93 +const MCI_SEQ_OFFSET = 1216;
94 +
95 +enum {
96 + MMSYSERR_NOERROR = 0,
97 + MMSYSERR_ERROR = MMSYSERR_BASE+1,
98 + MMSYSERR_BADDEVICEID,
99 + MMSYSERR_NOTENABLED,
100 + MMSYSERR_ALLOCATED,
101 + MMSYSERR_INVALHANDLE,
102 + MMSYSERR_NODRIVER,
103 + MMSYSERR_NOMEM,
104 + MMSYSERR_NOTSUPPORTED,
105 + MMSYSERR_BADERRNUM,
106 + MMSYSERR_INVALFLAG,
107 + MMSYSERR_INVALPARAM,
108 + MMSYSERR_HANDLEBUSY,
109 + MMSYSERR_INVALIDALIAS,
110 + MMSYSERR_BADDB,
111 + MMSYSERR_KEYNOTFOUND,
112 + MMSYSERR_READERROR,
113 + MMSYSERR_WRITEERROR,
114 + MMSYSERR_DELETEERROR,
115 + MMSYSERR_VALNOTFOUND,
116 + MMSYSERR_NODRIVERCB, // = MMSYSERR_BASE+20
117 + MMSYSERR_LASTERROR = MMSYSERR_NODRIVERCB
118 +}
119 +
120 +enum {
121 + DRV_LOAD = 1,
122 + DRV_ENABLE,
123 + DRV_OPEN,
124 + DRV_CLOSE,
125 + DRV_DISABLE,
126 + DRV_FREE,
127 + DRV_CONFIGURE,
128 + DRV_QUERYCONFIGURE,
129 + DRV_INSTALL,
130 + DRV_REMOVE,
131 + DRV_EXITSESSION,
132 + DRV_POWER
133 +}
134 +
135 +const DRV_RESERVED = 0x800;
136 +const DRV_USER = 0x4000;
137 +
138 +const DRVCNF_CANCEL = 0;
139 +const DRVCNF_OK = 1;
140 +const DRVCNF_RESTART = 2;
141 +const DRV_CANCEL = DRVCNF_CANCEL;
142 +const DRV_OK = DRVCNF_OK;
143 +const DRV_RESTART = DRVCNF_RESTART;
144 +const DRV_MCI_FIRST = DRV_RESERVED;
145 +const DRV_MCI_LAST = DRV_RESERVED + 0xFFF;
146 +
147 +const CALLBACK_TYPEMASK = 0x70000;
148 +const CALLBACK_NULL = 0;
149 +const CALLBACK_WINDOW = 0x10000;
150 +const CALLBACK_TASK = 0x20000;
151 +const CALLBACK_FUNCTION = 0x30000;
152 +const CALLBACK_THREAD = CALLBACK_TASK;
153 +const CALLBACK_EVENT = 0x50000;
154 +
155 +const SND_SYNC=0;
156 +const SND_ASYNC=1;
157 +const SND_NODEFAULT=2;
158 +const SND_MEMORY=4;
159 +const SND_LOOP=8;
160 +const SND_NOSTOP=16;
161 +const SND_NOWAIT=0x2000;
162 +const SND_ALIAS=0x10000;
163 +const SND_ALIAS_ID=0x110000;
164 +const SND_FILENAME=0x20000;
165 +const SND_RESOURCE=0x40004;
166 +const SND_PURGE=0x40;
167 +const SND_APPLICATION=0x80;
168 +const SND_ALIAS_START=0;
169 +
170 +template sndAlias(char c0, char c1)
171 +{
172 + const DWORD sndAlias = SND_ALIAS_START + c0 | (c1<<8);
173 +}
174 +
175 +const SND_ALIAS_SYSTEMASTERISK = sndAlias!('S','*');
176 +const SND_ALIAS_SYSTEMQUESTION = sndAlias!('S','?');
177 +const SND_ALIAS_SYSTEMHAND = sndAlias!('S','H');
178 +const SND_ALIAS_SYSTEMEXIT = sndAlias!('S','E');
179 +const SND_ALIAS_SYSTEMSTART = sndAlias!('S','S');
180 +const SND_ALIAS_SYSTEMWELCOME = sndAlias!('S','W');
181 +const SND_ALIAS_SYSTEMEXCLAMATION = sndAlias!('S','!');
182 +const SND_ALIAS_SYSTEMDEFAULT = sndAlias!('S','D');
183 +
184 +enum {
185 + WAVERR_BADFORMAT = (WAVERR_BASE + 0),
186 + WAVERR_STILLPLAYING,
187 + WAVERR_UNPREPARED,
188 + WAVERR_SYNC, // = WAVERR_BASE + 3;
189 + WAVERR_LASTERROR = WAVERR_SYNC
190 +}
191 +
192 +const WOM_OPEN = MM_WOM_OPEN;
193 +const WOM_CLOSE = MM_WOM_CLOSE;
194 +const WOM_DONE = MM_WOM_DONE;
195 +const WIM_OPEN = MM_WIM_OPEN;
196 +const WIM_CLOSE = MM_WIM_CLOSE;
197 +const WIM_DATA = MM_WIM_DATA;
198 +
199 +const UINT WAVE_MAPPER= -1; // FIXME: This doesn't make sense!
200 +const WAVE_FORMAT_QUERY=1;
201 +const WAVE_ALLOWSYNC=2;
202 +const WAVE_MAPPED=4;
203 +const WAVE_FORMAT_DIRECT=8;
204 +const WAVE_FORMAT_DIRECT_QUERY=(WAVE_FORMAT_QUERY|WAVE_FORMAT_DIRECT);
205 +const WHDR_DONE=1;
206 +const WHDR_PREPARED=2;
207 +const WHDR_BEGINLOOP=4;
208 +const WHDR_ENDLOOP=8;
209 +const WHDR_INQUEUE=16;
210 +
211 +const WAVECAPS_PITCH=1;
212 +const WAVECAPS_PLAYBACKRATE=2;
213 +const WAVECAPS_VOLUME=4;
214 +const WAVECAPS_LRVOLUME=8;
215 +const WAVECAPS_SYNC=16;
216 +const WAVECAPS_SAMPLEACCURATE=32;
217 +const WAVECAPS_DIRECTSOUND=64;
218 +
219 +const WAVE_INVALIDFORMAT=0;
220 +const WAVE_FORMAT_1M08=1;
221 +const WAVE_FORMAT_1S08=2;
222 +const WAVE_FORMAT_1M16=4;
223 +const WAVE_FORMAT_1S16=8;
224 +const WAVE_FORMAT_2M08=16;
225 +const WAVE_FORMAT_2S08=32;
226 +const WAVE_FORMAT_2M16=64;
227 +const WAVE_FORMAT_2S16=128;
228 +const WAVE_FORMAT_4M08=256;
229 +const WAVE_FORMAT_4S08=512;
230 +const WAVE_FORMAT_4M16=1024;
231 +const WAVE_FORMAT_4S16=2048;
232 +const WAVE_FORMAT_PCM=1;
233 +
234 +enum {
235 + MIDIERR_UNPREPARED = MIDIERR_BASE,
236 + MIDIERR_STILLPLAYING,
237 + MIDIERR_NOMAP,
238 + MIDIERR_NOTREADY,
239 + MIDIERR_NODEVICE,
240 + MIDIERR_INVALIDSETUP,
241 + MIDIERR_BADOPENMODE,
242 + MIDIERR_DONT_CONTINUE, // = MIDIERR_BASE+7
243 + MIDIERR_LASTERROR = MIDIERR_DONT_CONTINUE
244 +}
245 +
246 +const MIDIPATCHSIZE=128;
247 +
248 +const MIM_OPEN=MM_MIM_OPEN;
249 +const MIM_CLOSE=MM_MIM_CLOSE;
250 +const MIM_DATA=MM_MIM_DATA;
251 +const MIM_LONGDATA=MM_MIM_LONGDATA;
252 +const MIM_ERROR=MM_MIM_ERROR;
253 +const MIM_LONGERROR=MM_MIM_LONGERROR;
254 +const MOM_OPEN=MM_MOM_OPEN;
255 +const MOM_CLOSE=MM_MOM_CLOSE;
256 +const MOM_DONE=MM_MOM_DONE;
257 +const MIM_MOREDATA=MM_MIM_MOREDATA;
258 +const MOM_POSITIONCB=MM_MOM_POSITIONCB;
259 +
260 +const UINT MIDIMAPPER= -1; // FIXME: uint is nonsense for this!
261 +const UINT MIDI_MAPPER= -1; // FIXME: uint is nonsense for this!
262 +const MIDI_IO_STATUS=32;
263 +const MIDI_CACHE_ALL=1;
264 +const MIDI_CACHE_BESTFIT=2;
265 +const MIDI_CACHE_QUERY=3;
266 +const MIDI_UNCACHE=4;
267 +const MOD_MIDIPORT=1;
268 +const MOD_SYNTH=2;
269 +const MOD_SQSYNTH=3;
270 +const MOD_FMSYNTH=4;
271 +const MOD_MAPPER=5;
272 +const MIDICAPS_VOLUME=1;
273 +const MIDICAPS_LRVOLUME=2;
274 +const MIDICAPS_CACHE=4;
275 +const MIDICAPS_STREAM=8;
276 +const MHDR_DONE=1;
277 +const MHDR_PREPARED=2;
278 +const MHDR_INQUEUE=4;
279 +const MHDR_ISSTRM=8;
280 +const MEVT_F_SHORT=0;
281 +const MEVT_F_LONG=0x80000000;
282 +const MEVT_F_CALLBACK=0x40000000;
283 +
284 +BYTE MEVT_EVENTTYPE(DWORD x) { return cast(BYTE)((x>>24) &0xFF); }
285 +DWORD MEVT_EVENTPARM(DWORD x) { return x & 0xFFFFFF; }
286 +
287 +const MEVT_SHORTMSG=0;
288 +const MEVT_TEMPO=1;
289 +const MEVT_NOP=2;
290 +
291 +const BYTE MEVT_LONGMSG = 0x80;
292 +const BYTE MEVT_COMMENT = 0x82;
293 +const BYTE MEVT_VERSION = 0x84;
294 +
295 +const MIDISTRM_ERROR = -2;
296 +
297 +const MIDIPROP_SET = 0x80000000;
298 +const MIDIPROP_GET = 0x40000000;
299 +const MIDIPROP_TIMEDIV = 1;
300 +const MIDIPROP_TEMPO = 2;
301 +
302 +const UINT AUX_MAPPER = -1;
303 +
304 +const AUXCAPS_CDAUDIO=1;
305 +const AUXCAPS_AUXIN=2;
306 +const AUXCAPS_VOLUME=1;
307 +const AUXCAPS_LRVOLUME=2;
308 +const MIXER_SHORT_NAME_CHARS=16;
309 +const MIXER_LONG_NAME_CHARS=64;
310 +const MIXERR_INVALLINE=MIXERR_BASE;
311 +const MIXERR_INVALCONTROL=(MIXERR_BASE+1);
312 +const MIXERR_INVALVALUE=(MIXERR_BASE+2);
313 +const MIXERR_LASTERROR=(MIXERR_BASE+2);
314 +
315 +const MIXER_OBJECTF_HANDLE=0x80000000;
316 +const MIXER_OBJECTF_MIXER=0;
317 +const MIXER_OBJECTF_HMIXER=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER);
318 +const MIXER_OBJECTF_WAVEOUT=0x10000000;
319 +const MIXER_OBJECTF_HWAVEOUT=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT);
320 +const MIXER_OBJECTF_WAVEIN=0x20000000;
321 +const MIXER_OBJECTF_HWAVEIN=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN);
322 +const MIXER_OBJECTF_MIDIOUT=0x30000000;
323 +const MIXER_OBJECTF_HMIDIOUT=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT);
324 +const MIXER_OBJECTF_MIDIIN=0x40000000;
325 +const MIXER_OBJECTF_HMIDIIN=(MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN);
326 +const MIXER_OBJECTF_AUX=0x50000000;
327 +
328 +const MIXERLINE_LINEF_ACTIVE=1;
329 +const MIXERLINE_LINEF_DISCONNECTED=0x8000;
330 +const MIXERLINE_LINEF_SOURCE=0x80000000;
331 +
332 +const MIXERLINE_COMPONENTTYPE_DST_FIRST=0;
333 +const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED=MIXERLINE_COMPONENTTYPE_DST_FIRST;
334 +const MIXERLINE_COMPONENTTYPE_DST_DIGITAL=(MIXERLINE_COMPONENTTYPE_DST_FIRST+1);
335 +const MIXERLINE_COMPONENTTYPE_DST_LINE=(MIXERLINE_COMPONENTTYPE_DST_FIRST+2);
336 +const MIXERLINE_COMPONENTTYPE_DST_MONITOR=(MIXERLINE_COMPONENTTYPE_DST_FIRST+3);
337 +const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS=(MIXERLINE_COMPONENTTYPE_DST_FIRST+4);
338 +const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES=(MIXERLINE_COMPONENTTYPE_DST_FIRST+5);
339 +const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE=(MIXERLINE_COMPONENTTYPE_DST_FIRST+6);
340 +const MIXERLINE_COMPONENTTYPE_DST_WAVEIN=(MIXERLINE_COMPONENTTYPE_DST_FIRST+7);
341 +const MIXERLINE_COMPONENTTYPE_DST_VOICEIN=(MIXERLINE_COMPONENTTYPE_DST_FIRST+8);
342 +const MIXERLINE_COMPONENTTYPE_DST_LAST=(MIXERLINE_COMPONENTTYPE_DST_FIRST+8);
343 +const MIXERLINE_COMPONENTTYPE_SRC_FIRST=0x1000;
344 +const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED=MIXERLINE_COMPONENTTYPE_SRC_FIRST;
345 +const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+1);
346 +const MIXERLINE_COMPONENTTYPE_SRC_LINE=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+2);
347 +const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+3);
348 +const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+4);
349 +const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+5);
350 +const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+6);
351 +const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+7);
352 +const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+8);
353 +const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+9);
354 +const MIXERLINE_COMPONENTTYPE_SRC_ANALOG=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+10);
355 +const MIXERLINE_COMPONENTTYPE_SRC_LAST=(MIXERLINE_COMPONENTTYPE_SRC_FIRST+10);
356 +
357 +enum {
358 + MIXERLINE_TARGETTYPE_UNDEFINED = 0,
359 + MIXERLINE_TARGETTYPE_WAVEOUT,
360 + MIXERLINE_TARGETTYPE_WAVEIN,
361 + MIXERLINE_TARGETTYPE_MIDIOUT,
362 + MIXERLINE_TARGETTYPE_MIDIIN,
363 + MIXERLINE_TARGETTYPE_AUX // =5
364 +}
365 +
366 +const MIXER_GETLINEINFOF_DESTINATION=0;
367 +const MIXER_GETLINEINFOF_SOURCE=1;
368 +const MIXER_GETLINEINFOF_LINEID=2;
369 +const MIXER_GETLINEINFOF_COMPONENTTYPE=3;
370 +const MIXER_GETLINEINFOF_TARGETTYPE=4;
371 +const MIXER_GETLINEINFOF_QUERYMASK=15;
372 +
373 +const MIXERCONTROL_CONTROLF_UNIFORM=1;
374 +const MIXERCONTROL_CONTROLF_MULTIPLE=2;
375 +const MIXERCONTROL_CONTROLF_DISABLED=0x80000000;
376 +const MIXERCONTROL_CT_CLASS_MASK=0xF0000000;
377 +const MIXERCONTROL_CT_CLASS_CUSTOM=0;
378 +const MIXERCONTROL_CT_CLASS_METER=0x10000000;
379 +const MIXERCONTROL_CT_CLASS_SWITCH=0x20000000;
380 +const MIXERCONTROL_CT_CLASS_NUMBER=0x30000000;
381 +const MIXERCONTROL_CT_CLASS_SLIDER=0x40000000;
382 +const MIXERCONTROL_CT_CLASS_FADER=0x50000000;
383 +const MIXERCONTROL_CT_CLASS_TIME=0x60000000;
384 +const MIXERCONTROL_CT_CLASS_LIST=0x70000000;
385 +const MIXERCONTROL_CT_SUBCLASS_MASK=0xF000000;
386 +const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN=0;
387 +const MIXERCONTROL_CT_SC_SWITCH_BUTTON=0x1000000;
388 +const MIXERCONTROL_CT_SC_METER_POLLED=0;
389 +const MIXERCONTROL_CT_SC_TIME_MICROSECS=0;
390 +const MIXERCONTROL_CT_SC_TIME_MILLISECS=0x1000000;
391 +const MIXERCONTROL_CT_SC_LIST_SINGLE=0;
392 +const MIXERCONTROL_CT_SC_LIST_MULTIPLE=0x1000000;
393 +const MIXERCONTROL_CT_UNITS_MASK=0xFF0000;
394 +const MIXERCONTROL_CT_UNITS_CUSTOM=0;
395 +const MIXERCONTROL_CT_UNITS_BOOLEAN=0x10000;
396 +const MIXERCONTROL_CT_UNITS_SIGNED=0x20000;
397 +const MIXERCONTROL_CT_UNITS_UNSIGNED=0x30000;
398 +const MIXERCONTROL_CT_UNITS_DECIBELS=0x40000;
399 +const MIXERCONTROL_CT_UNITS_PERCENT=0x50000;
400 +
401 +const MIXERCONTROL_CONTROLTYPE_CUSTOM=(MIXERCONTROL_CT_CLASS_CUSTOM|MIXERCONTROL_CT_UNITS_CUSTOM);
402 +const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER=(MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_BOOLEAN);
403 +const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER=(MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_SIGNED);
404 +const MIXERCONTROL_CONTROLTYPE_PEAKMETER=(MIXERCONTROL_CONTROLTYPE_SIGNEDMETER+1);
405 +const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER=(MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_UNSIGNED);
406 +const MIXERCONTROL_CONTROLTYPE_BOOLEAN=(MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BOOLEAN|MIXERCONTROL_CT_UNITS_BOOLEAN);
407 +const MIXERCONTROL_CONTROLTYPE_ONOFF=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+1);
408 +const MIXERCONTROL_CONTROLTYPE_MUTE=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+2);
409 +const MIXERCONTROL_CONTROLTYPE_MONO=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+3);
410 +const MIXERCONTROL_CONTROLTYPE_LOUDNESS=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+4);
411 +const MIXERCONTROL_CONTROLTYPE_STEREOENH=(MIXERCONTROL_CONTROLTYPE_BOOLEAN+5);
412 +const MIXERCONTROL_CONTROLTYPE_BUTTON=(MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BUTTON|MIXERCONTROL_CT_UNITS_BOOLEAN);
413 +const MIXERCONTROL_CONTROLTYPE_DECIBELS=(MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_DECIBELS);
414 +const MIXERCONTROL_CONTROLTYPE_SIGNED=(MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_SIGNED);
415 +const MIXERCONTROL_CONTROLTYPE_UNSIGNED=(MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_UNSIGNED);
416 +const MIXERCONTROL_CONTROLTYPE_PERCENT=(MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_PERCENT);
417 +const MIXERCONTROL_CONTROLTYPE_SLIDER=(MIXERCONTROL_CT_CLASS_SLIDER|MIXERCONTROL_CT_UNITS_SIGNED);
418 +const MIXERCONTROL_CONTROLTYPE_PAN=(MIXERCONTROL_CONTROLTYPE_SLIDER+1);
419 +const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN=(MIXERCONTROL_CONTROLTYPE_SLIDER+2);
420 +const MIXERCONTROL_CONTROLTYPE_FADER=(MIXERCONTROL_CT_CLASS_FADER|MIXERCONTROL_CT_UNITS_UNSIGNED);
421 +const MIXERCONTROL_CONTROLTYPE_VOLUME=(MIXERCONTROL_CONTROLTYPE_FADER+1);
422 +const MIXERCONTROL_CONTROLTYPE_BASS=(MIXERCONTROL_CONTROLTYPE_FADER+2);
423 +const MIXERCONTROL_CONTROLTYPE_TREBLE=(MIXERCONTROL_CONTROLTYPE_FADER+3);
424 +const MIXERCONTROL_CONTROLTYPE_EQUALIZER=(MIXERCONTROL_CONTROLTYPE_FADER+4);
425 +const MIXERCONTROL_CONTROLTYPE_SINGLESELECT=(MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_SINGLE|MIXERCONTROL_CT_UNITS_BOOLEAN);
426 +const MIXERCONTROL_CONTROLTYPE_MUX=(MIXERCONTROL_CONTROLTYPE_SINGLESELECT+1);
427 +const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT=(MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_MULTIPLE|MIXERCONTROL_CT_UNITS_BOOLEAN);
428 +const MIXERCONTROL_CONTROLTYPE_MIXER=(MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT+1);
429 +const MIXERCONTROL_CONTROLTYPE_MICROTIME=(MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MICROSECS|MIXERCONTROL_CT_UNITS_UNSIGNED);
430 +const MIXERCONTROL_CONTROLTYPE_MILLITIME=(MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MILLISECS|MIXERCONTROL_CT_UNITS_UNSIGNED);
431 +
432 +const MIXER_GETLINECONTROLSF_ALL=0;
433 +const MIXER_GETLINECONTROLSF_ONEBYID=1;
434 +const MIXER_GETLINECONTROLSF_ONEBYTYPE=2;
435 +const MIXER_GETLINECONTROLSF_QUERYMASK=15;
436 +const MIXER_GETCONTROLDETAILSF_VALUE=0;
437 +const MIXER_GETCONTROLDETAILSF_LISTTEXT=1;
438 +const MIXER_GETCONTROLDETAILSF_QUERYMASK=15;
439 +const MIXER_SETCONTROLDETAILSF_VALUE=0;
440 +const MIXER_SETCONTROLDETAILSF_CUSTOM=1;
441 +const MIXER_SETCONTROLDETAILSF_QUERYMASK=15;
442 +
443 +const TIMERR_NOERROR=0;
444 +const TIMERR_NOCANDO=(TIMERR_BASE+1);
445 +const TIMERR_STRUCT=(TIMERR_BASE+33);
446 +const TIME_ONESHOT=0;
447 +const TIME_PERIODIC=1;
448 +const TIME_CALLBACK_FUNCTION=0;
449 +const TIME_CALLBACK_EVENT_SET=16;
450 +const TIME_CALLBACK_EVENT_PULSE=32;
451 +
452 +static if (WINVER >= 0x0501) {
453 +
454 +const TIME_KILL_SYNCHRONOUS=0x0100;
455 +
456 +}
457 +
458 +const JOYERR_NOERROR = 0;
459 +const JOYERR_PARMS=(JOYERR_BASE+5);
460 +const JOYERR_NOCANDO=(JOYERR_BASE+6);
461 +const JOYERR_UNPLUGGED=(JOYERR_BASE+7);
462 +
463 +const JOY_BUTTON1=1;
464 +const JOY_BUTTON2=2;
465 +const JOY_BUTTON3=4;
466 +const JOY_BUTTON4=8;
467 +const JOY_BUTTON1CHG=256;
468 +const JOY_BUTTON2CHG=512;
469 +const JOY_BUTTON3CHG=1024;
470 +const JOY_BUTTON4CHG=2048;
471 +const JOY_BUTTON5=257;
472 +const JOY_BUTTON6=513;
473 +const JOY_BUTTON7=1025;
474 +const JOY_BUTTON8=2049;
475 +const JOY_BUTTON9=256;
476 +const JOY_BUTTON10=512;
477 +const JOY_BUTTON11=1024;
478 +const JOY_BUTTON12=2048;
479 +const JOY_BUTTON13=4096;
480 +const JOY_BUTTON14=8192;
481 +const JOY_BUTTON15=16384;
482 +const JOY_BUTTON16=32768;
483 +const JOY_BUTTON17=65536;
484 +const JOY_BUTTON18=0x20000;
485 +const JOY_BUTTON19=0x40000;
486 +const JOY_BUTTON20=0x80000;
487 +const JOY_BUTTON21=0x100000;
488 +const JOY_BUTTON22=0x200000;
489 +const JOY_BUTTON23=0x400000;
490 +const JOY_BUTTON24=0x800000;
491 +const JOY_BUTTON25=0x1000000;
492 +const JOY_BUTTON26=0x2000000;
493 +const JOY_BUTTON27=0x4000000;
494 +const JOY_BUTTON28=0x8000000;
495 +const JOY_BUTTON29=0x10000000;
496 +const JOY_BUTTON30=0x20000000;
497 +const JOY_BUTTON31=0x40000000;
498 +const JOY_BUTTON32=0x80000000;
499 +
500 +enum : DWORD {
501 + JOY_POVCENTERED = -1,
502 + JOY_POVFORWARD = 0,
503 + JOY_POVBACKWARD = 18000,
504 + JOY_POVLEFT = 27000,
505 + JOY_POVRIGHT = 9000
506 +}
507 +
508 +const DWORD
509 + JOY_RETURNX = 0x00000001,
510 + JOY_RETURNY = 0x00000002,
511 + JOY_RETURNZ = 0x00000004,
512 + JOY_RETURNR = 0x00000008,
513 + JOY_RETURNU = 0x00000010,
514 + JOY_RETURNV = 0x00000020,
515 + JOY_RETURNPOV = 0x00000040,
516 + JOY_RETURNBUTTONS = 0x00000080,
517 + JOY_RETURNRAWDATA = 0x00000100,
518 + JOY_RETURNPOVCTS = 0x00000200,
519 + JOY_RETURNCENTERED = 0x00000400,
520 + JOY_USEDEADZONE = 0x00000800,
521 + JOY_RETURNALL = JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR
522 + | JOY_RETURNU | JOY_RETURNV | JOY_RETURNPOV
523 + | JOY_RETURNBUTTONS,
524 + JOY_CAL_READALWAYS = 0x00010000,
525 + JOY_CAL_READXYONLY = 0x00020000,
526 + JOY_CAL_READ3 = 0x00040000,
527 + JOY_CAL_READ4 = 0x00080000,
528 + JOY_CAL_READXONLY = 0x00100000,
529 + JOY_CAL_READYONLY = 0x00200000,
530 + JOY_CAL_READ5 = 0x00400000,
531 + JOY_CAL_READ6 = 0x00800000,
532 + JOY_CAL_READZONLY = 0x01000000,
533 + JOY_CAL_READRONLY = 0x02000000,
534 + JOY_CAL_READUONLY = 0x04000000,
535 + JOY_CAL_READVONLY = 0x08000000;
536 +
537 +const JOYSTICKID1=0;
538 +const JOYSTICKID2=1;
539 +
540 +const JOYCAPS_HASZ=1;
541 +const JOYCAPS_HASR=2;
542 +const JOYCAPS_HASU=4;
543 +const JOYCAPS_HASV=8;
544 +const JOYCAPS_HASPOV=16;
545 +const JOYCAPS_POV4DIR=32;
546 +const JOYCAPS_POVCTS=64;
547 +
548 +const MMIOERR_BASE=256;
549 +const MMIOERR_FILENOTFOUND=(MMIOERR_BASE+1);
550 +const MMIOERR_OUTOFMEMORY=(MMIOERR_BASE+2);
551 +const MMIOERR_CANNOTOPEN=(MMIOERR_BASE+3);
552 +const MMIOERR_CANNOTCLOSE=(MMIOERR_BASE+4);
553 +const MMIOERR_CANNOTREAD=(MMIOERR_BASE+5);
554 +const MMIOERR_CANNOTWRITE=(MMIOERR_BASE+6);
555 +const MMIOERR_CANNOTSEEK=(MMIOERR_BASE+7);
556 +const MMIOERR_CANNOTEXPAND=(MMIOERR_BASE+8);
557 +const MMIOERR_CHUNKNOTFOUND=(MMIOERR_BASE+9);
558 +const MMIOERR_UNBUFFERED=(MMIOERR_BASE+10);
559 +const MMIOERR_PATHNOTFOUND=(MMIOERR_BASE+11);
560 +const MMIOERR_ACCESSDENIED=(MMIOERR_BASE+12);
561 +const MMIOERR_SHARINGVIOLATION=(MMIOERR_BASE+13);
562 +const MMIOERR_NETWORKERROR=(MMIOERR_BASE+14);
563 +const MMIOERR_TOOMANYOPENFILES=(MMIOERR_BASE+15);
564 +const MMIOERR_INVALIDFILE=(MMIOERR_BASE+16);
565 +
566 +const CFSEPCHAR='+';
567 +
568 +const MMIO_RWMODE=3;
569 +const MMIO_SHAREMODE=0x70;
570 +const MMIO_CREATE=0x1000;
571 +const MMIO_PARSE=256;
572 +const MMIO_DELETE=512;
573 +const MMIO_EXIST=0x4000;
574 +const MMIO_ALLOCBUF=0x10000;
575 +const MMIO_GETTEMP=0x20000;
576 +const MMIO_DIRTY=0x10000000;
577 +const MMIO_READ=0;
578 +const MMIO_WRITE=1;
579 +const MMIO_READWRITE=2;
580 +const MMIO_COMPAT=0;
581 +const MMIO_EXCLUSIVE=16;
582 +const MMIO_DENYWRITE=32;
583 +const MMIO_DENYREAD=0x30;
584 +const MMIO_DENYNONE=64;
585 +const MMIO_FHOPEN=16;
586 +const MMIO_EMPTYBUF=16;
587 +const MMIO_TOUPPER=16;
588 +const MMIO_INSTALLPROC=0x10000;
589 +const MMIO_GLOBALPROC=0x10000000;
590 +const MMIO_REMOVEPROC=0x20000;
591 +const MMIO_UNICODEPROC=0x1000000;
592 +const MMIO_FINDPROC=0x40000;
593 +const MMIO_FINDCHUNK=16;
594 +const MMIO_FINDRIFF=32;
595 +const MMIO_FINDLIST=64;
596 +const MMIO_CREATERIFF=32;
597 +const MMIO_CREATELIST=64;
598 +const MMIOM_READ=MMIO_READ;
599 +const MMIOM_WRITE=MMIO_WRITE;
600 +const MMIOM_SEEK=2;
601 +const MMIOM_OPEN=3;
602 +const MMIOM_CLOSE=4;
603 +const MMIOM_WRITEFLUSH=5;
604 +const MMIOM_RENAME=6;
605 +const MMIOM_USER=0x8000;
606 +
607 +const FOURCC_RIFF = mmioFOURCC!('R', 'I', 'F', 'F');
608 +const FOURCC_LIST = mmioFOURCC!('L', 'I', 'S', 'T');
609 +const FOURCC_DOS = mmioFOURCC!('D', 'O', 'S', ' ');
610 +const FOURCC_MEM = mmioFOURCC!('M', 'E', 'M', ' ');
611 +
612 +const MMIO_DEFAULTBUFFER=8192;
613 +
614 +enum {
615 + MCIERR_INVALID_DEVICE_ID = MCIERR_BASE + 1,
616 + MCIERR_UNRECOGNIZED_KEYWORD = MCIERR_BASE + 3,
617 + MCIERR_UNRECOGNIZED_COMMAND = MCIERR_BASE + 5,
618 + MCIERR_HARDWARE,
619 + MCIERR_INVALID_DEVICE_NAME,
620 + MCIERR_OUT_OF_MEMORY,
621 + MCIERR_DEVICE_OPEN,
622 + MCIERR_CANNOT_LOAD_DRIVER,
623 + MCIERR_MISSING_COMMAND_STRING,
624 + MCIERR_PARAM_OVERFLOW,
625 + MCIERR_MISSING_STRING_ARGUMENT,
626 + MCIERR_BAD_INTEGER,
627 + MCIERR_PARSER_INTERNAL,
628 + MCIERR_DRIVER_INTERNAL,
629 + MCIERR_MISSING_PARAMETER,
630 + MCIERR_UNSUPPORTED_FUNCTION,
631 + MCIERR_FILE_NOT_FOUND,
632 + MCIERR_DEVICE_NOT_READY,
633 + MCIERR_INTERNAL,
634 + MCIERR_DRIVER,
635 + MCIERR_CANNOT_USE_ALL,
636 + MCIERR_MULTIPLE,
637 + MCIERR_EXTENSION_NOT_FOUND,
638 + MCIERR_OUTOFRANGE, // = MCIERR_BASE+26
639 + MCIERR_FLAGS_NOT_COMPATIBLE = MCIERR_BASE + 28,
640 + MCIERR_FILE_NOT_SAVED = MCIERR_BASE + 30,
641 + MCIERR_DEVICE_TYPE_REQUIRED,
642 + MCIERR_DEVICE_LOCKED,
643 + MCIERR_DUPLICATE_ALIAS,
644 + MCIERR_BAD_CONSTANT,
645 + MCIERR_MUST_USE_SHAREABLE,
646 + MCIERR_MISSING_DEVICE_NAME,
647 + MCIERR_BAD_TIME_FORMAT,
648 + MCIERR_NO_CLOSING_QUOTE,
649 + MCIERR_DUPLICATE_FLAGS,
650 + MCIERR_INVALID_FILE,
651 + MCIERR_NULL_PARAMETER_BLOCK,
652 + MCIERR_UNNAMED_RESOURCE,
653 + MCIERR_NEW_REQUIRES_ALIAS,
654 + MCIERR_NOTIFY_ON_AUTO_OPEN,
655 + MCIERR_NO_ELEMENT_ALLOWED,
656 + MCIERR_NONAPPLICABLE_FUNCTION,
657 + MCIERR_ILLEGAL_FOR_AUTO_OPEN,
658 + MCIERR_FILENAME_REQUIRED,
659 + MCIERR_EXTRA_CHARACTERS,
660 + MCIERR_DEVICE_NOT_INSTALLED,
661 + MCIERR_GET_CD,
662 + MCIERR_SET_CD,
663 + MCIERR_SET_DRIVE,
664 + MCIERR_DEVICE_LENGTH,
665 + MCIERR_DEVICE_ORD_LENGTH,
666 + MCIERR_NO_INTEGER, // = MCIERR_BASE + 56
667 + MCIERR_WAVE_OUTPUTSINUSE = MCIERR_BASE + 64,
668 + MCIERR_WAVE_SETOUTPUTINUSE,
669 + MCIERR_WAVE_INPUTSINUSE,
670 + MCIERR_WAVE_SETINPUTINUSE,
671 + MCIERR_WAVE_OUTPUTUNSPECIFIED,
672 + MCIERR_WAVE_INPUTUNSPECIFIED,
673 + MCIERR_WAVE_OUTPUTSUNSUITABLE,
674 + MCIERR_WAVE_SETOUTPUTUNSUITABLE,
675 + MCIERR_WAVE_INPUTSUNSUITABLE,
676 + MCIERR_WAVE_SETINPUTUNSUITABLE, // = MCIERR_BASE + 73
677 + MCIERR_SEQ_DIV_INCOMPATIBLE = MCIERR_BASE + 80,
678 + MCIERR_SEQ_PORT_INUSE,
679 + MCIERR_SEQ_PORT_NONEXISTENT,
680 + MCIERR_SEQ_PORT_MAPNODEVICE,
681 + MCIERR_SEQ_PORT_MISCERROR,
682 + MCIERR_SEQ_TIMER,
683 + MCIERR_SEQ_PORTUNSPECIFIED,
684 + MCIERR_SEQ_NOMIDIPRESENT, // = MCIERR_BASE + 87
685 + MCIERR_NO_WINDOW = MCIERR_BASE + 90,
686 + MCIERR_CREATEWINDOW,
687 + MCIERR_FILE_READ,
688 + MCIERR_FILE_WRITE,
689 + MCIERR_NO_IDENTITY // = MCIERR_BASE + 94
690 +}
691 +const MCIERR_CUSTOM_DRIVER_BASE = MCIERR_BASE + 256;
692 +
693 +const MCI_FIRST=DRV_MCI_FIRST;
694 +const MCI_OPEN=0x803;
695 +const MCI_CLOSE=0x804;
696 +const MCI_ESCAPE=0x805;
697 +const MCI_PLAY=0x806;
698 +const MCI_SEEK=0x807;
699 +const MCI_STOP=0x808;
700 +const MCI_PAUSE=0x809;
701 +const MCI_INFO=0x80A;
702 +const MCI_GETDEVCAPS=0x80B;
703 +const MCI_SPIN=0x80C;
704 +const MCI_SET=0x80D;
705 +const MCI_STEP=0x80E;
706 +const MCI_RECORD=0x80F;
707 +const MCI_SYSINFO=0x810;
708 +const MCI_BREAK=0x811;
709 +const MCI_SAVE=0x813;
710 +const MCI_STATUS=0x814;
711 +const MCI_CUE=0x830;
712 +const MCI_REALIZE=0x840;
713 +const MCI_WINDOW=0x841;
714 +const MCI_PUT=0x842;
715 +const MCI_WHERE=0x843;
716 +const MCI_FREEZE=0x844;
717 +const MCI_UNFREEZE=0x845;
718 +const MCI_LOAD=0x850;
719 +const MCI_CUT=0x851;
720 +const MCI_COPY=0x852;
721 +const MCI_PASTE=0x853;
722 +const MCI_UPDATE=0x854;
723 +const MCI_RESUME=0x855;
724 +const MCI_DELETE=0x856;
725 +const MCI_USER_MESSAGES=(DRV_MCI_FIRST+0x400);
726 +const MCI_LAST=0xFFF;
727 +
728 +const MCIDEVICEID MCI_ALL_DEVICE_ID = -1;
729 +
730 +const MCI_DEVTYPE_VCR=513;
731 +const MCI_DEVTYPE_VIDEODISC=514;
732 +const MCI_DEVTYPE_OVERLAY=515;
733 +const MCI_DEVTYPE_CD_AUDIO=516;
734 +const MCI_DEVTYPE_DAT=517;
735 +const MCI_DEVTYPE_SCANNER=518;
736 +const MCI_DEVTYPE_ANIMATION=519;
737 +const MCI_DEVTYPE_DIGITAL_VIDEO=520;
738 +const MCI_DEVTYPE_OTHER=521;
739 +const MCI_DEVTYPE_WAVEFORM_AUDIO=522;
740 +const MCI_DEVTYPE_SEQUENCER=523;
741 +const MCI_DEVTYPE_FIRST=MCI_DEVTYPE_VCR;
742 +const MCI_DEVTYPE_LAST=MCI_DEVTYPE_SEQUENCER;
743 +const MCI_DEVTYPE_FIRST_USER=0x1000;
744 +const MCI_MODE_NOT_READY=(MCI_STRING_OFFSET+12);
745 +const MCI_MODE_STOP=(MCI_STRING_OFFSET+13);
746 +const MCI_MODE_PLAY=(MCI_STRING_OFFSET+14);
747 +const MCI_MODE_RECORD=(MCI_STRING_OFFSET+15);
748 +const MCI_MODE_SEEK=(MCI_STRING_OFFSET+16);
749 +const MCI_MODE_PAUSE=(MCI_STRING_OFFSET+17);
750 +const MCI_MODE_OPEN=(MCI_STRING_OFFSET+18);
751 +const MCI_FORMAT_MILLISECONDS=0;
752 +const MCI_FORMAT_HMS=1;
753 +const MCI_FORMAT_MSF=2;
754 +const MCI_FORMAT_FRAMES=3;
755 +const MCI_FORMAT_SMPTE_24=4;
756 +const MCI_FORMAT_SMPTE_25=5;
757 +const MCI_FORMAT_SMPTE_30=6;
758 +const MCI_FORMAT_SMPTE_30DROP=7;
759 +const MCI_FORMAT_BYTES=8;
760 +const MCI_FORMAT_SAMPLES=9;
761 +const MCI_FORMAT_TMSF=10;
762 +
763 +
764 +
765 +
766 +// Macros
767 +BYTE MCI_HMS_HOUR(DWORD t) { return cast(BYTE)(t); }
768 +BYTE MCI_HMS_MINUTE(DWORD t) { return cast(BYTE)(t>>>8); }
769 +BYTE MCI_HMS_SECOND(DWORD t) { return cast(BYTE)( t>>>16); }
770 +DWORD MCI_MAKE_HMS(BYTE h, BYTE m, BYTE s) { return h |(m<<8)|(cast(DWORD)(s)<<16); }
771 +DWORD MCI_MAKE_MSF(BYTE m, BYTE s, BYTE f) { return m |(s<<8)|(cast(DWORD)(f)<<16); }
772 +DWORD MCI_MAKE_TMSF(BYTE t, BYTE m, BYTE s, BYTE f) {
773 + return t |(m<<8)|(s<<16)|(cast(DWORD)(f)<< 24); }
774 +
775 +BYTE MCI_MSF_MINUTE(DWORD t) { return cast(BYTE)(t); }
776 +BYTE MCI_MSF_SECOND(DWORD t) { return cast(BYTE)(t >>> 8); }
777 +BYTE MCI_MSF_FRAME(DWORD t) { return cast(BYTE)(t >>> 16); }
778 +
779 +BYTE MCI_TMSF_TRACK(DWORD t) { return cast(BYTE)(t); }
780 +BYTE MCI_TMSF_MINUTE(DWORD t) { return cast(BYTE)(t>>8); }
781 +BYTE MCI_TMSF_SECOND(DWORD t) { return cast(BYTE)(t>>16); }
782 +BYTE MCI_TMSF_FRAME(DWORD t) { return cast(BYTE)(t>>24); }
783 +
784 +
785 +const MCI_NOTIFY_SUCCESSFUL=1;
786 +const MCI_NOTIFY_SUPERSEDED=2;
787 +const MCI_NOTIFY_ABORTED=4;
788 +const MCI_NOTIFY_FAILURE=8;
789 +const MCI_NOTIFY=1;
790 +const MCI_WAIT=2;
791 +const MCI_FROM=4;
792 +const MCI_TO=8;
793 +const MCI_TRACK=16;
794 +const MCI_OPEN_SHAREABLE=256;
795 +const MCI_OPEN_ELEMENT=512;
796 +const MCI_OPEN_ALIAS=1024;
797 +const MCI_OPEN_ELEMENT_ID=2048;
798 +const MCI_OPEN_TYPE_ID=0x1000;
799 +const MCI_OPEN_TYPE=0x2000;
800 +const MCI_SEEK_TO_START=256;
801 +const MCI_SEEK_TO_END=512;
802 +const MCI_STATUS_ITEM=256;
803 +const MCI_STATUS_START=512;
804 +const MCI_STATUS_LENGTH=1;
805 +const MCI_STATUS_POSITION=2;
806 +const MCI_STATUS_NUMBER_OF_TRACKS=3;
807 +const MCI_STATUS_MODE=4;
808 +const MCI_STATUS_MEDIA_PRESENT=5;
809 +const MCI_STATUS_TIME_FORMAT=6;
810 +const MCI_STATUS_READY=7;
811 +const MCI_STATUS_CURRENT_TRACK=8;
812 +const MCI_INFO_PRODUCT=256;
813 +const MCI_INFO_FILE=512;
814 +const MCI_INFO_MEDIA_UPC=1024;
815 +const MCI_INFO_MEDIA_IDENTITY=2048;
816 +const MCI_INFO_NAME=0x1000;
817 +const MCI_INFO_COPYRIGHT=0x2000;
818 +
819 +const MCI_GETDEVCAPS_ITEM=256;
820 +const MCI_GETDEVCAPS_CAN_RECORD=1;
821 +const MCI_GETDEVCAPS_HAS_AUDIO=2;
822 +const MCI_GETDEVCAPS_HAS_VIDEO=3;
823 +const MCI_GETDEVCAPS_DEVICE_TYPE=4;
824 +const MCI_GETDEVCAPS_USES_FILES=5;
825 +const MCI_GETDEVCAPS_COMPOUND_DEVICE=6;
826 +const MCI_GETDEVCAPS_CAN_EJECT=7;
827 +const MCI_GETDEVCAPS_CAN_PLAY=8;
828 +const MCI_GETDEVCAPS_CAN_SAVE=9;
829 +
830 +const MCI_SYSINFO_QUANTITY=256;
831 +const MCI_SYSINFO_OPEN=512;
832 +const MCI_SYSINFO_NAME=1024;
833 +const MCI_SYSINFO_INSTALLNAME=2048;
834 +const MCI_SET_DOOR_OPEN=256;
835 +const MCI_SET_DOOR_CLOSED=512;
836 +const MCI_SET_TIME_FORMAT=1024;
837 +const MCI_SET_AUDIO=2048;
838 +const MCI_SET_VIDEO=0x1000;
839 +const MCI_SET_ON=0x2000;
840 +const MCI_SET_OFF=0x4000;
841 +
842 +const MCI_SET_AUDIO_ALL=0;
843 +const MCI_SET_AUDIO_LEFT=1;
844 +const MCI_SET_AUDIO_RIGHT=2;
845 +
846 +const MCI_BREAK_KEY=256;
847 +const MCI_BREAK_HWND=512;
848 +const MCI_BREAK_OFF=1024;
849 +
850 +const MCI_RECORD_INSERT=256;
851 +const MCI_RECORD_OVERWRITE=512;
852 +const MCI_SAVE_FILE=256;
853 +const MCI_LOAD_FILE=256;
854 +
855 +const MCI_VD_MODE_PARK=(MCI_VD_OFFSET+1);
856 +const MCI_VD_MEDIA_CLV=(MCI_VD_OFFSET+2);
857 +const MCI_VD_MEDIA_CAV=(MCI_VD_OFFSET+3);
858 +const MCI_VD_MEDIA_OTHER=(MCI_VD_OFFSET+4);
859 +
860 +const MCI_VD_FORMAT_TRACK=0x4001;
861 +const MCI_VD_PLAY_REVERSE=0x10000;
862 +const MCI_VD_PLAY_FAST=0x20000;
863 +const MCI_VD_PLAY_SPEED=0x40000;
864 +const MCI_VD_PLAY_SCAN=0x80000;
865 +const MCI_VD_PLAY_SLOW=0x100000;
866 +const MCI_VD_SEEK_REVERSE=0x10000;
867 +const MCI_VD_STATUS_SPEED=0x4002;
868 +const MCI_VD_STATUS_FORWARD=0x4003;
869 +const MCI_VD_STATUS_MEDIA_TYPE=0x4004;
870 +const MCI_VD_STATUS_SIDE=0x4005;
871 +const MCI_VD_STATUS_DISC_SIZE=0x4006;
872 +const MCI_VD_GETDEVCAPS_CLV=0x10000;
873 +const MCI_VD_GETDEVCAPS_CAV=0x20000;
874 +const MCI_VD_SPIN_UP=0x10000;
875 +const MCI_VD_SPIN_DOWN=0x20000;
876 +const MCI_VD_GETDEVCAPS_CAN_REVERSE=0x4002;
877 +const MCI_VD_GETDEVCAPS_FAST_RATE=0x4003;
878 +const MCI_VD_GETDEVCAPS_SLOW_RATE=0x4004;
879 +const MCI_VD_GETDEVCAPS_NORMAL_RATE=0x4005;
880 +const MCI_VD_STEP_FRAMES=0x10000;
881 +const MCI_VD_STEP_REVERSE=0x20000;
882 +const MCI_VD_ESCAPE_STRING=256;
883 +
884 +const MCI_CDA_STATUS_TYPE_TRACK=0x4001;
885 +const MCI_CDA_TRACK_AUDIO=MCI_CD_OFFSET;
886 +const MCI_CDA_TRACK_OTHER=(MCI_CD_OFFSET+1);
887 +
888 +const MCI_WAVE_PCM=MCI_WAVE_OFFSET;
889 +const MCI_WAVE_MAPPER=(MCI_WAVE_OFFSET+1);
890 +const MCI_WAVE_OPEN_BUFFER=0x10000;
891 +const MCI_WAVE_SET_FORMATTAG=0x10000;
892 +const MCI_WAVE_SET_CHANNELS=0x20000;
893 +const MCI_WAVE_SET_SAMPLESPERSEC=0x40000;
894 +const MCI_WAVE_SET_AVGBYTESPERSEC=0x80000;
895 +const MCI_WAVE_SET_BLOCKALIGN=0x100000;
896 +const MCI_WAVE_SET_BITSPERSAMPLE=0x200000;
897 +const MCI_WAVE_INPUT=0x400000;
898 +const MCI_WAVE_OUTPUT=0x800000;
899 +const MCI_WAVE_STATUS_FORMATTAG=0x4001;
900 +const MCI_WAVE_STATUS_CHANNELS=0x4002;
901 +const MCI_WAVE_STATUS_SAMPLESPERSEC=0x4003;
902 +const MCI_WAVE_STATUS_AVGBYTESPERSEC=0x4004;
903 +const MCI_WAVE_STATUS_BLOCKALIGN=0x4005;
904 +const MCI_WAVE_STATUS_BITSPERSAMPLE=0x4006;
905 +const MCI_WAVE_STATUS_LEVEL=0x4007;
906 +const MCI_WAVE_SET_ANYINPUT=0x4000000;
907 +const MCI_WAVE_SET_ANYOUTPUT=0x8000000;
908 +const MCI_WAVE_GETDEVCAPS_INPUTS=0x4001;
909 +const MCI_WAVE_GETDEVCAPS_OUTPUTS=0x4002;
910 +
911 +const MCI_SEQ_DIV_PPQN=MCI_SEQ_OFFSET;
912 +const MCI_SEQ_DIV_SMPTE_24=(MCI_SEQ_OFFSET+1);
913 +const MCI_SEQ_DIV_SMPTE_25=(MCI_SEQ_OFFSET+2);
914 +const MCI_SEQ_DIV_SMPTE_30DROP=(MCI_SEQ_OFFSET+3);
915 +const MCI_SEQ_DIV_SMPTE_30=(MCI_SEQ_OFFSET+4);
916 +const MCI_SEQ_FORMAT_SONGPTR=0x4001;
917 +const MCI_SEQ_FILE=0x4002;
918 +const MCI_SEQ_MIDI=0x4003;
919 +const MCI_SEQ_SMPTE=0x4004;
920 +const MCI_SEQ_NONE=65533;
921 +const MCI_SEQ_MAPPER=65535;
922 +
923 +const MCI_SEQ_STATUS_TEMPO=0x4002;
924 +const MCI_SEQ_STATUS_PORT=0x4003;
925 +const MCI_SEQ_STATUS_SLAVE=0x4007;
926 +const MCI_SEQ_STATUS_MASTER=0x4008;
927 +const MCI_SEQ_STATUS_OFFSET=0x4009;
928 +const MCI_SEQ_STATUS_DIVTYPE=0x400A;
929 +const MCI_SEQ_STATUS_NAME=0x400B;
930 +const MCI_SEQ_STATUS_COPYRIGHT=0x400C;
931 +
932 +const MCI_SEQ_SET_TEMPO=0x10000;
933 +const MCI_SEQ_SET_PORT=0x20000;
934 +const MCI_SEQ_SET_SLAVE=0x40000;
935 +const MCI_SEQ_SET_MASTER=0x80000;
936 +const MCI_SEQ_SET_OFFSET=0x1000000;
937 +
938 +const MCI_ANIM_OPEN_WS=0x10000;
939 +const MCI_ANIM_OPEN_PARENT=0x20000;
940 +const MCI_ANIM_OPEN_NOSTATIC=0x40000;
941 +const MCI_ANIM_PLAY_SPEED=0x10000;
942 +const MCI_ANIM_PLAY_REVERSE=0x20000;
943 +const MCI_ANIM_PLAY_FAST=0x40000;
944 +const MCI_ANIM_PLAY_SLOW=0x80000;
945 +const MCI_ANIM_PLAY_SCAN=0x100000;
946 +const MCI_ANIM_STEP_REVERSE=0x10000;
947 +const MCI_ANIM_STEP_FRAMES=0x20000;
948 +const MCI_ANIM_STATUS_SPEED=0x4001;
949 +const MCI_ANIM_STATUS_FORWARD=0x4002;
950 +const MCI_ANIM_STATUS_HWND=0x4003;
951 +const MCI_ANIM_STATUS_HPAL=0x4004;
952 +const MCI_ANIM_STATUS_STRETCH=0x4005;
953 +const MCI_ANIM_INFO_TEXT=0x10000;
954 +
955 +const MCI_ANIM_GETDEVCAPS_CAN_REVERSE=0x4001;
956 +const MCI_ANIM_GETDEVCAPS_FAST_RATE=0x4002;
957 +const MCI_ANIM_GETDEVCAPS_SLOW_RATE=0x4003;
958 +const MCI_ANIM_GETDEVCAPS_NORMAL_RATE=0x4004;
959 +const MCI_ANIM_GETDEVCAPS_PALETTES=0x4006;
960 +const MCI_ANIM_GETDEVCAPS_CAN_STRETCH=0x4007;
961 +const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS=0x4008;
962 +
963 +const MCI_ANIM_REALIZE_NORM=0x10000;
964 +const MCI_ANIM_REALIZE_BKGD=0x20000;
965 +
966 +const MCI_ANIM_WINDOW_HWND=0x10000;
967 +const MCI_ANIM_WINDOW_STATE=0x40000;
968 +const MCI_ANIM_WINDOW_TEXT=0x80000;
969 +const MCI_ANIM_WINDOW_ENABLE_STRETCH=0x100000;
970 +const MCI_ANIM_WINDOW_DISABLE_STRETCH=0x200000;
971 +const MCI_ANIM_WINDOW_DEFAULT=0x0;
972 +
973 +const MCI_ANIM_RECT=0x10000;
974 +const MCI_ANIM_PUT_SOURCE=0x20000;
975 +const MCI_ANIM_PUT_DESTINATION=0x40000;
976 +const MCI_ANIM_WHERE_SOURCE=0x20000;
977 +const MCI_ANIM_WHERE_DESTINATION=0x40000;
978 +const MCI_ANIM_UPDATE_HDC=0x20000;
979 +
980 +const MCI_OVLY_OPEN_WS=0x10000;
981 +const MCI_OVLY_OPEN_PARENT=0x20000;
982 +const MCI_OVLY_STATUS_HWND=0x4001;
983 +const MCI_OVLY_STATUS_STRETCH=0x4002;
984 +const MCI_OVLY_INFO_TEXT=0x10000;
985 +const MCI_OVLY_GETDEVCAPS_CAN_STRETCH=0x4001;
986 +const MCI_OVLY_GETDEVCAPS_CAN_FREEZE=0x4002;
987 +const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS=0x4003;
988 +const MCI_OVLY_WINDOW_HWND=0x10000;
989 +const MCI_OVLY_WINDOW_STATE=0x40000;
990 +const MCI_OVLY_WINDOW_TEXT=0x80000;
991 +const MCI_OVLY_WINDOW_ENABLE_STRETCH=0x100000;
992 +const MCI_OVLY_WINDOW_DISABLE_STRETCH=0x200000;
993 +const MCI_OVLY_WINDOW_DEFAULT=0x0;
994 +const MCI_OVLY_RECT=0x10000;
995 +const MCI_OVLY_PUT_SOURCE=0x20000;
996 +const MCI_OVLY_PUT_DESTINATION=0x40000;
997 +const MCI_OVLY_PUT_FRAME=0x80000;
998 +const MCI_OVLY_PUT_VIDEO=0x100000;
999 +const MCI_OVLY_WHERE_SOURCE=0x20000;
1000 +const MCI_OVLY_WHERE_DESTINATION=0x40000;
1001 +const MCI_OVLY_WHERE_FRAME=0x80000;
1002 +const MCI_OVLY_WHERE_VIDEO=0x100000;
1003 +
1004 +const NEWTRANSPARENT=3;
1005 +const QUERYROPSUPPORT=40;
1006 +const SELECTDIB=41;
1007 +
1008 +LONG DIBINDEX(WORD n) {
1009 + return MAKELONG(n,0x10FF);
1010 +}
1011 +const CAPS1=94;
1012 +const C1_TRANSPARENT=1;
1013 +
1014 +const SEEK_SET=0;
1015 +const SEEK_CUR=1;
1016 +const SEEK_END=2;
1017 +
1018 +alias DWORD MCIERROR;
1019 +alias UINT MCIDEVICEID;
1020 +alias UINT function (MCIDEVICEID,DWORD) YIELDPROC;
1021 +alias UINT MMVERSION;
68 1022 alias UINT MMRESULT;
69 1023
70 -// #define _MMRESULT_
71 -
72 -alias UINT* LPUINT;
73 -
74 -struct mmtime_tag {
75 - UINT wType;
76 -union {
77 - DWORD ms;
78 - DWORD sample;
79 - DWORD cb;
80 - DWORD ticks;
81 -
82 -struct {
83 - BYTE hour;
84 - BYTE min;
85 - BYTE sec;
86 - BYTE frame;
87 - BYTE fps;
88 - BYTE dummy;
89 -// #ifdef _WIN32
90 - BYTE pad[2];
91 -// #endif
92 -}
93 -
94 -struct {
95 - DWORD songptrpos;
96 -}
97 -
98 -}
99 -
100 -}
101 -alias mmtime_tag MMTIME;
102 -alias mmtime_tag* PMMTIME;
103 -alias mmtime_tag* NPMMTIME;
104 -alias mmtime_tag* LPMMTIME;
105 -
106 -enum : uint { TIME_MS = 0x0001 }
107 -enum : uint { TIME_SAMPLES = 0x0002 }
108 -enum : uint { TIME_BYTES = 0x0004 }
109 -enum : uint { TIME_SMPTE = 0x0008 }
110 -enum : uint { TIME_MIDI = 0x0010 }
111 -enum : uint { TIME_TICKS = 0x0020 }
112 -
113 -uint MAKEFOURCC(ubyte ch0, ubyte ch1, ubyte ch2, ubyte ch3){ return ch0 | (ch1 << 8) | (ch2 << 16) | (ch3 << 24); }
114 -
115 -enum : uint { MM_JOY1MOVE = 0x3A0 }
116 -enum : uint { MM_JOY2MOVE = 0x3A1 }
117 -enum : uint { MM_JOY1ZMOVE = 0x3A2 }
118 -enum : uint { MM_JOY2ZMOVE = 0x3A3 }
119 -enum : uint { MM_JOY1BUTTONDOWN = 0x3B5 }
120 -enum : uint { MM_JOY2BUTTONDOWN = 0x3B6 }
121 -enum : uint { MM_JOY1BUTTONUP = 0x3B7 }
122 -enum : uint { MM_JOY2BUTTONUP = 0x3B8 }
123 -
124 -enum : uint { MM_MCINOTIFY = 0x3B9 }
125 -
126 -enum : uint { MM_WOM_OPEN = 0x3BB }
127 -enum : uint { MM_WOM_CLOSE = 0x3BC }
128 -enum : uint { MM_WOM_DONE = 0x3BD }
129 -
130 -enum : uint { MM_WIM_OPEN = 0x3BE }
131 -enum : uint { MM_WIM_CLOSE = 0x3BF }
132 -enum : uint { MM_WIM_DATA = 0x3C0 }
133 -
134 -enum : uint { MM_MIM_OPEN = 0x3C1 }
135 -enum : uint { MM_MIM_CLOSE = 0x3C2 }
136 -enum : uint { MM_MIM_DATA = 0x3C3 }
137 -enum : uint { MM_MIM_LONGDATA = 0x3C4 }
138 -enum : uint { MM_MIM_ERROR = 0x3C5 }
139 -enum : uint { MM_MIM_LONGERROR = 0x3C6 }
140 -
141 -enum : uint { MM_MOM_OPEN = 0x3C7 }
142 -enum : uint { MM_MOM_CLOSE = 0x3C8 }
143 -enum : uint { MM_MOM_DONE = 0x3C9 }
144 -
145 -// #ifndef MM_DRVM_OPEN
146 -enum : uint { MM_DRVM_OPEN = 0x3D0 }
147 -enum : uint { MM_DRVM_CLOSE = 0x3D1 }
148 -enum : uint { MM_DRVM_DATA = 0x3D2 }
149 -enum : uint { MM_DRVM_ERROR = 0x3D3 }
150 -// #endif
151 -
152 -enum : uint { MM_STREAM_OPEN = 0x3D4 }
153 -enum : uint { MM_STREAM_CLOSE = 0x3D5 }
154 -enum : uint { MM_STREAM_DONE = 0x3D6 }
155 -enum : uint { MM_STREAM_ERROR = 0x3D7 }
156 -
157 -// #if(WINVER >= 0x0400)
158 -enum : uint { MM_MOM_POSITIONCB = 0x3CA }
159 -
160 -// #ifndef MM_MCISIGNAL
161 -enum : uint { MM_MCISIGNAL = 0x3CB }
162 -// #endif
163 -
164 -enum : uint { MM_MIM_MOREDATA = 0x3CC }
165 -
166 -// #endif /* WINVER >= 0x0400 */
167 -enum : uint { MM_MIXM_LINE_CHANGE = 0x3D0 }
168 -enum : uint { MM_MIXM_CONTROL_CHANGE = 0x3D1 }
169 -
170 -enum : uint { MMSYSERR_BASE = 0 }
171 -enum : uint { WAVERR_BASE = 32 }
172 -enum : uint { MIDIERR_BASE = 64 }
173 -enum : uint { TIMERR_BASE = 96 }
174 -enum : uint { JOYERR_BASE = 160 }
175 -enum : uint { MCIERR_BASE = 256 }
176 -enum : uint { MIXERR_BASE = 1024 }
177 -
178 -enum : uint { MCI_STRING_OFFSET = 512 }
179 -enum : uint { MCI_VD_OFFSET = 1024 }
180 -enum : uint { MCI_CD_OFFSET = 1088 }
181 -enum : uint { MCI_WAVE_OFFSET = 1152 }
182 -enum : uint { MCI_SEQ_OFFSET = 1216 }
183 -
184 -enum : uint { MMSYSERR_NOERROR = 0 }
185 -enum : uint { MMSYSERR_ERROR = MMSYSERR_BASE + 1 }
186 -enum : uint { MMSYSERR_BADDEVICEID = MMSYSERR_BASE + 2 }
187 -enum : uint { MMSYSERR_NOTENABLED = MMSYSERR_BASE + 3 }
188 -enum : uint { MMSYSERR_ALLOCATED = MMSYSERR_BASE + 4 }
189 -enum : uint { MMSYSERR_INVALHANDLE = MMSYSERR_BASE + 5 }
190 -enum : uint { MMSYSERR_NODRIVER = MMSYSERR_BASE + 6 }
191 -enum : uint { MMSYSERR_NOMEM = MMSYSERR_BASE + 7 }
192 -enum : uint { MMSYSERR_NOTSUPPORTED = MMSYSERR_BASE + 8 }
193 -enum : uint { MMSYSERR_BADERRNUM = MMSYSERR_BASE + 9 }
194 -enum : uint { MMSYSERR_INVALFLAG = MMSYSERR_BASE + 10 }
195 -enum : uint { MMSYSERR_INVALPARAM = MMSYSERR_BASE + 11 }
196 -enum : uint { MMSYSERR_HANDLEBUSY = MMSYSERR_BASE + 12 }
197 -
198 -enum : uint { MMSYSERR_INVALIDALIAS = MMSYSERR_BASE + 13 }
199 -enum : uint { MMSYSERR_BADDB = MMSYSERR_BASE + 14 }
200 -enum : uint { MMSYSERR_KEYNOTFOUND = MMSYSERR_BASE + 15 }
201 -enum : uint { MMSYSERR_READERROR = MMSYSERR_BASE + 16 }
202 -enum : uint { MMSYSERR_WRITEERROR = MMSYSERR_BASE + 17 }
203 -enum : uint { MMSYSERR_DELETEERROR = MMSYSERR_BASE + 18 }
204 -enum : uint { MMSYSERR_VALNOTFOUND = MMSYSERR_BASE + 19 }
205 -enum : uint { MMSYSERR_NODRIVERCB = MMSYSERR_BASE + 20 }
206 -enum : uint { MMSYSERR_MOREDATA = MMSYSERR_BASE + 21 }
207 -enum : uint { MMSYSERR_LASTERROR = MMSYSERR_BASE + 21 }
208 -
209 -// #if (WINVER < 0x030a) || defined(_WIN32)
210 -alias void* HDRVR;
211 -// #endif /* ifdef WINVER < 0x030a */
212 -
213 -// #ifndef MMNODRV
214 -
215 -// #ifdef _WIN32
1024 +struct MMTIME {
1025 + UINT wType;
1026 + union {
1027 + DWORD ms;
1028 + DWORD sample;
1029 + DWORD cb;
1030 + DWORD ticks;
1031 + struct smpte {
1032 + BYTE hour;
1033 + BYTE min;
1034 + BYTE sec;
1035 + BYTE frame;
1036 + BYTE fps;
1037 + BYTE dummy;
1038 + BYTE pad[2];
1039 + };
1040 + struct midi {
1041 + DWORD songptrpos;
1042 + }
1043 + }
1044 +}
1045 +alias MMTIME* PMMTIME, LPMMTIME;
1046 +
1047 +alias HANDLE HDRVR;
1048 +
1049 +struct DRVCONFIGINFO {
1050 + DWORD dwDCISize;
1051 + LPCWSTR lpszDCISectionName;
1052 + LPCWSTR lpszDCIAliasName;
1053 +}
1054 +alias DRVCONFIGINFO * PDRVCONFIGINFO, LPDRVCONFIGINFO;
1055 +
216 1056 struct DRVCONFIGINFOEX {
217 - DWORD dwDCISize;
218 - LPCWSTR lpszDCISectionName;
219 - LPCWSTR lpszDCIAliasName;
220 - DWORD dnDevNode;
221 -}
222 -alias DRVCONFIGINFOEX* PDRVCONFIGINFOEX;
223 -alias DRVCONFIGINFOEX* NPDRVCONFIGINFOEX;
224 -alias DRVCONFIGINFOEX* LPDRVCONFIGINFOEX;
225 -
226 -// #else
227 -// ...
228 -// #endif
229 -
230 -// #if (WINVER < 0x030a) || defined(_WIN32)
231 -
232 -// #ifndef DRV_LOAD
233 -
234 -enum : uint { DRV_LOAD = 0x0001 }
235 -enum : uint { DRV_ENABLE = 0x0002 }
236 -enum : uint { DRV_OPEN = 0x0003 }
237 -enum : uint { DRV_CLOSE = 0x0004 }
238 -enum : uint { DRV_DISABLE = 0x0005 }
239 -enum : uint { DRV_FREE = 0x0006 }
240 -enum : uint { DRV_CONFIGURE = 0x0007 }
241 -enum : uint { DRV_QUERYCONFIGURE = 0x0008 }
242 -enum : uint { DRV_INSTALL = 0x0009 }
243 -enum : uint { DRV_REMOVE = 0x000A }
244 -enum : uint { DRV_EXITSESSION = 0x000B }
245 -enum : uint { DRV_POWER = 0x000F }
246 -enum : uint { DRV_RESERVED = 0x0800 }
247 -enum : uint { DRV_USER = 0x4000 }
248 -
249 -// #ifdef _WIN32
250 -struct tagDRVCONFIGINFO {
251 - DWORD dwDCISize;
252 - LPCWSTR lpszDCISectionName;
253 - LPCWSTR lpszDCIAliasName;
254 -}
255 -alias tagDRVCONFIGINFO DRVCONFIGINFO;
256 -alias tagDRVCONFIGINFO* PDRVCONFIGINFO;
257 -alias tagDRVCONFIGINFO* NPDRVCONFIGINFO;
258 -alias tagDRVCONFIGINFO* LPDRVCONFIGINFO;
259 -
260 -// #else
261 -// ...
262 -// #endif
263 -
264 -enum : uint { DRVCNF_CANCEL = 0x0000 }
265 -enum : uint { DRVCNF_OK = 0x0001 }
266 -enum : uint { DRVCNF_RESTART = 0x0002 }
267 -
268 -// #ifdef _WIN32
269 -
270 -extern(Windows) alias LRESULT function(DWORD_PTR, HDRVR, UINT, LPARAM, LPARAM) DRIVERPROC;
271 -
272 -extern(Windows) export LRESULT CloseDriver(HDRVR hDriver, LPARAM lParam1, LPARAM lParam2);
273 -extern(Windows) export HDRVR OpenDriver(LPCWSTR szDriverName, LPCWSTR szSectionName, LPARAM lParam2);
274 -extern(Windows) export LRESULT SendDriverMessage(HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2);
275 -extern(Windows) export HMODULE DrvGetModuleHandle(HDRVR hDriver);
276 -extern(Windows) export HMODULE GetDriverModuleHandle(HDRVR hDriver);
277 -extern(Windows) export LRESULT DefDriverProc(DWORD_PTR dwDriverIdentifier, HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
278 -// #else
279 -// ...
280 -// #...
281 -// #endif /* ifdef _WIN32 */
282 -// #endif /* DRV_LOAD */
283 -// #endif /* ifdef (WINVER < 0x030a) || defined(_WIN32) */
284 -
285 -// #if (WINVER >= 0x030a)
286 -
287 -alias DRVCNF_CANCEL DRV_CANCEL;
288 -alias DRVCNF_OK DRV_OK;
289 -alias DRVCNF_RESTART DRV_RESTART;
290 -
291 -// #endif /* ifdef WINVER >= 0x030a */
292 -
293 -alias DRV_RESERVED DRV_MCI_FIRST;
294 -enum : uint { DRV_MCI_LAST = DRV_RESERVED + 0xFFF }
295 -
296 -// #endif /* ifndef MMNODRV */
297 -
298 -enum : uint { CALLBACK_TYPEMASK = 0x00070000 }
299 -enum : uint { CALLBACK_NULL = 0x00000000 }
300 -enum : uint { CALLBACK_WINDOW = 0x00010000 }
301 -enum : uint { CALLBACK_TASK = 0x00020000 }
302 -enum : uint { CALLBACK_FUNCTION = 0x00030000 }
303 -// #ifdef _WIN32
304 -enum : uint { CALLBACK_THREAD = CALLBACK_TASK }
305 -enum : uint { CALLBACK_EVENT = 0x00050000 }
306 -// #endif
307 -// typedef void (CALLBACK DRVCALLBACK)(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2);
308 -
309 -extern(Windows) alias void function(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) LPDRVCALLBACK;
310 -// #ifdef _WIN32
311 -alias LPDRVCALLBACK PDRVCALLBACK;
312 -// #endif
313 -
314 -// #ifndef MMNOMMSYSTEM
315 -
316 -// #if (WINVER <= 0x030A)
317 -// ...
318 -// #endif
319 -// #ifdef _WIN32
320 -alias OutputDebugString OutputDebugStr;
321 -// #else
322 -// ...
323 -// #endif
324 -
325 -// #endif /* ifndef MMNOMMSYSTEM */
326 -
327 -// #ifndef MMNOSOUND
328 -
329 -// #ifdef _WIN32
330 -
331 -extern(Windows) export BOOL sndPlaySoundA(LPCSTR pszSound, UINT fuSound);
332 -extern(Windows) export BOOL sndPlaySoundW(LPCWSTR pszSound, UINT fuSound);
333 -// #ifdef UNICODE
334 -alias sndPlaySoundW sndPlaySound;
335 -// #else
336 -// #...
337 -// #endif // !UNICODE
338 -
339 -// #else
340 -// ...
341 -// #endif
342 -
343 -enum : uint { SND_SYNC = 0x0000 }
344 -enum : uint { SND_ASYNC = 0x0001 }
345 -enum : uint { SND_NODEFAULT = 0x0002 }
346 -enum : uint { SND_MEMORY = 0x0004 }
347 -enum : uint { SND_LOOP = 0x0008 }
348 -enum : uint { SND_NOSTOP = 0x0010 }
349 -
350 -enum : uint { SND_NOWAIT = 0x00002000 }
351 -enum : uint { SND_ALIAS = 0x00010000 }
352 -enum : uint { SND_ALIAS_ID = 0x00110000 }
353 -enum : uint { SND_FILENAME = 0x00020000 }
354 -enum : uint { SND_RESOURCE = 0x00040004 }
355 -// #if(WINVER >= 0x0400)
356 -enum : uint { SND_PURGE = 0x0040 }
357 -enum : uint { SND_APPLICATION = 0x0080 }
358 -// #endif /* WINVER >= 0x0400 */
359 -
360 -enum : uint { SND_ALIAS_START = 0 }
361 -
362 -// #ifdef _WIN32
363 -// #define sndAlias(ch0, ch1) (SND_ALIAS_START + (DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8))
364 -
365 -// #define SND_ALIAS_SYSTEMASTERISK sndAlias('S', '*')
366 -// #define SND_ALIAS_SYSTEMQUESTION sndAlias('S', '?')
367 -// #define SND_ALIAS_SYSTEMHAND sndAlias('S', 'H')
368 -// #define SND_ALIAS_SYSTEMEXIT sndAlias('S', 'E')
369 -// #define SND_ALIAS_SYSTEMSTART sndAlias('S', 'S')
370 -// #define SND_ALIAS_SYSTEMWELCOME sndAlias('S', 'W')
371 -// #define SND_ALIAS_SYSTEMEXCLAMATION sndAlias('S', '!')
372 -// #define SND_ALIAS_SYSTEMDEFAULT sndAlias('S', 'D')
373 -
374 -extern(Windows) export BOOL PlaySoundA(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
375 -extern(Windows) export BOOL PlaySoundW(LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound);
376 -// #ifdef UNICODE
377 -alias PlaySoundW PlaySound;
378 -// #else
379 -// #...
380 -// #endif // !UNICODE
381 -
382 -// #else
383 -// ...
384 -// #endif
385 -
386 -// #endif /* ifndef MMNOSOUND */
387 -
388 -// #ifndef MMNOWAVE
389 -
390 -enum : uint { WAVERR_BADFORMAT = WAVERR_BASE + 0 }
391 -enum : uint { WAVERR_STILLPLAYING = WAVERR_BASE + 1 }
392 -enum : uint { WAVERR_UNPREPARED = WAVERR_BASE + 2 }
393 -enum : uint { WAVERR_SYNC = WAVERR_BASE + 3 }
394 -enum : uint { WAVERR_LASTERROR = WAVERR_BASE + 3 }
395 -
396 -alias void* HWAVE;
397 -alias void* HWAVEIN;
398 -alias void* HWAVEOUT;
1057 + DWORD dwDCISize;
1058 + LPCWSTR lpszDCISectionName;
1059 + LPCWSTR lpszDCIAliasName;
1060 + DWORD dnDevNode;
1061 +}
1062 +alias DRVCONFIGINFOEX* PDRVCONFIGINFOEX, LPDRVCONFIGINFOEX;
1063 +
1064 +extern(Windows):
1065 +
1066 +/+FIXME: I couldn't find these in MSDN.
1067 +alias void function (HDRVR,UINT,DWORD,DWORD,DWORD) DRVCALLBACK;
1068 +LRESULT DRIVERPROC (DWORD,HDRVR,UINT,LPARAM,LPARAM);
1069 +alias DRVCALLBACK* LPDRVCALLBACK, PDRVCALLBACK;
1070 +
1071 +alias DRVCALLBACK WAVECALLBACK;
1072 +alias WAVECALLBACK* LPWAVECALLBACK;
1073 +
1074 +alias DRVCALLBACK MIDICALLBACK;
1075 +alias MIDICALLBACK* LPMIDICALLBACK;
1076 +
1077 ++/
1078 +
1079 +alias HANDLE HWAVE;
1080 +alias HANDLE HWAVEIN;
1081 +alias HANDLE HWAVEOUT;
1082 +
399 1083 alias HWAVEIN* LPHWAVEIN;
400 1084 alias HWAVEOUT* LPHWAVEOUT;
401 -// typedef DRVCALLBACK WAVECALLBACK;
402 -alias LPDRVCALLBACK LPWAVECALLBACK;
403 -
404 -alias MM_WOM_OPEN WOM_OPEN;
405 -alias MM_WOM_CLOSE WOM_CLOSE;
406 -alias MM_WOM_DONE WOM_DONE;
407 -alias MM_WIM_OPEN WIM_OPEN;
408 -alias MM_WIM_CLOSE WIM_CLOSE;
409 -alias MM_WIM_DATA WIM_DATA;
410 -
411 -enum : uint { WAVE_MAPPER = cast(UINT)-1 }
412 -
413 -enum : uint { WAVE_FORMAT_QUERY = 0x0001 }
414 -enum : uint { WAVE_ALLOWSYNC = 0x0002 }
415 -// #if(WINVER >= 0x0400)
416 -enum : uint { WAVE_MAPPED = 0x0004 }
417 -enum : uint { WAVE_FORMAT_DIRECT = 0x0008 }
418 -enum : uint { WAVE_FORMAT_DIRECT_QUERY = WAVE_FORMAT_QUERY | WAVE_FORMAT_DIRECT }
419 -// #endif /* WINVER >= 0x0400 */
420 -
421 -struct wavehdr_tag {
422 - LPSTR lpData;
423 - DWORD dwBufferLength;
424 - DWORD dwBytesRecorded;
425 - DWORD_PTR dwUser;
426 - DWORD dwFlags;
427 - DWORD dwLoops;
428 - wavehdr_tag *lpNext;
429 - DWORD_PTR reserved;
430 -}
431 -alias wavehdr_tag WAVEHDR;
432 -alias wavehdr_tag* PWAVEHDR;
433 -alias wavehdr_tag* NPWAVEHDR;
434 -alias wavehdr_tag* LPWAVEHDR;
435 -
436 -enum : uint { WHDR_DONE = 0x00000001 }
437 -enum : uint { WHDR_PREPARED = 0x00000002 }
438 -enum : uint { WHDR_BEGINLOOP = 0x00000004 }
439 -enum : uint { WHDR_ENDLOOP = 0x00000008 }
440 -enum : uint { WHDR_INQUEUE = 0x00000010 }
441 -
442 -// #ifdef _WIN32
443 -
444 -struct tagWAVEOUTCAPSA {
445 - WORD wMid;
446 - WORD wPid;
447 - MMVERSION vDriverVersion;
448 - CHAR szPname[MAXPNAMELEN];
449 - DWORD dwFormats;
450 - WORD wChannels;
451 - WORD wReserved1;
452 - DWORD dwSupport;
453 -}
454 -alias tagWAVEOUTCAPSA WAVEOUTCAPSA;
455 -alias tagWAVEOUTCAPSA* PWAVEOUTCAPSA;
456 -alias tagWAVEOUTCAPSA* NPWAVEOUTCAPSA;
457 -alias tagWAVEOUTCAPSA* LPWAVEOUTCAPSA;
458 -
459 -struct tagWAVEOUTCAPSW {
460 - WORD wMid;
461 - WORD wPid;
462 - MMVERSION vDriverVersion;
463 - WCHAR szPname[MAXPNAMELEN];
464 - DWORD dwFormats;
465 - WORD wChannels;
466 - WORD wReserved1;
467 - DWORD dwSupport;
468 -}
469 -alias tagWAVEOUTCAPSW WAVEOUTCAPSW;
470 -alias tagWAVEOUTCAPSW* PWAVEOUTCAPSW;
471 -alias tagWAVEOUTCAPSW* NPWAVEOUTCAPSW;
472 -alias tagWAVEOUTCAPSW* LPWAVEOUTCAPSW;
473 -
474 -// #ifdef UNICODE
475 -alias WAVEOUTCAPSW WAVEOUTCAPS;
476 -alias PWAVEOUTCAPSW PWAVEOUTCAPS;
477 -alias NPWAVEOUTCAPSW NPWAVEOUTCAPS;
478 -alias LPWAVEOUTCAPSW LPWAVEOUTCAPS;
479 -// #else
480 -// ...
481 -// #endif // UNICODE
482 -struct tagWAVEOUTCAPS2A {
483 - WORD wMid;
484 - WORD wPid;
485 - MMVERSION vDriverVersion;
486 - CHAR szPname[MAXPNAMELEN];
487 - DWORD dwFormats;
488 - WORD wChannels;
489 - WORD wReserved1;
490 - DWORD dwSupport;
491 - GUID ManufacturerGuid;
492 - GUID ProductGuid;
493 - GUID NameGuid;
494 -}
495 -alias tagWAVEOUTCAPS2A WAVEOUTCAPS2A;
496 -alias tagWAVEOUTCAPS2A* PWAVEOUTCAPS2A;
497 -alias tagWAVEOUTCAPS2A* NPWAVEOUTCAPS2A;
498 -alias tagWAVEOUTCAPS2A* LPWAVEOUTCAPS2A;
499 -
500 -struct tagWAVEOUTCAPS2W {
501 - WORD wMid;
502 - WORD wPid;
503 - MMVERSION vDriverVersion;
504 - WCHAR szPname[MAXPNAMELEN];
505 - DWORD dwFormats;
506 - WORD wChannels;
507 - WORD wReserved1;
508 - DWORD dwSupport;
509 - GUID ManufacturerGuid;
510 - GUID ProductGuid;
511 - GUID NameGuid;
512 -}
513 -alias tagWAVEOUTCAPS2W WAVEOUTCAPS2W;
514 -alias tagWAVEOUTCAPS2W* PWAVEOUTCAPS2W;
515 -alias tagWAVEOUTCAPS2W* NPWAVEOUTCAPS2W;
516 -alias tagWAVEOUTCAPS2W* LPWAVEOUTCAPS2W;
517 -
518 -// #ifdef UNICODE
519 -alias WAVEOUTCAPS2W WAVEOUTCAPS2;
520 -alias PWAVEOUTCAPS2W PWAVEOUTCAPS2;
521 -alias NPWAVEOUTCAPS2W NPWAVEOUTCAPS2;
522 -alias LPWAVEOUTCAPS2W LPWAVEOUTCAPS2;
523 -// #else
524 -// ...
525 -// #endif // UNICODE
526 -
527 -// #else
528 -// ...
529 -// #endif
530 -
531 -enum : uint { WAVECAPS_PITCH = 0x0001 }
532 -enum : uint { WAVECAPS_PLAYBACKRATE = 0x0002 }
533 -enum : uint { WAVECAPS_VOLUME = 0x0004 }
534 -enum : uint { WAVECAPS_LRVOLUME = 0x0008 }
535 -enum : uint { WAVECAPS_SYNC = 0x0010 }
536 -enum : uint { WAVECAPS_SAMPLEACCURATE = 0x0020 }
537 -
538 -// #ifdef _WIN32
539 -
540 -struct tagWAVEINCAPSA {
541 - WORD wMid;
542 - WORD wPid;
543 - MMVERSION vDriverVersion;
544 - CHAR szPname[MAXPNAMELEN];
545 - DWORD dwFormats;
546 - WORD wChannels;
547 - WORD wReserved1;
548 -}
549 -alias tagWAVEINCAPSA WAVEINCAPSA;
550 -alias tagWAVEINCAPSA* PWAVEINCAPSA;
551 -alias tagWAVEINCAPSA* NPWAVEINCAPSA;
552 -alias tagWAVEINCAPSA* LPWAVEINCAPSA;
553 -
554 -struct tagWAVEINCAPSW {
555 - WORD wMid;
556 - WORD wPid;
557 - MMVERSION vDriverVersion;
558 - WCHAR szPname[MAXPNAMELEN];
559 - DWORD dwFormats;
560 - WORD wChannels;
561 - WORD wReserved1;
562 -}
563 -alias tagWAVEINCAPSW WAVEINCAPSW;
564 -alias tagWAVEINCAPSW* PWAVEINCAPSW;
565 -alias tagWAVEINCAPSW* NPWAVEINCAPSW;
566 -alias tagWAVEINCAPSW* LPWAVEINCAPSW;
567 -
568 -// #ifdef UNICODE
569 -alias WAVEINCAPSW WAVEINCAPS;
570 -alias PWAVEINCAPSW PWAVEINCAPS;
571 -alias NPWAVEINCAPSW NPWAVEINCAPS;
572 -alias LPWAVEINCAPSW LPWAVEINCAPS;
573 -// #else
574 -// ...
575 -// #endif // UNICODE
576 -struct tagWAVEINCAPS2A {
577 - WORD wMid;
578 - WORD wPid;
579 - MMVERSION vDriverVersion;
580 - CHAR szPname[MAXPNAMELEN];
581 - DWORD dwFormats;
582 - WORD wChannels;
583 - WORD wReserved1;
584 - GUID ManufacturerGuid;
585 - GUID ProductGuid;
586 - GUID NameGuid;
587 -}
588 -alias tagWAVEINCAPS2A WAVEINCAPS2A;
589 -alias tagWAVEINCAPS2A* PWAVEINCAPS2A;
590 -alias tagWAVEINCAPS2A* NPWAVEINCAPS2A;
591 -alias tagWAVEINCAPS2A* LPWAVEINCAPS2A;
592 -
593 -struct tagWAVEINCAPS2W {
594 - WORD wMid;
595 - WORD wPid;
596 - MMVERSION vDriverVersion;
597 - WCHAR szPname[MAXPNAMELEN];
598 - DWORD dwFormats;
599 - WORD wChannels;
600 - WORD wReserved1;
601 - GUID ManufacturerGuid;
602 - GUID ProductGuid;
603 - GUID NameGuid;
604 -}
605 -alias tagWAVEINCAPS2W WAVEINCAPS2W;
606 -alias tagWAVEINCAPS2W* PWAVEINCAPS2W;
607 -alias tagWAVEINCAPS2W* NPWAVEINCAPS2W;
608 -alias tagWAVEINCAPS2W* LPWAVEINCAPS2W;
609 -
610 -// #ifdef UNICODE
611 -alias WAVEINCAPS2W WAVEINCAPS2;
612 -alias PWAVEINCAPS2W PWAVEINCAPS2;
613 -alias NPWAVEINCAPS2W NPWAVEINCAPS2;
614 -alias LPWAVEINCAPS2W LPWAVEINCAPS2;
615 -// #else
616 -// ...
617 -// #endif // UNICODE
618 -
619 -// #else
620 -// ...
621 -// #endif
622 -
623 -enum : uint { WAVE_INVALIDFORMAT = 0x00000000 }
624 -enum : uint { WAVE_FORMAT_1M08 = 0x00000001 }
625 -enum : uint { WAVE_FORMAT_1S08 = 0x00000002 }
626 -enum : uint { WAVE_FORMAT_1M16 = 0x00000004 }
627 -enum : uint { WAVE_FORMAT_1S16 = 0x00000008 }
628 -enum : uint { WAVE_FORMAT_2M08 = 0x00000010 }
629 -enum : uint { WAVE_FORMAT_2S08 = 0x00000020 }
630 -enum : uint { WAVE_FORMAT_2M16 = 0x00000040 }
631 -enum : uint { WAVE_FORMAT_2S16 = 0x00000080 }
632 -enum : uint { WAVE_FORMAT_4M08 = 0x00000100 }
633 -enum : uint { WAVE_FORMAT_4S08 = 0x00000200 }
634 -enum : uint { WAVE_FORMAT_4M16 = 0x00000400 }
635 -enum : uint { WAVE_FORMAT_4S16 = 0x00000800 }
636 -
637 -enum : uint { WAVE_FORMAT_44M08 = 0x00000100 }
638 -enum : uint { WAVE_FORMAT_44S08 = 0x00000200 }
639 -enum : uint { WAVE_FORMAT_44M16 = 0x00000400 }
640 -enum : uint { WAVE_FORMAT_44S16 = 0x00000800 }
641 -enum : uint { WAVE_FORMAT_48M08 = 0x00001000 }
642 -enum : uint { WAVE_FORMAT_48S08 = 0x00002000 }
643 -enum : uint { WAVE_FORMAT_48M16 = 0x00004000 }
644 -enum : uint { WAVE_FORMAT_48S16 = 0x00008000 }
645 -enum : uint { WAVE_FORMAT_96M08 = 0x00010000 }
646 -enum : uint { WAVE_FORMAT_96S08 = 0x00020000 }
647 -enum : uint { WAVE_FORMAT_96M16 = 0x00040000 }
648 -enum : uint { WAVE_FORMAT_96S16 = 0x00080000 }
649 -
650 -// #ifndef WAVE_FORMAT_PCM
651 -
652 -struct waveformat_tag {
653 - WORD wFormatTag;
654 - WORD nChannels;
655 - DWORD nSamplesPerSec;
656 - DWORD nAvgBytesPerSec;
657 - WORD nBlockAlign;
658 -}
659 -alias waveformat_tag WAVEFORMAT;
660 -alias waveformat_tag* PWAVEFORMAT;
661 -alias waveformat_tag* NPWAVEFORMAT;
662 -alias waveformat_tag* LPWAVEFORMAT;
663 -
664 -enum : uint { WAVE_FORMAT_PCM = 1 }
665 -
666 -struct pcmwaveformat_tag {
667 - WAVEFORMAT wf;
668 - WORD wBitsPerSample;
669 -}
670 -alias pcmwaveformat_tag PCMWAVEFORMAT;
671 -alias pcmwaveformat_tag* PPCMWAVEFORMAT;
672 -alias pcmwaveformat_tag* NPPCMWAVEFORMAT;
673 -alias pcmwaveformat_tag* LPPCMWAVEFORMAT;
674 -
675 -// #endif /* WAVE_FORMAT_PCM */
676 -
677 -// #ifndef _WAVEFORMATEX_
678 -// #define _WAVEFORMATEX_
679 -
680 -struct tWAVEFORMATEX {
681 - WORD wFormatTag;
682 - WORD nChannels;
683 - DWORD nSamplesPerSec;
684 - DWORD nAvgBytesPerSec;
685 - WORD nBlockAlign;
686 - WORD wBitsPerSample;
687 - WORD cbSize;
688 -
689 -}
690 -alias tWAVEFORMATEX WAVEFORMATEX;
691 -alias tWAVEFORMATEX* PWAVEFORMATEX;
692 -alias tWAVEFORMATEX* NPWAVEFORMATEX;
693 -alias tWAVEFORMATEX* LPWAVEFORMATEX;
694 -
695 -// #endif /* _WAVEFORMATEX_ */
696 -alias WAVEFORMATEX* LPCWAVEFORMATEX;
697 -
698 -extern(Windows) export UINT waveOutGetNumDevs();
699 -
700 -// #ifdef _WIN32
701 -
702 -extern(Windows) export MMRESULT waveOutGetDevCapsA(UINT_PTR uDeviceID, LPWAVEOUTCAPSA pwoc, UINT cbwoc);
703 -extern(Windows) export MMRESULT waveOutGetDevCapsW(UINT_PTR uDeviceID, LPWAVEOUTCAPSW pwoc, UINT cbwoc);
704 -// #ifdef UNICODE
705 -alias waveOutGetDevCapsW waveOutGetDevCaps;
706 -// #else
707 -// #...
708 -// #endif // !UNICODE
709 -
710 -// #else
711 -// ...
712 -// #endif
713 -
714 -// #if (WINVER >= 0x0400)
715 -extern(Windows) export MMRESULT waveOutGetVolume(HWAVEOUT hwo, LPDWORD pdwVolume);
716 -extern(Windows) export MMRESULT waveOutSetVolume(HWAVEOUT hwo, DWORD dwVolume);
717 -// #else
718 -// ...
719 -// #endif
720 -
721 -// #ifdef _WIN32
722 -
723 -extern(Windows) export MMRESULT waveOutGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText);
724 -extern(Windows) export MMRESULT waveOutGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText);
725 -// #ifdef UNICODE
726 -alias waveOutGetErrorTextW waveOutGetErrorText;
727 -// #else
728 -// #...
729 -// #endif // !UNICODE
730 -
731 -// #else
732 -// ...
733 -// #endif
734 -
735 -extern(Windows) export MMRESULT waveOutOpen(LPHWAVEOUT phwo, UINT uDeviceID,
736 - LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
737 -
738 -extern(Windows) export MMRESULT waveOutClose(HWAVEOUT hwo);
739 -extern(Windows) export MMRESULT waveOutPrepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh);
740 -extern(Windows) export MMRESULT waveOutUnprepareHeader(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh);
741 -extern(Windows) export MMRESULT waveOutWrite(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh);
742 -extern(Windows) export MMRESULT waveOutPause(HWAVEOUT hwo);
743 -extern(Windows) export MMRESULT waveOutRestart(HWAVEOUT hwo);
744 -extern(Windows) export MMRESULT waveOutReset(HWAVEOUT hwo);
745 -extern(Windows) export MMRESULT waveOutBreakLoop(HWAVEOUT hwo);
746 -extern(Windows) export MMRESULT waveOutGetPosition(HWAVEOUT hwo, LPMMTIME pmmt, UINT cbmmt);
747 -extern(Windows) export MMRESULT waveOutGetPitch(HWAVEOUT hwo, LPDWORD pdwPitch);
748 -extern(Windows) export MMRESULT waveOutSetPitch(HWAVEOUT hwo, DWORD dwPitch);
749 -extern(Windows) export MMRESULT waveOutGetPlaybackRate(HWAVEOUT hwo, LPDWORD pdwRate);
750 -extern(Windows) export MMRESULT waveOutSetPlaybackRate(HWAVEOUT hwo, DWORD dwRate);
751 -extern(Windows) export MMRESULT waveOutGetID(HWAVEOUT hwo, LPUINT puDeviceID);
752 -
753 -// #if (WINVER >= 0x030a)
754 -// #ifdef _WIN32
755 -extern(Windows) export MMRESULT waveOutMessage(HWAVEOUT hwo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
756 -// #else
757 -// ...
758 -// #endif
759 -// #endif /* ifdef WINVER >= 0x030a */
760 -
761 -extern(Windows) export UINT waveInGetNumDevs();
762 -
763 -// #ifdef _WIN32
764 -
765 -extern(Windows) export MMRESULT waveInGetDevCapsA(UINT_PTR uDeviceID, LPWAVEINCAPSA pwic, UINT cbwic);
766 -extern(Windows) export MMRESULT waveInGetDevCapsW(UINT_PTR uDeviceID, LPWAVEINCAPSW pwic, UINT cbwic);
767 -// #ifdef UNICODE
768 -alias waveInGetDevCapsW waveInGetDevCaps;
769 -// #else
770 -// #...
771 -// #endif // !UNICODE
772 -
773 -// #else
774 -// ...
775 -// #endif
776 -
777 -// #ifdef _WIN32
778 -
779 -extern(Windows) export MMRESULT waveInGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText);
780 -extern(Windows) export MMRESULT waveInGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText);
781 -// #ifdef UNICODE
782 -alias waveInGetErrorTextW waveInGetErrorText;
783 -// #else
784 -// #...
785 -// #endif // !UNICODE
786 -
787 -// #else
788 -// ...
789 -// #endif
790 -
791 -extern(Windows) export MMRESULT waveInOpen(LPHWAVEIN phwi, UINT uDeviceID,
792 - LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
793 -
794 -extern(Windows) export MMRESULT waveInClose(HWAVEIN hwi);
795 -extern(Windows) export MMRESULT waveInPrepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);
796 -extern(Windows) export MMRESULT waveInUnprepareHeader(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);
797 -extern(Windows) export MMRESULT waveInAddBuffer(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);
798 -extern(Windows) export MMRESULT waveInStart(HWAVEIN hwi);
799 -extern(Windows) export MMRESULT waveInStop(HWAVEIN hwi);
800 -extern(Windows) export MMRESULT waveInReset(HWAVEIN hwi);
801 -extern(Windows) export MMRESULT waveInGetPosition(HWAVEIN hwi, LPMMTIME pmmt, UINT cbmmt);
802 -extern(Windows) export MMRESULT waveInGetID(HWAVEIN hwi, LPUINT puDeviceID);
803 -
804 -// #if (WINVER >= 0x030a)
805 -// #ifdef _WIN32
806 -extern(Windows) export MMRESULT waveInMessage(HWAVEIN hwi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
807 -// #else
808 -// ...
809 -// #endif
810 -// #endif /* ifdef WINVER >= 0x030a */
811 -
812 -// #endif /* ifndef MMNOWAVE */
813 -
814 -// #ifndef MMNOMIDI
815 -
816 -enum : uint { MIDIERR_UNPREPARED = MIDIERR_BASE + 0 }
817 -enum : uint { MIDIERR_STILLPLAYING = MIDIERR_BASE + 1 }
818 -enum : uint { MIDIERR_NOMAP = MIDIERR_BASE + 2 }
819 -enum : uint { MIDIERR_NOTREADY = MIDIERR_BASE + 3 }
820 -enum : uint { MIDIERR_NODEVICE = MIDIERR_BASE + 4 }
821 -enum : uint { MIDIERR_INVALIDSETUP = MIDIERR_BASE + 5 }
822 -enum : uint { MIDIERR_BADOPENMODE = MIDIERR_BASE + 6 }
823 -enum : uint { MIDIERR_DONT_CONTINUE = MIDIERR_BASE + 7 }
824 -enum : uint { MIDIERR_LASTERROR = MIDIERR_BASE + 7 }
825 -
826 -alias void* HMIDI;
827 -alias void* HMIDIIN;
828 -alias void* HMIDIOUT;
829 -alias void* HMIDISTRM;
1085 +
1086 +struct WAVEHDR {
1087 + LPSTR lpData;
1088 + DWORD dwBufferLength;
1089 + DWORD dwBytesRecorded;
1090 + DWORD dwUser;
1091 + DWORD dwFlags;
1092 + DWORD dwLoops;
1093 + WAVEHDR *lpNext;
1094 + DWORD reserved;
1095 +}
1096 +alias WAVEHDR* PWAVEHDR, LPWAVEHDR;
1097 +
1098 +struct WAVEOUTCAPSA {
1099 + WORD wMid;
1100 + WORD wPid;
1101 + MMVERSION vDriverVersion;
1102 + CHAR szPname[MAXPNAMELEN];
1103 + DWORD dwFormats;
1104 + WORD wChannels;
1105 + WORD wReserved1;
1106 + DWORD dwSupport;
1107 +}
1108 +alias WAVEOUTCAPSA* PWAVEOUTCAPSA, LPWAVEOUTCAPSA;
1109 +
1110 +struct WAVEOUTCAPSW {
1111 + WORD wMid;
1112 + WORD wPid;
1113 + MMVERSION vDriverVersion;
1114 + WCHAR szPname[MAXPNAMELEN];
1115 + DWORD dwFormats;
1116 + WORD wChannels;
1117 + WORD wReserved1;
1118 + DWORD dwSupport;
1119 +}
1120 +alias WAVEOUTCAPSW* PWAVEOUTCAPSW, LPWAVEOUTCAPSW;
1121 +
1122 +struct WAVEINCAPSA {
1123 + WORD wMid;
1124 + WORD wPid;
1125 + MMVERSION vDriverVersion;
1126 + CHAR szPname[MAXPNAMELEN];
1127 + DWORD dwFormats;
1128 + WORD wChannels;
1129 + WORD wReserved1;
1130 +}
1131 +alias WAVEINCAPSA* PWAVEINCAPSA, LPWAVEINCAPSA;
1132 +
1133 +struct WAVEINCAPSW {
1134 + WORD wMid;
1135 + WORD wPid;
1136 + MMVERSION vDriverVersion;
1137 + WCHAR szPname[MAXPNAMELEN];
1138 + DWORD dwFormats;
1139 + WORD wChannels;
1140 + WORD wReserved1;
1141 +}
1142 +alias WAVEINCAPSW* PWAVEINCAPSW, LPWAVEINCAPSW;
1143 +
1144 +struct WAVEFORMAT {
1145 + WORD wFormatTag;
1146 + WORD nChannels;
1147 + DWORD nSamplesPerSec;
1148 + DWORD nAvgBytesPerSec;
1149 + WORD nBlockAlign;
1150 +}
1151 +alias WAVEFORMAT* PWAVEFORMAT, LPWAVEFORMAT;
1152 +
1153 +struct PCMWAVEFORMAT {
1154 + WAVEFORMAT wf;
1155 + WORD wBitsPerSample;
1156 +}
1157 +alias PCMWAVEFORMAT* PPCMWAVEFORMAT, LPPCMWAVEFORMAT;
1158 +
1159 +struct WAVEFORMATEX {
1160 + WORD wFormatTag;
1161 + WORD nChannels;
1162 + DWORD nSamplesPerSec;
1163 + DWORD nAvgBytesPerSec;
1164 + WORD nBlockAlign;
1165 + WORD wBitsPerSample;
1166 + WORD cbSize;
1167 +}
1168 +alias WAVEFORMATEX* PWAVEFORMATEX, LPWAVEFORMATEX;
1169 +alias CPtr!(WAVEFORMATEX) LPCWAVEFORMATEX;
1170 +
1171 +alias HANDLE HMIDI;
1172 +alias HANDLE HMIDIIN;
1173 +alias HANDLE HMIDIOUT;
1174 +alias HANDLE HMIDISTRM;
1175 +
830 1176 alias HMIDI* LPHMIDI;
831 1177 alias HMIDIIN* LPHMIDIIN;
832 1178 alias HMIDIOUT* LPHMIDIOUT;
833 1179 alias HMIDISTRM* LPHMIDISTRM;
834 -// typedef DRVCALLBACK MIDICALLBACK;
835 -alias LPDRVCALLBACK LPMIDICALLBACK;
836 -enum : uint { MIDIPATCHSIZE = 128 }
1180 +
837 1181 alias WORD PATCHARRAY[MIDIPATCHSIZE];
838 1182 alias WORD* LPPATCHARRAY;
839 1183 alias WORD KEYARRAY[MIDIPATCHSIZE];
840 1184 alias WORD* LPKEYARRAY;
841 1185
842 -alias MM_MIM_OPEN MIM_OPEN;
843 -alias MM_MIM_CLOSE MIM_CLOSE;
844 -alias MM_MIM_DATA MIM_DATA;
845 -alias MM_MIM_LONGDATA MIM_LONGDATA;
846 -alias MM_MIM_ERROR MIM_ERROR;
847 -alias MM_MIM_LONGERROR MIM_LONGERROR;
848 -alias MM_MOM_OPEN MOM_OPEN;
849 -alias MM_MOM_CLOSE MOM_CLOSE;
850 -alias MM_MOM_DONE MOM_DONE;
851 -
852 -// #if(WINVER >= 0x0400)
853 -alias MM_MIM_MOREDATA MIM_MOREDATA;
854 -alias MM_MOM_POSITIONCB MOM_POSITIONCB;
855 -// #endif /* WINVER >= 0x0400 */
856 -
857 -enum : uint { MIDIMAPPER = cast(UINT)-1 }
858 -enum : uint { MIDI_MAPPER = cast(UINT)-1 }
1186 +struct MIDIOUTCAPSA {
1187 + WORD wMid;
1188 + WORD wPid;
1189 + MMVERSION vDriverVersion;
1190 + CHAR szPname[MAXPNAMELEN];
1191 + WORD wTechnology;
1192 + WORD wVoices;
1193 + WORD wNotes;
1194 + WORD wChannelMask;
1195 + DWORD dwSupport;
1196 +}
1197 +alias MIDIOUTCAPSA* PMIDIOUTCAPSA, LPMIDIOUTCAPSA;
1198 +
1199 +struct MIDIOUTCAPSW {
1200 + WORD wMid;
1201 + WORD wPid;
1202 + MMVERSION vDriverVersion;
1203 + WCHAR szPname[MAXPNAMELEN];
1204 + WORD wTechnology;
1205 + WORD wVoices;
1206 + WORD wNotes;
1207 + WORD wChannelMask;
1208 + DWORD dwSupport;
1209 +}
1210 +alias MIDIOUTCAPSW* PMIDIOUTCAPSW, LPMIDIOUTCAPSW;
1211 +
1212 +struct MIDIINCAPSA {
1213 + WORD wMid;
1214 + WORD wPid;
1215 + MMVERSION vDriverVersion;
1216 + CHAR szPname[MAXPNAMELEN];
1217 + DWORD dwSupport;
1218 +}
1219 +alias MIDIINCAPSA* PMIDIINCAPSA, LPMIDIINCAPSA;
1220 +
1221 +struct MIDIINCAPSW {
1222 + WORD wMid;
1223 + WORD wPid;
1224 + MMVERSION vDriverVersion;
1225 + WCHAR szPname[MAXPNAMELEN];
1226 + DWORD dwSupport;
1227 +}
1228 +alias MIDIINCAPSW* PMIDIINCAPSW, LPMIDIINCAPSW;
1229 +
1230 +struct MIDIHDR {
1231 + LPSTR lpData;
1232 + DWORD dwBufferLength;
1233 + DWORD dwBytesRecorded;
1234 + DWORD dwUser;
1235 + DWORD dwFlags;
1236 + MIDIHDR *lpNext;
1237 + DWORD reserved;
1238 + DWORD dwOffset;
1239 + DWORD dwReserved[8];
1240 +}
1241 +alias MIDIHDR* PMIDIHDR, LPMIDIHDR;
1242 +
1243 +struct MIDIEVENT {
1244 + DWORD dwDeltaTime;
1245 + DWORD dwStreamID;
1246 + DWORD dwEvent;
1247 + DWORD dwParms[1];
1248 +}
1249 +
1250 +struct MIDISTRMBUFFVER {
1251 + DWORD dwVersion;
1252 + DWORD dwMid;
1253 + DWORD dwOEMVersion;
1254 +}
1255 +
1256 +struct MIDIPROPTIMEDIV {
1257 + DWORD cbStruct;
1258 + DWORD dwTimeDiv;
1259 +}
1260 +alias MIDIPROPTIMEDIV* LPMIDIPROPTIMEDIV;
1261 +
1262 +struct MIDIPROPTEMPO {
1263 + DWORD cbStruct;
1264 + DWORD dwTempo;
1265 +}
1266 +alias MIDIPROPTEMPO* LPMIDIPROPTEMPO;
1267 +
1268 +struct AUXCAPSA {
1269 + WORD wMid;
1270 + WORD wPid;
1271 + MMVERSION vDriverVersion;
1272 + CHAR szPname[MAXPNAMELEN];
1273 + WORD wTechnology;
1274 + WORD wReserved1;
1275 + DWORD dwSupport;
1276 +}
1277 +alias AUXCAPSA* PAUXCAPSA, LPAUXCAPSA;
1278 +
1279 +struct AUXCAPSW {
1280 + WORD wMid;
1281 + WORD wPid;
1282 + MMVERSION vDriverVersion;
1283 + WCHAR szPname[MAXPNAMELEN];
1284 + WORD wTechnology;
1285 + WORD wReserved1;
1286 + DWORD dwSupport;
1287 +}
1288 +alias AUXCAPSW* PAUXCAPSW, LPAUXCAPSW;
1289 +
1290 +alias HANDLE HMIXEROBJ;
1291 +alias HMIXEROBJ* LPHMIXEROBJ;
1292 +
1293 +alias HANDLE HMIXER;
1294 +alias HMIXER* LPHMIXER;
1295 +
1296 +struct MIXERCAPSA {
1297 + WORD wMid;
1298 + WORD wPid;
1299 + MMVERSION vDriverVersion;
1300 + CHAR szPname[MAXPNAMELEN];
1301 + DWORD fdwSupport;
1302 + DWORD cDestinations;
1303 +}
1304 +alias MIXERCAPSA* PMIXERCAPSA, LPMIXERCAPSA;
1305 +
1306 +struct MIXERCAPSW {
1307 + WORD wMid;
1308 + WORD wPid;
1309 + MMVERSION vDriverVersion;
1310 + WCHAR szPname[MAXPNAMELEN];
1311 + DWORD fdwSupport;
1312 + DWORD cDestinations;
1313 +}
1314 +alias MIXERCAPSW* PMIXERCAPSW, LPMIXERCAPSW;
1315 +
1316 +struct MIXERLINEA {
1317 + DWORD cbStruct;
1318 + DWORD dwDestination;
1319 + DWORD dwSource;
1320 + DWORD dwLineID;
1321 + DWORD fdwLine;
1322 + DWORD dwUser;
1323 + DWORD dwComponentType;
1324 + DWORD cChannels;
1325 + DWORD cConnections;
1326 + DWORD cControls;
1327 + CHAR szShortName[MIXER_SHORT_NAME_CHARS];
1328 + CHAR szName[MIXER_LONG_NAME_CHARS];
1329 + struct Target {
1330 + DWORD dwType;
1331 + DWORD dwDeviceID;
1332 + WORD wMid;
1333 + WORD wPid;
1334 + MMVERSION vDriverVersion;
1335 + CHAR szPname[MAXPNAMELEN];
1336 + }
1337 +}
1338 +alias MIXERLINEA* PMIXERLINEA, LPMIXERLINEA;
1339 +
1340 +struct MIXERLINEW {
1341 + DWORD cbStruct;
1342 + DWORD dwDestination;
1343 + DWORD dwSource;
1344 + DWORD dwLineID;
1345 + DWORD fdwLine;
1346 + DWORD dwUser;
1347 + DWORD dwComponentType;
1348 + DWORD cChannels;
1349 + DWORD cConnections;
1350 + DWORD cControls;
1351 + WCHAR szShortName[MIXER_SHORT_NAME_CHARS];
1352 + WCHAR szName[MIXER_LONG_NAME_CHARS];
1353 + struct Target {
1354 + DWORD dwType;
1355 + DWORD dwDeviceID;
1356 + WORD wMid;
1357 + WORD wPid;
1358 + MMVERSION vDriverVersion;
1359 + WCHAR szPname[MAXPNAMELEN];
1360 + }
1361 +}
1362 +alias MIXERLINEW* PMIXERLINEW, LPMIXERLINEW;
1363 +
1364 +struct MIXERCONTROLA {
1365 + DWORD cbStruct;
1366 + DWORD dwControlID;
1367 + DWORD dwControlType;
1368 + DWORD fdwControl;
1369 + DWORD cMultipleItems;
1370 + CHAR szShortName[MIXER_SHORT_NAME_CHARS];
1371 + CHAR szName[MIXER_LONG_NAME_CHARS];
1372 + union _Bounds {
1373 + struct {
1374 + LONG lMinimum;
1375 + LONG lMaximum;
1376 + }
1377 + struct {
1378 + DWORD dwMinimum;
1379 + DWORD dwMaximum;
1380 + }
1381 + DWORD dwReserved[6];
1382 + }
1383 + _Bounds Bounds;
1384 + union _Metrics {
1385 + DWORD cSteps;
1386 + DWORD cbCustomData;
1387 + DWORD dwReserved[6];
1388 + }
1389 + _Metrics Metrics;
1390 +}
1391 +alias MIXERCONTROLA* PMIXERCONTROLA, LPMIXERCONTROLA;
1392 +
1393 +struct MIXERCONTROLW {
1394 + DWORD cbStruct;
1395 + DWORD dwControlID;
1396 + DWORD dwControlType;
1397 + DWORD fdwControl;
1398 + DWORD cMultipleItems;
1399 + WCHAR szShortName[MIXER_SHORT_NAME_CHARS];
1400 + WCHAR szName[MIXER_LONG_NAME_CHARS];
1401 + union _Bounds {
1402 + struct {
1403 + LONG lMinimum;
1404 + LONG lMaximum;
1405 + }
1406 + struct {
1407 + DWORD dwMinimum;
1408 + DWORD dwMaximum;
1409 + }
1410 + DWORD dwReserved[6];
1411 + }
1412 + _Bounds Bounds;
1413 + union _Metrics {
1414 + DWORD cSteps;
1415 + DWORD cbCustomData;
1416 + DWORD dwReserved[6];
1417 + }
1418 + _Metrics Metrics;
1419 +}
1420 +
1421 +alias MIXERCONTROLW* PMIXERCONTROLW, LPMIXERCONTROLW;
1422 +
1423 +struct MIXERLINECONTROLSA {
1424 + DWORD cbStruct;
1425 + DWORD dwLineID;
1426 + union {
1427 + DWORD dwControlID;
1428 + DWORD dwControlType;
1429 + }
1430 + DWORD cControls;
1431 + DWORD cbmxctrl;
1432 + LPMIXERCONTROLA pamxctrl;
1433 +}
1434 +alias MIXERLINECONTROLSA* PMIXERLINECONTROLSA, LPMIXERLINECONTROLSA;
1435 +
1436 +struct MIXERLINECONTROLSW {
1437 + DWORD cbStruct;
1438 + DWORD dwLineID;
1439 + union {
1440 + DWORD dwControlID;
1441 + DWORD dwControlType;
1442 + }
1443 + DWORD cControls;
1444 + DWORD cbmxctrl;
1445 + LPMIXERCONTROLW pamxctrl;
1446 +}
1447 +alias MIXERLINECONTROLSW* PMIXERLINECONTROLSW, LPMIXERLINECONTROLSW;
1448 +
1449 +struct MIXERCONTROLDETAILS {
1450 + DWORD cbStruct;
1451 + DWORD dwControlID;
1452 + DWORD cChannels;
1453 + union {
1454 + HWND hwndOwner;
1455 + DWORD cMultipleItems;
1456 + }
1457 + DWORD cbDetails;
1458 + PVOID paDetails;
1459 +}
1460 +alias MIXERCONTROLDETAILS* PMIXERCONTROLDETAILS, LPMIXERCONTROLDETAILS;
1461 +
1462 +struct MIXERCONTROLDETAILS_LISTTEXTA {
1463 + DWORD dwParam1;
1464 + DWORD dwParam2;
1465 + CHAR szName[MIXER_LONG_NAME_CHARS];
1466 +}
1467 +alias MIXERCONTROLDETAILS_LISTTEXTA* PMIXERCONTROLDETAILS_LISTTEXTA,LPMIXERCONTROLDETAILS_LISTTEXTA;
1468 +
1469 +struct MIXERCONTROLDETAILS_LISTTEXTW {
1470 + DWORD dwParam1;
1471 + DWORD dwParam2;
1472 + WCHAR szName[MIXER_LONG_NAME_CHARS];
1473 +}
1474 +alias MIXERCONTROLDETAILS_LISTTEXTW* PMIXERCONTROLDETAILS_LISTTEXTW,LPMIXERCONTROLDETAILS_LISTTEXTW;
1475 +
1476 +struct MIXERCONTROLDETAILS_BOOLEAN {
1477 + LONG fValue;
1478 +}
1479 +alias MIXERCONTROLDETAILS_BOOLEAN* PMIXERCONTROLDETAILS_BOOLEAN, LPMIXERCONTROLDETAILS_BOOLEAN;
1480 +
1481 +struct MIXERCONTROLDETAILS_SIGNED {
1482 + LONG lValue;
1483 +}
1484 +alias MIXERCONTROLDETAILS_SIGNED* PMIXERCONTROLDETAILS_SIGNED, LPMIXERCONTROLDETAILS_SIGNED;
1485 +
1486 +struct MIXERCONTROLDETAILS_UNSIGNED {
1487 + DWORD dwValue;
1488 +}
1489 +alias MIXERCONTROLDETAILS_UNSIGNED* PMIXERCONTROLDETAILS_UNSIGNED, LPMIXERCONTROLDETAILS_UNSIGNED;
1490 +
1491 +alias void function (UINT,UINT,DWORD,DWORD,DWORD) LPTIMECALLBACK;
1492 +
1493 +struct TIMECAPS {
1494 + UINT wPeriodMin;
1495 + UINT wPeriodMax;
1496 +}
1497 +alias TIMECAPS* PTIMECAPS, LPTIMECAPS;
1498 +
1499 +struct JOYCAPSA {
1500 + WORD wMid;
1501 + WORD wPid;
1502 + CHAR szPname[MAXPNAMELEN];
1503 + UINT wXmin;
1504 + UINT wXmax;
1505 + UINT wYmin;
1506 + UINT wYmax;
1507 + UINT wZmin;
1508 + UINT wZmax;
1509 + UINT wNumButtons;
1510 + UINT wPeriodMin;
1511 + UINT wPeriodMax;
1512 + UINT wRmin;
1513 + UINT wRmax;
1514 + UINT wUmin;
1515 + UINT wUmax;
1516 + UINT wVmin;
1517 + UINT wVmax;
1518 + UINT wCaps;
1519 + UINT wMaxAxes;
1520 + UINT wNumAxes;
1521 + UINT wMaxButtons;
1522 + CHAR szRegKey[MAXPNAMELEN];
1523 + CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
1524 +}
1525 +alias JOYCAPSA* PJOYCAPSA, LPJOYCAPSA;
1526 +
1527 +struct JOYCAPSW {
1528 + WORD wMid;
1529 + WORD wPid;
1530 + WCHAR szPname[MAXPNAMELEN];
1531 + UINT wXmin;
1532 + UINT wXmax;
1533 + UINT wYmin;
1534 + UINT wYmax;
1535 + UINT wZmin;
1536 + UINT wZmax;
1537 + UINT wNumButtons;
1538 + UINT wPeriodMin;
1539 + UINT wPeriodMax;
1540 + UINT wRmin;
1541 + UINT wRmax;
1542 + UINT wUmin;
1543 + UINT wUmax;
1544 + UINT wVmin;
1545 + UINT wVmax;
1546 + UINT wCaps;
1547 + UINT wMaxAxes;
1548 + UINT wNumAxes;
1549 + UINT wMaxButtons;
1550 + WCHAR szRegKey[MAXPNAMELEN];
1551 + WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
1552 +}
1553 +alias JOYCAPSW* PJOYCAPSW, LPJOYCAPSW;
1554 +
1555 +struct JOYINFO {
1556 + UINT wXpos;
1557 + UINT wYpos;
1558 + UINT wZpos;
1559 + UINT wButtons;
1560 +}
1561 +alias JOYINFO* PJOYINFO, LPJOYINFO;
1562 +
1563 +struct JOYINFOEX {
1564 + DWORD dwSize;
1565 + DWORD dwFlags;
1566 + DWORD dwXpos;
1567 + DWORD dwYpos;
1568 + DWORD dwZpos;
1569 + DWORD dwRpos;
1570 + DWORD dwUpos;
1571 + DWORD dwVpos;
1572 + DWORD dwButtons;
1573 + DWORD dwButtonNumber;
1574 + DWORD dwPOV;
1575 + DWORD dwReserved1;
1576 + DWORD dwReserved2;
1577 +}
1578 +alias JOYINFOEX* PJOYINFOEX, LPJOYINFOEX;
1579 +
1580 +alias DWORD FOURCC;
1581 +alias char* HPSTR;
1582 +
1583 +alias HANDLE HMMIO;
1584 +
1585 +alias LRESULT function (LPSTR,UINT,LPARAM,LPARAM) LPMMIOPROC;
1586 +
1587 +struct MMIOINFO {
1588 + DWORD dwFlags;
1589 + FOURCC fccIOProc;
1590 + LPMMIOPROC pIOProc;
1591 + UINT wErrorRet;
1592 + HTASK htask;
1593 + LONG cchBuffer;
1594 + HPSTR pchBuffer;
1595 + HPSTR pchNext;
1596 + HPSTR pchEndRead;
1597 + HPSTR pchEndWrite;
1598 + LONG lBufOffset;
1599 + LONG lDiskOffset;
1600 + DWORD adwInfo[3];
1601 + DWORD dwReserved1;
1602 + DWORD dwReserved2;
1603 + HMMIO hmmio;
1604 +}
1605 +alias MMIOINFO* PMMIOINFO, LPMMIOINFO;
1606 +alias CPtr!(MMIOINFO) LPCMMIOINFO;
1607 +
1608 +struct MMCKINFO {
1609 + FOURCC ckid;
1610 + DWORD cksize;
1611 + FOURCC fccType;
1612 + DWORD dwDataOffset;
1613 + DWORD dwFlags;
1614 +}
1615 +alias MMCKINFO* PMMCKINFO, LPMMCKINFO;
1616 +alias CPtr!(MMCKINFO) LPCMMCKINFO;
1617 +
1618 +struct MCI_GENERIC_PARMS {
1619 + DWORD dwCallback;
1620 +}
1621 +alias MCI_GENERIC_PARMS* PMCI_GENERIC_PARMS, LPMCI_GENERIC_PARMS;
1622 +
1623 +struct MCI_OPEN_PARMSA {
1624 + DWORD dwCallback;
1625 + MCIDEVICEID wDeviceID;
1626 + LPCSTR lpstrDeviceType;
1627 + LPCSTR lpstrElementName;
1628 + LPCSTR lpstrAlias;
1629 +}
1630 +alias MCI_OPEN_PARMSA* PMCI_OPEN_PARMSA, LPMCI_OPEN_PARMSA;
1631 +
1632 +struct MCI_OPEN_PARMSW {
1633 + DWORD dwCallback;
1634 + MCIDEVICEID wDeviceID;
1635 + LPCWSTR lpstrDeviceType;
1636 + LPCWSTR lpstrElementName;
1637 + LPCWSTR lpstrAlias;
1638 +}
1639 +alias MCI_OPEN_PARMSW* PMCI_OPEN_PARMSW, LPMCI_OPEN_PARMSW;
1640 +
1641 +struct MCI_PLAY_PARMS {
1642 + DWORD dwCallback;
1643 + DWORD dwFrom;
1644 + DWORD dwTo;
1645 +}
1646 +alias MCI_PLAY_PARMS* PMCI_PLAY_PARMS, LPMCI_PLAY_PARMS;
1647 +
1648 +struct MCI_SEEK_PARMS {
1649 + DWORD dwCallback;
1650 + DWORD dwTo;
1651 +}
1652 +alias MCI_SEEK_PARMS* PMCI_SEEK_PARMS, LPMCI_SEEK_PARMS;
1653 +
1654 +struct MCI_STATUS_PARMS {
1655 + DWORD dwCallback;
1656 + DWORD dwReturn;
1657 + DWORD dwItem;
1658 + DWORD dwTrack;
1659 +}
1660 +alias MCI_STATUS_PARMS* PMCI_STATUS_PARMS, LPMCI_STATUS_PARMS;
1661 +
1662 +struct MCI_INFO_PARMSA {
1663 + DWORD dwCallback;
1664 + LPSTR lpstrReturn;
1665 + DWORD dwRetSize;
1666 +}
1667 +alias MCI_INFO_PARMSA* LPMCI_INFO_PARMSA;
1668 +
1669 +struct MCI_INFO_PARMSW {
1670 + DWORD dwCallback;
1671 + LPWSTR lpstrReturn;
1672 + DWORD dwRetSize;
1673 +}
1674 +alias MCI_INFO_PARMSW* LPMCI_INFO_PARMSW;
1675 +
1676 +struct MCI_GETDEVCAPS_PARMS {
1677 + DWORD dwCallback;
1678 + DWORD dwReturn;
1679 + DWORD dwItem;
1680 +}
1681 +alias MCI_GETDEVCAPS_PARMS* PMCI_GETDEVCAPS_PARMS, LPMCI_GETDEVCAPS_PARMS;
1682 +
1683 +struct MCI_SYSINFO_PARMSA {
1684 + DWORD dwCallback;
1685 + LPSTR lpstrReturn;
1686 + DWORD dwRetSize;
1687 + DWORD dwNumber;
1688 + UINT wDeviceType;
1689 +}
1690 +alias MCI_SYSINFO_PARMSA* PMCI_SYSINFO_PARMSA, LPMCI_SYSINFO_PARMSA;
1691 +
1692 +struct MCI_SYSINFO_PARMSW {
1693 + DWORD dwCallback;
1694 + LPWSTR lpstrReturn;
1695 + DWORD dwRetSize;
1696 + DWORD dwNumber;
1697 + UINT wDeviceType;
1698 +}
1699 +alias MCI_SYSINFO_PARMSW* PMCI_SYSINFO_PARMSW, LPMCI_SYSINFO_PARMSW;
1700 +
1701 +struct MCI_SET_PARMS {
1702 + DWORD dwCallback;
1703 + DWORD dwTimeFormat;
1704 + DWORD dwAudio;
1705 +}
1706 +alias MCI_SET_PARMS* PMCI_SET_PARMS, LPMCI_SET_PARMS;
1707 +
1708 +struct MCI_BREAK_PARMS {
1709 + DWORD dwCallback;
1710 + int nVirtKey;
1711 + HWND hwndBreak;
1712 +}
1713 +alias MCI_BREAK_PARMS* PMCI_BREAK_PARMS, LPMCI_BREAK_PARMS;
1714 +
1715 +struct MCI_SAVE_PARMSA {
1716 + DWORD dwCallback;
1717 + LPCSTR lpfilename;
1718 +}
1719 +alias MCI_SAVE_PARMSA* PMCI_SAVE_PARMSA, LPMCI_SAVE_PARMSA;
1720 +
1721 +struct MCI_SAVE_PARMSW {
1722 + DWORD dwCallback;
1723 + LPCWSTR lpfilename;
1724 +}
1725 +alias MCI_SAVE_PARMSW* PMCI_SAVE_PARMSW, LPMCI_SAVE_PARMSW;
1726 +
1727 +struct MCI_LOAD_PARMSA {
1728 + DWORD dwCallback;
1729 + LPCSTR lpfilename;
1730 +}
1731 +alias MCI_LOAD_PARMSA* PMCI_LOAD_PARMSA, LPMCI_LOAD_PARMSA;
1732 +
1733 +struct MCI_LOAD_PARMSW {
1734 + DWORD dwCallback;
1735 + LPCWSTR lpfilename;
1736 +}
1737 +alias MCI_LOAD_PARMSW* PMCI_LOAD_PARMSW, LPMCI_LOAD_PARMSW;
1738 +
1739 +struct MCI_RECORD_PARMS {
1740 + DWORD dwCallback;
1741 + DWORD dwFrom;
1742 + DWORD dwTo;
1743 +}
1744 +alias MCI_RECORD_PARMS* LPMCI_RECORD_PARMS;
1745 +
1746 +struct MCI_VD_PLAY_PARMS {
1747 + DWORD dwCallback;
1748 + DWORD dwFrom;
1749 + DWORD dwTo;
1750 + DWORD dwSpeed;
1751 +}
1752 +alias MCI_VD_PLAY_PARMS* PMCI_VD_PLAY_PARMS, LPMCI_VD_PLAY_PARMS;
1753 +
1754 +struct MCI_VD_STEP_PARMS {
1755 + DWORD dwCallback;
1756 + DWORD dwFrames;
1757 +}
1758 +alias MCI_VD_STEP_PARMS* PMCI_VD_STEP_PARMS, LPMCI_VD_STEP_PARMS;
1759 +
1760 +struct MCI_VD_ESCAPE_PARMSA {
1761 + DWORD dwCallback;
1762 + LPCSTR lpstrCommand;
1763 +}
1764 +alias MCI_VD_ESCAPE_PARMSA* PMCI_VD_ESCAPE_PARMSA, LPMCI_VD_ESCAPE_PARMSA;
1765 +
1766 +struct MCI_VD_ESCAPE_PARMSW {
1767 + DWORD dwCallback;
1768 + LPCWSTR lpstrCommand;
1769 +}
1770 +alias MCI_VD_ESCAPE_PARMSW* PMCI_VD_ESCAPE_PARMSW, LPMCI_VD_ESCAPE_PARMSW;
1771 +
1772 +struct MCI_WAVE_OPEN_PARMSA {
1773 + DWORD dwCallback;
1774 + MCIDEVICEID wDeviceID;
1775 + LPCSTR lpstrDeviceType;
1776 + LPCSTR lpstrElementName;
1777 + LPCSTR lpstrAlias;
1778 + DWORD dwBufferSeconds;
1779 +}
1780 +alias MCI_WAVE_OPEN_PARMSA* PMCI_WAVE_OPEN_PARMSA, LPMCI_WAVE_OPEN_PARMSA;
1781 +
1782 +struct MCI_WAVE_OPEN_PARMSW {
1783 + DWORD dwCallback;
1784 + MCIDEVICEID wDeviceID;
1785 + LPCWSTR lpstrDeviceType;
1786 + LPCWSTR lpstrElementName;
1787 + LPCWSTR lpstrAlias;
1788 + DWORD dwBufferSeconds;
1789 +}
1790 +alias MCI_WAVE_OPEN_PARMSW* PMCI_WAVE_OPEN_PARMSW, LPMCI_WAVE_OPEN_PARMSW;
1791 +
1792 +struct MCI_WAVE_DELETE_PARMS {
1793 + DWORD dwCallback;
1794 + DWORD dwFrom;
1795 + DWORD dwTo;
1796 +}
1797 +alias MCI_WAVE_DELETE_PARMS* PMCI_WAVE_DELETE_PARMS, LPMCI_WAVE_DELETE_PARMS;
1798 +
1799 +struct MCI_WAVE_SET_PARMS {
1800 + DWORD dwCallback;
1801 + DWORD dwTimeFormat;
1802 + DWORD dwAudio;
1803 + UINT wInput;
1804 + UINT wOutput;
1805 + WORD wFormatTag;
1806 + WORD wReserved2;
1807 + WORD nChannels;
1808 + WORD wReserved3;
1809 + DWORD nSamplesPerSec;
1810 + DWORD nAvgBytesPerSec;
1811 + WORD nBlockAlign;
1812 + WORD wReserved4;
1813 + WORD wBitsPerSample;
1814 + WORD wReserved5;
1815 +}
1816 +alias MCI_WAVE_SET_PARMS* PMCI_WAVE_SET_PARMS, LPMCI_WAVE_SET_PARMS;
1817 +
1818 +extern (Windows):
1819 +LRESULT CloseDriver(HDRVR,LONG,LONG);
1820 +HDRVR OpenDriver(LPCWSTR,LPCWSTR,LONG);
1821 +LRESULT SendDriverMessage(HDRVR,UINT,LONG,LONG);
1822 +HMODULE DrvGetModuleHandle(HDRVR);
1823 +HMODULE GetDriverModuleHandle(HDRVR);
1824 +LRESULT DefDriverProc(DWORD,HDRVR,UINT,LPARAM,LPARAM);
1825 +UINT mmsystemGetVersion();
1826 +// FIXME: I believe this next line is a mistake
1827 +//alias OutputDebugString OutputDebugStr;
1828 +BOOL sndPlaySoundA(LPCSTR,UINT);
1829 +BOOL sndPlaySoundW(LPCWSTR,UINT);
1830 +BOOL PlaySoundA(LPCSTR,HMODULE,DWORD);
1831 +BOOL PlaySoundW(LPCWSTR,HMODULE,DWORD);
1832 +UINT waveOutGetNumDevs();
1833 +MMRESULT waveOutGetDevCapsA(UINT,LPWAVEOUTCAPSA,UINT);
1834 +MMRESULT waveOutGetDevCapsW(UINT,LPWAVEOUTCAPSW,UINT);
1835 +MMRESULT waveOutGetVolume(HWAVEOUT,PDWORD);
1836 +MMRESULT waveOutSetVolume(HWAVEOUT,DWORD);
1837 +MMRESULT waveOutGetErrorTextA(MMRESULT,LPSTR,UINT);
1838 +MMRESULT waveOutGetErrorTextW(MMRESULT,LPWSTR,UINT);
1839 +MMRESULT waveOutOpen(LPHWAVEOUT,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD);
1840 +MMRESULT waveOutClose(HWAVEOUT);
1841 +MMRESULT waveOutPrepareHeader(HWAVEOUT,LPWAVEHDR,UINT);
1842 +MMRESULT waveOutUnprepareHeader(HWAVEOUT,LPWAVEHDR,UINT);
1843 +MMRESULT waveOutWrite(HWAVEOUT,LPWAVEHDR,UINT);
1844 +MMRESULT waveOutPause(HWAVEOUT);
1845 +MMRESULT waveOutRestart(HWAVEOUT);
1846 +MMRESULT waveOutReset(HWAVEOUT);
1847 +MMRESULT waveOutBreakLoop(HWAVEOUT);
1848 +MMRESULT waveOutGetPosition(HWAVEOUT,LPMMTIME,UINT);
1849 +MMRESULT waveOutGetPitch(HWAVEOUT,PDWORD);
1850 +MMRESULT waveOutSetPitch(HWAVEOUT,DWORD);
1851 +MMRESULT waveOutGetPlaybackRate(HWAVEOUT,PDWORD);
1852 +MMRESULT waveOutSetPlaybackRate(HWAVEOUT,DWORD);
1853 +MMRESULT waveOutGetID(HWAVEOUT,LPUINT);
1854 +MMRESULT waveOutMessage(HWAVEOUT,UINT,DWORD,DWORD);
1855 +UINT waveInGetNumDevs();
1856 +MMRESULT waveInGetDevCapsA(UINT,LPWAVEINCAPSA,UINT);
1857 +MMRESULT waveInGetDevCapsW(UINT,LPWAVEINCAPSW,UINT);
1858 +MMRESULT waveInGetErrorTextA(MMRESULT,LPSTR,UINT);
1859 +MMRESULT waveInGetErrorTextW(MMRESULT,LPWSTR,UINT);
1860 +MMRESULT waveInOpen(LPHWAVEIN,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD);
1861 +MMRESULT waveInClose(HWAVEIN);
1862 +MMRESULT waveInPrepareHeader(HWAVEIN,LPWAVEHDR,UINT);
1863 +MMRESULT waveInUnprepareHeader(HWAVEIN,LPWAVEHDR,UINT);
1864 +MMRESULT waveInAddBuffer(HWAVEIN,LPWAVEHDR,UINT);
1865 +MMRESULT waveInStart(HWAVEIN);
1866 +MMRESULT waveInStop(HWAVEIN);
1867 +MMRESULT waveInReset(HWAVEIN);
1868 +MMRESULT waveInGetPosition(HWAVEIN,LPMMTIME,UINT);
1869 +MMRESULT waveInGetID(HWAVEIN,LPUINT);
1870 +MMRESULT waveInMessage(HWAVEIN,UINT,DWORD,DWORD);
1871 +UINT midiOutGetNumDevs();
1872 +MMRESULT midiStreamOpen(LPHMIDISTRM,LPUINT,DWORD,DWORD,DWORD,DWORD);
1873 +MMRESULT midiStreamClose(HMIDISTRM);
1874 +MMRESULT midiStreamProperty(HMIDISTRM,LPBYTE,DWORD);
1875 +MMRESULT midiStreamPosition(HMIDISTRM,LPMMTIME,UINT);
1876 +MMRESULT midiStreamOut(HMIDISTRM,LPMIDIHDR,UINT);
1877 +MMRESULT midiStreamPause(HMIDISTRM);
1878 +MMRESULT midiStreamRestart(HMIDISTRM);
1879 +MMRESULT midiStreamStop(HMIDISTRM);
1880 +MMRESULT midiConnect(HMIDI,HMIDIOUT,PVOID);
1881 +MMRESULT midiDisconnect(HMIDI,HMIDIOUT,PVOID);
1882 +MMRESULT midiOutGetDevCapsA(UINT,LPMIDIOUTCAPSA,UINT);
1883 +MMRESULT midiOutGetDevCapsW(UINT,LPMIDIOUTCAPSW,UINT);
1884 +MMRESULT midiOutGetVolume(HMIDIOUT,PDWORD);
1885 +MMRESULT midiOutSetVolume(HMIDIOUT,DWORD);
1886 +MMRESULT midiOutGetErrorTextA(MMRESULT,LPSTR,UINT);
1887 +MMRESULT midiOutGetErrorTextW(MMRESULT,LPWSTR,UINT);
1888 +MMRESULT midiOutOpen(LPHMIDIOUT,UINT,DWORD,DWORD,DWORD);
1889 +MMRESULT midiOutClose(HMIDIOUT);
1890 +MMRESULT midiOutPrepareHeader(HMIDIOUT,LPMIDIHDR,UINT);
1891 +MMRESULT midiOutUnprepareHeader(HMIDIOUT,LPMIDIHDR,UINT);
1892 +MMRESULT midiOutShortMsg(HMIDIOUT,DWORD);
1893 +MMRESULT midiOutLongMsg(HMIDIOUT,LPMIDIHDR,UINT);
1894 +MMRESULT midiOutReset(HMIDIOUT);
1895 +MMRESULT midiOutCachePatches(HMIDIOUT,UINT,LPWORD,UINT);
1896 +MMRESULT midiOutCacheDrumPatches(HMIDIOUT,UINT,LPWORD,UINT);
1897 +MMRESULT midiOutGetID(HMIDIOUT,LPUINT);
1898 +MMRESULT midiOutMessage(HMIDIOUT,UINT,DWORD,DWORD);
1899 +UINT midiInGetNumDevs();
1900 +MMRESULT midiInGetDevCapsA(UINT,LPMIDIINCAPSA,UINT);
1901 +MMRESULT midiInGetDevCapsW(UINT,LPMIDIINCAPSW,UINT);
1902 +MMRESULT midiInGetErrorTextA(MMRESULT,LPSTR,UINT);
1903 +MMRESULT midiInGetErrorTextW(MMRESULT,LPWSTR,UINT);
1904 +MMRESULT midiInOpen(LPHMIDIIN,UINT,DWORD,DWORD,DWORD);
1905 +MMRESULT midiInClose(HMIDIIN);
1906 +MMRESULT midiInPrepareHeader(HMIDIIN,LPMIDIHDR,UINT);
1907 +MMRESULT midiInUnprepareHeader(HMIDIIN,LPMIDIHDR,UINT);
1908 +MMRESULT midiInAddBuffer(HMIDIIN,LPMIDIHDR,UINT);
1909 +MMRESULT midiInStart(HMIDIIN);
1910 +MMRESULT midiInStop(HMIDIIN);
1911 +MMRESULT midiInReset(HMIDIIN);
1912 +MMRESULT midiInGetID(HMIDIIN,LPUINT);
1913 +MMRESULT midiInMessage(HMIDIIN,UINT,DWORD,DWORD);
1914 +UINT auxGetNumDevs();
1915 +MMRESULT auxGetDevCapsA(UINT,LPAUXCAPSA,UINT);
1916 +MMRESULT auxGetDevCapsW(UINT,LPAUXCAPSW,UINT);
1917 +MMRESULT auxSetVolume(UINT,DWORD);
1918 +MMRESULT auxGetVolume(UINT,PDWORD);
1919 +MMRESULT auxOutMessage(UINT,UINT,DWORD,DWORD);
1920 +UINT mixerGetNumDevs();
1921 +MMRESULT mixerGetDevCapsA(UINT,LPMIXERCAPSA,UINT);
1922 +MMRESULT mixerGetDevCapsW(UINT,LPMIXERCAPSW,UINT);
1923 +MMRESULT mixerOpen(LPHMIXER,UINT,DWORD,DWORD,DWORD);
1924 +MMRESULT mixerClose(HMIXER);
1925 +DWORD mixerMessage(HMIXER,UINT,DWORD,DWORD);
1926 +MMRESULT mixerGetLineInfoA(HMIXEROBJ,LPMIXERLINEA,DWORD);
1927 +MMRESULT mixerGetLineInfoW(HMIXEROBJ,LPMIXERLINEW,DWORD);
1928 +MMRESULT mixerGetID(HMIXEROBJ,PUINT,DWORD);
1929 +MMRESULT mixerGetLineControlsA(HMIXEROBJ,LPMIXERLINECONTROLSA,DWORD);
1930 +MMRESULT mixerGetLineControlsW(HMIXEROBJ,LPMIXERLINECONTROLSW,DWORD);
1931 +MMRESULT mixerGetControlDetailsA(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD);
1932 +MMRESULT mixerGetControlDetailsW(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD);
1933 +MMRESULT mixerSetControlDetails(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD);
1934 +MMRESULT timeGetSystemTime(LPMMTIME,UINT);
1935 +DWORD timeGetTime();
1936 +MMRESULT timeSetEvent(UINT,UINT,LPTIMECALLBACK,DWORD,UINT);
1937 +MMRESULT timeKillEvent(UINT);
1938 +MMRESULT timeGetDevCaps(LPTIMECAPS,UINT);
1939 +MMRESULT timeBeginPeriod(UINT);
1940 +MMRESULT timeEndPeriod(UINT);
1941 +UINT joyGetNumDevs();
1942 +MMRESULT joyGetDevCapsA(UINT,LPJOYCAPSA,UINT);
1943 +MMRESULT joyGetDevCapsW(UINT,LPJOYCAPSW,UINT);
1944 +MMRESULT joyGetPos(UINT,LPJOYINFO);
1945 +MMRESULT joyGetPosEx(UINT,LPJOYINFOEX);
1946 +MMRESULT joyGetThreshold(UINT,LPUINT);
1947 +MMRESULT joyReleaseCapture(UINT);
1948 +MMRESULT joySetCapture(HWND,UINT,UINT,BOOL);
1949 +MMRESULT joySetThreshold(UINT,UINT);
1950 +FOURCC mmioStringToFOURCCA(LPCSTR,UINT);
1951 +FOURCC mmioStringToFOURCCW(LPCWSTR,UINT);
1952 +LPMMIOPROC mmioInstallIOProcA(FOURCC,LPMMIOPROC,DWORD);
1953 +LPMMIOPROC mmioInstallIOProcW(FOURCC,LPMMIOPROC,DWORD);
1954 +HMMIO mmioOpenA(LPSTR,LPMMIOINFO,DWORD);
1955 +HMMIO mmioOpenW(LPWSTR,LPMMIOINFO,DWORD);
1956 +MMRESULT mmioRenameA(LPCSTR,LPCSTR,LPCMMIOINFO,DWORD);
1957 +MMRESULT mmioRenameW(LPCWSTR,LPCWSTR,LPCMMIOINFO,DWORD);
1958 +MMRESULT mmioClose(HMMIO,UINT);
1959 +LONG mmioRead(HMMIO,HPSTR,LONG);
1960 +LONG mmioWrite(HMMIO,LPCSTR,LONG);
1961 +LONG mmioSeek(HMMIO,LONG,int);
1962 +MMRESULT mmioGetInfo(HMMIO,LPMMIOINFO,UINT);
1963 +MMRESULT mmioSetInfo(HMMIO,LPCMMIOINFO,UINT);
1964 +MMRESULT mmioSetBuffer(HMMIO,LPSTR,LONG,UINT);
1965 +MMRESULT mmioFlush(HMMIO,UINT);
1966 +MMRESULT mmioAdvance(HMMIO,LPMMIOINFO,UINT);
1967 +LRESULT mmioSendMessage(HMMIO,UINT,LPARAM,LPARAM);
1968 +MMRESULT mmioDescend(HMMIO,LPMMCKINFO, CPtr!(MMCKINFO),UINT);
1969 +MMRESULT mmioAscend(HMMIO,LPMMCKINFO,UINT);
1970 +MMRESULT mmioCreateChunk(HMMIO,LPMMCKINFO,UINT);
1971 +MCIERROR mciSendCommandA(MCIDEVICEID,UINT,DWORD,DWORD);
1972 +MCIERROR mciSendCommandW(MCIDEVICEID,UINT,DWORD,DWORD);
1973 +MCIERROR mciSendStringA(LPCSTR,LPSTR,UINT,HWND);
1974 +MCIERROR mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND);
1975 +MCIDEVICEID mciGetDeviceIDA(LPCSTR);
1976 +MCIDEVICEID mciGetDeviceIDW(LPCWSTR);
1977 +MCIDEVICEID mciGetDeviceIDFromElementIDA(DWORD,LPCSTR);
1978 +MCIDEVICEID mciGetDeviceIDFromElementIDW(DWORD,LPCWSTR);
1979 +BOOL mciGetErrorStringA(MCIERROR,LPSTR,UINT);
1980 +BOOL mciGetErrorStringW(MCIERROR,LPWSTR,UINT);
1981 +BOOL mciSetYieldProc(MCIDEVICEID,YIELDPROC,DWORD);
1982 +HTASK mciGetCreatorTask(MCIDEVICEID);
1983 +YIELDPROC mciGetYieldProc(MCIDEVICEID,PDWORD);
1984 +
1985 +struct MCI_SEQ_SET_PARMS {
1986 + DWORD dwCallback;
1987 + DWORD dwTimeFormat;
1988 + DWORD dwAudio;
1989 + DWORD dwTempo;
1990 + DWORD dwPort;
1991 + DWORD dwSlave;
1992 + DWORD dwMaster;
1993 + DWORD dwOffset;
1994 +}
1995 +alias MCI_SEQ_SET_PARMS* PMCI_SEQ_SET_PARMS, LPMCI_SEQ_SET_PARMS;
1996 +
1997 +struct MCI_ANIM_OPEN_PARMSA {
1998 + DWORD dwCallback;
1999 + MCIDEVICEID wDeviceID;
2000 + LPCSTR lpstrDeviceType;
2001 + LPCSTR lpstrElementName;
2002 + LPCSTR lpstrAlias;
2003 + DWORD dwStyle;
2004 + HWND hWndParent;
2005 +}
2006 +alias MCI_ANIM_OPEN_PARMSA* PMCI_ANIM_OPEN_PARMSA, LPMCI_ANIM_OPEN_PARMSA;
2007 +
2008 +struct MCI_ANIM_OPEN_PARMSW {
2009 + DWORD dwCallback;
2010 + MCIDEVICEID wDeviceID;
2011 + LPCWSTR lpstrDeviceType;
2012 + LPCWSTR lpstrElementName;
2013 + LPCWSTR lpstrAlias;
2014 + DWORD dwStyle;
2015 + HWND hWndParent;
2016 +}
2017 +alias MCI_ANIM_OPEN_PARMSW* PMCI_ANIM_OPEN_PARMSW, LPMCI_ANIM_OPEN_PARMSW;
2018 +
2019 +struct MCI_ANIM_PLAY_PARMS {
2020 + DWORD dwCallback;
2021 + DWORD dwFrom;
2022 + DWORD dwTo;
2023 + DWORD dwSpeed;
2024 +}
2025 +alias MCI_ANIM_PLAY_PARMS* PMCI_ANIM_PLAY_PARMS, LPMCI_ANIM_PLAY_PARMS;
2026 +
2027 +struct MCI_ANIM_STEP_PARMS {
2028 + DWORD dwCallback;
2029 + DWORD dwFrames;
2030 +}
2031 +alias MCI_ANIM_STEP_PARMS* PMCI_ANIM_STEP_PARMS, LPMCI_ANIM_STEP_PARMS;
2032 +
2033 +struct MCI_ANIM_WINDOW_PARMSA {
2034 + DWORD dwCallback;
2035 + HWND hWnd;
2036 + UINT nCmdShow;
2037 + LPCSTR lpstrText;
2038 +}
2039 +alias MCI_ANIM_WINDOW_PARMSA* PMCI_ANIM_WINDOW_PARMSA, LPMCI_ANIM_WINDOW_PARMSA;
2040 +
2041 +struct MCI_ANIM_WINDOW_PARMSW {
2042 + DWORD dwCallback;
2043 + HWND hWnd;
2044 + UINT nCmdShow;
2045 + LPCWSTR lpstrText;
2046 +}
2047 +alias MCI_ANIM_WINDOW_PARMSW* PMCI_ANIM_WINDOW_PARMSW, LPMCI_ANIM_WINDOW_PARMSW;
2048 +
2049 +struct MCI_ANIM_RECT_PARMS {
2050 + DWORD dwCallback;
2051 + //#ifdef MCI_USE_OFFEXT
2052 + // POINT ptOffset;
2053 + // POINT ptExtent;
2054 + //#else
2055 + RECT rc;
2056 + //#endif
2057 +}
2058 +alias MCI_ANIM_RECT_PARMS* PMCI_ANIM_RECT_PARMS, LPMCI_ANIM_RECT_PARMS;
2059 +
2060 +struct MCI_ANIM_UPDATE_PARMS {
2061 + DWORD dwCallback;
2062 + RECT rc;
2063 + HDC hDC;
2064 +}
2065 +alias MCI_ANIM_UPDATE_PARMS* PMCI_ANIM_UPDATE_PARMS, LPMCI_ANIM_UPDATE_PARMS;
2066 +
2067 +struct MCI_OVLY_OPEN_PARMSA {
2068 + DWORD dwCallback;
2069 + MCIDEVICEID wDeviceID;
2070 + LPCSTR lpstrDeviceType;
2071 + LPCSTR lpstrElementName;
2072 + LPCSTR lpstrAlias;
2073 + DWORD dwStyle;
2074 + HWND hWndParent;
2075 +}
2076 +alias MCI_OVLY_OPEN_PARMSA* PMCI_OVLY_OPEN_PARMSA, LPMCI_OVLY_OPEN_PARMSA;
2077 +
2078 +struct MCI_OVLY_OPEN_PARMSW {
2079 + DWORD dwCallback;
2080 + MCIDEVICEID wDeviceID;
2081 + LPCWSTR lpstrDeviceType;
2082 + LPCWSTR lpstrElementName;
2083 + LPCWSTR lpstrAlias;
2084 + DWORD dwStyle;
2085 + HWND hWndParent;
2086 +}
2087 +alias MCI_OVLY_OPEN_PARMSW* PMCI_OVLY_OPEN_PARMSW, LPMCI_OVLY_OPEN_PARMSW;
859 2088
860 -// #if(WINVER >= 0x0400)
861 -
862 -enum : uint { MIDI_IO_STATUS = 0x00000020 }
863 -// #endif /* WINVER >= 0x0400 */
2089 +struct MCI_OVLY_WINDOW_PARMSA {
2090 + DWORD dwCallback;
2091 + HWND hWnd;
2092 + UINT nCmdShow;
2093 + LPCSTR lpstrText;
2094 +}
2095 +alias MCI_OVLY_WINDOW_PARMSA* PMCI_OVLY_WINDOW_PARMSA, LPMCI_OVLY_WINDOW_PARMSA;
864 2096
865 -enum : uint { MIDI_CACHE_ALL = 1 }
866 -enum : uint { MIDI_CACHE_BESTFIT = 2 }
867 -enum : uint { MIDI_CACHE_QUERY = 3 }
868 -enum : uint { MIDI_UNCACHE = 4 }
869 -
870 -// #ifdef _WIN32
871 -
872 -struct tagMIDIOUTCAPSA {
873 - WORD wMid;
874 - WORD wPid;
875 - MMVERSION vDriverVersion;
876 - CHAR szPname[MAXPNAMELEN];
877 - WORD wTechnology;
878 - WORD wVoices;
879 - WORD wNotes;
880 - WORD wChannelMask;
881 - DWORD dwSupport;
2097 +struct MCI_OVLY_WINDOW_PARMSW {
2098 + DWORD dwCallback;
2099 + HWND hWnd;
2100 + UINT nCmdShow;
2101 + LPCWSTR lpstrText;
882 2102 }
883 -alias tagMIDIOUTCAPSA MIDIOUTCAPSA;
884 -alias tagMIDIOUTCAPSA* PMIDIOUTCAPSA;
885 -alias tagMIDIOUTCAPSA* NPMIDIOUTCAPSA;
886 -alias tagMIDIOUTCAPSA* LPMIDIOUTCAPSA;
2103 +alias MCI_OVLY_WINDOW_PARMSW* PMCI_OVLY_WINDOW_PARMSW, LPMCI_OVLY_WINDOW_PARMSW;
887 2104
888 -struct tagMIDIOUTCAPSW {
889 - WORD wMid;
890 - WORD wPid;
891 - MMVERSION vDriverVersion;
892 - WCHAR szPname[MAXPNAMELEN];
893 - WORD wTechnology;
894 - WORD wVoices;
895 - WORD wNotes;
896 - WORD wChannelMask;
897 - DWORD dwSupport;
2105 +struct MCI_OVLY_RECT_PARMS {
2106 + DWORD dwCallback;
2107 + //#ifdef MCI_USE_OFFEXT
2108 + // POINT ptOffset;
2109 + // POINT ptExtent;
2110 + //#else
2111 + RECT rc;
2112 + //#endif
898 2113 }
899 -alias tagMIDIOUTCAPSW MIDIOUTCAPSW;
900 -alias tagMIDIOUTCAPSW* PMIDIOUTCAPSW;
901 -alias tagMIDIOUTCAPSW* NPMIDIOUTCAPSW;
902 -alias tagMIDIOUTCAPSW* LPMIDIOUTCAPSW;
2114 +alias MCI_OVLY_RECT_PARMS* PMCI_OVLY_RECT_PARMS, LPMCI_OVLY_RECT_PARMS;
903 2115
904 -// #ifdef UNICODE
905 -alias MIDIOUTCAPSW MIDIOUTCAPS;
906 -alias PMIDIOUTCAPSW PMIDIOUTCAPS;
907 -alias NPMIDIOUTCAPSW NPMIDIOUTCAPS;
908 -alias LPMIDIOUTCAPSW LPMIDIOUTCAPS;
909 -// #else
910 -// ...
911 -// #endif // UNICODE
912 -struct tagMIDIOUTCAPS2A {
913 - WORD wMid;
914 - WORD wPid;
915 - MMVERSION vDriverVersion;
916 - CHAR szPname[MAXPNAMELEN];
917 - WORD wTechnology;
918 - WORD wVoices;
919 - WORD wNotes;
920 - WORD wChannelMask;
921 - DWORD dwSupport;
922 - GUID ManufacturerGuid;
923 - GUID ProductGuid;
924 - GUID NameGuid;
2116 +struct MCI_OVLY_SAVE_PARMSA {
2117 + DWORD dwCallback;
2118 + LPCSTR lpfilename;
2119 + RECT rc;
925 2120 }
926 -alias tagMIDIOUTCAPS2A MIDIOUTCAPS2A;
927 -alias tagMIDIOUTCAPS2A* PMIDIOUTCAPS2A;
928 -alias tagMIDIOUTCAPS2A* NPMIDIOUTCAPS2A;
929 -alias tagMIDIOUTCAPS2A* LPMIDIOUTCAPS2A;
2121 +alias MCI_OVLY_SAVE_PARMSA* PMCI_OVLY_SAVE_PARMSA, LPMCI_OVLY_SAVE_PARMSA;
930 2122
931 -struct tagMIDIOUTCAPS2W {
932 - WORD wMid;
933 - WORD wPid;
934 - MMVERSION vDriverVersion;
935 - WCHAR szPname[MAXPNAMELEN];
936 - WORD wTechnology;
937 - WORD wVoices;
938 - WORD wNotes;
939 - WORD wChannelMask;
940 - DWORD dwSupport;
941 - GUID ManufacturerGuid;
942 - GUID ProductGuid;
943 - GUID NameGuid;
944 -}
945 -alias tagMIDIOUTCAPS2W MIDIOUTCAPS2W;
946 -alias tagMIDIOUTCAPS2W* PMIDIOUTCAPS2W;
947 -alias tagMIDIOUTCAPS2W* NPMIDIOUTCAPS2W;
948 -alias tagMIDIOUTCAPS2W* LPMIDIOUTCAPS2W;
949 -
950 -// #ifdef UNICODE
951 -alias MIDIOUTCAPS2W MIDIOUTCAPS2;
952 -alias PMIDIOUTCAPS2W PMIDIOUTCAPS2;
953 -alias NPMIDIOUTCAPS2W NPMIDIOUTCAPS2;
954 -alias LPMIDIOUTCAPS2W LPMIDIOUTCAPS2;
955 -// #else
956 -// ...
957 -// #endif // UNICODE
958 -
959 -// #else
960 -// ...
961 -// #endif
962 -
963 -enum : uint { MOD_MIDIPORT = 1 }
964 -enum : uint { MOD_SYNTH = 2 }
965 -enum : uint { MOD_SQSYNTH = 3 }
966 -enum : uint { MOD_FMSYNTH = 4 }
967 -enum : uint { MOD_MAPPER = 5 }
968 -enum : uint { MOD_WAVETABLE = 6 }
969 -enum : uint { MOD_SWSYNTH = 7 }
970 -
971 -enum : uint { MIDICAPS_VOLUME = 0x0001 }
972 -enum : uint { MIDICAPS_LRVOLUME = 0x0002 }
973 -enum : uint { MIDICAPS_CACHE = 0x0004 }
974 -// #if(WINVER >= 0x0400)
975 -enum : uint { MIDICAPS_STREAM = 0x0008 }
976 -// #endif /* WINVER >= 0x0400 */
977 -
978 -// #ifdef _WIN32
979 -
980 -struct tagMIDIINCAPSA {
981 - WORD wMid;
982 - WORD wPid;
983 - MMVERSION vDriverVersion;
984 - CHAR szPname[MAXPNAMELEN];
985 -// #if (WINVER >= 0x0400)
986 - DWORD dwSupport;
987 -// #endif
2123 +struct MCI_OVLY_SAVE_PARMSW {
2124 + DWORD dwCallback;
2125 + LPCWSTR lpfilename;
2126 + RECT rc;
988 2127 }
989 -alias tagMIDIINCAPSA MIDIINCAPSA;
990 -alias tagMIDIINCAPSA* PMIDIINCAPSA;
991 -alias tagMIDIINCAPSA* NPMIDIINCAPSA;
992 -alias tagMIDIINCAPSA* LPMIDIINCAPSA;
2128 +alias MCI_OVLY_SAVE_PARMSW* PMCI_OVLY_SAVE_PARMSW, LPMCI_OVLY_SAVE_PARMSW;
993 2129
994 -struct tagMIDIINCAPSW {
995 - WORD wMid;
996 - WORD wPid;
997 - MMVERSION vDriverVersion;
998 - WCHAR szPname[MAXPNAMELEN];
999 -// #if (WINVER >= 0x0400)
1000 - DWORD dwSupport;
1001 -// #endif
1002 -}
1003 -alias tagMIDIINCAPSW MIDIINCAPSW;
1004 -alias tagMIDIINCAPSW* PMIDIINCAPSW;
1005 -alias tagMIDIINCAPSW* NPMIDIINCAPSW;
1006 -alias tagMIDIINCAPSW* LPMIDIINCAPSW;
1007 -
1008 -// #ifdef UNICODE
1009 -alias MIDIINCAPSW MIDIINCAPS;
1010 -alias PMIDIINCAPSW PMIDIINCAPS;
1011 -alias NPMIDIINCAPSW NPMIDIINCAPS;
1012 -alias LPMIDIINCAPSW LPMIDIINCAPS;
1013 -// #else
1014 -// ...
1015 -// #endif // UNICODE
1016 -struct tagMIDIINCAPS2A {
1017 - WORD wMid;
1018 - WORD wPid;
1019 - MMVERSION vDriverVersion;
1020 - CHAR szPname[MAXPNAMELEN];
1021 -// #if (WINVER >= 0x0400)
1022 - DWORD dwSupport;
1023 -// #endif
1024 - GUID ManufacturerGuid;
1025 - GUID ProductGuid;
1026 - GUID NameGuid;
1027 -}
1028 -alias tagMIDIINCAPS2A MIDIINCAPS2A;
1029 -alias tagMIDIINCAPS2A* PMIDIINCAPS2A;
1030 -alias tagMIDIINCAPS2A* NPMIDIINCAPS2A;
1031 -alias tagMIDIINCAPS2A* LPMIDIINCAPS2A;
1032 -
1033 -struct tagMIDIINCAPS2W {
1034 - WORD wMid;
1035 - WORD wPid;
1036 - MMVERSION vDriverVersion;
1037 - WCHAR szPname[MAXPNAMELEN];
1038 -// #if (WINVER >= 0x0400)
1039 - DWORD dwSupport;
1040 -// #endif
1041 - GUID ManufacturerGuid;
1042 - GUID ProductGuid;
1043 - GUID NameGuid;
1044 -}
1045 -alias tagMIDIINCAPS2W MIDIINCAPS2W;
1046 -alias tagMIDIINCAPS2W* PMIDIINCAPS2W;
1047 -alias tagMIDIINCAPS2W* NPMIDIINCAPS2W;
1048 -alias tagMIDIINCAPS2W* LPMIDIINCAPS2W;
1049 -
1050 -// #ifdef UNICODE
1051 -alias MIDIINCAPS2W MIDIINCAPS2;
1052 -alias PMIDIINCAPS2W PMIDIINCAPS2;
1053 -alias NPMIDIINCAPS2W NPMIDIINCAPS2;
1054 -alias LPMIDIINCAPS2W LPMIDIINCAPS2;
1055 -// #else
1056 -// ...
1057 -// #endif // UNICODE
1058 -
1059 -// #else
1060 -// ...
1061 -// #if (WINVER >= 0x0400)
1062 -// ...
1063 -// #endif
1064 -// ...
1065 -// #endif
1066 -
1067 -struct midihdr_tag {
1068 - LPSTR lpData;
1069 - DWORD dwBufferLength;
1070 - DWORD dwBytesRecorded;
1071 - DWORD_PTR dwUser;
1072 - DWORD dwFlags;
1073 - midihdr_tag *lpNext;
1074 - DWORD_PTR reserved;
1075 -// #if (WINVER >= 0x0400)
1076 - DWORD dwOffset;
1077 - DWORD_PTR dwReserved[8];
1078 -// #endif
1079 -}
1080 -alias midihdr_tag MIDIHDR;
1081 -alias midihdr_tag* PMIDIHDR;
1082 -alias midihdr_tag* NPMIDIHDR;
1083 -alias midihdr_tag* LPMIDIHDR;
1084 -
1085 -// #if(WINVER >= 0x0400)
1086 -struct midievent_tag {
1087 - DWORD dwDeltaTime;
1088 - DWORD dwStreamID;
1089 - DWORD dwEvent;
1090 - DWORD dwParms[1];
1091 -}
1092 -alias midievent_tag MIDIEVENT;
1093 -
1094 -struct midistrmbuffver_tag {
1095 - DWORD dwVersion;
1096 - DWORD dwMid;
1097 - DWORD dwOEMVersion;
1098 -}
1099 -alias midistrmbuffver_tag MIDISTRMBUFFVER;
1100 -
1101 -// #endif /* WINVER >= 0x0400 */
1102 -
1103 -enum : uint { MHDR_DONE = 0x00000001 }
1104 -enum : uint { MHDR_PREPARED = 0x00000002 }
1105 -enum : uint { MHDR_INQUEUE = 0x00000004 }
1106 -enum : uint { MHDR_ISSTRM = 0x00000008 }
1107 -// #if(WINVER >= 0x0400)
1108 -
1109 -enum : uint { MEVT_F_SHORT = 0x00000000 }
1110 -enum : uint { MEVT_F_LONG = 0x80000000 }
1111 -enum : uint { MEVT_F_CALLBACK = 0x40000000 }
1112 -
1113 -// #define MEVT_EVENTTYPE(x) ((BYTE)(((x)>>24)&0xFF))
1114 -// #define MEVT_EVENTPARM(x) ((DWORD)((x)&0x00FFFFFFL))
1115 -
1116 -enum : uint { MEVT_SHORTMSG = cast(BYTE)0x00 }
1117 -enum : uint { MEVT_TEMPO = cast(BYTE)0x01 }
1118 -enum : uint { MEVT_NOP = cast(BYTE)0x02 }
1119 -
1120 -enum : uint { MEVT_LONGMSG = cast(BYTE)0x80 }
1121 -enum : uint { MEVT_COMMENT = cast(BYTE)0x82 }
1122 -enum : uint { MEVT_VERSION = cast(BYTE)0x84 }
1123 -
1124 -enum { MIDISTRM_ERROR = -2 }
1125 -
1126 -enum : uint { MIDIPROP_SET = 0x80000000 }
1127 -enum : uint { MIDIPROP_GET = 0x40000000 }
1128 -
1129 -enum : uint { MIDIPROP_TIMEDIV = 0x00000001 }
1130 -enum : uint { MIDIPROP_TEMPO = 0x00000002 }
1131 -
1132 -struct midiproptimediv_tag {
1133 - DWORD cbStruct;
1134 - DWORD dwTimeDiv;
2130 +struct MCI_OVLY_LOAD_PARMSA {
2131 + DWORD dwCallback;
2132 + LPCSTR lpfilename;
2133 + RECT rc;
1135 2134 }
1136 -alias midiproptimediv_tag MIDIPROPTIMEDIV;
1137 -alias midiproptimediv_tag* LPMIDIPROPTIMEDIV;
2135 +alias MCI_OVLY_LOAD_PARMSA* PMCI_OVLY_LOAD_PARMSA, LPMCI_OVLY_LOAD_PARMSA;
1138 2136
1139 -struct midiproptempo_tag {
1140 - DWORD cbStruct;
1141 - DWORD dwTempo;
1142 -}
1143 -alias midiproptempo_tag MIDIPROPTEMPO;
1144 -alias midiproptempo_tag* LPMIDIPROPTEMPO;
1145 -
1146 -// #endif /* WINVER >= 0x0400 */
1147 -
1148 -extern(Windows) export UINT midiOutGetNumDevs();
1149 -// #if(WINVER >= 0x0400)
1150 -extern(Windows) export MMRESULT midiStreamOpen(LPHMIDISTRM phms, LPUINT puDeviceID, DWORD cMidi, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
1151 -extern(Windows) export MMRESULT midiStreamClose(HMIDISTRM hms);
1152 -
1153 -extern(Windows) export MMRESULT midiStreamProperty(HMIDISTRM hms, LPBYTE lppropdata, DWORD dwProperty);
1154 -extern(Windows) export MMRESULT midiStreamPosition(HMIDISTRM hms, LPMMTIME lpmmt, UINT cbmmt);
1155 -
1156 -extern(Windows) export MMRESULT midiStreamOut(HMIDISTRM hms, LPMIDIHDR pmh, UINT cbmh);
1157 -extern(Windows) export MMRESULT midiStreamPause(HMIDISTRM hms);
1158 -extern(Windows) export MMRESULT midiStreamRestart(HMIDISTRM hms);
1159 -extern(Windows) export MMRESULT midiStreamStop(HMIDISTRM hms);
1160 -
1161 -// #ifdef _WIN32
1162 -extern(Windows) export MMRESULT midiConnect(HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved);
1163 -extern(Windows) export MMRESULT midiDisconnect(HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved);
1164 -// #endif
1165 -// #endif /* WINVER >= 0x0400 */
1166 -
1167 -// #ifdef _WIN32
1168 -
1169 -extern(Windows) export MMRESULT midiOutGetDevCapsA(UINT_PTR uDeviceID, LPMIDIOUTCAPSA pmoc, UINT cbmoc);
1170 -extern(Windows) export MMRESULT midiOutGetDevCapsW(UINT_PTR uDeviceID, LPMIDIOUTCAPSW pmoc, UINT cbmoc);
1171 -// #ifdef UNICODE
1172 -alias midiOutGetDevCapsW midiOutGetDevCaps;
1173 -// #else
1174 -// #...
1175 -// #endif // !UNICODE
1176 -
1177 -// #else
1178 -// ...
1179 -// #endif
1180 -
1181 -// #if (WINVER >= 0x0400)
1182 -extern(Windows) export MMRESULT midiOutGetVolume(HMIDIOUT hmo, LPDWORD pdwVolume);
1183 -extern(Windows) export MMRESULT midiOutSetVolume(HMIDIOUT hmo, DWORD dwVolume);
1184 -// #else
1185 -// ...
1186 -// #endif
1187 -
1188 -// #ifdef _WIN32
1189 -
1190 -extern(Windows) export MMRESULT midiOutGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText);
1191 -extern(Windows) export MMRESULT midiOutGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText);
1192 -// #ifdef UNICODE
1193 -alias midiOutGetErrorTextW midiOutGetErrorText;
1194 -// #else
1195 -// #...
1196 -// #endif // !UNICODE
1197 -
1198 -// #else
1199 -// ...
1200 -// #endif
1201 -
1202 -extern(Windows) export MMRESULT midiOutOpen(LPHMIDIOUT phmo, UINT uDeviceID,
1203 - DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
1204 -extern(Windows) export MMRESULT midiOutClose(HMIDIOUT hmo);
1205 -extern(Windows) export MMRESULT midiOutPrepareHeader(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh);
1206 -extern(Windows) export MMRESULT midiOutUnprepareHeader(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh);
1207 -extern(Windows) export MMRESULT midiOutShortMsg(HMIDIOUT hmo, DWORD dwMsg);
1208 -extern(Windows) export MMRESULT midiOutLongMsg(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh);
1209 -extern(Windows) export MMRESULT midiOutReset(HMIDIOUT hmo);
1210 -extern(Windows) export MMRESULT midiOutCachePatches(HMIDIOUT hmo, UINT uBank, LPWORD pwpa, UINT fuCache);
1211 -extern(Windows) export MMRESULT midiOutCacheDrumPatches(HMIDIOUT hmo, UINT uPatch, LPWORD pwkya, UINT fuCache);
1212 -extern(Windows) export MMRESULT midiOutGetID(HMIDIOUT hmo, LPUINT puDeviceID);
1213 -
1214 -// #if (WINVER >= 0x030a)
1215 -// #ifdef _WIN32
1216 -extern(Windows) export MMRESULT midiOutMessage(HMIDIOUT hmo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
1217 -// #else
1218 -// ...
1219 -// #endif
1220 -// #endif /* ifdef WINVER >= 0x030a */
1221 -
1222 -extern(Windows) export UINT midiInGetNumDevs();
1223 -
1224 -// #ifdef _WIN32
1225 -
1226 -extern(Windows) export MMRESULT midiInGetDevCapsA(UINT_PTR uDeviceID, LPMIDIINCAPSA pmic, UINT cbmic);
1227 -extern(Windows) export MMRESULT midiInGetDevCapsW(UINT_PTR uDeviceID, LPMIDIINCAPSW pmic, UINT cbmic);
1228 -// #ifdef UNICODE
1229 -alias midiInGetDevCapsW midiInGetDevCaps;
1230 -// #else
1231 -// #...
1232 -// #endif // !UNICODE
1233 -extern(Windows) export MMRESULT midiInGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText);
1234 -extern(Windows) export MMRESULT midiInGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText);
1235 -// #ifdef UNICODE
1236 -alias midiInGetErrorTextW midiInGetErrorText;
1237 -// #else
1238 -// #...
1239 -// #endif // !UNICODE
1240 -
1241 -// #else
1242 -// ...
1243 -// #endif
1244 -
1245 -extern(Windows) export MMRESULT midiInOpen(LPHMIDIIN phmi, UINT uDeviceID,
1246 - DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
1247 -extern(Windows) export MMRESULT midiInClose(HMIDIIN hmi);
1248 -extern(Windows) export MMRESULT midiInPrepareHeader(HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh);
1249 -extern(Windows) export MMRESULT midiInUnprepareHeader(HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh);
1250 -extern(Windows) export MMRESULT midiInAddBuffer(HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh);
1251 -extern(Windows) export MMRESULT midiInStart(HMIDIIN hmi);
1252 -extern(Windows) export MMRESULT midiInStop(HMIDIIN hmi);
1253 -extern(Windows) export MMRESULT midiInReset(HMIDIIN hmi);
1254 -extern(Windows) export MMRESULT midiInGetID(HMIDIIN hmi, LPUINT puDeviceID);
1255 -
1256 -// #if (WINVER >= 0x030a)
1257 -// #ifdef _WIN32
1258 -extern(Windows) export MMRESULT midiInMessage(HMIDIIN hmi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
1259 -// #else
1260 -// ...
1261 -// #endif
1262 -// #endif /* ifdef WINVER >= 0x030a */
1263 -
1264 -// #endif /* ifndef MMNOMIDI */
1265 -
1266 -// #ifndef MMNOAUX
1267 -
1268 -enum : uint { AUX_MAPPER = cast(UINT)-1 }
1269 -
1270 -// #ifdef _WIN32
1271 -
1272 -struct tagAUXCAPSA {
1273 - WORD wMid;
1274 - WORD wPid;
1275 - MMVERSION vDriverVersion;
1276 - CHAR szPname[MAXPNAMELEN];
1277 - WORD wTechnology;
1278 - WORD wReserved1;
1279 - DWORD dwSupport;
1280 -}
1281 -alias tagAUXCAPSA AUXCAPSA;
1282 -alias tagAUXCAPSA* PAUXCAPSA;
1283 -alias tagAUXCAPSA* NPAUXCAPSA;
1284 -alias tagAUXCAPSA* LPAUXCAPSA;
1285 -
1286 -struct tagAUXCAPSW {
1287 - WORD wMid;
1288 - WORD wPid;
1289 - MMVERSION vDriverVersion;
1290 - WCHAR szPname[MAXPNAMELEN];
1291 - WORD wTechnology;
1292 - WORD wReserved1;
1293 - DWORD dwSupport;
1294 -}
1295 -alias tagAUXCAPSW AUXCAPSW;
1296 -alias tagAUXCAPSW* PAUXCAPSW;
1297 -alias tagAUXCAPSW* NPAUXCAPSW;
1298 -alias tagAUXCAPSW* LPAUXCAPSW;
1299 -
1300 -// #ifdef UNICODE
1301 -alias AUXCAPSW AUXCAPS;
1302 -alias PAUXCAPSW PAUXCAPS;
1303 -alias NPAUXCAPSW NPAUXCAPS;
1304 -alias LPAUXCAPSW LPAUXCAPS;
1305 -// #else
1306 -// ...
1307 -// #endif // UNICODE
1308 -struct tagAUXCAPS2A {
1309 - WORD wMid;
1310 - WORD wPid;
1311 - MMVERSION vDriverVersion;
1312 - CHAR szPname[MAXPNAMELEN];
1313 - WORD wTechnology;
1314 - WORD wReserved1;
1315 - DWORD dwSupport;
1316 - GUID ManufacturerGuid;
1317 - GUID ProductGuid;
1318 - GUID NameGuid;
1319 -}
1320 -alias tagAUXCAPS2A AUXCAPS2A;
1321 -alias tagAUXCAPS2A* PAUXCAPS2A;
1322 -alias tagAUXCAPS2A* NPAUXCAPS2A;
1323 -alias tagAUXCAPS2A* LPAUXCAPS2A;
1324 -
1325 -struct tagAUXCAPS2W {
1326 - WORD wMid;
1327 - WORD wPid;
1328 - MMVERSION vDriverVersion;
1329 - WCHAR szPname[MAXPNAMELEN];
1330 - WORD wTechnology;
1331 - WORD wReserved1;
1332 - DWORD dwSupport;
1333 - GUID ManufacturerGuid;
1334 - GUID ProductGuid;
1335 - GUID NameGuid;
1336 -}
1337 -alias tagAUXCAPS2W AUXCAPS2W;
1338 -alias tagAUXCAPS2W* PAUXCAPS2W;
1339 -alias tagAUXCAPS2W* NPAUXCAPS2W;
1340 -alias tagAUXCAPS2W* LPAUXCAPS2W;
1341 -
1342 -// #ifdef UNICODE
1343 -alias AUXCAPS2W AUXCAPS2;
1344 -alias PAUXCAPS2W PAUXCAPS2;
1345 -alias NPAUXCAPS2W NPAUXCAPS2;
1346 -alias LPAUXCAPS2W LPAUXCAPS2;
1347 -// #else
1348 -// ...
1349 -// #endif // UNICODE
1350 -
1351 -// #else
1352 -// ...
1353 -// #endif
1354 -
1355 -enum : uint { AUXCAPS_CDAUDIO = 1 }
1356 -enum : uint { AUXCAPS_AUXIN = 2 }
1357 -
1358 -enum : uint { AUXCAPS_VOLUME = 0x0001 }
1359 -enum : uint { AUXCAPS_LRVOLUME = 0x0002 }
1360 -
1361 -extern(Windows) export UINT auxGetNumDevs();
1362 -// #ifdef _WIN32
1363 -
1364 -extern(Windows) export MMRESULT auxGetDevCapsA(UINT_PTR uDeviceID, LPAUXCAPSA pac, UINT cbac);
1365 -extern(Windows) export MMRESULT auxGetDevCapsW(UINT_PTR uDeviceID, LPAUXCAPSW pac, UINT cbac);
1366 -// #ifdef UNICODE
1367 -alias auxGetDevCapsW auxGetDevCaps;
1368 -// #else
1369 -// #...
1370 -// #endif // !UNICODE
1371 -
1372 -// #else
1373 -// ...
1374 -// #endif
1375 -extern(Windows) export MMRESULT auxSetVolume(UINT uDeviceID, DWORD dwVolume);
1376 -extern(Windows) export MMRESULT auxGetVolume(UINT uDeviceID, LPDWORD pdwVolume);
1377 -
1378 -// #if (WINVER >= 0x030a)
1379 -// #ifdef _WIN32
1380 -extern(Windows) export MMRESULT auxOutMessage(UINT uDeviceID, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
1381 -// #else
1382 -// ...
1383 -// #endif
1384 -// #endif /* ifdef WINVER >= 0x030a */
1385 -
1386 -// #endif /* ifndef MMNOAUX */
1387 -
1388 -// #ifndef MMNOMIXER
1389 -
1390 -alias void* HMIXEROBJ;
1391 -alias HMIXEROBJ* LPHMIXEROBJ;
1392 -
1393 -alias void* HMIXER;
1394 -alias HMIXER* LPHMIXER;
1395 -
1396 -enum : uint { MIXER_SHORT_NAME_CHARS = 16 }
1397 -enum : uint { MIXER_LONG_NAME_CHARS = 64 }
1398 -
1399 -enum : uint { MIXERR_INVALLINE = MIXERR_BASE + 0 }
1400 -enum : uint { MIXERR_INVALCONTROL = MIXERR_BASE + 1 }
1401 -enum : uint { MIXERR_INVALVALUE = MIXERR_BASE + 2 }
1402 -enum : uint { MIXERR_LASTERROR = MIXERR_BASE + 2 }
1403 -
1404 -enum : uint { MIXER_OBJECTF_HANDLE = 0x80000000 }
1405 -enum : uint { MIXER_OBJECTF_MIXER = 0x00000000 }
1406 -enum : uint { MIXER_OBJECTF_HMIXER = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER }
1407 -enum : uint { MIXER_OBJECTF_WAVEOUT = 0x10000000 }
1408 -enum : uint { MIXER_OBJECTF_HWAVEOUT = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT }
1409 -enum : uint { MIXER_OBJECTF_WAVEIN = 0x20000000 }
1410 -enum : uint { MIXER_OBJECTF_HWAVEIN = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN }
1411 -enum : uint { MIXER_OBJECTF_MIDIOUT = 0x30000000 }
1412 -enum : uint { MIXER_OBJECTF_HMIDIOUT = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT }
1413 -enum : uint { MIXER_OBJECTF_MIDIIN = 0x40000000 }
1414 -enum : uint { MIXER_OBJECTF_HMIDIIN = MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN }
1415 -enum : uint { MIXER_OBJECTF_AUX = 0x50000000 }
1416 -
1417 -extern(Windows) export UINT mixerGetNumDevs();
1418 -
1419 -// #ifdef _WIN32
1420 -
1421 -struct tagMIXERCAPSA {
1422 - WORD wMid;
1423 - WORD wPid;
1424 - MMVERSION vDriverVersion;
1425 - CHAR szPname[MAXPNAMELEN];
1426 - DWORD fdwSupport;
1427 - DWORD cDestinations;
2137 +struct MCI_OVLY_LOAD_PARMSW {
2138 + DWORD dwCallback;
2139 + LPCWSTR lpfilename;
2140 + RECT rc;
1428 2141 }
1429 -alias tagMIXERCAPSA MIXERCAPSA;
1430 -alias tagMIXERCAPSA* PMIXERCAPSA;
1431 -alias tagMIXERCAPSA* LPMIXERCAPSA;
2142 +alias MCI_OVLY_LOAD_PARMSW* PMCI_OVLY_LOAD_PARMSW, LPMCI_OVLY_LOAD_PARMSW;
1432 2143
1433 -struct tagMIXERCAPSW {
1434 - WORD wMid;
1435 - WORD wPid;
1436 - MMVERSION vDriverVersion;
1437 - WCHAR szPname[MAXPNAMELEN];
1438 - DWORD fdwSupport;
1439 - DWORD cDestinations;
1440 -}
1441 -alias tagMIXERCAPSW MIXERCAPSW;
1442 -alias tagMIXERCAPSW* PMIXERCAPSW;
1443 -alias tagMIXERCAPSW* LPMIXERCAPSW;
2144 +version(Unicode) {
2145 + alias WAVEOUTCAPSW WAVEOUTCAPS;
2146 + alias WAVEINCAPSW WAVEINCAPS;
2147 + alias MIDIOUTCAPSW MIDIOUTCAPS;
2148 + alias MIDIINCAPSW MIDIINCAPS;
2149 + alias AUXCAPSW AUXCAPS;
2150 + alias MIXERCAPSW MIXERCAPS;
2151 + alias MIXERLINEW MIXERLINE;
2152 + alias MIXERCONTROLA MIXERCONTROL;
2153 + alias MIXERLINECONTROLSW MIXERLINECONTROLS;
2154 + alias MIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXT;
2155 + alias JOYCAPSW JOYCAPS;
2156 + alias MCI_OPEN_PARMSW MCI_OPEN_PARMS;
2157 + alias MCI_INFO_PARMSW MCI_INFO_PARMS;
2158 + alias MCI_SYSINFO_PARMSW MCI_SYSINFO_PARMS;
2159 + alias MCI_SAVE_PARMSW MCI_SAVE_PARMS;
2160 + alias MCI_LOAD_PARMSW MCI_LOAD_PARMS;
2161 + alias MCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMS;
2162 + alias MCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMS;
2163 + alias MCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMS;
2164 + alias MCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMS;
2165 + alias MCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMS;
2166 + alias MCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMS;
2167 + alias MCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMS;
1444 2168
1445 -// #ifdef UNICODE
1446 -alias MIXERCAPSW MIXERCAPS;
1447 -alias PMIXERCAPSW PMIXERCAPS;
1448 -alias LPMIXERCAPSW LPMIXERCAPS;
1449 -// #else
1450 -// ...
1451 -// #endif // UNICODE
1452 -struct tagMIXERCAPS2A {
1453 - WORD wMid;
1454 - WORD wPid;
1455 - MMVERSION vDriverVersion;
1456 - CHAR szPname[MAXPNAMELEN];
1457 - DWORD fdwSupport;
1458 - DWORD cDestinations;
1459 - GUID ManufacturerGuid;
1460 - GUID ProductGuid;
1461 - GUID NameGuid;
1462 -}
1463 -alias tagMIXERCAPS2A MIXERCAPS2A;
1464 -alias tagMIXERCAPS2A* PMIXERCAPS2A;
1465 -alias tagMIXERCAPS2A* LPMIXERCAPS2A;
1466 -
1467 -struct tagMIXERCAPS2W {
1468 - WORD wMid;
1469 - WORD wPid;
1470 - MMVERSION vDriverVersion;
1471 - WCHAR szPname[MAXPNAMELEN];
1472 - DWORD fdwSupport;
1473 - DWORD cDestinations;
1474 - GUID ManufacturerGuid;
1475 - GUID ProductGuid;
1476 - GUID NameGuid;
1477 -}
1478 -alias tagMIXERCAPS2W MIXERCAPS2W;
1479 -alias tagMIXERCAPS2W* PMIXERCAPS2W;
1480 -alias tagMIXERCAPS2W* LPMIXERCAPS2W;
2169 + alias sndPlaySoundW sndPlaySound;
2170 + alias PlaySoundW PlaySound;
2171 + alias waveOutGetDevCapsW waveOutGetDevCaps;
2172 + alias waveOutGetErrorTextW waveOutGetErrorText;
2173 + alias waveInGetDevCapsW waveInGetDevCaps;
2174 + alias waveInGetErrorTextW waveInGetErrorText;
2175 + alias midiOutGetDevCapsW midiOutGetDevCaps;
2176 + alias midiOutGetErrorTextW midiOutGetErrorText;
2177 + alias midiInGetDevCapsW midiInGetDevCaps;
2178 + alias midiInGetErrorTextW midiInGetErrorText;
2179 + alias auxGetDevCapsW auxGetDevCaps;
2180 + alias mixerGetDevCapsW mixerGetDevCaps;
2181 + alias mixerGetLineInfoW mixerGetLineInfo;
2182 + alias mixerGetLineControlsW mixerGetLineControls;
2183 + alias mixerGetControlDetailsW mixerGetControlDetails;
2184 + alias joyGetDevCapsW joyGetDevCaps;
2185 + alias mmioInstallIOProcW mmioInstallIOProc;
2186 + alias mmioStringToFOURCCW mmioStringToFOURCC;
2187 + alias mmioOpenW mmioOpen;
2188 + alias mmioRenameW mmioRename;
2189 + alias mciSendCommandW mciSendCommand;
2190 + alias mciSendStringW mciSendString;
2191 + alias mciGetDeviceIDW mciGetDeviceID;
2192 + alias mciGetDeviceIDFromElementIDW mciGetDeviceIDFromElementID;
2193 + alias mciGetErrorStringW mciGetErrorString;
1481 2194
1482 -// #ifdef UNICODE
1483 -alias MIXERCAPS2W MIXERCAPS2;
1484 -alias PMIXERCAPS2W PMIXERCAPS2;
1485 -alias LPMIXERCAPS2W LPMIXERCAPS2;
1486 -// #else
1487 -// ...
1488 -// #endif // UNICODE
1489 -
1490 -// #else
1491 -// ...
1492 -// #endif
1493 -
1494 -// #ifdef _WIN32
1495 -
1496 -extern(Windows) export MMRESULT mixerGetDevCapsA(UINT_PTR uMxId, LPMIXERCAPSA pmxcaps, UINT cbmxcaps);
1497 -extern(Windows) export MMRESULT mixerGetDevCapsW(UINT_PTR uMxId, LPMIXERCAPSW pmxcaps, UINT cbmxcaps);
1498 -// #ifdef UNICODE
1499 -alias mixerGetDevCapsW mixerGetDevCaps;
1500 -// #else
1501 -// #...
1502 -// #endif // !UNICODE
1503 -
1504 -// #else
1505 -// ...
1506 -// #endif
1507 -
1508 -extern(Windows) export MMRESULT mixerOpen(LPHMIXER phmx, UINT uMxId, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
1509 -
1510 -extern(Windows) export MMRESULT mixerClose(HMIXER hmx);
1511 -
1512 -extern(Windows) export DWORD mixerMessage(HMIXER hmx, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
2195 +} else {
2196 + alias WAVEOUTCAPSA WAVEOUTCAPS;
2197 + alias WAVEINCAPSA WAVEINCAPS;
2198 + alias MIDIOUTCAPSA MIDIOUTCAPS;
2199 + alias MIDIINCAPSA MIDIINCAPS;
2200 + alias AUXCAPSA AUXCAPS;
2201 + alias MIXERCAPSA MIXERCAPS;
2202 + alias MIXERLINEA MIXERLINE;
2203 + alias MIXERCONTROLA MIXERCONTROL;
2204 + alias MIXERLINECONTROLSA MIXERLINECONTROLS;
2205 + alias MIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXT;
2206 + alias JOYCAPSA JOYCAPS;
2207 + alias MCI_OPEN_PARMSA MCI_OPEN_PARMS;
2208 + alias MCI_INFO_PARMSA MCI_INFO_PARMS;
2209 + alias MCI_SYSINFO_PARMSA MCI_SYSINFO_PARMS;
2210 + alias MCI_SAVE_PARMSA MCI_SAVE_PARMS;
2211 + alias MCI_LOAD_PARMSA MCI_LOAD_PARMS;
2212 + alias MCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMS;
2213 + alias MCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMS;
2214 + alias MCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMS;
2215 + alias MCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMS;
2216 + alias MCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMS;
2217 + alias MCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMS;
2218 + alias MCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMS;
1513 2219
1514 -// #ifdef _WIN32
1515 -
1516 -struct tagMIXERLINEA {
1517 - DWORD cbStruct;
1518 - DWORD dwDestination;
1519 - DWORD dwSource;
1520 - DWORD dwLineID;
1521 - DWORD fdwLine;
1522 - DWORD_PTR dwUser;
1523 - DWORD dwComponentType;
1524 - DWORD cChannels;
1525 - DWORD cConnections;
1526 - DWORD cControls;
1527 - CHAR szShortName[MIXER_SHORT_NAME_CHARS];
1528 - CHAR szName[MIXER_LONG_NAME_CHARS];
1529 -struct {
1530 - DWORD dwType;
1531 - DWORD dwDeviceID;
1532 - WORD wMid;
1533 - WORD wPid;
1534 - MMVERSION vDriverVersion;
1535 - CHAR szPname[MAXPNAMELEN];
1536 -}
1537 -
1538 -}
1539 -alias tagMIXERLINEA MIXERLINEA;
1540 -alias tagMIXERLINEA* PMIXERLINEA;
1541 -alias tagMIXERLINEA* LPMIXERLINEA;
1542 -
1543 -struct tagMIXERLINEW {
1544 - DWORD cbStruct;
1545 - DWORD dwDestination;
1546 - DWORD dwSource;
1547 - DWORD dwLineID;
1548 - DWORD fdwLine;
1549 - DWORD_PTR dwUser;
1550 - DWORD dwComponentType;
1551 - DWORD cChannels;
1552 - DWORD cConnections;
1553 - DWORD cControls;
1554 - WCHAR szShortName[MIXER_SHORT_NAME_CHARS];
1555 - WCHAR szName[MIXER_LONG_NAME_CHARS];
1556 -struct {
1557 - DWORD dwType;
1558 - DWORD dwDeviceID;
1559 - WORD wMid;
1560 - WORD wPid;
1561 - MMVERSION vDriverVersion;
1562 - WCHAR szPname[MAXPNAMELEN];
1563 -}
1564 -
1565 -}
1566 -alias tagMIXERLINEW MIXERLINEW;
1567 -alias tagMIXERLINEW* PMIXERLINEW;
1568 -alias tagMIXERLINEW* LPMIXERLINEW;
1569 -
1570 -// #ifdef UNICODE
1571 -alias MIXERLINEW MIXERLINE;
1572 -alias PMIXERLINEW PMIXERLINE;
1573 -alias LPMIXERLINEW LPMIXERLINE;
1574 -// #else
1575 -// ...
1576 -// #endif // UNICODE
1577 -
1578 -// #else
1579 -// ...
1580 -// #endif
1581 -
1582 -enum : uint { MIXERLINE_LINEF_ACTIVE = 0x00000001 }
1583 -enum : uint { MIXERLINE_LINEF_DISCONNECTED = 0x00008000 }
1584 -enum : uint { MIXERLINE_LINEF_SOURCE = 0x80000000 }
1585 -
1586 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_FIRST = 0x00000000 }
1587 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = MIXERLINE_COMPONENTTYPE_DST_FIRST + 0 }
1588 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_DIGITAL = MIXERLINE_COMPONENTTYPE_DST_FIRST + 1 }
1589 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_LINE = MIXERLINE_COMPONENTTYPE_DST_FIRST + 2 }
1590 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_MONITOR = MIXERLINE_COMPONENTTYPE_DST_FIRST + 3 }
1591 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = MIXERLINE_COMPONENTTYPE_DST_FIRST + 4 }
1592 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = MIXERLINE_COMPONENTTYPE_DST_FIRST + 5 }
1593 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = MIXERLINE_COMPONENTTYPE_DST_FIRST + 6 }
1594 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_WAVEIN = MIXERLINE_COMPONENTTYPE_DST_FIRST + 7 }
1595 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_VOICEIN = MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 }
1596 -enum : uint { MIXERLINE_COMPONENTTYPE_DST_LAST = MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 }
1597 -
1598 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_FIRST = 0x00001000 }
1599 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0 }
1600 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1 }
1601 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_LINE = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2 }
1602 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3 }
1603 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4 }
1604 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5 }
1605 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6 }
1606 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7 }
1607 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8 }
1608 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9 }
1609 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_ANALOG = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 }
1610 -enum : uint { MIXERLINE_COMPONENTTYPE_SRC_LAST = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 }
1611 -
1612 -enum : uint { MIXERLINE_TARGETTYPE_UNDEFINED = 0 }
1613 -enum : uint { MIXERLINE_TARGETTYPE_WAVEOUT = 1 }
1614 -enum : uint { MIXERLINE_TARGETTYPE_WAVEIN = 2 }
1615 -enum : uint { MIXERLINE_TARGETTYPE_MIDIOUT = 3 }
1616 -enum : uint { MIXERLINE_TARGETTYPE_MIDIIN = 4 }
1617 -enum : uint { MIXERLINE_TARGETTYPE_AUX = 5 }
1618 -
1619 -// #ifdef _WIN32
1620 -
1621 -extern(Windows) export MMRESULT mixerGetLineInfoA(HMIXEROBJ hmxobj, LPMIXERLINEA pmxl, DWORD fdwInfo);
1622 -extern(Windows) export MMRESULT mixerGetLineInfoW(HMIXEROBJ hmxobj, LPMIXERLINEW pmxl, DWORD fdwInfo);
1623 -// #ifdef UNICODE
1624 -alias mixerGetLineInfoW mixerGetLineInfo;
1625 -// #else
1626 -// #...
1627 -// #endif // !UNICODE
1628 -
1629 -// #else
1630 -// ...
1631 -// #endif
1632 -
1633 -enum : uint { MIXER_GETLINEINFOF_DESTINATION = 0x00000000 }
1634 -enum : uint { MIXER_GETLINEINFOF_SOURCE = 0x00000001 }
1635 -enum : uint { MIXER_GETLINEINFOF_LINEID = 0x00000002 }
1636 -enum : uint { MIXER_GETLINEINFOF_COMPONENTTYPE = 0x00000003 }
1637 -enum : uint { MIXER_GETLINEINFOF_TARGETTYPE = 0x00000004 }
1638 -
1639 -enum : uint { MIXER_GETLINEINFOF_QUERYMASK = 0x0000000F }
1640 -
1641 -extern(Windows) export MMRESULT mixerGetID(HMIXEROBJ hmxobj, UINT *puMxId, DWORD fdwId);
1642 -
1643 -// #ifdef _WIN32
1644 -
1645 -struct tagMIXERCONTROLA {
1646 - DWORD cbStruct;
1647 - DWORD dwControlID;
1648 - DWORD dwControlType;
1649 - DWORD fdwControl;
1650 - DWORD cMultipleItems;
1651 - CHAR szShortName[MIXER_SHORT_NAME_CHARS];
1652 - CHAR szName[MIXER_LONG_NAME_CHARS];
1653 -union _0 {
1654 -struct {
1655 - LONG lMinimum;
1656 - LONG lMaximum;
1657 -}
1658 -
1659 -struct {
1660 - DWORD dwMinimum;
1661 - DWORD dwMaximum;
1662 -}
1663 -
1664 - DWORD dwReserved[6];
1665 -}
1666 -_0 Bounds;
1667 -
1668 -union _1 {
1669 - DWORD cSteps;
1670 - DWORD cbCustomData;
1671 - DWORD dwReserved[6];
1672 -}
1673 -_1 Metrics;
1674 -
1675 -}
1676 -alias tagMIXERCONTROLA MIXERCONTROLA;
1677 -alias tagMIXERCONTROLA* PMIXERCONTROLA;
1678 -alias tagMIXERCONTROLA* LPMIXERCONTROLA;
1679 -
1680 -struct tagMIXERCONTROLW {
1681 - DWORD cbStruct;
1682 - DWORD dwControlID;
1683 - DWORD dwControlType;
1684 - DWORD fdwControl;
1685 - DWORD cMultipleItems;
1686 - WCHAR szShortName[MIXER_SHORT_NAME_CHARS];
1687 - WCHAR szName[MIXER_LONG_NAME_CHARS];
1688 -union _2 {
1689 -struct {
1690 - LONG lMinimum;
1691 - LONG lMaximum;
1692 -}
1693 -
1694 -struct {
1695 - DWORD dwMinimum;
1696 - DWORD dwMaximum;
1697 -}
1698 -
1699 - DWORD dwReserved[6];
1700 -}
1701 -_2 Bounds;
1702 -
1703 -union _3 {
1704 - DWORD cSteps;
1705 - DWORD cbCustomData;
1706 - DWORD dwReserved[6];
1707 -}
1708 -_3 Metrics;
1709 -
1710 -}
1711 -alias tagMIXERCONTROLW MIXERCONTROLW;
1712 -alias tagMIXERCONTROLW* PMIXERCONTROLW;
1713 -alias tagMIXERCONTROLW* LPMIXERCONTROLW;
1714 -
1715 -// #ifdef UNICODE
1716 -alias MIXERCONTROLW MIXERCONTROL;
1717 -alias PMIXERCONTROLW PMIXERCONTROL;
1718 -alias LPMIXERCONTROLW LPMIXERCONTROL;
1719 -// #else
1720 -// ...
1721 -// #endif // UNICODE
1722 -
1723 -// #else
1724 -// ...
1725 -// #endif
1726 -
1727 -enum : uint { MIXERCONTROL_CONTROLF_UNIFORM = 0x00000001 }
1728 -enum : uint { MIXERCONTROL_CONTROLF_MULTIPLE = 0x00000002 }
1729 -enum : uint { MIXERCONTROL_CONTROLF_DISABLED = 0x80000000 }
1730 -
1731 -enum : uint { MIXERCONTROL_CT_CLASS_MASK = 0xF0000000 }
1732 -enum : uint { MIXERCONTROL_CT_CLASS_CUSTOM = 0x00000000 }
1733 -enum : uint { MIXERCONTROL_CT_CLASS_METER = 0x10000000 }
1734 -enum : uint { MIXERCONTROL_CT_CLASS_SWITCH = 0x20000000 }
1735 -enum : uint { MIXERCONTROL_CT_CLASS_NUMBER = 0x30000000 }
1736 -enum : uint { MIXERCONTROL_CT_CLASS_SLIDER = 0x40000000 }
1737 -enum : uint { MIXERCONTROL_CT_CLASS_FADER = 0x50000000 }
1738 -enum : uint { MIXERCONTROL_CT_CLASS_TIME = 0x60000000 }
1739 -enum : uint { MIXERCONTROL_CT_CLASS_LIST = 0x70000000 }
1740 -
1741 -enum : uint { MIXERCONTROL_CT_SUBCLASS_MASK = 0x0F000000 }
1742 -
1743 -enum : uint { MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = 0x00000000 }
1744 -enum : uint { MIXERCONTROL_CT_SC_SWITCH_BUTTON = 0x01000000 }
1745 -
1746 -enum : uint { MIXERCONTROL_CT_SC_METER_POLLED = 0x00000000 }
1747 -
1748 -enum : uint { MIXERCONTROL_CT_SC_TIME_MICROSECS = 0x00000000 }
1749 -enum : uint { MIXERCONTROL_CT_SC_TIME_MILLISECS = 0x01000000 }
1750 -
1751 -enum : uint { MIXERCONTROL_CT_SC_LIST_SINGLE = 0x00000000 }
1752 -enum : uint { MIXERCONTROL_CT_SC_LIST_MULTIPLE = 0x01000000 }
1753 -
1754 -enum : uint { MIXERCONTROL_CT_UNITS_MASK = 0x00FF0000 }
1755 -enum : uint { MIXERCONTROL_CT_UNITS_CUSTOM = 0x00000000 }
1756 -enum : uint { MIXERCONTROL_CT_UNITS_BOOLEAN = 0x00010000 }
1757 -enum : uint { MIXERCONTROL_CT_UNITS_SIGNED = 0x00020000 }
1758 -enum : uint { MIXERCONTROL_CT_UNITS_UNSIGNED = 0x00030000 }
1759 -enum : uint { MIXERCONTROL_CT_UNITS_DECIBELS = 0x00040000 }
1760 -enum : uint { MIXERCONTROL_CT_UNITS_PERCENT = 0x00050000 }
1761 -
1762 -enum : uint { MIXERCONTROL_CONTROLTYPE_CUSTOM = MIXERCONTROL_CT_CLASS_CUSTOM | MIXERCONTROL_CT_UNITS_CUSTOM }
1763 -enum : uint { MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_BOOLEAN }
1764 -enum : uint { MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_SIGNED }
1765 -enum : uint { MIXERCONTROL_CONTROLTYPE_PEAKMETER = MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1 }
1766 -enum : uint { MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_UNSIGNED }
1767 -enum : uint { MIXERCONTROL_CONTROLTYPE_BOOLEAN = MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BOOLEAN | MIXERCONTROL_CT_UNITS_BOOLEAN }
1768 -enum : uint { MIXERCONTROL_CONTROLTYPE_ONOFF = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1 }
1769 -enum : uint { MIXERCONTROL_CONTROLTYPE_MUTE = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2 }
1770 -enum : uint { MIXERCONTROL_CONTROLTYPE_MONO = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3 }
1771 -enum : uint { MIXERCONTROL_CONTROLTYPE_LOUDNESS = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4 }
1772 -enum : uint { MIXERCONTROL_CONTROLTYPE_STEREOENH = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5 }
1773 -enum : uint { MIXERCONTROL_CONTROLTYPE_BASS_BOOST = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 0x00002277 }
1774 -enum : uint { MIXERCONTROL_CONTROLTYPE_BUTTON = MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BUTTON | MIXERCONTROL_CT_UNITS_BOOLEAN }
1775 -enum : uint { MIXERCONTROL_CONTROLTYPE_DECIBELS = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_DECIBELS }
1776 -enum : uint { MIXERCONTROL_CONTROLTYPE_SIGNED = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_SIGNED }
1777 -enum : uint { MIXERCONTROL_CONTROLTYPE_UNSIGNED = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_UNSIGNED }
1778 -enum : uint { MIXERCONTROL_CONTROLTYPE_PERCENT = MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_PERCENT }
1779 -enum : uint { MIXERCONTROL_CONTROLTYPE_SLIDER = MIXERCONTROL_CT_CLASS_SLIDER | MIXERCONTROL_CT_UNITS_SIGNED }
1780 -enum : uint { MIXERCONTROL_CONTROLTYPE_PAN = MIXERCONTROL_CONTROLTYPE_SLIDER + 1 }
1781 -enum : uint { MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = MIXERCONTROL_CONTROLTYPE_SLIDER + 2 }
1782 -enum : uint { MIXERCONTROL_CONTROLTYPE_FADER = MIXERCONTROL_CT_CLASS_FADER | MIXERCONTROL_CT_UNITS_UNSIGNED }
1783 -enum : uint { MIXERCONTROL_CONTROLTYPE_VOLUME = MIXERCONTROL_CONTROLTYPE_FADER + 1 }
1784 -enum : uint { MIXERCONTROL_CONTROLTYPE_BASS = MIXERCONTROL_CONTROLTYPE_FADER + 2 }
1785 -enum : uint { MIXERCONTROL_CONTROLTYPE_TREBLE = MIXERCONTROL_CONTROLTYPE_FADER + 3 }
1786 -enum : uint { MIXERCONTROL_CONTROLTYPE_EQUALIZER = MIXERCONTROL_CONTROLTYPE_FADER + 4 }
1787 -enum : uint { MIXERCONTROL_CONTROLTYPE_SINGLESELECT = MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_SINGLE | MIXERCONTROL_CT_UNITS_BOOLEAN }
1788 -enum : uint { MIXERCONTROL_CONTROLTYPE_MUX = MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1 }
1789 -enum : uint { MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_MULTIPLE | MIXERCONTROL_CT_UNITS_BOOLEAN }
1790 -enum : uint { MIXERCONTROL_CONTROLTYPE_MIXER = MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1 }
1791 -enum : uint { MIXERCONTROL_CONTROLTYPE_MICROTIME = MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MICROSECS | MIXERCONTROL_CT_UNITS_UNSIGNED }
1792 -enum : uint { MIXERCONTROL_CONTROLTYPE_MILLITIME = MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MILLISECS | MIXERCONTROL_CT_UNITS_UNSIGNED }
1793 -
1794 -// #ifdef _WIN32
1795 -
1796 -struct tagMIXERLINECONTROLSA {
1797 - DWORD cbStruct;
1798 - DWORD dwLineID;
1799 -union {
1800 - DWORD dwControlID;
1801 - DWORD dwControlType;
1802 -}
1803 -
1804 - DWORD cControls;
1805 - DWORD cbmxctrl;
1806 - LPMIXERCONTROLA pamxctrl;
1807 -}
1808 -alias tagMIXERLINECONTROLSA MIXERLINECONTROLSA;
1809 -alias tagMIXERLINECONTROLSA* PMIXERLINECONTROLSA;
1810 -alias tagMIXERLINECONTROLSA* LPMIXERLINECONTROLSA;
1811 -
1812 -struct tagMIXERLINECONTROLSW {
1813 - DWORD cbStruct;
1814 - DWORD dwLineID;
1815 -union {
1816 - DWORD dwControlID;
1817 - DWORD dwControlType;
1818 -}
1819 -
1820 - DWORD cControls;
1821 - DWORD cbmxctrl;
1822 - LPMIXERCONTROLW pamxctrl;
1823 -}
1824 -alias tagMIXERLINECONTROLSW MIXERLINECONTROLSW;
1825 -alias tagMIXERLINECONTROLSW* PMIXERLINECONTROLSW;
1826 -alias tagMIXERLINECONTROLSW* LPMIXERLINECONTROLSW;
1827 -
1828 -// #ifdef UNICODE
1829 -alias MIXERLINECONTROLSW MIXERLINECONTROLS;
1830 -alias PMIXERLINECONTROLSW PMIXERLINECONTROLS;
1831 -alias LPMIXERLINECONTROLSW LPMIXERLINECONTROLS;
1832 -// #else
1833 -// ...
1834 -// #endif // UNICODE
1835 -
1836 -// #else
1837 -// ...
1838 -// #endif
1839 -
1840 -// #ifdef _WIN32
1841 -
1842 -extern(Windows) export MMRESULT mixerGetLineControlsA(HMIXEROBJ hmxobj, LPMIXERLINECONTROLSA pmxlc, DWORD fdwControls);
1843 -extern(Windows) export MMRESULT mixerGetLineControlsW(HMIXEROBJ hmxobj, LPMIXERLINECONTROLSW pmxlc, DWORD fdwControls);
1844 -// #ifdef UNICODE
1845 -alias mixerGetLineControlsW mixerGetLineControls;
1846 -// #else
1847 -// #...
1848 -// #endif // !UNICODE
1849 -
1850 -// #else
1851 -// ...
1852 -// #endif
1853 -
1854 -enum : uint { MIXER_GETLINECONTROLSF_ALL = 0x00000000 }
1855 -enum : uint { MIXER_GETLINECONTROLSF_ONEBYID = 0x00000001 }
1856 -enum : uint { MIXER_GETLINECONTROLSF_ONEBYTYPE = 0x00000002 }
1857 -
1858 -enum : uint { MIXER_GETLINECONTROLSF_QUERYMASK = 0x0000000F }
1859 -
1860 -struct tMIXERCONTROLDETAILS {
1861 - DWORD cbStruct;
1862 - DWORD dwControlID;
1863 - DWORD cChannels;
1864 -union {
1865 - HWND hwndOwner;
1866 - DWORD cMultipleItems;
2220 + alias sndPlaySoundA sndPlaySound;
2221 + alias PlaySoundA PlaySound;
2222 + alias waveOutGetDevCapsA waveOutGetDevCaps;
2223 + alias waveOutGetErrorTextA waveOutGetErrorText;
2224 + alias waveInGetDevCapsA waveInGetDevCaps;
2225 + alias waveInGetErrorTextA waveInGetErrorText;
2226 + alias midiOutGetDevCapsA midiOutGetDevCaps;
2227 + alias midiOutGetErrorTextA midiOutGetErrorText;
2228 + alias midiInGetDevCapsA midiInGetDevCaps;
2229 + alias midiInGetErrorTextA midiInGetErrorText;
2230 + alias auxGetDevCapsA auxGetDevCaps;
2231 + alias mixerGetDevCapsA mixerGetDevCaps;
2232 + alias mixerGetLineInfoA mixerGetLineInfo;
2233 + alias mixerGetLineControlsA mixerGetLineControls;
2234 + alias mixerGetControlDetailsA mixerGetControlDetails;
2235 + alias joyGetDevCapsA joyGetDevCaps;
2236 + alias mmioInstallIOProcA mmioInstallIOProc;
2237 + alias mmioStringToFOURCCA mmioStringToFOURCC;
2238 + alias mmioOpenA mmioOpen;
2239 + alias mmioRenameA mmioRename;
2240 + alias mciSendCommandA mciSendCommand;
2241 + alias mciSendStringA mciSendString;
2242 + alias mciGetDeviceIDA mciGetDeviceID;
2243 + alias mciGetDeviceIDFromElementIDA mciGetDeviceIDFromElementID;
2244 + alias mciGetErrorStringA mciGetErrorString;
1867 2245 }
1868 2246
1869 - DWORD cbDetails;
1870 - LPVOID paDetails;
1871 -}
1872 -alias tMIXERCONTROLDETAILS MIXERCONTROLDETAILS;
1873 -alias tMIXERCONTROLDETAILS* PMIXERCONTROLDETAILS;
1874 -alias tMIXERCONTROLDETAILS* LPMIXERCONTROLDETAILS;
1875 -
1876 -// #ifdef _WIN32
1877 -
1878 -struct tagMIXERCONTROLDETAILS_LISTTEXTA {
1879 - DWORD dwParam1;
1880 - DWORD dwParam2;
1881 - CHAR szName[MIXER_LONG_NAME_CHARS];
1882 -}
1883 -alias tagMIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXTA;
1884 -alias tagMIXERCONTROLDETAILS_LISTTEXTA* PMIXERCONTROLDETAILS_LISTTEXTA;
1885 -alias tagMIXERCONTROLDETAILS_LISTTEXTA* LPMIXERCONTROLDETAILS_LISTTEXTA;
1886 -
1887 -struct tagMIXERCONTROLDETAILS_LISTTEXTW {
1888 - DWORD dwParam1;
1889 - DWORD dwParam2;
1890 - WCHAR szName[MIXER_LONG_NAME_CHARS];
1891 -}
1892 -alias tagMIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXTW;
1893 -alias tagMIXERCONTROLDETAILS_LISTTEXTW* PMIXERCONTROLDETAILS_LISTTEXTW;
1894 -alias tagMIXERCONTROLDETAILS_LISTTEXTW* LPMIXERCONTROLDETAILS_LISTTEXTW;
1895 -
1896 -// #ifdef UNICODE
1897 -alias MIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXT;
1898 -alias PMIXERCONTROLDETAILS_LISTTEXTW PMIXERCONTROLDETAILS_LISTTEXT;
1899 -alias LPMIXERCONTROLDETAILS_LISTTEXTW LPMIXERCONTROLDETAILS_LISTTEXT;
1900 -// #else
1901 -// ...
1902 -// #endif // UNICODE
1903 -
1904 -// #else
1905 -// ...
1906 -// #endif
1907 -
1908 -struct tMIXERCONTROLDETAILS_BOOLEAN {
1909 - LONG fValue;
1910 -}
1911 -alias tMIXERCONTROLDETAILS_BOOLEAN MIXERCONTROLDETAILS_BOOLEAN;
1912 -alias tMIXERCONTROLDETAILS_BOOLEAN* PMIXERCONTROLDETAILS_BOOLEAN;
1913 -alias tMIXERCONTROLDETAILS_BOOLEAN* LPMIXERCONTROLDETAILS_BOOLEAN;
1914 -
1915 -struct tMIXERCONTROLDETAILS_SIGNED {
1916 - LONG lValue;
1917 -}
1918 -alias tMIXERCONTROLDETAILS_SIGNED MIXERCONTROLDETAILS_SIGNED;
1919 -alias tMIXERCONTROLDETAILS_SIGNED* PMIXERCONTROLDETAILS_SIGNED;
1920 -alias tMIXERCONTROLDETAILS_SIGNED* LPMIXERCONTROLDETAILS_SIGNED;
1921 -
1922 -struct tMIXERCONTROLDETAILS_UNSIGNED {
1923 - DWORD dwValue;
1924 -}
1925 -alias tMIXERCONTROLDETAILS_UNSIGNED MIXERCONTROLDETAILS_UNSIGNED;
1926 -alias tMIXERCONTROLDETAILS_UNSIGNED* PMIXERCONTROLDETAILS_UNSIGNED;
1927 -alias tMIXERCONTROLDETAILS_UNSIGNED* LPMIXERCONTROLDETAILS_UNSIGNED;
1928 -
1929 -// #ifdef _WIN32
1930 -
1931 -extern(Windows) export MMRESULT mixerGetControlDetailsA(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails);
1932 -extern(Windows) export MMRESULT mixerGetControlDetailsW(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails);
1933 -// #ifdef UNICODE
1934 -alias mixerGetControlDetailsW mixerGetControlDetails;
1935 -// #else
1936 -// #...
1937 -// #endif // !UNICODE
1938 -
1939 -// #else
1940 -// ...
1941 -// #endif
1942 -
1943 -enum : uint { MIXER_GETCONTROLDETAILSF_VALUE = 0x00000000 }
1944 -enum : uint { MIXER_GETCONTROLDETAILSF_LISTTEXT = 0x00000001 }
1945 -
1946 -enum : uint { MIXER_GETCONTROLDETAILSF_QUERYMASK = 0x0000000F }
1947 -
1948 -extern(Windows) export MMRESULT mixerSetControlDetails(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails);
1949 -
1950 -enum : uint { MIXER_SETCONTROLDETAILSF_VALUE = 0x00000000 }
1951 -enum : uint { MIXER_SETCONTROLDETAILSF_CUSTOM = 0x00000001 }
1952 -
1953 -enum : uint { MIXER_SETCONTROLDETAILSF_QUERYMASK = 0x0000000F }
1954 -
1955 -// #endif /* ifndef MMNOMIXER */
1956 -
1957 -// #ifndef MMNOTIMER
1958 -
1959 -enum : uint { TIMERR_NOERROR = 0 }
1960 -enum : uint { TIMERR_NOCANDO = TIMERR_BASE+1 }
1961 -enum : uint { TIMERR_STRUCT = TIMERR_BASE+33 }
1962 -
1963 -// typedef void (CALLBACK TIMECALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2);
1964 -
1965 -extern(Windows) alias void function(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2) LPTIMECALLBACK;
1966 -
1967 -enum : uint { TIME_ONESHOT = 0x0000 }
1968 -enum : uint { TIME_PERIODIC = 0x0001 }
1969 -
1970 -// #ifdef _WIN32
1971 -enum : uint { TIME_CALLBACK_FUNCTION = 0x0000 }
1972 -enum : uint { TIME_CALLBACK_EVENT_SET = 0x0010 }
1973 -enum : uint { TIME_CALLBACK_EVENT_PULSE = 0x0020 }
1974 -// #endif
1975 -
1976 -// #if WINVER >= 0x0501
1977 -enum : uint { TIME_KILL_SYNCHRONOUS = 0x0100 }
1978 -
1979 -// #endif // WINVER >= 0x0501
1980 -
1981 -struct timecaps_tag {
1982 - UINT wPeriodMin;
1983 - UINT wPeriodMax;
1984 -}
1985 -alias timecaps_tag TIMECAPS;
1986 -alias timecaps_tag* PTIMECAPS;
1987 -alias timecaps_tag* NPTIMECAPS;
1988 -alias timecaps_tag* LPTIMECAPS;
1989 -
1990 -extern(Windows) export MMRESULT timeGetSystemTime(LPMMTIME pmmt, UINT cbmmt);
1991 -extern(Windows) export DWORD timeGetTime();
1992 -extern(Windows) export MMRESULT timeSetEvent(UINT uDelay, UINT uResolution,
1993 - LPTIMECALLBACK fptc, DWORD_PTR dwUser, UINT fuEvent);
1994 -extern(Windows) export MMRESULT timeKillEvent(UINT uTimerID);
1995 -extern(Windows) export MMRESULT timeGetDevCaps(LPTIMECAPS ptc, UINT cbtc);
1996 -extern(Windows) export MMRESULT timeBeginPeriod(UINT uPeriod);
1997 -extern(Windows) export MMRESULT timeEndPeriod(UINT uPeriod);
1998 -
1999 -// #endif /* ifndef MMNOTIMER */
2000 -
2001 -// #ifndef MMNOJOY
2002 -
2003 -enum : uint { JOYERR_NOERROR = 0 }
2004 -enum : uint { JOYERR_PARMS = JOYERR_BASE+5 }
2005 -enum : uint { JOYERR_NOCANDO = JOYERR_BASE+6 }
2006 -enum : uint { JOYERR_UNPLUGGED = JOYERR_BASE+7 }
2007 -
2008 -enum : uint { JOY_BUTTON1 = 0x0001 }
2009 -enum : uint { JOY_BUTTON2 = 0x0002 }
2010 -enum : uint { JOY_BUTTON3 = 0x0004 }
2011 -enum : uint { JOY_BUTTON4 = 0x0008 }
2012 -enum : uint { JOY_BUTTON1CHG = 0x0100 }
2013 -enum : uint { JOY_BUTTON2CHG = 0x0200 }
2014 -enum : uint { JOY_BUTTON3CHG = 0x0400 }
2015 -enum : uint { JOY_BUTTON4CHG = 0x0800 }
2016 -
2017 -enum : uint { JOY_BUTTON5 = 0x00000010 }
2018 -enum : uint { JOY_BUTTON6 = 0x00000020 }
2019 -enum : uint { JOY_BUTTON7 = 0x00000040 }
2020 -enum : uint { JOY_BUTTON8 = 0x00000080 }
2021 -enum : uint { JOY_BUTTON9 = 0x00000100 }
2022 -enum : uint { JOY_BUTTON10 = 0x00000200 }
2023 -enum : uint { JOY_BUTTON11 = 0x00000400 }
2024 -enum : uint { JOY_BUTTON12 = 0x00000800 }
2025 -enum : uint { JOY_BUTTON13 = 0x00001000 }
2026 -enum : uint { JOY_BUTTON14 = 0x00002000 }
2027 -enum : uint { JOY_BUTTON15 = 0x00004000 }
2028 -enum : uint { JOY_BUTTON16 = 0x00008000 }
2029 -enum : uint { JOY_BUTTON17 = 0x00010000 }
2030 -enum : uint { JOY_BUTTON18 = 0x00020000 }
2031 -enum : uint { JOY_BUTTON19 = 0x00040000 }
2032 -enum : uint { JOY_BUTTON20 = 0x00080000 }
2033 -enum : uint { JOY_BUTTON21 = 0x00100000 }
2034 -enum : uint { JOY_BUTTON22 = 0x00200000 }
2035 -enum : uint { JOY_BUTTON23 = 0x00400000 }
2036 -enum : uint { JOY_BUTTON24 = 0x00800000 }
2037 -enum : uint { JOY_BUTTON25 = 0x01000000 }
2038 -enum : uint { JOY_BUTTON26 = 0x02000000 }
2039 -enum : uint { JOY_BUTTON27 = 0x04000000 }
2040 -enum : uint { JOY_BUTTON28 = 0x08000000 }
2041 -enum : uint { JOY_BUTTON29 = 0x10000000 }
2042 -enum : uint { JOY_BUTTON30 = 0x20000000 }
2043 -enum : uint { JOY_BUTTON31 = 0x40000000 }
2044 -enum : uint { JOY_BUTTON32 = 0x80000000 }
2045 -
2046 -enum : WORD { JOY_POVCENTERED = cast(WORD)-1 }
2047 -enum : uint { JOY_POVFORWARD = 0 }
2048 -enum : uint { JOY_POVRIGHT = 9000 }
2049 -enum : uint { JOY_POVBACKWARD = 18000 }
2050 -enum : uint { JOY_POVLEFT = 27000 }
2051 -
2052 -enum : uint { JOY_RETURNX = 0x00000001 }
2053 -enum : uint { JOY_RETURNY = 0x00000002 }
2054 -enum : uint { JOY_RETURNZ = 0x00000004 }
2055 -enum : uint { JOY_RETURNR = 0x00000008 }
2056 -enum : uint { JOY_RETURNU = 0x00000010 }
2057 -enum : uint { JOY_RETURNV = 0x00000020 }
2058 -enum : uint { JOY_RETURNPOV = 0x00000040 }
2059 -enum : uint { JOY_RETURNBUTTONS = 0x00000080 }
2060 -enum : uint { JOY_RETURNRAWDATA = 0x00000100 }
2061 -enum : uint { JOY_RETURNPOVCTS = 0x00000200 }
2062 -enum : uint { JOY_RETURNCENTERED = 0x00000400 }
2063 -enum : uint { JOY_USEDEADZONE = 0x00000800 }
2064 -enum : uint { JOY_RETURNALL = JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR | JOY_RETURNU | JOY_RETURNV | JOY_RETURNPOV | JOY_RETURNBUTTONS }
2065 -enum : uint { JOY_CAL_READALWAYS = 0x00010000 }
2066 -enum : uint { JOY_CAL_READXYONLY = 0x00020000 }
2067 -enum : uint { JOY_CAL_READ3 = 0x00040000 }
2068 -enum : uint { JOY_CAL_READ4 = 0x00080000 }
2069 -enum : uint { JOY_CAL_READXONLY = 0x00100000 }
2070 -enum : uint { JOY_CAL_READYONLY = 0x00200000 }
2071 -enum : uint { JOY_CAL_READ5 = 0x00400000 }
2072 -enum : uint { JOY_CAL_READ6 = 0x00800000 }
2073 -enum : uint { JOY_CAL_READZONLY = 0x01000000 }
2074 -enum : uint { JOY_CAL_READRONLY = 0x02000000 }
2075 -enum : uint { JOY_CAL_READUONLY = 0x04000000 }
2076 -enum : uint { JOY_CAL_READVONLY = 0x08000000 }
2077 -
2078 -enum : uint { JOYSTICKID1 = 0 }
2079 -enum : uint { JOYSTICKID2 = 1 }
2080 -
2081 -enum : uint { JOYCAPS_HASZ = 0x0001 }
2082 -enum : uint { JOYCAPS_HASR = 0x0002 }
2083 -enum : uint { JOYCAPS_HASU = 0x0004 }
2084 -enum : uint { JOYCAPS_HASV = 0x0008 }
2085 -enum : uint { JOYCAPS_HASPOV = 0x0010 }
2086 -enum : uint { JOYCAPS_POV4DIR = 0x0020 }
2087 -enum : uint { JOYCAPS_POVCTS = 0x0040 }
2088 -
2089 -// #ifdef _WIN32
2090 -
2091 -struct tagJOYCAPSA {
2092 - WORD wMid;
2093 - WORD wPid;
2094 - CHAR szPname[MAXPNAMELEN];
2095 - UINT wXmin;
2096 - UINT wXmax;
2097 - UINT wYmin;
2098 - UINT wYmax;
2099 - UINT wZmin;
2100 - UINT wZmax;
2101 - UINT wNumButtons;
2102 - UINT wPeriodMin;
2103 - UINT wPeriodMax;
2104 -// #if (WINVER >= 0x0400)
2105 - UINT wRmin;
2106 - UINT wRmax;
2107 - UINT wUmin;
2108 - UINT wUmax;
2109 - UINT wVmin;
2110 - UINT wVmax;
2111 - UINT wCaps;
2112 - UINT wMaxAxes;
2113 - UINT wNumAxes;
2114 - UINT wMaxButtons;
2115 - CHAR szRegKey[MAXPNAMELEN];
2116 - CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
2117 -// #endif
2118 -}
2119 -alias tagJOYCAPSA JOYCAPSA;
2120 -alias tagJOYCAPSA* PJOYCAPSA;
2121 -alias tagJOYCAPSA* NPJOYCAPSA;
2122 -alias tagJOYCAPSA* LPJOYCAPSA;
2123 -
2124 -struct tagJOYCAPSW {
2125 - WORD wMid;
2126 - WORD wPid;
2127 - WCHAR szPname[MAXPNAMELEN];
2128 - UINT wXmin;
2129 - UINT wXmax;
2130 - UINT wYmin;
2131 - UINT wYmax;
2132 - UINT wZmin;
2133 - UINT wZmax;
2134 - UINT wNumButtons;
2135 - UINT wPeriodMin;
2136 - UINT wPeriodMax;
2137 -// #if (WINVER >= 0x0400)
2138 - UINT wRmin;
2139 - UINT wRmax;
2140 - UINT wUmin;
2141 - UINT wUmax;
2142 - UINT wVmin;
2143 - UINT wVmax;
2144 - UINT wCaps;
2145 - UINT wMaxAxes;
2146 - UINT wNumAxes;
2147 - UINT wMaxButtons;
2148 - WCHAR szRegKey[MAXPNAMELEN];
2149 - WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
2150 -// #endif
2151 -}
2152 -alias tagJOYCAPSW JOYCAPSW;
2153 -alias tagJOYCAPSW* PJOYCAPSW;
2154 -alias tagJOYCAPSW* NPJOYCAPSW;
2155 -alias tagJOYCAPSW* LPJOYCAPSW;
2156 -
2157 -// #ifdef UNICODE
2158 -alias JOYCAPSW JOYCAPS;
2159 -alias PJOYCAPSW PJOYCAPS;
2160 -alias NPJOYCAPSW NPJOYCAPS;
2161 -alias LPJOYCAPSW LPJOYCAPS;
2162 -// #else
2163 -// ...
2164 -// #endif // UNICODE
2165 -struct tagJOYCAPS2A {
2166 - WORD wMid;
2167 - WORD wPid;
2168 - CHAR szPname[MAXPNAMELEN];
2169 - UINT wXmin;
2170 - UINT wXmax;
2171 - UINT wYmin;
2172 - UINT wYmax;
2173 - UINT wZmin;
2174 - UINT wZmax;
2175 - UINT wNumButtons;
2176 - UINT wPeriodMin;
2177 - UINT wPeriodMax;
2178 - UINT wRmin;
2179 - UINT wRmax;
2180 - UINT wUmin;
2181 - UINT wUmax;
2182 - UINT wVmin;
2183 - UINT wVmax;
2184 - UINT wCaps;
2185 - UINT wMaxAxes;
2186 - UINT wNumAxes;
2187 - UINT wMaxButtons;
2188 - CHAR szRegKey[MAXPNAMELEN];
2189 - CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
2190 - GUID ManufacturerGuid;
2191 - GUID ProductGuid;
2192 - GUID NameGuid;
2193 -}
2194 -alias tagJOYCAPS2A JOYCAPS2A;
2195 -alias tagJOYCAPS2A* PJOYCAPS2A;
2196 -alias tagJOYCAPS2A* NPJOYCAPS2A;
2197 -alias tagJOYCAPS2A* LPJOYCAPS2A;
2198 -
2199 -struct tagJOYCAPS2W {
2200 - WORD wMid;
2201 - WORD wPid;
2202 - WCHAR szPname[MAXPNAMELEN];
2203 - UINT wXmin;
2204 - UINT wXmax;
2205 - UINT wYmin;
2206 - UINT wYmax;
2207 - UINT wZmin;
2208 - UINT wZmax;
2209 - UINT wNumButtons;
2210 - UINT wPeriodMin;
2211 - UINT wPeriodMax;
2212 - UINT wRmin;
2213 - UINT wRmax;
2214 - UINT wUmin;
2215 - UINT wUmax;
2216 - UINT wVmin;
2217 - UINT wVmax;
2218 - UINT wCaps;
2219 - UINT wMaxAxes;
2220 - UINT wNumAxes;
2221 - UINT wMaxButtons;
2222 - WCHAR szRegKey[MAXPNAMELEN];
2223 - WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
2224 - GUID ManufacturerGuid;
2225 - GUID ProductGuid;
2226 - GUID NameGuid;
2227 -}
2228 -alias tagJOYCAPS2W JOYCAPS2W;
2229 -alias tagJOYCAPS2W* PJOYCAPS2W;
2230 -alias tagJOYCAPS2W* NPJOYCAPS2W;
2231 -alias tagJOYCAPS2W* LPJOYCAPS2W;
2232 -
2233 -// #ifdef UNICODE
2234 -alias JOYCAPS2W JOYCAPS2;
2235 -alias PJOYCAPS2W PJOYCAPS2;
2236 -alias NPJOYCAPS2W NPJOYCAPS2;
2237 -alias LPJOYCAPS2W LPJOYCAPS2;
2238 -// #else
2239 -// ...
2240 -// #endif // UNICODE
2241 -
2242 -// #else
2243 -// ...
2244 -// #if (WINVER >= 0x0400)
2245 -// ...
2246 -// #endif
2247 -// ...
2248 -// #endif
2249 -
2250 -struct joyinfo_tag {
2251 - UINT wXpos;
2252 - UINT wYpos;
2253 - UINT wZpos;
2254 - UINT wButtons;
2255 -}
2256 -alias joyinfo_tag JOYINFO;
2257 -alias joyinfo_tag* PJOYINFO;
2258 -alias joyinfo_tag* NPJOYINFO;
2259 -alias joyinfo_tag* LPJOYINFO;
2260 -
2261 -// #if(WINVER >= 0x0400)
2262 -struct joyinfoex_tag {
2263 - DWORD dwSize;
2264 - DWORD dwFlags;
2265 - DWORD dwXpos;
2266 - DWORD dwYpos;
2267 - DWORD dwZpos;
2268 - DWORD dwRpos;
2269 - DWORD dwUpos;
2270 - DWORD dwVpos;
2271 - DWORD dwButtons;
2272 - DWORD dwButtonNumber;
2273 - DWORD dwPOV;
2274 - DWORD dwReserved1;
2275 - DWORD dwReserved2;
2276 -}
2277 -alias joyinfoex_tag JOYINFOEX;
2278 -alias joyinfoex_tag* PJOYINFOEX;
2279 -alias joyinfoex_tag* NPJOYINFOEX;
2280 -alias joyinfoex_tag* LPJOYINFOEX;
2281 -
2282 -// #endif /* WINVER >= 0x0400 */
2283 -
2284 -extern(Windows) export UINT joyGetNumDevs();
2285 -// #ifdef _WIN32
2286 -
2287 -extern(Windows) export MMRESULT joyGetDevCapsA(UINT_PTR uJoyID, LPJOYCAPSA pjc, UINT cbjc);
2288 -extern(Windows) export MMRESULT joyGetDevCapsW(UINT_PTR uJoyID, LPJOYCAPSW pjc, UINT cbjc);
2289 -// #ifdef UNICODE
2290 -alias joyGetDevCapsW joyGetDevCaps;
2291 -// #else
2292 -// #...
2293 -// #endif // !UNICODE
2294 -
2295 -// #else
2296 -// ...
2297 -// #endif
2298 -extern(Windows) export MMRESULT joyGetPos(UINT uJoyID, LPJOYINFO pji);
2299 -
2300 -// #if(WINVER >= 0x0400)
2301 -extern(Windows) export MMRESULT joyGetPosEx(UINT uJoyID, LPJOYINFOEX pji);
2302 -// #endif /* WINVER >= 0x0400 */
2303 -
2304 -extern(Windows) export MMRESULT joyGetThreshold(UINT uJoyID, LPUINT puThreshold);
2305 -extern(Windows) export MMRESULT joyReleaseCapture(UINT uJoyID);
2306 -extern(Windows) export MMRESULT joySetCapture(HWND hwnd, UINT uJoyID, UINT uPeriod,
2307 - BOOL fChanged);
2308 -extern(Windows) export MMRESULT joySetThreshold(UINT uJoyID, UINT uThreshold);
2309 -
2310 -// #endif /* ifndef MMNOJOY */
2311 -
2312 -// #ifndef MMNOMMIO
2313 -
2314 -enum : uint { MMIOERR_BASE = 256 }
2315 -enum : uint { MMIOERR_FILENOTFOUND = MMIOERR_BASE + 1 }
2316 -enum : uint { MMIOERR_OUTOFMEMORY = MMIOERR_BASE + 2 }
2317 -enum : uint { MMIOERR_CANNOTOPEN = MMIOERR_BASE + 3 }
2318 -enum : uint { MMIOERR_CANNOTCLOSE = MMIOERR_BASE + 4 }
2319 -enum : uint { MMIOERR_CANNOTREAD = MMIOERR_BASE + 5 }
2320 -enum : uint { MMIOERR_CANNOTWRITE = MMIOERR_BASE + 6 }
2321 -enum : uint { MMIOERR_CANNOTSEEK = MMIOERR_BASE + 7 }
2322 -enum : uint { MMIOERR_CANNOTEXPAND = MMIOERR_BASE + 8 }
2323 -enum : uint { MMIOERR_CHUNKNOTFOUND = MMIOERR_BASE + 9 }
2324 -enum : uint { MMIOERR_UNBUFFERED = MMIOERR_BASE + 10 }
2325 -enum : uint { MMIOERR_PATHNOTFOUND = MMIOERR_BASE + 11 }
2326 -enum : uint { MMIOERR_ACCESSDENIED = MMIOERR_BASE + 12 }
2327 -enum : uint { MMIOERR_SHARINGVIOLATION = MMIOERR_BASE + 13 }
2328 -enum : uint { MMIOERR_NETWORKERROR = MMIOERR_BASE + 14 }
2329 -enum : uint { MMIOERR_TOOMANYOPENFILES = MMIOERR_BASE + 15 }
2330 -enum : uint { MMIOERR_INVALIDFILE = MMIOERR_BASE + 16 }
2331 -
2332 -const char CFSEPCHAR = '+';
2333 -
2334 -alias DWORD FOURCC;
2335 -alias char* HPSTR;
2336 -alias void* HMMIO;
2337 -// typedef LRESULT (CALLBACK MMIOPROC)(LPSTR lpmmioinfo, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
2338 -extern(Windows) alias LRESULT function(LPSTR lpmmioinfo, UINT uMsg, LPARAM lParam1, LPARAM lParam2) LPMMIOPROC;
2339 -
2340 -struct _MMIOINFO {
2341 -
2342 - DWORD dwFlags;
2343 - FOURCC fccIOProc;
2344 - LPMMIOPROC pIOProc;
2345 - UINT wErrorRet;
2346 - HTASK htask;
2347 -
2348 - LONG cchBuffer;
2349 - HPSTR pchBuffer;
2350 - HPSTR pchNext;
2351 - HPSTR pchEndRead;
2352 - HPSTR pchEndWrite;
2353 - LONG lBufOffset;
2354 -
2355 - LONG lDiskOffset;
2356 - DWORD adwInfo[3];
2357 -
2358 - DWORD dwReserved1;
2359 - DWORD dwReserved2;
2360 - HMMIO hmmio;
2361 -}
2362 -alias _MMIOINFO MMIOINFO;
2363 -alias _MMIOINFO* PMMIOINFO;
2364 -alias _MMIOINFO* NPMMIOINFO;
2365 -alias _MMIOINFO* LPMMIOINFO;
2366 -
2367 -alias MMIOINFO* LPCMMIOINFO;
2368 -
2369 -struct _MMCKINFO {
2370 - FOURCC ckid;
2371 - DWORD cksize;
2372 - FOURCC fccType;
2373 - DWORD dwDataOffset;
2374 - DWORD dwFlags;
2375 -}
2376 -alias _MMCKINFO MMCKINFO;
2377 -alias _MMCKINFO* PMMCKINFO;
2378 -alias _MMCKINFO* NPMMCKINFO;
2379 -alias _MMCKINFO* LPMMCKINFO;
2380 -
2381 -alias MMCKINFO* LPCMMCKINFO;
2382 -
2383 -enum : uint { MMIO_RWMODE = 0x00000003 }
2384 -enum : uint { MMIO_SHAREMODE = 0x00000070 }
2385 -
2386 -enum : uint { MMIO_CREATE = 0x00001000 }
2387 -enum : uint { MMIO_PARSE = 0x00000100 }
2388 -enum : uint { MMIO_DELETE = 0x00000200 }
2389 -enum : uint { MMIO_EXIST = 0x00004000 }
2390 -enum : uint { MMIO_ALLOCBUF = 0x00010000 }
2391 -enum : uint { MMIO_GETTEMP = 0x00020000 }
2392 -
2393 -enum : uint { MMIO_DIRTY = 0x10000000 }
2394 -
2395 -enum : uint { MMIO_READ = 0x00000000 }
2396 -enum : uint { MMIO_WRITE = 0x00000001 }
2397 -enum : uint { MMIO_READWRITE = 0x00000002 }
2398 -
2399 -enum : uint { MMIO_COMPAT = 0x00000000 }
2400 -enum : uint { MMIO_EXCLUSIVE = 0x00000010 }
2401 -enum : uint { MMIO_DENYWRITE = 0x00000020 }
2402 -enum : uint { MMIO_DENYREAD = 0x00000030 }
2403 -enum : uint { MMIO_DENYNONE = 0x00000040 }
2404 -
2405 -enum : uint { MMIO_FHOPEN = 0x0010 }
2406 -enum : uint { MMIO_EMPTYBUF = 0x0010 }
2407 -enum : uint { MMIO_TOUPPER = 0x0010 }
2408 -enum : uint { MMIO_INSTALLPROC = 0x00010000 }
2409 -enum : uint { MMIO_GLOBALPROC = 0x10000000 }
2410 -enum : uint { MMIO_REMOVEPROC = 0x00020000 }
2411 -enum : uint { MMIO_UNICODEPROC = 0x01000000 }
2412 -enum : uint { MMIO_FINDPROC = 0x00040000 }
2413 -enum : uint { MMIO_FINDCHUNK = 0x0010 }
2414 -enum : uint { MMIO_FINDRIFF = 0x0020 }
2415 -enum : uint { MMIO_FINDLIST = 0x0040 }
2416 -enum : uint { MMIO_CREATERIFF = 0x0020 }
2417 -enum : uint { MMIO_CREATELIST = 0x0040 }
2418 -
2419 -alias MMIO_READ MMIOM_READ;
2420 -alias MMIO_WRITE MMIOM_WRITE;
2421 -enum : uint { MMIOM_SEEK = 2 }
2422 -enum : uint { MMIOM_OPEN = 3 }
2423 -enum : uint { MMIOM_CLOSE = 4 }
2424 -enum : uint { MMIOM_WRITEFLUSH = 5 }
2425 -
2426 -// #if (WINVER >= 0x030a)
2427 -enum : uint { MMIOM_RENAME = 6 }
2428 -// #endif /* ifdef WINVER >= 0x030a */
2429 -
2430 -enum : uint { MMIOM_USER = 0x8000 }
2431 -
2432 -// #define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F')
2433 -// #define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T')
2434 -
2435 -// #define FOURCC_DOS mmioFOURCC('D', 'O', 'S', ' ')
2436 -// #define FOURCC_MEM mmioFOURCC('M', 'E', 'M', ' ')
2437 -
2438 -// #ifndef SEEK_SET
2439 -enum : uint { SEEK_SET = 0 }
2440 -enum : uint { SEEK_CUR = 1 }
2441 -enum : uint { SEEK_END = 2 }
2442 -// #endif /* ifndef SEEK_SET */
2443 -
2444 -enum : uint { MMIO_DEFAULTBUFFER = 8192 }
2445 -
2446 -// #define mmioFOURCC(ch0, ch1, ch2, ch3) MAKEFOURCC(ch0, ch1, ch2, ch3)
2447 -
2448 -// #ifdef _WIN32
2449 -
2450 -extern(Windows) export FOURCC mmioStringToFOURCCA(LPCSTR sz, UINT uFlags);
2451 -extern(Windows) export FOURCC mmioStringToFOURCCW(LPCWSTR sz, UINT uFlags);
2452 -// #ifdef UNICODE
2453 -alias mmioStringToFOURCCW mmioStringToFOURCC;
2454 -// #else
2455 -// #...
2456 -// #endif // !UNICODE
2457 -extern(Windows) export LPMMIOPROC mmioInstallIOProcA(FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags);
2458 -extern(Windows) export LPMMIOPROC mmioInstallIOProcW(FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags);
2459 -// #ifdef UNICODE
2460 -alias mmioInstallIOProcW mmioInstallIOProc;
2461 -// #else
2462 -// #...
2463 -// #endif // !UNICODE
2464 -extern(Windows) export HMMIO mmioOpenA(LPSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen);
2465 -extern(Windows) export HMMIO mmioOpenW(LPWSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen);
2466 -// #ifdef UNICODE
2467 -alias mmioOpenW mmioOpen;
2468 -// #else
2469 -// #...
2470 -// #endif // !UNICODE
2471 -extern(Windows) export MMRESULT mmioRenameA(LPCSTR pszFileName, LPCSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename);
2472 -extern(Windows) export MMRESULT mmioRenameW(LPCWSTR pszFileName, LPCWSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename);
2473 -// #ifdef UNICODE
2474 -alias mmioRenameW mmioRename;
2475 -// #else
2476 -// #...
2477 -// #endif // !UNICODE
2478 -// #else
2479 -// ...
2480 -// #if (WINVER >= 0x030a)
2481 -// ...
2482 -// #endif /* ifdef WINVER >= 0x030a */
2483 -// #endif
2484 -
2485 -extern(Windows) export MMRESULT mmioClose(HMMIO hmmio, UINT fuClose);
2486 -extern(Windows) export LONG mmioRead(HMMIO hmmio, HPSTR pch, LONG cch);
2487 -extern(Windows) export LONG mmioWrite(HMMIO hmmio, char * pch, LONG cch);
2488 -extern(Windows) export LONG mmioSeek(HMMIO hmmio, LONG lOffset, int iOrigin);
2489 -extern(Windows) export MMRESULT mmioGetInfo(HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuInfo);
2490 -extern(Windows) export MMRESULT mmioSetInfo(HMMIO hmmio, LPCMMIOINFO pmmioinfo, UINT fuInfo);
2491 -extern(Windows) export MMRESULT mmioSetBuffer(HMMIO hmmio, LPSTR pchBuffer, LONG cchBuffer,
2492 - UINT fuBuffer);
2493 -extern(Windows) export MMRESULT mmioFlush(HMMIO hmmio, UINT fuFlush);
2494 -extern(Windows) export MMRESULT mmioAdvance(HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuAdvance);
2495 -extern(Windows) export LRESULT mmioSendMessage(HMMIO hmmio, UINT uMsg,
2496 - LPARAM lParam1, LPARAM lParam2);
2497 -extern(Windows) export MMRESULT mmioDescend(HMMIO hmmio, LPMMCKINFO pmmcki,
2498 - MMCKINFO * pmmckiParent, UINT fuDescend);
2499 -extern(Windows) export MMRESULT mmioAscend(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuAscend);
2500 -extern(Windows) export MMRESULT mmioCreateChunk(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuCreate);
2501 -
2502 -// #endif /* ifndef MMNOMMIO */
2503 -
2504 -// #ifndef MMNOMCI
2505 -
2506 -// #ifndef _MCIERROR_ /* MCIERROR is defined in some post 3.1 apps */
2507 -// #define _MCIERROR_
2508 -alias DWORD MCIERROR;
2509 -// #endif
2510 -
2511 -// #ifndef _MCIDEVICEID_ /* Same with MCIDEVICEID */
2512 -// #define _MCIDEVICEID_
2513 -alias UINT MCIDEVICEID;
2514 -// #endif
2515 -
2516 -extern(Windows) alias UINT function(MCIDEVICEID mciId, DWORD dwYieldData) YIELDPROC;
2517 -
2518 -// #ifdef _WIN32
2519 -
2520 -extern(Windows) export MCIERROR mciSendCommandA(MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
2521 -extern(Windows) export MCIERROR mciSendCommandW(MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
2522 -// #ifdef UNICODE
2523 -alias mciSendCommandW mciSendCommand;
2524 -// #else
2525 -// #...
2526 -// #endif // !UNICODE
2527 -extern(Windows) export MCIERROR mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
2528 -extern(Windows) export MCIERROR mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
2529 -// #ifdef UNICODE
2530 -alias mciSendStringW mciSendString;
2531 -// #else
2532 -// #...
2533 -// #endif // !UNICODE
2534 -extern(Windows) export MCIDEVICEID mciGetDeviceIDA(LPCSTR pszDevice);
2535 -extern(Windows) export MCIDEVICEID mciGetDeviceIDW(LPCWSTR pszDevice);
2536 -// #ifdef UNICODE
2537 -alias mciGetDeviceIDW mciGetDeviceID;
2538 -// #else
2539 -// #...
2540 -// #endif // !UNICODE
2541 -extern(Windows) export MCIDEVICEID mciGetDeviceIDFromElementIDA(DWORD dwElementID, LPCSTR lpstrType );
2542 -extern(Windows) export MCIDEVICEID mciGetDeviceIDFromElementIDW(DWORD dwElementID, LPCWSTR lpstrType );
2543 -// #ifdef UNICODE
2544 -alias mciGetDeviceIDFromElementIDW mciGetDeviceIDFromElementID;
2545 -// #else
2546 -// #...
2547 -// #endif // !UNICODE
2548 -extern(Windows) export BOOL mciGetErrorStringA(MCIERROR mcierr, LPSTR pszText, UINT cchText);
2549 -extern(Windows) export BOOL mciGetErrorStringW(MCIERROR mcierr, LPWSTR pszText, UINT cchText);
2550 -// #ifdef UNICODE
2551 -alias mciGetErrorStringW mciGetErrorString;
2552 -// #else
2553 -// #...
2554 -// #endif // !UNICODE
2555 -
2556 -// #else
2557 -// ...
2558 -// #endif
2559 -
2560 -extern(Windows) export BOOL mciSetYieldProc(MCIDEVICEID mciId, YIELDPROC fpYieldProc,
2561 - DWORD dwYieldData);
2562 -
2563 -// #if (WINVER >= 0x030a)
2564 -extern(Windows) export HTASK mciGetCreatorTask(MCIDEVICEID mciId);
2565 -extern(Windows) export YIELDPROC mciGetYieldProc(MCIDEVICEID mciId, LPDWORD pdwYieldData);
2566 -// #endif /* ifdef WINVER >= 0x030a */
2567 -
2568 -// #if (WINVER < 0x030a)
2569 -// ...
2570 -// #endif /* ifdef WINVER < 0x030a */
2571 -
2572 -enum : uint { MCIERR_INVALID_DEVICE_ID = MCIERR_BASE + 1 }
2573 -enum : uint { MCIERR_UNRECOGNIZED_KEYWORD = MCIERR_BASE + 3 }
2574 -enum : uint { MCIERR_UNRECOGNIZED_COMMAND = MCIERR_BASE + 5 }
2575 -enum : uint { MCIERR_HARDWARE = MCIERR_BASE + 6 }
2576 -enum : uint { MCIERR_INVALID_DEVICE_NAME = MCIERR_BASE + 7 }
2577 -enum : uint { MCIERR_OUT_OF_MEMORY = MCIERR_BASE + 8 }
2578 -enum : uint { MCIERR_DEVICE_OPEN = MCIERR_BASE + 9 }
2579 -enum : uint { MCIERR_CANNOT_LOAD_DRIVER = MCIERR_BASE + 10 }
2580 -enum : uint { MCIERR_MISSING_COMMAND_STRING = MCIERR_BASE + 11 }
2581 -enum : uint { MCIERR_PARAM_OVERFLOW = MCIERR_BASE + 12 }
2582 -enum : uint { MCIERR_MISSING_STRING_ARGUMENT = MCIERR_BASE + 13 }
2583 -enum : uint { MCIERR_BAD_INTEGER = MCIERR_BASE + 14 }
2584 -enum : uint { MCIERR_PARSER_INTERNAL = MCIERR_BASE + 15 }
2585 -enum : uint { MCIERR_DRIVER_INTERNAL = MCIERR_BASE + 16 }
2586 -enum : uint { MCIERR_MISSING_PARAMETER = MCIERR_BASE + 17 }
2587 -enum : uint { MCIERR_UNSUPPORTED_FUNCTION = MCIERR_BASE + 18 }
2588 -enum : uint { MCIERR_FILE_NOT_FOUND = MCIERR_BASE + 19 }
2589 -enum : uint { MCIERR_DEVICE_NOT_READY = MCIERR_BASE + 20 }
2590 -enum : uint { MCIERR_INTERNAL = MCIERR_BASE + 21 }
2591 -enum : uint { MCIERR_DRIVER = MCIERR_BASE + 22 }
2592 -enum : uint { MCIERR_CANNOT_USE_ALL = MCIERR_BASE + 23 }
2593 -enum : uint { MCIERR_MULTIPLE = MCIERR_BASE + 24 }
2594 -enum : uint { MCIERR_EXTENSION_NOT_FOUND = MCIERR_BASE + 25 }
2595 -enum : uint { MCIERR_OUTOFRANGE = MCIERR_BASE + 26 }
2596 -enum : uint { MCIERR_FLAGS_NOT_COMPATIBLE = MCIERR_BASE + 28 }
2597 -enum : uint { MCIERR_FILE_NOT_SAVED = MCIERR_BASE + 30 }
2598 -enum : uint { MCIERR_DEVICE_TYPE_REQUIRED = MCIERR_BASE + 31 }
2599 -enum : uint { MCIERR_DEVICE_LOCKED = MCIERR_BASE + 32 }
2600 -enum : uint { MCIERR_DUPLICATE_ALIAS = MCIERR_BASE + 33 }
2601 -enum : uint { MCIERR_BAD_CONSTANT = MCIERR_BASE + 34 }
2602 -enum : uint { MCIERR_MUST_USE_SHAREABLE = MCIERR_BASE + 35 }
2603 -enum : uint { MCIERR_MISSING_DEVICE_NAME = MCIERR_BASE + 36 }
2604 -enum : uint { MCIERR_BAD_TIME_FORMAT = MCIERR_BASE + 37 }
2605 -enum : uint { MCIERR_NO_CLOSING_QUOTE = MCIERR_BASE + 38 }
2606 -enum : uint { MCIERR_DUPLICATE_FLAGS = MCIERR_BASE + 39 }
2607 -enum : uint { MCIERR_INVALID_FILE = MCIERR_BASE + 40 }
2608 -enum : uint { MCIERR_NULL_PARAMETER_BLOCK = MCIERR_BASE + 41 }
2609 -enum : uint { MCIERR_UNNAMED_RESOURCE = MCIERR_BASE + 42 }
2610 -enum : uint { MCIERR_NEW_REQUIRES_ALIAS = MCIERR_BASE + 43 }
2611 -enum : uint { MCIERR_NOTIFY_ON_AUTO_OPEN = MCIERR_BASE + 44 }
2612 -enum : uint { MCIERR_NO_ELEMENT_ALLOWED = MCIERR_BASE + 45 }
2613 -enum : uint { MCIERR_NONAPPLICABLE_FUNCTION = MCIERR_BASE + 46 }
2614 -enum : uint { MCIERR_ILLEGAL_FOR_AUTO_OPEN = MCIERR_BASE + 47 }
2615 -enum : uint { MCIERR_FILENAME_REQUIRED = MCIERR_BASE + 48 }
2616 -enum : uint { MCIERR_EXTRA_CHARACTERS = MCIERR_BASE + 49 }
2617 -enum : uint { MCIERR_DEVICE_NOT_INSTALLED = MCIERR_BASE + 50 }
2618 -enum : uint { MCIERR_GET_CD = MCIERR_BASE + 51 }
2619 -enum : uint { MCIERR_SET_CD = MCIERR_BASE + 52 }
2620 -enum : uint { MCIERR_SET_DRIVE = MCIERR_BASE + 53 }
2621 -enum : uint { MCIERR_DEVICE_LENGTH = MCIERR_BASE + 54 }
2622 -enum : uint { MCIERR_DEVICE_ORD_LENGTH = MCIERR_BASE + 55 }
2623 -enum : uint { MCIERR_NO_INTEGER = MCIERR_BASE + 56 }
2624 -
2625 -enum : uint { MCIERR_WAVE_OUTPUTSINUSE = MCIERR_BASE + 64 }
2626 -enum : uint { MCIERR_WAVE_SETOUTPUTINUSE = MCIERR_BASE + 65 }
2627 -enum : uint { MCIERR_WAVE_INPUTSINUSE = MCIERR_BASE + 66 }
2628 -enum : uint { MCIERR_WAVE_SETINPUTINUSE = MCIERR_BASE + 67 }
2629 -enum : uint { MCIERR_WAVE_OUTPUTUNSPECIFIED = MCIERR_BASE + 68 }
2630 -enum : uint { MCIERR_WAVE_INPUTUNSPECIFIED = MCIERR_BASE + 69 }
2631 -enum : uint { MCIERR_WAVE_OUTPUTSUNSUITABLE = MCIERR_BASE + 70 }
2632 -enum : uint { MCIERR_WAVE_SETOUTPUTUNSUITABLE = MCIERR_BASE + 71 }
2633 -enum : uint { MCIERR_WAVE_INPUTSUNSUITABLE = MCIERR_BASE + 72 }
2634 -enum : uint { MCIERR_WAVE_SETINPUTUNSUITABLE = MCIERR_BASE + 73 }
2635 -
2636 -enum : uint { MCIERR_SEQ_DIV_INCOMPATIBLE = MCIERR_BASE + 80 }
2637 -enum : uint { MCIERR_SEQ_PORT_INUSE = MCIERR_BASE + 81 }
2638 -enum : uint { MCIERR_SEQ_PORT_NONEXISTENT = MCIERR_BASE + 82 }
2639 -enum : uint { MCIERR_SEQ_PORT_MAPNODEVICE = MCIERR_BASE + 83 }
2640 -enum : uint { MCIERR_SEQ_PORT_MISCERROR = MCIERR_BASE + 84 }
2641 -enum : uint { MCIERR_SEQ_TIMER = MCIERR_BASE + 85 }
2642 -enum : uint { MCIERR_SEQ_PORTUNSPECIFIED = MCIERR_BASE + 86 }
2643 -enum : uint { MCIERR_SEQ_NOMIDIPRESENT = MCIERR_BASE + 87 }
2644 -
2645 -enum : uint { MCIERR_NO_WINDOW = MCIERR_BASE + 90 }
2646 -enum : uint { MCIERR_CREATEWINDOW = MCIERR_BASE + 91 }
2647 -enum : uint { MCIERR_FILE_READ = MCIERR_BASE + 92 }
2648 -enum : uint { MCIERR_FILE_WRITE = MCIERR_BASE + 93 }
2649 -
2650 -enum : uint { MCIERR_NO_IDENTITY = MCIERR_BASE + 94 }
2651 -
2652 -enum : uint { MCIERR_CUSTOM_DRIVER_BASE = MCIERR_BASE + 256 }
2653 -
2654 -alias DRV_MCI_FIRST MCI_FIRST;
2655 -
2656 -enum : uint { MCI_OPEN = 0x0803 }
2657 -enum : uint { MCI_CLOSE = 0x0804 }
2658 -enum : uint { MCI_ESCAPE = 0x0805 }
2659 -enum : uint { MCI_PLAY = 0x0806 }
2660 -enum : uint { MCI_SEEK = 0x0807 }
2661 -enum : uint { MCI_STOP = 0x0808 }
2662 -enum : uint { MCI_PAUSE = 0x0809 }
2663 -enum : uint { MCI_INFO = 0x080A }
2664 -enum : uint { MCI_GETDEVCAPS = 0x080B }
2665 -enum : uint { MCI_SPIN = 0x080C }
2666 -enum : uint { MCI_SET = 0x080D }
2667 -enum : uint { MCI_STEP = 0x080E }
2668 -enum : uint { MCI_RECORD = 0x080F }
2669 -enum : uint { MCI_SYSINFO = 0x0810 }
2670 -enum : uint { MCI_BREAK = 0x0811 }
2671 -enum : uint { MCI_SAVE = 0x0813 }
2672 -enum : uint { MCI_STATUS = 0x0814 }
2673 -enum : uint { MCI_CUE = 0x0830 }
2674 -enum : uint { MCI_REALIZE = 0x0840 }
2675 -enum : uint { MCI_WINDOW = 0x0841 }
2676 -enum : uint { MCI_PUT = 0x0842 }
2677 -enum : uint { MCI_WHERE = 0x0843 }
2678 -enum : uint { MCI_FREEZE = 0x0844 }
2679 -enum : uint { MCI_UNFREEZE = 0x0845 }
2680 -enum : uint { MCI_LOAD = 0x0850 }
2681 -enum : uint { MCI_CUT = 0x0851 }
2682 -enum : uint { MCI_COPY = 0x0852 }
2683 -enum : uint { MCI_PASTE = 0x0853 }
2684 -enum : uint { MCI_UPDATE = 0x0854 }
2685 -enum : uint { MCI_RESUME = 0x0855 }
2686 -enum : uint { MCI_DELETE = 0x0856 }
2687 -
2688 -enum : uint { MCI_USER_MESSAGES = DRV_MCI_FIRST + 0x400 }
2689 -enum : uint { MCI_LAST = 0x0FFF }
2690 -
2691 -enum : uint { MCI_ALL_DEVICE_ID = cast(MCIDEVICEID)-1 }
2692 -
2693 -enum : uint { MCI_DEVTYPE_VCR = 513 }
2694 -enum : uint { MCI_DEVTYPE_VIDEODISC = 514 }
2695 -enum : uint { MCI_DEVTYPE_OVERLAY = 515 }
2696 -enum : uint { MCI_DEVTYPE_CD_AUDIO = 516 }
2697 -enum : uint { MCI_DEVTYPE_DAT = 517 }
2698 -enum : uint { MCI_DEVTYPE_SCANNER = 518 }
2699 -enum : uint { MCI_DEVTYPE_ANIMATION = 519 }
2700 -enum : uint { MCI_DEVTYPE_DIGITAL_VIDEO = 520 }
2701 -enum : uint { MCI_DEVTYPE_OTHER = 521 }
2702 -enum : uint { MCI_DEVTYPE_WAVEFORM_AUDIO = 522 }
2703 -enum : uint { MCI_DEVTYPE_SEQUENCER = 523 }
2704 -
2705 -alias MCI_DEVTYPE_VCR MCI_DEVTYPE_FIRST;
2706 -alias MCI_DEVTYPE_SEQUENCER MCI_DEVTYPE_LAST;
2707 -
2708 -enum : uint { MCI_DEVTYPE_FIRST_USER = 0x1000 }
2709 -
2710 -enum : uint { MCI_MODE_NOT_READY = MCI_STRING_OFFSET + 12 }
2711 -enum : uint { MCI_MODE_STOP = MCI_STRING_OFFSET + 13 }
2712 -enum : uint { MCI_MODE_PLAY = MCI_STRING_OFFSET + 14 }
2713 -enum : uint { MCI_MODE_RECORD = MCI_STRING_OFFSET + 15 }
2714 -enum : uint { MCI_MODE_SEEK = MCI_STRING_OFFSET + 16 }
2715 -enum : uint { MCI_MODE_PAUSE = MCI_STRING_OFFSET + 17 }
2716 -enum : uint { MCI_MODE_OPEN = MCI_STRING_OFFSET + 18 }
2717 -
2718 -enum : uint { MCI_FORMAT_MILLISECONDS = 0 }
2719 -enum : uint { MCI_FORMAT_HMS = 1 }
2720 -enum : uint { MCI_FORMAT_MSF = 2 }
2721 -enum : uint { MCI_FORMAT_FRAMES = 3 }
2722 -enum : uint { MCI_FORMAT_SMPTE_24 = 4 }
2723 -enum : uint { MCI_FORMAT_SMPTE_25 = 5 }
2724 -enum : uint { MCI_FORMAT_SMPTE_30 = 6 }
2725 -enum : uint { MCI_FORMAT_SMPTE_30DROP = 7 }
2726 -enum : uint { MCI_FORMAT_BYTES = 8 }
2727 -enum : uint { MCI_FORMAT_SAMPLES = 9 }
2728 -enum : uint { MCI_FORMAT_TMSF = 10 }
2729 -
2730 -// #define MCI_MSF_MINUTE(msf) ((BYTE)(msf))
2731 -// #define MCI_MSF_SECOND(msf) ((BYTE)(((WORD)(msf)) >> 8))
2732 -// #define MCI_MSF_FRAME(msf) ((BYTE)((msf)>>16))
2733 -
2734 -// #define MCI_MAKE_MSF(m, s, f) ((DWORD)(((BYTE)(m) | ((WORD)(s)<<8)) | (((DWORD)(BYTE)(f))<<16)))
2735 -
2736 -// #define MCI_TMSF_TRACK(tmsf) ((BYTE)(tmsf))
2737 -// #define MCI_TMSF_MINUTE(tmsf) ((BYTE)(((WORD)(tmsf)) >> 8))
2738 -// #define MCI_TMSF_SECOND(tmsf) ((BYTE)((tmsf)>>16))
2739 -// #define MCI_TMSF_FRAME(tmsf) ((BYTE)((tmsf)>>24))
2740 -
2741 -// #define MCI_MAKE_TMSF(t, m, s, f) ((DWORD)(((BYTE)(t) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s) | ((WORD)(f)<<8))<<16)))
2742 -
2743 -// #define MCI_HMS_HOUR(hms) ((BYTE)(hms))
2744 -// #define MCI_HMS_MINUTE(hms) ((BYTE)(((WORD)(hms)) >> 8))
2745 -// #define MCI_HMS_SECOND(hms) ((BYTE)((hms)>>16))
2746 -
2747 -// #define MCI_MAKE_HMS(h, m, s) ((DWORD)(((BYTE)(h) | ((WORD)(m)<<8)) | (((DWORD)(BYTE)(s))<<16)))
2748 -
2749 -enum : uint { MCI_NOTIFY_SUCCESSFUL = 0x0001 }
2750 -enum : uint { MCI_NOTIFY_SUPERSEDED = 0x0002 }
2751 -enum : uint { MCI_NOTIFY_ABORTED = 0x0004 }
2752 -enum : uint { MCI_NOTIFY_FAILURE = 0x0008 }
2753 -
2754 -enum : uint { MCI_NOTIFY = 0x00000001 }
2755 -enum : uint { MCI_WAIT = 0x00000002 }
2756 -enum : uint { MCI_FROM = 0x00000004 }
2757 -enum : uint { MCI_TO = 0x00000008 }
2758 -enum : uint { MCI_TRACK = 0x00000010 }
2759 -
2760 -enum : uint { MCI_OPEN_SHAREABLE = 0x00000100 }
2761 -enum : uint { MCI_OPEN_ELEMENT = 0x00000200 }
2762 -enum : uint { MCI_OPEN_ALIAS = 0x00000400 }
2763 -enum : uint { MCI_OPEN_ELEMENT_ID = 0x00000800 }
2764 -enum : uint { MCI_OPEN_TYPE_ID = 0x00001000 }
2765 -enum : uint { MCI_OPEN_TYPE = 0x00002000 }
2766 -
2767 -enum : uint { MCI_SEEK_TO_START = 0x00000100 }
2768 -enum : uint { MCI_SEEK_TO_END = 0x00000200 }
2769 -
2770 -enum : uint { MCI_STATUS_ITEM = 0x00000100 }
2771 -enum : uint { MCI_STATUS_START = 0x00000200 }
2772 -
2773 -enum : uint { MCI_STATUS_LENGTH = 0x00000001 }
2774 -enum : uint { MCI_STATUS_POSITION = 0x00000002 }
2775 -enum : uint { MCI_STATUS_NUMBER_OF_TRACKS = 0x00000003 }
2776 -enum : uint { MCI_STATUS_MODE = 0x00000004 }
2777 -enum : uint { MCI_STATUS_MEDIA_PRESENT = 0x00000005 }
2778 -enum : uint { MCI_STATUS_TIME_FORMAT = 0x00000006 }
2779 -enum : uint { MCI_STATUS_READY = 0x00000007 }
2780 -enum : uint { MCI_STATUS_CURRENT_TRACK = 0x00000008 }
2781 -
2782 -enum : uint { MCI_INFO_PRODUCT = 0x00000100 }
2783 -enum : uint { MCI_INFO_FILE = 0x00000200 }
2784 -enum : uint { MCI_INFO_MEDIA_UPC = 0x00000400 }
2785 -enum : uint { MCI_INFO_MEDIA_IDENTITY = 0x00000800 }
2786 -enum : uint { MCI_INFO_NAME = 0x00001000 }
2787 -enum : uint { MCI_INFO_COPYRIGHT = 0x00002000 }
2788 -
2789 -enum : uint { MCI_GETDEVCAPS_ITEM = 0x00000100 }
2790 -
2791 -enum : uint { MCI_GETDEVCAPS_CAN_RECORD = 0x00000001 }
2792 -enum : uint { MCI_GETDEVCAPS_HAS_AUDIO = 0x00000002 }
2793 -enum : uint { MCI_GETDEVCAPS_HAS_VIDEO = 0x00000003 }
2794 -enum : uint { MCI_GETDEVCAPS_DEVICE_TYPE = 0x00000004 }
2795 -enum : uint { MCI_GETDEVCAPS_USES_FILES = 0x00000005 }
2796 -enum : uint { MCI_GETDEVCAPS_COMPOUND_DEVICE = 0x00000006 }
2797 -enum : uint { MCI_GETDEVCAPS_CAN_EJECT = 0x00000007 }
2798 -enum : uint { MCI_GETDEVCAPS_CAN_PLAY = 0x00000008 }
2799 -enum : uint { MCI_GETDEVCAPS_CAN_SAVE = 0x00000009 }
2800 -
2801 -enum : uint { MCI_SYSINFO_QUANTITY = 0x00000100 }
2802 -enum : uint { MCI_SYSINFO_OPEN = 0x00000200 }
2803 -enum : uint { MCI_SYSINFO_NAME = 0x00000400 }
2804 -enum : uint { MCI_SYSINFO_INSTALLNAME = 0x00000800 }
2805 -
2806 -enum : uint { MCI_SET_DOOR_OPEN = 0x00000100 }
2807 -enum : uint { MCI_SET_DOOR_CLOSED = 0x00000200 }
2808 -enum : uint { MCI_SET_TIME_FORMAT = 0x00000400 }
2809 -enum : uint { MCI_SET_AUDIO = 0x00000800 }
2810 -enum : uint { MCI_SET_VIDEO = 0x00001000 }
2811 -enum : uint { MCI_SET_ON = 0x00002000 }
2812 -enum : uint { MCI_SET_OFF = 0x00004000 }
2813 -
2814 -enum : uint { MCI_SET_AUDIO_ALL = 0x00000000 }
2815 -enum : uint { MCI_SET_AUDIO_LEFT = 0x00000001 }
2816 -enum : uint { MCI_SET_AUDIO_RIGHT = 0x00000002 }
2817 -
2818 -enum : uint { MCI_BREAK_KEY = 0x00000100 }
2819 -enum : uint { MCI_BREAK_HWND = 0x00000200 }
2820 -enum : uint { MCI_BREAK_OFF = 0x00000400 }
2821 -
2822 -enum : uint { MCI_RECORD_INSERT = 0x00000100 }
2823 -enum : uint { MCI_RECORD_OVERWRITE = 0x00000200 }
2824 -
2825 -enum : uint { MCI_SAVE_FILE = 0x00000100 }
2826 -
2827 -enum : uint { MCI_LOAD_FILE = 0x00000100 }
2828 -
2829 -struct tagMCI_GENERIC_PARMS {
2830 - DWORD_PTR dwCallback;
2831 -}
2832 -alias tagMCI_GENERIC_PARMS MCI_GENERIC_PARMS;
2833 -alias tagMCI_GENERIC_PARMS* PMCI_GENERIC_PARMS;
2834 -alias tagMCI_GENERIC_PARMS* LPMCI_GENERIC_PARMS;
2835 -
2836 -// #ifdef _WIN32
2837 -
2838 -struct tagMCI_OPEN_PARMSA {
2839 - DWORD_PTR dwCallback;
2840 - MCIDEVICEID wDeviceID;
2841 - LPCSTR lpstrDeviceType;
2842 - LPCSTR lpstrElementName;
2843 - LPCSTR lpstrAlias;
2844 -}
2845 -alias tagMCI_OPEN_PARMSA MCI_OPEN_PARMSA;
2846 -alias tagMCI_OPEN_PARMSA* PMCI_OPEN_PARMSA;
2847 -alias tagMCI_OPEN_PARMSA* LPMCI_OPEN_PARMSA;
2848 -
2849 -struct tagMCI_OPEN_PARMSW {
2850 - DWORD_PTR dwCallback;
2851 - MCIDEVICEID wDeviceID;
2852 - LPCWSTR lpstrDeviceType;
2853 - LPCWSTR lpstrElementName;
2854 - LPCWSTR lpstrAlias;
2855 -}
2856 -alias tagMCI_OPEN_PARMSW MCI_OPEN_PARMSW;
2857 -alias tagMCI_OPEN_PARMSW* PMCI_OPEN_PARMSW;
2858 -alias tagMCI_OPEN_PARMSW* LPMCI_OPEN_PARMSW;
2859 -
2860 -// #ifdef UNICODE
2861 -alias MCI_OPEN_PARMSW MCI_OPEN_PARMS;
2862 -alias PMCI_OPEN_PARMSW PMCI_OPEN_PARMS;
2863 -alias LPMCI_OPEN_PARMSW LPMCI_OPEN_PARMS;
2864 -// #else
2865 -// ...
2866 -// #endif // UNICODE
2867 -
2868 -// #else
2869 -// ...
2870 -// #endif
2871 -
2872 -struct tagMCI_PLAY_PARMS {
2873 - DWORD_PTR dwCallback;
2874 - DWORD dwFrom;
2875 - DWORD dwTo;
2876 -}
2877 -alias tagMCI_PLAY_PARMS MCI_PLAY_PARMS;
2878 -alias tagMCI_PLAY_PARMS* PMCI_PLAY_PARMS;
2879 -alias tagMCI_PLAY_PARMS* LPMCI_PLAY_PARMS;
2880 -
2881 -struct tagMCI_SEEK_PARMS {
2882 - DWORD_PTR dwCallback;
2883 - DWORD dwTo;
2884 -}
2885 -alias tagMCI_SEEK_PARMS MCI_SEEK_PARMS;
2886 -alias tagMCI_SEEK_PARMS* PMCI_SEEK_PARMS;
2887 -alias tagMCI_SEEK_PARMS* LPMCI_SEEK_PARMS;
2888 -
2889 -struct tagMCI_STATUS_PARMS {
2890 - DWORD_PTR dwCallback;
2891 - DWORD_PTR dwReturn;
2892 - DWORD dwItem;
2893 - DWORD dwTrack;
2894 -}
2895 -alias tagMCI_STATUS_PARMS MCI_STATUS_PARMS;
2896 -alias tagMCI_STATUS_PARMS* PMCI_STATUS_PARMS;
2897 -alias tagMCI_STATUS_PARMS* LPMCI_STATUS_PARMS;
2898 -
2899 -// #ifdef _WIN32
2900 -
2901 -struct tagMCI_INFO_PARMSA {
2902 - DWORD_PTR dwCallback;
2903 - LPSTR lpstrReturn;
2904 - DWORD dwRetSize;
2905 -}
2906 -alias tagMCI_INFO_PARMSA MCI_INFO_PARMSA;
2907 -alias tagMCI_INFO_PARMSA* LPMCI_INFO_PARMSA;
2908 -
2909 -struct tagMCI_INFO_PARMSW {
2910 - DWORD_PTR dwCallback;
2911 - LPWSTR lpstrReturn;
2912 - DWORD dwRetSize;
2913 -}
2914 -alias tagMCI_INFO_PARMSW MCI_INFO_PARMSW;
2915 -alias tagMCI_INFO_PARMSW* LPMCI_INFO_PARMSW;
2916 -
2917 -// #ifdef UNICODE
2918 -alias MCI_INFO_PARMSW MCI_INFO_PARMS;
2919 -alias LPMCI_INFO_PARMSW LPMCI_INFO_PARMS;
2920 -// #else
2921 -// ...
2922 -// #endif // UNICODE
2923 -
2924 -// #else
2925 -// ...
2926 -// #endif
2927 -
2928 -struct tagMCI_GETDEVCAPS_PARMS {
2929 - DWORD_PTR dwCallback;
2930 - DWORD dwReturn;
2931 - DWORD dwItem;
2932 -}
2933 -alias tagMCI_GETDEVCAPS_PARMS MCI_GETDEVCAPS_PARMS;
2934 -alias tagMCI_GETDEVCAPS_PARMS* PMCI_GETDEVCAPS_PARMS;
2935 -alias tagMCI_GETDEVCAPS_PARMS* LPMCI_GETDEVCAPS_PARMS;
2936 -
2937 -// #ifdef _WIN32
2938 -
2939 -struct tagMCI_SYSINFO_PARMSA {
2940 - DWORD_PTR dwCallback;
2941 - LPSTR lpstrReturn;
2942 - DWORD dwRetSize;
2943 - DWORD dwNumber;
2944 - UINT wDeviceType;
2945 -}
2946 -alias tagMCI_SYSINFO_PARMSA MCI_SYSINFO_PARMSA;
2947 -alias tagMCI_SYSINFO_PARMSA* PMCI_SYSINFO_PARMSA;
2948 -alias tagMCI_SYSINFO_PARMSA* LPMCI_SYSINFO_PARMSA;
2949 -
2950 -struct tagMCI_SYSINFO_PARMSW {
2951 - DWORD_PTR dwCallback;
2952 - LPWSTR lpstrReturn;
2953 - DWORD dwRetSize;
2954 - DWORD dwNumber;
2955 - UINT wDeviceType;
2956 -}
2957 -alias tagMCI_SYSINFO_PARMSW MCI_SYSINFO_PARMSW;
2958 -alias tagMCI_SYSINFO_PARMSW* PMCI_SYSINFO_PARMSW;
2959 -alias tagMCI_SYSINFO_PARMSW* LPMCI_SYSINFO_PARMSW;
2960 -
2961 -// #ifdef UNICODE
2962 -alias MCI_SYSINFO_PARMSW MCI_SYSINFO_PARMS;
2963 -alias PMCI_SYSINFO_PARMSW PMCI_SYSINFO_PARMS;
2964 -alias LPMCI_SYSINFO_PARMSW LPMCI_SYSINFO_PARMS;
2965 -// #else
2966 -// ...
2967 -// #endif // UNICODE
2968 -// #else
2969 -// ...
2970 -// #endif
2971 -
2972 -struct tagMCI_SET_PARMS {
2973 - DWORD_PTR dwCallback;
2974 - DWORD dwTimeFormat;
2975 - DWORD dwAudio;
2976 -}
2977 -alias tagMCI_SET_PARMS MCI_SET_PARMS;
2978 -alias tagMCI_SET_PARMS* PMCI_SET_PARMS;
2979 -alias tagMCI_SET_PARMS* LPMCI_SET_PARMS;
2980 -
2981 -struct tagMCI_BREAK_PARMS {
2982 - DWORD_PTR dwCallback;
2983 -// #ifdef _WIN32
2984 - int nVirtKey;
2985 - HWND hwndBreak;
2986 -// #else
2987 -// ...
2988 -// #endif
2989 -}
2990 -alias tagMCI_BREAK_PARMS MCI_BREAK_PARMS;
2991 -alias tagMCI_BREAK_PARMS* PMCI_BREAK_PARMS;
2992 -alias tagMCI_BREAK_PARMS* LPMCI_BREAK_PARMS;
2993 -
2994 -// #ifdef _WIN32
2995 -
2996 -struct tagMCI_SAVE_PARMSA {
2997 - DWORD_PTR dwCallback;
2998 - LPCSTR lpfilename;
2999 -}
3000 -alias tagMCI_SAVE_PARMSA MCI_SAVE_PARMSA;
3001 -alias tagMCI_SAVE_PARMSA* PMCI_SAVE_PARMSA;
3002 -alias tagMCI_SAVE_PARMSA* LPMCI_SAVE_PARMSA;
3003 -
3004 -struct tagMCI_SAVE_PARMSW {
3005 - DWORD_PTR dwCallback;
3006 - LPCWSTR lpfilename;
3007 -}
3008 -alias tagMCI_SAVE_PARMSW MCI_SAVE_PARMSW;
3009 -alias tagMCI_SAVE_PARMSW* PMCI_SAVE_PARMSW;
3010 -alias tagMCI_SAVE_PARMSW* LPMCI_SAVE_PARMSW;
3011 -
3012 -// #ifdef UNICODE
3013 -alias MCI_SAVE_PARMSW MCI_SAVE_PARMS;
3014 -alias PMCI_SAVE_PARMSW PMCI_SAVE_PARMS;
3015 -alias LPMCI_SAVE_PARMSW LPMCI_SAVE_PARMS;
3016 -// #else
3017 -// ...
3018 -// #endif // UNICODE
3019 -
3020 -// #else
3021 -// ...
3022 -// #endif
3023 -
3024 -// #ifdef _WIN32
3025 -
3026 -struct tagMCI_LOAD_PARMSA {
3027 - DWORD_PTR dwCallback;
3028 - LPCSTR lpfilename;
3029 -}
3030 -alias tagMCI_LOAD_PARMSA MCI_LOAD_PARMSA;
3031 -alias tagMCI_LOAD_PARMSA* PMCI_LOAD_PARMSA;
3032 -alias tagMCI_LOAD_PARMSA* LPMCI_LOAD_PARMSA;
3033 -
3034 -struct tagMCI_LOAD_PARMSW {
3035 - DWORD_PTR dwCallback;
3036 - LPCWSTR lpfilename;
3037 -}
3038 -alias tagMCI_LOAD_PARMSW MCI_LOAD_PARMSW;
3039 -alias tagMCI_LOAD_PARMSW* PMCI_LOAD_PARMSW;
3040 -alias tagMCI_LOAD_PARMSW* LPMCI_LOAD_PARMSW;
3041 -
3042 -// #ifdef UNICODE
3043 -alias MCI_LOAD_PARMSW MCI_LOAD_PARMS;
3044 -alias PMCI_LOAD_PARMSW PMCI_LOAD_PARMS;
3045 -alias LPMCI_LOAD_PARMSW LPMCI_LOAD_PARMS;
3046 -// #else
3047 -// ...
3048 -// #endif // UNICODE
3049 -
3050 -// #else
3051 -// ...
3052 -// #endif
3053 -
3054 -struct tagMCI_RECORD_PARMS {
3055 - DWORD_PTR dwCallback;
3056 - DWORD dwFrom;
3057 - DWORD dwTo;
3058 -}
3059 -alias tagMCI_RECORD_PARMS MCI_RECORD_PARMS;
3060 -alias tagMCI_RECORD_PARMS* LPMCI_RECORD_PARMS;
3061 -
3062 -enum : uint { MCI_VD_MODE_PARK = MCI_VD_OFFSET + 1 }
3063 -
3064 -enum : uint { MCI_VD_MEDIA_CLV = MCI_VD_OFFSET + 2 }
3065 -enum : uint { MCI_VD_MEDIA_CAV = MCI_VD_OFFSET + 3 }
3066 -enum : uint { MCI_VD_MEDIA_OTHER = MCI_VD_OFFSET + 4 }
3067 -
3068 -enum : uint { MCI_VD_FORMAT_TRACK = 0x4001 }
3069 -
3070 -enum : uint { MCI_VD_PLAY_REVERSE = 0x00010000 }
3071 -enum : uint { MCI_VD_PLAY_FAST = 0x00020000 }
3072 -enum : uint { MCI_VD_PLAY_SPEED = 0x00040000 }
3073 -enum : uint { MCI_VD_PLAY_SCAN = 0x00080000 }
3074 -enum : uint { MCI_VD_PLAY_SLOW = 0x00100000 }
3075 -
3076 -enum : uint { MCI_VD_SEEK_REVERSE = 0x00010000 }
3077 -
3078 -enum : uint { MCI_VD_STATUS_SPEED = 0x00004002 }
3079 -enum : uint { MCI_VD_STATUS_FORWARD = 0x00004003 }
3080 -enum : uint { MCI_VD_STATUS_MEDIA_TYPE = 0x00004004 }
3081 -enum : uint { MCI_VD_STATUS_SIDE = 0x00004005 }
3082 -enum : uint { MCI_VD_STATUS_DISC_SIZE = 0x00004006 }
3083 -
3084 -enum : uint { MCI_VD_GETDEVCAPS_CLV = 0x00010000 }
3085 -enum : uint { MCI_VD_GETDEVCAPS_CAV = 0x00020000 }
3086 -
3087 -enum : uint { MCI_VD_SPIN_UP = 0x00010000 }
3088 -enum : uint { MCI_VD_SPIN_DOWN = 0x00020000 }
3089 -
3090 -enum : uint { MCI_VD_GETDEVCAPS_CAN_REVERSE = 0x00004002 }
3091 -enum : uint { MCI_VD_GETDEVCAPS_FAST_RATE = 0x00004003 }
3092 -enum : uint { MCI_VD_GETDEVCAPS_SLOW_RATE = 0x00004004 }
3093 -enum : uint { MCI_VD_GETDEVCAPS_NORMAL_RATE = 0x00004005 }
3094 -
3095 -enum : uint { MCI_VD_STEP_FRAMES = 0x00010000 }
3096 -enum : uint { MCI_VD_STEP_REVERSE = 0x00020000 }
3097 -
3098 -enum : uint { MCI_VD_ESCAPE_STRING = 0x00000100 }
3099 -
3100 -struct tagMCI_VD_PLAY_PARMS {
3101 - DWORD_PTR dwCallback;
3102 - DWORD dwFrom;
3103 - DWORD dwTo;
3104 - DWORD dwSpeed;
3105 -}
3106 -alias tagMCI_VD_PLAY_PARMS MCI_VD_PLAY_PARMS;
3107 -alias tagMCI_VD_PLAY_PARMS* PMCI_VD_PLAY_PARMS;
3108 -alias tagMCI_VD_PLAY_PARMS* LPMCI_VD_PLAY_PARMS;
3109 -
3110 -struct tagMCI_VD_STEP_PARMS {
3111 - DWORD_PTR dwCallback;
3112 - DWORD dwFrames;
3113 -}
3114 -alias tagMCI_VD_STEP_PARMS MCI_VD_STEP_PARMS;
3115 -alias tagMCI_VD_STEP_PARMS* PMCI_VD_STEP_PARMS;
3116 -alias tagMCI_VD_STEP_PARMS* LPMCI_VD_STEP_PARMS;
3117 -
3118 -// #ifdef _WIN32
3119 -
3120 -struct tagMCI_VD_ESCAPE_PARMSA {
3121 - DWORD_PTR dwCallback;
3122 - LPCSTR lpstrCommand;
3123 -}
3124 -alias tagMCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMSA;
3125 -alias tagMCI_VD_ESCAPE_PARMSA* PMCI_VD_ESCAPE_PARMSA;
3126 -alias tagMCI_VD_ESCAPE_PARMSA* LPMCI_VD_ESCAPE_PARMSA;
3127 -
3128 -struct tagMCI_VD_ESCAPE_PARMSW {
3129 - DWORD_PTR dwCallback;
3130 - LPCWSTR lpstrCommand;
3131 -}
3132 -alias tagMCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMSW;
3133 -alias tagMCI_VD_ESCAPE_PARMSW* PMCI_VD_ESCAPE_PARMSW;
3134 -alias tagMCI_VD_ESCAPE_PARMSW* LPMCI_VD_ESCAPE_PARMSW;
3135 -
3136 -// #ifdef UNICODE
3137 -alias MCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMS;
3138 -alias PMCI_VD_ESCAPE_PARMSW PMCI_VD_ESCAPE_PARMS;
3139 -alias LPMCI_VD_ESCAPE_PARMSW LPMCI_VD_ESCAPE_PARMS;
3140 -// #else
3141 -// ...
3142 -// #endif // UNICODE
3143 -
3144 -// #else
3145 -// ...
3146 -// #endif
3147 -
3148 -enum : uint { MCI_CDA_STATUS_TYPE_TRACK = 0x00004001 }
3149 -
3150 -enum : uint { MCI_CDA_TRACK_AUDIO = MCI_CD_OFFSET + 0 }
3151 -enum : uint { MCI_CDA_TRACK_OTHER = MCI_CD_OFFSET + 1 }
3152 -
3153 -enum : uint { MCI_WAVE_PCM = MCI_WAVE_OFFSET + 0 }
3154 -enum : uint { MCI_WAVE_MAPPER = MCI_WAVE_OFFSET + 1 }
3155 -
3156 -enum : uint { MCI_WAVE_OPEN_BUFFER = 0x00010000 }
3157 -
3158 -enum : uint { MCI_WAVE_SET_FORMATTAG = 0x00010000 }
3159 -enum : uint { MCI_WAVE_SET_CHANNELS = 0x00020000 }
3160 -enum : uint { MCI_WAVE_SET_SAMPLESPERSEC = 0x00040000 }
3161 -enum : uint { MCI_WAVE_SET_AVGBYTESPERSEC = 0x00080000 }
3162 -enum : uint { MCI_WAVE_SET_BLOCKALIGN = 0x00100000 }
3163 -enum : uint { MCI_WAVE_SET_BITSPERSAMPLE = 0x00200000 }
3164 -
3165 -enum : uint { MCI_WAVE_INPUT = 0x00400000 }
3166 -enum : uint { MCI_WAVE_OUTPUT = 0x00800000 }
3167 -
3168 -enum : uint { MCI_WAVE_STATUS_FORMATTAG = 0x00004001 }
3169 -enum : uint { MCI_WAVE_STATUS_CHANNELS = 0x00004002 }
3170 -enum : uint { MCI_WAVE_STATUS_SAMPLESPERSEC = 0x00004003 }
3171 -enum : uint { MCI_WAVE_STATUS_AVGBYTESPERSEC = 0x00004004 }
3172 -enum : uint { MCI_WAVE_STATUS_BLOCKALIGN = 0x00004005 }
3173 -enum : uint { MCI_WAVE_STATUS_BITSPERSAMPLE = 0x00004006 }
3174 -enum : uint { MCI_WAVE_STATUS_LEVEL = 0x00004007 }
3175 -
3176 -enum : uint { MCI_WAVE_SET_ANYINPUT = 0x04000000 }
3177 -enum : uint { MCI_WAVE_SET_ANYOUTPUT = 0x08000000 }
3178 -
3179 -enum : uint { MCI_WAVE_GETDEVCAPS_INPUTS = 0x00004001 }
3180 -enum : uint { MCI_WAVE_GETDEVCAPS_OUTPUTS = 0x00004002 }
3181 -
3182 -// #ifdef _WIN32
3183 -
3184 -struct tagMCI_WAVE_OPEN_PARMSA {
3185 - DWORD_PTR dwCallback;
3186 - MCIDEVICEID wDeviceID;
3187 - LPCSTR lpstrDeviceType;
3188 - LPCSTR lpstrElementName;
3189 - LPCSTR lpstrAlias;
3190 - DWORD dwBufferSeconds;
3191 -}
3192 -alias tagMCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMSA;
3193 -alias tagMCI_WAVE_OPEN_PARMSA* PMCI_WAVE_OPEN_PARMSA;
3194 -alias tagMCI_WAVE_OPEN_PARMSA* LPMCI_WAVE_OPEN_PARMSA;
3195 -
3196 -struct tagMCI_WAVE_OPEN_PARMSW {
3197 - DWORD_PTR dwCallback;
3198 - MCIDEVICEID wDeviceID;
3199 - LPCWSTR lpstrDeviceType;
3200 - LPCWSTR lpstrElementName;
3201 - LPCWSTR lpstrAlias;
3202 - DWORD dwBufferSeconds;
3203 -}
3204 -alias tagMCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMSW;
3205 -alias tagMCI_WAVE_OPEN_PARMSW* PMCI_WAVE_OPEN_PARMSW;
3206 -alias tagMCI_WAVE_OPEN_PARMSW* LPMCI_WAVE_OPEN_PARMSW;
3207 -
3208 -// #ifdef UNICODE
3209 -alias MCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMS;
3210 -alias PMCI_WAVE_OPEN_PARMSW PMCI_WAVE_OPEN_PARMS;
3211 -alias LPMCI_WAVE_OPEN_PARMSW LPMCI_WAVE_OPEN_PARMS;
3212 -// #else
3213 -// ...
3214 -// #endif // UNICODE
3215 -
3216 -// #else
3217 -// ...
3218 -// #endif
3219 -
3220 -struct tagMCI_WAVE_DELETE_PARMS {
3221 - DWORD_PTR dwCallback;
3222 - DWORD dwFrom;
3223 - DWORD dwTo;
3224 -}
3225 -alias tagMCI_WAVE_DELETE_PARMS MCI_WAVE_DELETE_PARMS;
3226 -alias tagMCI_WAVE_DELETE_PARMS* PMCI_WAVE_DELETE_PARMS;
3227 -alias tagMCI_WAVE_DELETE_PARMS* LPMCI_WAVE_DELETE_PARMS;
3228 -
3229 -struct tagMCI_WAVE_SET_PARMS {
3230 - DWORD_PTR dwCallback;
3231 - DWORD dwTimeFormat;
3232 - DWORD dwAudio;
3233 -// #ifdef _WIN32
3234 - UINT wInput;
3235 - UINT wOutput;
3236 -// #else
3237 -// ...
3238 -// #endif
3239 - WORD wFormatTag;
3240 - WORD wReserved2;
3241 - WORD nChannels;
3242 - WORD wReserved3;
3243 - DWORD nSamplesPerSec;
3244 - DWORD nAvgBytesPerSec;
3245 - WORD nBlockAlign;
3246 - WORD wReserved4;
3247 - WORD wBitsPerSample;
3248 - WORD wReserved5;
3249 -}
3250 -alias tagMCI_WAVE_SET_PARMS MCI_WAVE_SET_PARMS;
3251 -alias tagMCI_WAVE_SET_PARMS* PMCI_WAVE_SET_PARMS;
3252 -alias tagMCI_WAVE_SET_PARMS* LPMCI_WAVE_SET_PARMS;
3253 -
3254 -enum : uint { MCI_SEQ_DIV_PPQN = 0 + MCI_SEQ_OFFSET }
3255 -enum : uint { MCI_SEQ_DIV_SMPTE_24 = 1 + MCI_SEQ_OFFSET }
3256 -enum : uint { MCI_SEQ_DIV_SMPTE_25 = 2 + MCI_SEQ_OFFSET }
3257 -enum : uint { MCI_SEQ_DIV_SMPTE_30DROP = 3 + MCI_SEQ_OFFSET }
3258 -enum : uint { MCI_SEQ_DIV_SMPTE_30 = 4 + MCI_SEQ_OFFSET }
3259 -
3260 -enum : uint { MCI_SEQ_FORMAT_SONGPTR = 0x4001 }
3261 -enum : uint { MCI_SEQ_FILE = 0x4002 }
3262 -enum : uint { MCI_SEQ_MIDI = 0x4003 }
3263 -enum : uint { MCI_SEQ_SMPTE = 0x4004 }
3264 -enum : uint { MCI_SEQ_NONE = 65533 }
3265 -enum : uint { MCI_SEQ_MAPPER = 65535 }
3266 -
3267 -enum : uint { MCI_SEQ_STATUS_TEMPO = 0x00004002 }
3268 -enum : uint { MCI_SEQ_STATUS_PORT = 0x00004003 }
3269 -enum : uint { MCI_SEQ_STATUS_SLAVE = 0x00004007 }
3270 -enum : uint { MCI_SEQ_STATUS_MASTER = 0x00004008 }
3271 -enum : uint { MCI_SEQ_STATUS_OFFSET = 0x00004009 }
3272 -enum : uint { MCI_SEQ_STATUS_DIVTYPE = 0x0000400A }
3273 -enum : uint { MCI_SEQ_STATUS_NAME = 0x0000400B }
3274 -enum : uint { MCI_SEQ_STATUS_COPYRIGHT = 0x0000400C }
3275 -
3276 -enum : uint { MCI_SEQ_SET_TEMPO = 0x00010000 }
3277 -enum : uint { MCI_SEQ_SET_PORT = 0x00020000 }
3278 -enum : uint { MCI_SEQ_SET_SLAVE = 0x00040000 }
3279 -enum : uint { MCI_SEQ_SET_MASTER = 0x00080000 }
3280 -enum : uint { MCI_SEQ_SET_OFFSET = 0x01000000 }
3281 -
3282 -struct tagMCI_SEQ_SET_PARMS {
3283 - DWORD_PTR dwCallback;
3284 - DWORD dwTimeFormat;
3285 - DWORD dwAudio;
3286 - DWORD dwTempo;
3287 - DWORD dwPort;
3288 - DWORD dwSlave;
3289 - DWORD dwMaster;
3290 - DWORD dwOffset;
3291 -}
3292 -alias tagMCI_SEQ_SET_PARMS MCI_SEQ_SET_PARMS;
3293 -alias tagMCI_SEQ_SET_PARMS* PMCI_SEQ_SET_PARMS;
3294 -alias tagMCI_SEQ_SET_PARMS* LPMCI_SEQ_SET_PARMS;
3295 -
3296 -enum : uint { MCI_ANIM_OPEN_WS = 0x00010000 }
3297 -enum : uint { MCI_ANIM_OPEN_PARENT = 0x00020000 }
3298 -enum : uint { MCI_ANIM_OPEN_NOSTATIC = 0x00040000 }
3299 -
3300 -enum : uint { MCI_ANIM_PLAY_SPEED = 0x00010000 }
3301 -enum : uint { MCI_ANIM_PLAY_REVERSE = 0x00020000 }
3302 -enum : uint { MCI_ANIM_PLAY_FAST = 0x00040000 }
3303 -enum : uint { MCI_ANIM_PLAY_SLOW = 0x00080000 }
3304 -enum : uint { MCI_ANIM_PLAY_SCAN = 0x00100000 }
3305 -
3306 -enum : uint { MCI_ANIM_STEP_REVERSE = 0x00010000 }
3307 -enum : uint { MCI_ANIM_STEP_FRAMES = 0x00020000 }
3308 -
3309 -enum : uint { MCI_ANIM_STATUS_SPEED = 0x00004001 }
3310 -enum : uint { MCI_ANIM_STATUS_FORWARD = 0x00004002 }
3311 -enum : uint { MCI_ANIM_STATUS_HWND = 0x00004003 }
3312 -enum : uint { MCI_ANIM_STATUS_HPAL = 0x00004004 }
3313 -enum : uint { MCI_ANIM_STATUS_STRETCH = 0x00004005 }
3314 -
3315 -enum : uint { MCI_ANIM_INFO_TEXT = 0x00010000 }
3316 -
3317 -enum : uint { MCI_ANIM_GETDEVCAPS_CAN_REVERSE = 0x00004001 }
3318 -enum : uint { MCI_ANIM_GETDEVCAPS_FAST_RATE = 0x00004002 }
3319 -enum : uint { MCI_ANIM_GETDEVCAPS_SLOW_RATE = 0x00004003 }
3320 -enum : uint { MCI_ANIM_GETDEVCAPS_NORMAL_RATE = 0x00004004 }
3321 -enum : uint { MCI_ANIM_GETDEVCAPS_PALETTES = 0x00004006 }
3322 -enum : uint { MCI_ANIM_GETDEVCAPS_CAN_STRETCH = 0x00004007 }
3323 -enum : uint { MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = 0x00004008 }
3324 -
3325 -enum : uint { MCI_ANIM_REALIZE_NORM = 0x00010000 }
3326 -enum : uint { MCI_ANIM_REALIZE_BKGD = 0x00020000 }
3327 -
3328 -enum : uint { MCI_ANIM_WINDOW_HWND = 0x00010000 }
3329 -enum : uint { MCI_ANIM_WINDOW_STATE = 0x00040000 }
3330 -enum : uint { MCI_ANIM_WINDOW_TEXT = 0x00080000 }
3331 -enum : uint { MCI_ANIM_WINDOW_ENABLE_STRETCH = 0x00100000 }
3332 -enum : uint { MCI_ANIM_WINDOW_DISABLE_STRETCH = 0x00200000 }
3333 -
3334 -enum : uint { MCI_ANIM_WINDOW_DEFAULT = 0x00000000 }
3335 -
3336 -enum : uint { MCI_ANIM_RECT = 0x00010000 }
3337 -enum : uint { MCI_ANIM_PUT_SOURCE = 0x00020000 }
3338 -enum : uint { MCI_ANIM_PUT_DESTINATION = 0x00040000 }
3339 -
3340 -enum : uint { MCI_ANIM_WHERE_SOURCE = 0x00020000 }
3341 -enum : uint { MCI_ANIM_WHERE_DESTINATION = 0x00040000 }
3342 -
3343 -enum : uint { MCI_ANIM_UPDATE_HDC = 0x00020000 }
3344 -
3345 -// #ifdef _WIN32
3346 -
3347 -struct tagMCI_ANIM_OPEN_PARMSA {
3348 - DWORD_PTR dwCallback;
3349 - MCIDEVICEID wDeviceID;
3350 - LPCSTR lpstrDeviceType;
3351 - LPCSTR lpstrElementName;
3352 - LPCSTR lpstrAlias;
3353 - DWORD dwStyle;
3354 - HWND hWndParent;
3355 -}
3356 -alias tagMCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMSA;
3357 -alias tagMCI_ANIM_OPEN_PARMSA* PMCI_ANIM_OPEN_PARMSA;
3358 -alias tagMCI_ANIM_OPEN_PARMSA* LPMCI_ANIM_OPEN_PARMSA;
3359 -
3360 -struct tagMCI_ANIM_OPEN_PARMSW {
3361 - DWORD_PTR dwCallback;
3362 - MCIDEVICEID wDeviceID;
3363 - LPCWSTR lpstrDeviceType;
3364 - LPCWSTR lpstrElementName;
3365 - LPCWSTR lpstrAlias;
3366 - DWORD dwStyle;
3367 - HWND hWndParent;
3368 -}
3369 -alias tagMCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMSW;
3370 -alias tagMCI_ANIM_OPEN_PARMSW* PMCI_ANIM_OPEN_PARMSW;
3371 -alias tagMCI_ANIM_OPEN_PARMSW* LPMCI_ANIM_OPEN_PARMSW;
3372 -
3373 -// #ifdef UNICODE
3374 -alias MCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMS;
3375 -alias PMCI_ANIM_OPEN_PARMSW PMCI_ANIM_OPEN_PARMS;
3376 -alias LPMCI_ANIM_OPEN_PARMSW LPMCI_ANIM_OPEN_PARMS;
3377 -// #else
3378 -// ...
3379 -// #endif // UNICODE
3380 -
3381 -// #else
3382 -// ...
3383 -// #endif
3384 -
3385 -struct tagMCI_ANIM_PLAY_PARMS {
3386 - DWORD_PTR dwCallback;
3387 - DWORD dwFrom;
3388 - DWORD dwTo;
3389 - DWORD dwSpeed;
3390 -}
3391 -alias tagMCI_ANIM_PLAY_PARMS MCI_ANIM_PLAY_PARMS;
3392 -alias tagMCI_ANIM_PLAY_PARMS* PMCI_ANIM_PLAY_PARMS;
3393 -alias tagMCI_ANIM_PLAY_PARMS* LPMCI_ANIM_PLAY_PARMS;
3394 -
3395 -struct tagMCI_ANIM_STEP_PARMS {
3396 - DWORD_PTR dwCallback;
3397 - DWORD dwFrames;
3398 -}
3399 -alias tagMCI_ANIM_STEP_PARMS MCI_ANIM_STEP_PARMS;
3400 -alias tagMCI_ANIM_STEP_PARMS* PMCI_ANIM_STEP_PARMS;
3401 -alias tagMCI_ANIM_STEP_PARMS* LPMCI_ANIM_STEP_PARMS;
3402 -
3403 -// #ifdef _WIN32
3404 -
3405 -struct tagMCI_ANIM_WINDOW_PARMSA {
3406 - DWORD_PTR dwCallback;
3407 - HWND hWnd;
3408 - UINT nCmdShow;
3409 - LPCSTR lpstrText;
3410 -}
3411 -alias tagMCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMSA;
3412 -alias tagMCI_ANIM_WINDOW_PARMSA* PMCI_ANIM_WINDOW_PARMSA;
3413 -alias tagMCI_ANIM_WINDOW_PARMSA* LPMCI_ANIM_WINDOW_PARMSA;
3414 -
3415 -struct tagMCI_ANIM_WINDOW_PARMSW {
3416 - DWORD_PTR dwCallback;
3417 - HWND hWnd;
3418 - UINT nCmdShow;
3419 - LPCWSTR lpstrText;
3420 -}
3421 -alias tagMCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMSW;
3422 -alias tagMCI_ANIM_WINDOW_PARMSW* PMCI_ANIM_WINDOW_PARMSW;
3423 -alias tagMCI_ANIM_WINDOW_PARMSW* LPMCI_ANIM_WINDOW_PARMSW;
3424 -
3425 -// #ifdef UNICODE
3426 -alias MCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMS;
3427 -alias PMCI_ANIM_WINDOW_PARMSW PMCI_ANIM_WINDOW_PARMS;
3428 -alias LPMCI_ANIM_WINDOW_PARMSW LPMCI_ANIM_WINDOW_PARMS;
3429 -// #else
3430 -// ...
3431 -// #endif // UNICODE
3432 -
3433 -// #else
3434 -// ...
3435 -// #endif
3436 -
3437 -struct tagMCI_ANIM_RECT_PARMS {
3438 - DWORD_PTR dwCallback;
3439 -// #ifdef MCI_USE_OFFEXT
3440 -// ...
3441 -// #else /* ifdef MCI_USE_OFFEXT */
3442 - RECT rc;
3443 -// #endif /* ifdef MCI_USE_OFFEXT */
3444 -}
3445 -alias tagMCI_ANIM_RECT_PARMS MCI_ANIM_RECT_PARMS;
3446 -
3447 -alias MCI_ANIM_RECT_PARMS* PMCI_ANIM_RECT_PARMS;
3448 -alias MCI_ANIM_RECT_PARMS* LPMCI_ANIM_RECT_PARMS;
3449 -
3450 -struct tagMCI_ANIM_UPDATE_PARMS {
3451 - DWORD_PTR dwCallback;
3452 - RECT rc;
3453 - HDC hDC;
3454 -}
3455 -alias tagMCI_ANIM_UPDATE_PARMS MCI_ANIM_UPDATE_PARMS;
3456 -alias tagMCI_ANIM_UPDATE_PARMS* PMCI_ANIM_UPDATE_PARMS;
3457 -alias tagMCI_ANIM_UPDATE_PARMS* LPMCI_ANIM_UPDATE_PARMS;
3458 -
3459 -enum : uint { MCI_OVLY_OPEN_WS = 0x00010000 }
3460 -enum : uint { MCI_OVLY_OPEN_PARENT = 0x00020000 }
3461 -
3462 -enum : uint { MCI_OVLY_STATUS_HWND = 0x00004001 }
3463 -enum : uint { MCI_OVLY_STATUS_STRETCH = 0x00004002 }
3464 -
3465 -enum : uint { MCI_OVLY_INFO_TEXT = 0x00010000 }
3466 -
3467 -enum : uint { MCI_OVLY_GETDEVCAPS_CAN_STRETCH = 0x00004001 }
3468 -enum : uint { MCI_OVLY_GETDEVCAPS_CAN_FREEZE = 0x00004002 }
3469 -enum : uint { MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = 0x00004003 }
3470 -
3471 -enum : uint { MCI_OVLY_WINDOW_HWND = 0x00010000 }
3472 -enum : uint { MCI_OVLY_WINDOW_STATE = 0x00040000 }
3473 -enum : uint { MCI_OVLY_WINDOW_TEXT = 0x00080000 }
3474 -enum : uint { MCI_OVLY_WINDOW_ENABLE_STRETCH = 0x00100000 }
3475 -enum : uint { MCI_OVLY_WINDOW_DISABLE_STRETCH = 0x00200000 }
3476 -
3477 -enum : uint { MCI_OVLY_WINDOW_DEFAULT = 0x00000000 }
3478 -
3479 -enum : uint { MCI_OVLY_RECT = 0x00010000 }
3480 -enum : uint { MCI_OVLY_PUT_SOURCE = 0x00020000 }
3481 -enum : uint { MCI_OVLY_PUT_DESTINATION = 0x00040000 }
3482 -enum : uint { MCI_OVLY_PUT_FRAME = 0x00080000 }
3483 -enum : uint { MCI_OVLY_PUT_VIDEO = 0x00100000 }
3484 -
3485 -enum : uint { MCI_OVLY_WHERE_SOURCE = 0x00020000 }
3486 -enum : uint { MCI_OVLY_WHERE_DESTINATION = 0x00040000 }
3487 -enum : uint { MCI_OVLY_WHERE_FRAME = 0x00080000 }
3488 -enum : uint { MCI_OVLY_WHERE_VIDEO = 0x00100000 }
3489 -
3490 -// #ifdef _WIN32
3491 -
3492 -struct tagMCI_OVLY_OPEN_PARMSA {
3493 - DWORD_PTR dwCallback;
3494 - MCIDEVICEID wDeviceID;
3495 - LPCSTR lpstrDeviceType;
3496 - LPCSTR lpstrElementName;
3497 - LPCSTR lpstrAlias;
3498 - DWORD dwStyle;
3499 - HWND hWndParent;
3500 -}
3501 -alias tagMCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMSA;
3502 -alias tagMCI_OVLY_OPEN_PARMSA* PMCI_OVLY_OPEN_PARMSA;
3503 -alias tagMCI_OVLY_OPEN_PARMSA* LPMCI_OVLY_OPEN_PARMSA;
3504 -
3505 -struct tagMCI_OVLY_OPEN_PARMSW {
3506 - DWORD_PTR dwCallback;
3507 - MCIDEVICEID wDeviceID;
3508 - LPCWSTR lpstrDeviceType;
3509 - LPCWSTR lpstrElementName;
3510 - LPCWSTR lpstrAlias;
3511 - DWORD dwStyle;
3512 - HWND hWndParent;
3513 -}
3514 -alias tagMCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMSW;
3515 -alias tagMCI_OVLY_OPEN_PARMSW* PMCI_OVLY_OPEN_PARMSW;
3516 -alias tagMCI_OVLY_OPEN_PARMSW* LPMCI_OVLY_OPEN_PARMSW;
3517 -
3518 -// #ifdef UNICODE
3519 -alias MCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMS;
3520 -alias PMCI_OVLY_OPEN_PARMSW PMCI_OVLY_OPEN_PARMS;
3521 -alias LPMCI_OVLY_OPEN_PARMSW LPMCI_OVLY_OPEN_PARMS;
3522 -// #else
3523 -// ...
3524 -// #endif // UNICODE
3525 -
3526 -// #else
3527 -// ...
3528 -// #endif
3529 -
3530 -// #ifdef _WIN32
3531 -
3532 -struct tagMCI_OVLY_WINDOW_PARMSA {
3533 - DWORD_PTR dwCallback;
3534 - HWND hWnd;
3535 - UINT nCmdShow;
3536 - LPCSTR lpstrText;
3537 -}
3538 -alias tagMCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMSA;
3539 -alias tagMCI_OVLY_WINDOW_PARMSA* PMCI_OVLY_WINDOW_PARMSA;
3540 -alias tagMCI_OVLY_WINDOW_PARMSA* LPMCI_OVLY_WINDOW_PARMSA;
3541 -
3542 -struct tagMCI_OVLY_WINDOW_PARMSW {
3543 - DWORD_PTR dwCallback;
3544 - HWND hWnd;
3545 - UINT nCmdShow;
3546 - LPCWSTR lpstrText;
3547 -}
3548 -alias tagMCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMSW;
3549 -alias tagMCI_OVLY_WINDOW_PARMSW* PMCI_OVLY_WINDOW_PARMSW;
3550 -alias tagMCI_OVLY_WINDOW_PARMSW* LPMCI_OVLY_WINDOW_PARMSW;
3551 -
3552 -// #ifdef UNICODE
3553 -alias MCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMS;
3554 -alias PMCI_OVLY_WINDOW_PARMSW PMCI_OVLY_WINDOW_PARMS;
3555 -alias LPMCI_OVLY_WINDOW_PARMSW LPMCI_OVLY_WINDOW_PARMS;
3556 -// #else
3557 -// ...
3558 -// #endif // UNICODE
3559 -// #else
3560 -// ...
3561 -// #endif
3562 -
3563 -struct tagMCI_OVLY_RECT_PARMS {
3564 - DWORD_PTR dwCallback;
3565 -// #ifdef MCI_USE_OFFEXT
3566 -// ...
3567 -// #else /* ifdef MCI_USE_OFFEXT */
3568 - RECT rc;
3569 -// #endif /* ifdef MCI_USE_OFFEXT */
3570 -}
3571 -alias tagMCI_OVLY_RECT_PARMS MCI_OVLY_RECT_PARMS;
3572 -alias tagMCI_OVLY_RECT_PARMS* PMCI_OVLY_RECT_PARMS;
3573 -alias tagMCI_OVLY_RECT_PARMS* LPMCI_OVLY_RECT_PARMS;
3574 -
3575 -// #ifdef _WIN32
3576 -
3577 -struct tagMCI_OVLY_SAVE_PARMSA {
3578 - DWORD_PTR dwCallback;
3579 - LPCSTR lpfilename;
3580 - RECT rc;
3581 -}
3582 -alias tagMCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMSA;
3583 -alias tagMCI_OVLY_SAVE_PARMSA* PMCI_OVLY_SAVE_PARMSA;
3584 -alias tagMCI_OVLY_SAVE_PARMSA* LPMCI_OVLY_SAVE_PARMSA;
3585 -
3586 -struct tagMCI_OVLY_SAVE_PARMSW {
3587 - DWORD_PTR dwCallback;
3588 - LPCWSTR lpfilename;
3589 - RECT rc;
3590 -}
3591 -alias tagMCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMSW;
3592 -alias tagMCI_OVLY_SAVE_PARMSW* PMCI_OVLY_SAVE_PARMSW;
3593 -alias tagMCI_OVLY_SAVE_PARMSW* LPMCI_OVLY_SAVE_PARMSW;
3594 -
3595 -// #ifdef UNICODE
3596 -alias MCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMS;
3597 -alias PMCI_OVLY_SAVE_PARMSW PMCI_OVLY_SAVE_PARMS;
3598 -alias LPMCI_OVLY_SAVE_PARMSW LPMCI_OVLY_SAVE_PARMS;
3599 -// #else
3600 -// ...
3601 -// #endif // UNICODE
3602 -// #else
3603 -// ...
3604 -// #endif
3605 -
3606 -// #ifdef _WIN32
3607 -
3608 -struct tagMCI_OVLY_LOAD_PARMSA {
3609 - DWORD_PTR dwCallback;
3610 - LPCSTR lpfilename;
3611 - RECT rc;
3612 -}
3613 -alias tagMCI_OVLY_LOAD_PARMSA MCI_OVLY_LOAD_PARMSA;
3614 -alias tagMCI_OVLY_LOAD_PARMSA* PMCI_OVLY_LOAD_PARMSA;
3615 -alias tagMCI_OVLY_LOAD_PARMSA* LPMCI_OVLY_LOAD_PARMSA;
3616 -
3617 -struct tagMCI_OVLY_LOAD_PARMSW {
3618 - DWORD_PTR dwCallback;
3619 - LPCWSTR lpfilename;
3620 - RECT rc;
3621 -}
3622 -alias tagMCI_OVLY_LOAD_PARMSW MCI_OVLY_LOAD_PARMSW;
3623 -alias tagMCI_OVLY_LOAD_PARMSW* PMCI_OVLY_LOAD_PARMSW;
3624 -alias tagMCI_OVLY_LOAD_PARMSW* LPMCI_OVLY_LOAD_PARMSW;
3625 -
3626 -// #ifdef UNICODE
3627 -alias MCI_OVLY_LOAD_PARMSW MCI_OVLY_LOAD_PARMS;
3628 -alias PMCI_OVLY_LOAD_PARMSW PMCI_OVLY_LOAD_PARMS;
3629 -alias LPMCI_OVLY_LOAD_PARMSW LPMCI_OVLY_LOAD_PARMS;
3630 -// #else
3631 -// ...
3632 -// #endif // UNICODE
3633 -// #else
3634 -// ...
3635 -// #endif
3636 -
3637 -// #endif /* ifndef MMNOMCI */
3638 -
3639 -// #ifndef NEWTRANSPARENT
3640 -enum : uint { NEWTRANSPARENT = 3 }
3641 -
3642 -enum : uint { QUERYROPSUPPORT = 40 }
3643 -// #endif /* ifndef NEWTRANSPARENT */
3644 -
3645 -enum : uint { SELECTDIB = 41 }
3646 -// #define DIBINDEX(n) MAKELONG((n),0x10FF)
3647 -
3648 -// #ifndef SC_SCREENSAVE
3649 -
3650 -enum : uint { SC_SCREENSAVE = 0xF140 }
3651 -
3652 -// #endif /* ifndef SC_SCREENSAVE */
3653 -
3654 -// #ifdef __cplusplus
3655 -// }
3656 -// #endif /* __cplusplus */
3657 -
3658 -// #ifdef _WIN32
3659 -align:
3660 -// #else
3661 -// #ifndef RC_INVOKED
3662 -// #...
3663 -// #endif
3664 -// #endif
3665 -
3666 -// #endif /* _INC_MMSYSTEM */
3667 -
2247 +alias WAVEOUTCAPS* PWAVEOUTCAPS, LPWAVEOUTCAPS;
2248 +alias WAVEINCAPS* PWAVEINCAPS, LPWAVEINCAPS;
2249 +alias MIDIOUTCAPS* PMIDIOUTCAPS, LPMIDIOUTCAPS;
2250 +alias MIDIINCAPS* PMIDIINCAPS, LPMIDIINCAPS;
2251 +alias AUXCAPS* PAUXCAPS, LPAUXCAPS;
2252 +alias MIXERCAPS* PMIXERCAPS, LPMIXERCAPS;
2253 +alias MIXERLINE* PMIXERLINE, LPMIXERLINE;
2254 +alias MIXERCONTROL* PMIXERCONTROL, LPMIXERCONTROL;
2255 +alias MIXERLINECONTROLS* PMIXERLINECONTROLS, LPMIXERLINECONTROLS;
2256 +alias MIXERCONTROLDETAILS_LISTTEXT* PMIXERCONTROLDETAILS_LISTTEXT, LPMIXERCONTROLDETAILS_LISTTEXT;
2257 +alias JOYCAPS* PJOYCAPS, LPJOYCAPS;
2258 +alias MCI_OPEN_PARMS* PMCI_OPEN_PARMS, LPMCI_OPEN_PARMS;
2259 +alias MCI_INFO_PARMS* LPMCI_INFO_PARMS;
2260 +alias MCI_SYSINFO_PARMS* PMCI_SYSINFO_PARMS, LPMCI_SYSINFO_PARMS;
2261 +alias MCI_SAVE_PARMS* PMCI_SAVE_PARMS, LPMCI_SAVE_PARMS;
2262 +alias MCI_LOAD_PARMS* PMCI_LOAD_PARMS, LPMCI_LOAD_PARMS;
2263 +alias MCI_VD_ESCAPE_PARMS* PMCI_VD_ESCAPE_PARMS, LPMCI_VD_ESCAPE_PARMS;
2264 +alias MCI_WAVE_OPEN_PARMS* PMCI_WAVE_OPEN_PARMS, LPMCI_WAVE_OPEN_PARMS;
2265 +alias MCI_ANIM_OPEN_PARMS* PMCI_ANIM_OPEN_PARMS, LPMCI_ANIM_OPEN_PARMS;
2266 +alias MCI_ANIM_WINDOW_PARMS* PMCI_ANIM_WINDOW_PARMS, LPMCI_ANIM_WINDOW_PARMS;
2267 +alias MCI_OVLY_OPEN_PARMS* PMCI_OVLY_OPEN_PARMS, LPMCI_OVLY_OPEN_PARMS;
2268 +alias MCI_OVLY_WINDOW_PARMS* PMCI_OVLY_WINDOW_PARMS, LPMCI_OVLY_WINDOW_PARMS;
2269 +alias MCI_OVLY_SAVE_PARMS* PMCI_OVLY_SAVE_PARMS, LPMCI_OVLY_SAVE_PARMS;