Commit | Line | Data |
---|---|---|
360a3f91 | 1 | /* |
668228a1 EP |
2 | * Copyright 1998, Luiz Otavio L. Zorzella |
3 | * 1999, Eric Pouech | |
4 | * | |
668228a1 EP |
5 | * Purpose: multimedia declarations (external to WINMM & MMSYSTEM DLLs |
6 | * for other DLLs (MCI, drivers...)) | |
7 | * | |
0799c1a7 AJ |
8 | * This library is free software; you can redistribute it and/or |
9 | * modify it under the terms of the GNU Lesser General Public | |
10 | * License as published by the Free Software Foundation; either | |
11 | * version 2.1 of the License, or (at your option) any later version. | |
12 | * | |
13 | * This library is distributed in the hope that it will be useful, | |
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
16 | * Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public | |
19 | * License along with this library; if not, write to the Free Software | |
360a3f91 | 20 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
668228a1 | 21 | */ |
360a3f91 | 22 | |
9a624916 | 23 | #ifndef __MMDDK_H |
668228a1 EP |
24 | #define __MMDDK_H |
25 | ||
53f9c21f DP |
26 | #include <mmsystem.h> |
27 | #include <winbase.h> | |
668228a1 | 28 | |
2264b0c5 FG |
29 | #ifdef __cplusplus |
30 | extern "C" { | |
31 | #endif | |
32 | ||
668228a1 EP |
33 | #define MAX_MIDIINDRV (16) |
34 | /* For now I'm making 16 the maximum number of midi devices one can | |
35 | * have. This should be more than enough for everybody. But as a purist, | |
36 | * I intend to make it unbounded in the future, as soon as I figure | |
37 | * a good way to do so. | |
38 | */ | |
39 | #define MAX_MIDIOUTDRV (16) | |
40 | ||
9a624916 | 41 | /* ================================== |
668228a1 EP |
42 | * Multimedia DDK compatible part |
43 | * ================================== */ | |
44 | ||
53f9c21f | 45 | #include <pshpack1.h> |
668228a1 EP |
46 | |
47 | #define DRVM_INIT 100 | |
48 | #define DRVM_EXIT 101 | |
49 | #define DRVM_DISABLE 102 | |
50 | #define DRVM_ENABLE 103 | |
51 | ||
52 | /* messages that have IOCTL format | |
53 | * dw1 = NULL or handle | |
54 | * dw2 = NULL or ptr to DRVM_IOCTL_DATA | |
55 | * return is MMRESULT | |
56 | */ | |
57 | #define DRVM_IOCTL 0x100 | |
58 | #define DRVM_ADD_THRU (DRVM_IOCTL+1) | |
59 | #define DRVM_REMOVE_THRU (DRVM_IOCTL+2) | |
60 | #define DRVM_IOCTL_LAST (DRVM_IOCTL+5) | |
61 | typedef struct { | |
62 | DWORD dwSize; /* size of this structure */ | |
63 | DWORD dwCmd; /* IOCTL command code, 0x80000000 and above reserved for system */ | |
64 | } DRVM_IOCTL_DATA, *LPDRVM_IOCTL_DATA; | |
65 | ||
66 | /* command code ranges for dwCmd field of DRVM_IOCTL message | |
67 | * - codes from 0 to 0x7FFFFFFF are user defined | |
68 | * - codes from 0x80000000 to 0xFFFFFFFF are reserved for future definition by microsoft | |
69 | */ | |
70 | #define DRVM_IOCTL_CMD_USER 0x00000000L | |
71 | #define DRVM_IOCTL_CMD_SYSTEM 0x80000000L | |
72 | ||
2f9302a7 RR |
73 | #define DRVM_MAPPER 0x2000 |
74 | #define DRVM_USER 0x4000 | |
75 | #define DRVM_MAPPER_STATUS (DRVM_MAPPER+0) | |
76 | #define DRVM_MAPPER_RECONFIGURE (DRVM_MAPPER+1) | |
77 | #define DRVM_MAPPER_PREFERRED_GET (DRVM_MAPPER+21) | |
78 | #define DRVM_MAPPER_CONSOLEVOICECOM_GET (DRVM_MAPPER+23) | |
79 | ||
80 | #define DRV_QUERYDRVENTRY (DRV_RESERVED + 1) | |
81 | #define DRV_QUERYDEVNODE (DRV_RESERVED + 2) | |
82 | #define DRV_QUERYNAME (DRV_RESERVED + 3) | |
83 | #define DRV_QUERYDRIVERIDS (DRV_RESERVED + 4) | |
84 | #define DRV_QUERYMAPPABLE (DRV_RESERVED + 5) | |
85 | #define DRV_QUERYMODULE (DRV_RESERVED + 9) | |
86 | #define DRV_PNPINSTALL (DRV_RESERVED + 11) | |
87 | #define DRV_QUERYDEVICEINTERFACE (DRV_RESERVED + 12) | |
88 | #define DRV_QUERYDEVICEINTERFACESIZE (DRV_RESERVED + 13) | |
89 | #define DRV_QUERYSTRINGID (DRV_RESERVED + 14) | |
90 | #define DRV_QUERYSTRINGIDSIZE (DRV_RESERVED + 15) | |
91 | #define DRV_QUERYIDFROMSTRINGID (DRV_RESERVED + 16) | |
8b36681b | 92 | #ifdef __WINESRC__ |
2f9302a7 RR |
93 | #define DRV_QUERYDSOUNDIFACE (DRV_RESERVED + 20) |
94 | #define DRV_QUERYDSOUNDDESC (DRV_RESERVED + 21) | |
ad250aac EP |
95 | #endif |
96 | ||
eb3113dc RR |
97 | #define DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY 0x00000001 |
98 | ||
668228a1 EP |
99 | #define WODM_INIT DRVM_INIT |
100 | #define WODM_GETNUMDEVS 3 | |
101 | #define WODM_GETDEVCAPS 4 | |
102 | #define WODM_OPEN 5 | |
103 | #define WODM_CLOSE 6 | |
104 | #define WODM_PREPARE 7 | |
105 | #define WODM_UNPREPARE 8 | |
106 | #define WODM_WRITE 9 | |
107 | #define WODM_PAUSE 10 | |
108 | #define WODM_RESTART 11 | |
9a624916 | 109 | #define WODM_RESET 12 |
668228a1 EP |
110 | #define WODM_GETPOS 13 |
111 | #define WODM_GETPITCH 14 | |
112 | #define WODM_SETPITCH 15 | |
113 | #define WODM_GETVOLUME 16 | |
114 | #define WODM_SETVOLUME 17 | |
115 | #define WODM_GETPLAYBACKRATE 18 | |
116 | #define WODM_SETPLAYBACKRATE 19 | |
117 | #define WODM_BREAKLOOP 20 | |
2f9302a7 | 118 | #define WODM_PREFERRED 21 |
668228a1 EP |
119 | |
120 | #define WODM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0) | |
121 | #define WAVEOUT_MAPPER_STATUS_DEVICE 0 | |
122 | #define WAVEOUT_MAPPER_STATUS_MAPPED 1 | |
123 | #define WAVEOUT_MAPPER_STATUS_FORMAT 2 | |
124 | ||
2f9302a7 RR |
125 | #define WODM_BUSY 21 |
126 | ||
668228a1 EP |
127 | #define WIDM_INIT DRVM_INIT |
128 | #define WIDM_GETNUMDEVS 50 | |
129 | #define WIDM_GETDEVCAPS 51 | |
130 | #define WIDM_OPEN 52 | |
131 | #define WIDM_CLOSE 53 | |
132 | #define WIDM_PREPARE 54 | |
133 | #define WIDM_UNPREPARE 55 | |
134 | #define WIDM_ADDBUFFER 56 | |
135 | #define WIDM_START 57 | |
136 | #define WIDM_STOP 58 | |
137 | #define WIDM_RESET 59 | |
138 | #define WIDM_GETPOS 60 | |
2f9302a7 | 139 | #define WIDM_PREFERRED 61 |
668228a1 EP |
140 | #define WIDM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0) |
141 | #define WAVEIN_MAPPER_STATUS_DEVICE 0 | |
142 | #define WAVEIN_MAPPER_STATUS_MAPPED 1 | |
143 | #define WAVEIN_MAPPER_STATUS_FORMAT 2 | |
144 | ||
145 | #define MODM_INIT DRVM_INIT | |
146 | #define MODM_GETNUMDEVS 1 | |
147 | #define MODM_GETDEVCAPS 2 | |
148 | #define MODM_OPEN 3 | |
149 | #define MODM_CLOSE 4 | |
150 | #define MODM_PREPARE 5 | |
151 | #define MODM_UNPREPARE 6 | |
152 | #define MODM_DATA 7 | |
153 | #define MODM_LONGDATA 8 | |
154 | #define MODM_RESET 9 | |
155 | #define MODM_GETVOLUME 10 | |
156 | #define MODM_SETVOLUME 11 | |
9a624916 VB |
157 | #define MODM_CACHEPATCHES 12 |
158 | #define MODM_CACHEDRUMPATCHES 13 | |
668228a1 EP |
159 | |
160 | #define MIDM_INIT DRVM_INIT | |
161 | #define MIDM_GETNUMDEVS 53 | |
162 | #define MIDM_GETDEVCAPS 54 | |
163 | #define MIDM_OPEN 55 | |
164 | #define MIDM_CLOSE 56 | |
165 | #define MIDM_PREPARE 57 | |
166 | #define MIDM_UNPREPARE 58 | |
167 | #define MIDM_ADDBUFFER 59 | |
168 | #define MIDM_START 60 | |
169 | #define MIDM_STOP 61 | |
170 | #define MIDM_RESET 62 | |
171 | ||
172 | ||
2a3b0a1d | 173 | #define AUXM_INIT DRVM_INIT |
668228a1 EP |
174 | #define AUXDM_GETNUMDEVS 3 |
175 | #define AUXDM_GETDEVCAPS 4 | |
176 | #define AUXDM_GETVOLUME 5 | |
177 | #define AUXDM_SETVOLUME 6 | |
178 | ||
2a3b0a1d EP |
179 | #define MXDM_INIT DRVM_INIT |
180 | #define MXDM_USER DRVM_USER | |
181 | #define MXDM_MAPPER DRVM_MAPPER | |
182 | ||
668228a1 EP |
183 | #define MXDM_GETNUMDEVS 1 |
184 | #define MXDM_GETDEVCAPS 2 | |
185 | #define MXDM_OPEN 3 | |
186 | #define MXDM_CLOSE 4 | |
187 | #define MXDM_GETLINEINFO 5 | |
188 | #define MXDM_GETLINECONTROLS 6 | |
189 | #define MXDM_GETCONTROLDETAILS 7 | |
190 | #define MXDM_SETCONTROLDETAILS 8 | |
191 | ||
2a3b0a1d EP |
192 | /* pre-defined joystick types */ |
193 | #define JOY_HW_NONE 0 | |
194 | #define JOY_HW_CUSTOM 1 | |
195 | #define JOY_HW_2A_2B_GENERIC 2 | |
196 | #define JOY_HW_2A_4B_GENERIC 3 | |
197 | #define JOY_HW_2B_GAMEPAD 4 | |
198 | #define JOY_HW_2B_FLIGHTYOKE 5 | |
199 | #define JOY_HW_2B_FLIGHTYOKETHROTTLE 6 | |
200 | #define JOY_HW_3A_2B_GENERIC 7 | |
201 | #define JOY_HW_3A_4B_GENERIC 8 | |
202 | #define JOY_HW_4B_GAMEPAD 9 | |
203 | #define JOY_HW_4B_FLIGHTYOKE 10 | |
204 | #define JOY_HW_4B_FLIGHTYOKETHROTTLE 11 | |
205 | #define JOY_HW_LASTENTRY 12 | |
206 | ||
207 | /* calibration flags */ | |
208 | #define JOY_ISCAL_XY 0x00000001l /* XY are calibrated */ | |
209 | #define JOY_ISCAL_Z 0x00000002l /* Z is calibrated */ | |
210 | #define JOY_ISCAL_R 0x00000004l /* R is calibrated */ | |
211 | #define JOY_ISCAL_U 0x00000008l /* U is calibrated */ | |
212 | #define JOY_ISCAL_V 0x00000010l /* V is calibrated */ | |
213 | #define JOY_ISCAL_POV 0x00000020l /* POV is calibrated */ | |
214 | ||
215 | /* point of view constants */ | |
216 | #define JOY_POV_NUMDIRS 4 | |
217 | #define JOY_POVVAL_FORWARD 0 | |
218 | #define JOY_POVVAL_BACKWARD 1 | |
219 | #define JOY_POVVAL_LEFT 2 | |
220 | #define JOY_POVVAL_RIGHT 3 | |
221 | ||
222 | /* Specific settings for joystick hardware */ | |
223 | #define JOY_HWS_HASZ 0x00000001l /* has Z info? */ | |
224 | #define JOY_HWS_HASPOV 0x00000002l /* point of view hat present */ | |
225 | #define JOY_HWS_POVISBUTTONCOMBOS 0x00000004l /* pov done through combo of buttons */ | |
226 | #define JOY_HWS_POVISPOLL 0x00000008l /* pov done through polling */ | |
227 | #define JOY_HWS_ISYOKE 0x00000010l /* joystick is a flight yoke */ | |
228 | #define JOY_HWS_ISGAMEPAD 0x00000020l /* joystick is a game pad */ | |
229 | #define JOY_HWS_ISCARCTRL 0x00000040l /* joystick is a car controller */ | |
230 | /* X defaults to J1 X axis */ | |
231 | #define JOY_HWS_XISJ1Y 0x00000080l /* X is on J1 Y axis */ | |
232 | #define JOY_HWS_XISJ2X 0x00000100l /* X is on J2 X axis */ | |
233 | #define JOY_HWS_XISJ2Y 0x00000200l /* X is on J2 Y axis */ | |
234 | /* Y defaults to J1 Y axis */ | |
235 | #define JOY_HWS_YISJ1X 0x00000400l /* Y is on J1 X axis */ | |
236 | #define JOY_HWS_YISJ2X 0x00000800l /* Y is on J2 X axis */ | |
237 | #define JOY_HWS_YISJ2Y 0x00001000l /* Y is on J2 Y axis */ | |
238 | /* Z defaults to J2 Y axis */ | |
239 | #define JOY_HWS_ZISJ1X 0x00002000l /* Z is on J1 X axis */ | |
240 | #define JOY_HWS_ZISJ1Y 0x00004000l /* Z is on J1 Y axis */ | |
241 | #define JOY_HWS_ZISJ2X 0x00008000l /* Z is on J2 X axis */ | |
242 | /* POV defaults to J2 Y axis, if it is not button based */ | |
243 | #define JOY_HWS_POVISJ1X 0x00010000l /* pov done through J1 X axis */ | |
244 | #define JOY_HWS_POVISJ1Y 0x00020000l /* pov done through J1 Y axis */ | |
245 | #define JOY_HWS_POVISJ2X 0x00040000l /* pov done through J2 X axis */ | |
246 | /* R defaults to J2 X axis */ | |
247 | #define JOY_HWS_HASR 0x00080000l /* has R (4th axis) info */ | |
248 | #define JOY_HWS_RISJ1X 0x00100000l /* R done through J1 X axis */ | |
249 | #define JOY_HWS_RISJ1Y 0x00200000l /* R done through J1 Y axis */ | |
250 | #define JOY_HWS_RISJ2Y 0x00400000l /* R done through J2 X axis */ | |
251 | /* U & V for future hardware */ | |
252 | #define JOY_HWS_HASU 0x00800000l /* has U (5th axis) info */ | |
253 | #define JOY_HWS_HASV 0x01000000l /* has V (6th axis) info */ | |
254 | ||
255 | /* Usage settings */ | |
256 | #define JOY_US_HASRUDDER 0x00000001l /* joystick configured with rudder */ | |
257 | #define JOY_US_PRESENT 0x00000002l /* is joystick actually present? */ | |
258 | #define JOY_US_ISOEM 0x00000004l /* joystick is an OEM defined type */ | |
259 | ||
260 | ||
261 | /* struct for storing x,y, z, and rudder values */ | |
262 | typedef struct joypos_tag { | |
263 | DWORD dwX; | |
264 | DWORD dwY; | |
265 | DWORD dwZ; | |
266 | DWORD dwR; | |
267 | DWORD dwU; | |
268 | DWORD dwV; | |
269 | } JOYPOS, *LPJOYPOS; | |
270 | ||
271 | /* struct for storing ranges */ | |
272 | typedef struct joyrange_tag { | |
273 | JOYPOS jpMin; | |
274 | JOYPOS jpMax; | |
275 | JOYPOS jpCenter; | |
276 | } JOYRANGE,*LPJOYRANGE; | |
277 | ||
278 | typedef struct joyreguservalues_tag { | |
279 | DWORD dwTimeOut; /* value at which to timeout joystick polling */ | |
280 | JOYRANGE jrvRanges; /* range of values app wants returned for axes */ | |
281 | JOYPOS jpDeadZone; /* area around center to be considered | |
282 | as "dead". specified as a percentage | |
283 | (0-100). Only X & Y handled by system driver */ | |
284 | } JOYREGUSERVALUES, *LPJOYREGUSERVALUES; | |
285 | ||
286 | typedef struct joyreghwsettings_tag { | |
287 | DWORD dwFlags; | |
288 | DWORD dwNumButtons; /* number of buttons */ | |
289 | } JOYREGHWSETTINGS, *LPJOYHWSETTINGS; | |
290 | ||
291 | /* range of values returned by the hardware (filled in by calibration) */ | |
292 | typedef struct joyreghwvalues_tag { | |
293 | JOYRANGE jrvHardware; /* values returned by hardware */ | |
294 | DWORD dwPOVValues[JOY_POV_NUMDIRS];/* POV values returned by hardware */ | |
295 | DWORD dwCalFlags; /* what has been calibrated */ | |
296 | } JOYREGHWVALUES, *LPJOYREGHWVALUES; | |
297 | ||
298 | /* hardware configuration */ | |
299 | typedef struct joyreghwconfig_tag { | |
300 | JOYREGHWSETTINGS hws; /* hardware settings */ | |
301 | DWORD dwUsageSettings;/* usage settings */ | |
302 | JOYREGHWVALUES hwv; /* values returned by hardware */ | |
303 | DWORD dwType; /* type of joystick */ | |
304 | DWORD dwReserved; /* reserved for OEM drivers */ | |
305 | } JOYREGHWCONFIG, *LPJOYREGHWCONFIG; | |
306 | ||
307 | /* joystick calibration info structure */ | |
308 | typedef struct joycalibrate_tag { | |
309 | UINT wXbase; | |
310 | UINT wXdelta; | |
311 | UINT wYbase; | |
312 | UINT wYdelta; | |
313 | UINT wZbase; | |
314 | UINT wZdelta; | |
315 | } JOYCALIBRATE; | |
316 | typedef JOYCALIBRATE *LPJOYCALIBRATE; | |
317 | ||
318 | /* prototype for joystick message function */ | |
51e6c0cc | 319 | typedef UINT (CALLBACK * JOYDEVMSGPROC)(DWORD dwID, UINT uMessage, LPARAM lParam1, LPARAM lParam2); |
2a3b0a1d EP |
320 | typedef JOYDEVMSGPROC *LPJOYDEVMSGPROC; |
321 | ||
322 | /* messages sent to joystick driver's DriverProc() function */ | |
323 | #define JDD_GETNUMDEVS (DRV_RESERVED + 0x0001) | |
324 | #define JDD_GETDEVCAPS (DRV_RESERVED + 0x0002) | |
325 | #define JDD_GETPOS (DRV_RESERVED + 0x0101) | |
326 | #define JDD_SETCALIBRATION (DRV_RESERVED + 0x0102) | |
327 | #define JDD_CONFIGCHANGED (DRV_RESERVED + 0x0103) | |
328 | #define JDD_GETPOSEX (DRV_RESERVED + 0x0104) | |
329 | ||
668228a1 EP |
330 | #define MCI_MAX_DEVICE_TYPE_LENGTH 80 |
331 | ||
332 | #define MCI_FALSE (MCI_STRING_OFFSET + 19) | |
333 | #define MCI_TRUE (MCI_STRING_OFFSET + 20) | |
334 | ||
335 | #define MCI_FORMAT_RETURN_BASE MCI_FORMAT_MILLISECONDS_S | |
336 | #define MCI_FORMAT_MILLISECONDS_S (MCI_STRING_OFFSET + 21) | |
337 | #define MCI_FORMAT_HMS_S (MCI_STRING_OFFSET + 22) | |
338 | #define MCI_FORMAT_MSF_S (MCI_STRING_OFFSET + 23) | |
339 | #define MCI_FORMAT_FRAMES_S (MCI_STRING_OFFSET + 24) | |
340 | #define MCI_FORMAT_SMPTE_24_S (MCI_STRING_OFFSET + 25) | |
341 | #define MCI_FORMAT_SMPTE_25_S (MCI_STRING_OFFSET + 26) | |
342 | #define MCI_FORMAT_SMPTE_30_S (MCI_STRING_OFFSET + 27) | |
343 | #define MCI_FORMAT_SMPTE_30DROP_S (MCI_STRING_OFFSET + 28) | |
344 | #define MCI_FORMAT_BYTES_S (MCI_STRING_OFFSET + 29) | |
345 | #define MCI_FORMAT_SAMPLES_S (MCI_STRING_OFFSET + 30) | |
346 | #define MCI_FORMAT_TMSF_S (MCI_STRING_OFFSET + 31) | |
347 | ||
348 | #define MCI_VD_FORMAT_TRACK_S (MCI_VD_OFFSET + 5) | |
349 | ||
350 | #define WAVE_FORMAT_PCM_S (MCI_WAVE_OFFSET + 0) | |
351 | #define WAVE_MAPPER_S (MCI_WAVE_OFFSET + 1) | |
352 | ||
353 | #define MCI_SEQ_MAPPER_S (MCI_SEQ_OFFSET + 5) | |
354 | #define MCI_SEQ_FILE_S (MCI_SEQ_OFFSET + 6) | |
355 | #define MCI_SEQ_MIDI_S (MCI_SEQ_OFFSET + 7) | |
356 | #define MCI_SEQ_SMPTE_S (MCI_SEQ_OFFSET + 8) | |
357 | #define MCI_SEQ_FORMAT_SONGPTR_S (MCI_SEQ_OFFSET + 9) | |
358 | #define MCI_SEQ_NONE_S (MCI_SEQ_OFFSET + 10) | |
359 | #define MIDIMAPPER_S (MCI_SEQ_OFFSET + 11) | |
360 | ||
361 | #define MCI_RESOURCE_RETURNED 0x00010000 /* resource ID */ | |
362 | #define MCI_COLONIZED3_RETURN 0x00020000 /* colonized ID, 3 bytes data */ | |
363 | #define MCI_COLONIZED4_RETURN 0x00040000 /* colonized ID, 4 bytes data */ | |
364 | #define MCI_INTEGER_RETURNED 0x00080000 /* integer conversion needed */ | |
365 | #define MCI_RESOURCE_DRIVER 0x00100000 /* driver owns returned resource */ | |
366 | ||
367 | #define MCI_NO_COMMAND_TABLE 0xFFFF | |
368 | ||
369 | #define MCI_COMMAND_HEAD 0 | |
370 | #define MCI_STRING 1 | |
371 | #define MCI_INTEGER 2 | |
372 | #define MCI_END_COMMAND 3 | |
373 | #define MCI_RETURN 4 | |
374 | #define MCI_FLAG 5 | |
375 | #define MCI_END_COMMAND_LIST 6 | |
376 | #define MCI_RECT 7 | |
377 | #define MCI_CONSTANT 8 | |
378 | #define MCI_END_CONSTANT 9 | |
b3315257 JH |
379 | #define MCI_HWND 10 |
380 | #define MCI_HPAL 11 | |
381 | #define MCI_HDC 12 | |
668228a1 | 382 | |
1435ba67 OV |
383 | #ifdef _WIN64 |
384 | #define MCI_INTEGER64 13 | |
385 | #endif /* _WIN64 */ | |
386 | ||
668228a1 EP |
387 | #define MAKEMCIRESOURCE(wRet, wRes) MAKELRESULT((wRet), (wRes)) |
388 | ||
668228a1 EP |
389 | typedef struct { |
390 | HWAVE hWave; | |
391 | LPWAVEFORMATEX lpFormat; | |
3415f778 MS |
392 | DWORD_PTR dwCallback; |
393 | DWORD_PTR dwInstance; | |
668228a1 | 394 | UINT uMappedDeviceID; |
3415f778 | 395 | DWORD_PTR dnDevNode; |
668228a1 EP |
396 | } WAVEOPENDESC, *LPWAVEOPENDESC; |
397 | ||
398 | typedef struct { | |
399 | DWORD dwStreamID; | |
400 | WORD wDeviceID; | |
401 | } MIDIOPENSTRMID; | |
402 | ||
668228a1 EP |
403 | typedef struct { |
404 | HMIDI hMidi; | |
3415f778 MS |
405 | DWORD_PTR dwCallback; |
406 | DWORD_PTR dwInstance; | |
407 | DWORD_PTR dnDevNode; | |
668228a1 EP |
408 | DWORD cIds; |
409 | MIDIOPENSTRMID rgIds; | |
410 | } MIDIOPENDESC, *LPMIDIOPENDESC; | |
411 | ||
668228a1 EP |
412 | typedef struct tMIXEROPENDESC |
413 | { | |
414 | HMIXEROBJ hmx; | |
415 | LPVOID pReserved0; | |
2233f1eb ML |
416 | DWORD_PTR dwCallback; |
417 | DWORD_PTR dwInstance; | |
3415f778 | 418 | DWORD_PTR dnDevNode; |
668228a1 | 419 | } MIXEROPENDESC, *LPMIXEROPENDESC; |
668228a1 | 420 | |
668228a1 EP |
421 | typedef struct { |
422 | UINT wDeviceID; /* device ID */ | |
423 | LPSTR lpstrParams; /* parameter string for entry in SYSTEM.INI */ | |
424 | UINT wCustomCommandTable; /* custom command table (0xFFFF if none) * filled in by the driver */ | |
425 | UINT wType; /* driver type (filled in by the driver) */ | |
426 | } MCI_OPEN_DRIVER_PARMSA, *LPMCI_OPEN_DRIVER_PARMSA; | |
427 | ||
428 | typedef struct { | |
429 | UINT wDeviceID; /* device ID */ | |
430 | LPWSTR lpstrParams; /* parameter string for entry in SYSTEM.INI */ | |
431 | UINT wCustomCommandTable; /* custom command table (0xFFFF if none) * filled in by the driver */ | |
432 | UINT wType; /* driver type (filled in by the driver) */ | |
433 | } MCI_OPEN_DRIVER_PARMSW, *LPMCI_OPEN_DRIVER_PARMSW; | |
434 | DECL_WINELIB_TYPE_AW(MCI_OPEN_DRIVER_PARMS) | |
435 | DECL_WINELIB_TYPE_AW(LPMCI_OPEN_DRIVER_PARMS) | |
436 | ||
3415f778 MS |
437 | DWORD_PTR WINAPI mciGetDriverData(UINT uDeviceID); |
438 | BOOL WINAPI mciSetDriverData(UINT uDeviceID, DWORD_PTR dwData); | |
668228a1 | 439 | UINT WINAPI mciDriverYield(UINT uDeviceID); |
668228a1 EP |
440 | BOOL WINAPI mciDriverNotify(HWND hwndCallback, UINT uDeviceID, |
441 | UINT uStatus); | |
668228a1 EP |
442 | UINT WINAPI mciLoadCommandResource(HINSTANCE hInstance, |
443 | LPCWSTR lpResName, UINT uType); | |
668228a1 EP |
444 | BOOL WINAPI mciFreeCommandResource(UINT uTable); |
445 | ||
668228a1 EP |
446 | #define DCB_NULL 0x0000 |
447 | #define DCB_WINDOW 0x0001 /* dwCallback is a HWND */ | |
448 | #define DCB_TASK 0x0002 /* dwCallback is a HTASK */ | |
449 | #define DCB_FUNCTION 0x0003 /* dwCallback is a FARPROC */ | |
450 | #define DCB_EVENT 0x0005 /* dwCallback is an EVENT Handler */ | |
451 | #define DCB_TYPEMASK 0x0007 | |
452 | #define DCB_NOSWITCH 0x0008 /* don't switch stacks for callback */ | |
453 | ||
29b00e1a DT |
454 | BOOL WINAPI DriverCallback(DWORD_PTR dwCallBack, DWORD uFlags, HDRVR hDev, |
455 | DWORD wMsg, DWORD_PTR dwUser, DWORD_PTR dwParam1, DWORD_PTR dwParam2); | |
668228a1 | 456 | |
3415f778 | 457 | typedef VOID (*LPTASKCALLBACK)(DWORD_PTR dwInst); |
2b95cacc FN |
458 | |
459 | #define TASKERR_NOTASKSUPPORT 1 | |
460 | #define TASKERR_OUTOFMEMORY 2 | |
7e8a9e3d FG |
461 | UINT WINAPI mmTaskCreate(LPTASKCALLBACK, HANDLE*, DWORD_PTR); |
462 | VOID WINAPI mmTaskBlock(DWORD); | |
463 | BOOL WINAPI mmTaskSignal(DWORD); | |
464 | VOID WINAPI mmTaskYield(VOID); | |
465 | DWORD WINAPI mmGetCurrentTask(VOID); | |
2b95cacc | 466 | |
78b50f23 EP |
467 | #ifdef __WINESRC__ |
468 | #define WAVE_DIRECTSOUND 0x0080 | |
469 | #endif | |
470 | ||
53f9c21f | 471 | #include <poppack.h> |
668228a1 | 472 | |
2264b0c5 FG |
473 | #ifdef __cplusplus |
474 | } | |
475 | #endif | |
476 | ||
668228a1 | 477 | #endif /* __MMDDK_H */ |