ntdll: Simplify the thread startup routine and make it CPU-specific.
[wine.git] / include / wine / mmsystem16.h
blobea997b3d5f584a0d04c73d4b82692f9a80fd70b8
1 /*
2 * MMSYSTEM - Multimedia Wine Extension ... :-)
4 * Copyright (C) the Wine project
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __WINE_WINE_MMSYSTEM16_H
22 #define __WINE_WINE_MMSYSTEM16_H
24 #include <windef.h>
25 #include <wine/windef16.h>
26 #include <mmddk.h>
28 #include <pshpack1.h>
30 typedef UINT16 MMVERSION16;
31 typedef UINT16 MCIDEVICEID16;
32 typedef UINT16 MMRESULT16;
34 typedef struct {
35 UINT16 wType; /* indicates the contents of the union */
36 union {
37 DWORD ms; /* milliseconds */
38 DWORD sample; /* samples */
39 DWORD cb; /* byte count */
40 struct { /* SMPTE */
41 BYTE hour; /* hours */
42 BYTE min; /* minutes */
43 BYTE sec; /* seconds */
44 BYTE frame; /* frames */
45 BYTE fps; /* frames per second */
46 BYTE dummy; /* pad */
47 } smpte;
48 struct { /* MIDI */
49 DWORD songptrpos; /* song pointer position */
50 } midi;
51 } u;
52 } MMTIME16, *LPMMTIME16;
54 typedef struct {
55 DWORD dwDCISize;
56 SEGPTR lpszDCISectionName;
57 SEGPTR lpszDCIAliasName;
58 } DRVCONFIGINFO16, *LPDRVCONFIGINFO16;
60 /* GetDriverInfo16 references this structure, so this a struct defined
61 * in the Win16 API.
62 * GetDriverInfo has been deprecated in Win32.
64 typedef struct
66 UINT16 length;
67 HDRVR16 hDriver;
68 HINSTANCE16 hModule;
69 CHAR szAliasName[128];
70 } DRIVERINFOSTRUCT16, *LPDRIVERINFOSTRUCT16;
72 LRESULT WINAPI DefDriverProc16(DWORD,HDRVR16,UINT16,LPARAM,LPARAM);
73 HDRVR16 WINAPI OpenDriver16(LPCSTR,LPCSTR,LPARAM);
74 LRESULT WINAPI CloseDriver16(HDRVR16,LPARAM,LPARAM);
75 LRESULT WINAPI SendDriverMessage16(HDRVR16,UINT16,LPARAM,LPARAM);
76 HMODULE16 WINAPI GetDriverModuleHandle16(HDRVR16);
77 HDRVR16 WINAPI GetNextDriver16(HDRVR16,DWORD);
78 BOOL16 WINAPI GetDriverInfo16(HDRVR16,DRIVERINFOSTRUCT16 *);
80 typedef void (CALLBACK *LPDRVCALLBACK16) (HDRVR16,UINT16,DWORD,DWORD,DWORD);
81 typedef LPDRVCALLBACK16 LPWAVECALLBACK16;
83 UINT16 WINAPI mmsystemGetVersion16(void);
84 BOOL16 WINAPI sndPlaySound16(LPCSTR,UINT16);
86 typedef struct {
87 WORD wMid; /* manufacturer ID */
88 WORD wPid; /* product ID */
89 MMVERSION16 vDriverVersion; /* version of the driver */
90 CHAR szPname[MAXPNAMELEN]; /* product name (0 terminated string) */
91 DWORD dwFormats; /* formats supported */
92 WORD wChannels; /* number of sources supported */
93 DWORD dwSupport; /* functionality supported by driver */
94 } WAVEOUTCAPS16, *LPWAVEOUTCAPS16;
96 typedef struct {
97 WORD wMid; /* manufacturer ID */
98 WORD wPid; /* product ID */
99 MMVERSION16 vDriverVersion; /* version of the driver */
100 CHAR szPname[MAXPNAMELEN]; /* product name (0 terminated string) */
101 DWORD dwFormats; /* formats supported */
102 WORD wChannels; /* number of channels supported */
103 } WAVEINCAPS16, *LPWAVEINCAPS16;
105 typedef struct {
106 HWAVE16 hWave;
107 LPWAVEFORMATEX lpFormat;
108 DWORD dwCallback;
109 DWORD dwInstance;
110 UINT16 uMappedDeviceID;
111 DWORD dnDevNode;
112 } WAVEOPENDESC16, *LPWAVEOPENDESC16;
114 UINT16 WINAPI waveOutGetNumDevs16(void);
115 UINT16 WINAPI waveOutGetDevCaps16(UINT16,LPWAVEOUTCAPS16,UINT16);
116 UINT16 WINAPI waveOutGetVolume16(UINT16,DWORD*);
117 UINT16 WINAPI waveOutSetVolume16(UINT16,DWORD);
118 UINT16 WINAPI waveOutGetErrorText16(UINT16,LPSTR,UINT16);
119 UINT16 WINAPI waveOutOpen16(HWAVEOUT16*,UINT16,const WAVEFORMATEX *,DWORD,DWORD,DWORD);
120 UINT16 WINAPI waveOutClose16(HWAVEOUT16);
121 UINT16 WINAPI waveOutPrepareHeader16(HWAVEOUT16,SEGPTR,UINT16);
122 UINT16 WINAPI waveOutUnprepareHeader16(HWAVEOUT16,SEGPTR,UINT16);
123 UINT16 WINAPI waveOutWrite16(HWAVEOUT16,WAVEHDR*,UINT16);
124 UINT16 WINAPI waveOutPause16(HWAVEOUT16);
125 UINT16 WINAPI waveOutRestart16(HWAVEOUT16);
126 UINT16 WINAPI waveOutReset16(HWAVEOUT16);
127 UINT16 WINAPI waveOutBreakLoop16(HWAVEOUT16);
128 UINT16 WINAPI waveOutGetPosition16(HWAVEOUT16,LPMMTIME16,UINT16);
129 UINT16 WINAPI waveOutGetPitch16(HWAVEOUT16,DWORD*);
130 UINT16 WINAPI waveOutSetPitch16(HWAVEOUT16,DWORD);
131 UINT16 WINAPI waveOutGetPlaybackRate16(HWAVEOUT16,DWORD*);
132 UINT16 WINAPI waveOutSetPlaybackRate16(HWAVEOUT16,DWORD);
133 UINT16 WINAPI waveOutGetID16(HWAVEOUT16,UINT16*);
134 DWORD WINAPI waveOutMessage16(HWAVEOUT16,UINT16,DWORD,DWORD);
135 UINT16 WINAPI waveInGetNumDevs16(void);
136 UINT16 WINAPI waveInGetDevCaps16(UINT16,LPWAVEINCAPS16,UINT16);
137 UINT16 WINAPI waveInGetErrorText16(UINT16,LPSTR,UINT16);
138 UINT16 WINAPI waveInOpen16(HWAVEIN16*,UINT16,const WAVEFORMATEX *,DWORD,DWORD,DWORD);
139 UINT16 WINAPI waveInClose16(HWAVEIN16);
140 UINT16 WINAPI waveInPrepareHeader16(HWAVEIN16,SEGPTR,UINT16);
141 UINT16 WINAPI waveInUnprepareHeader16(HWAVEIN16,SEGPTR,UINT16);
142 UINT16 WINAPI waveInAddBuffer16(HWAVEIN16,WAVEHDR*,UINT16);
143 UINT16 WINAPI waveInStart16(HWAVEIN16);
144 UINT16 WINAPI waveInStop16(HWAVEIN16);
145 UINT16 WINAPI waveInReset16(HWAVEIN16);
146 UINT16 WINAPI waveInGetPosition16(HWAVEIN16,LPMMTIME16,UINT16);
147 UINT16 WINAPI waveInGetID16(HWAVEIN16,UINT16*);
148 DWORD WINAPI waveInMessage16(HWAVEIN16,UINT16,DWORD,DWORD);
150 typedef LPDRVCALLBACK16 LPMIDICALLBACK16;
152 typedef struct {
153 WORD wMid; /* manufacturer ID */
154 WORD wPid; /* product ID */
155 MMVERSION16 vDriverVersion; /* version of the driver */
156 CHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */
157 WORD wTechnology; /* type of device */
158 WORD wVoices; /* # of voices (internal synth only) */
159 WORD wNotes; /* max # of notes (internal synth only) */
160 WORD wChannelMask; /* channels used (internal synth only) */
161 DWORD dwSupport; /* functionality supported by driver */
162 } MIDIOUTCAPS16, *LPMIDIOUTCAPS16;
164 typedef struct {
165 WORD wMid; /* manufacturer ID */
166 WORD wPid; /* product ID */
167 MMVERSION16 vDriverVersion; /* version of the driver */
168 CHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */
169 DWORD dwSupport; /* included in win95 and higher */
170 } MIDIINCAPS16, *LPMIDIINCAPS16;
172 typedef struct midihdr16_tag {
173 LPSTR lpData; /* pointer to locked data block */
174 DWORD dwBufferLength; /* length of data in data block */
175 DWORD dwBytesRecorded;/* used for input only */
176 DWORD dwUser; /* for client's use */
177 DWORD dwFlags; /* assorted flags (see defines) */
178 struct midihdr16_tag *lpNext; /* reserved for driver */
179 DWORD reserved; /* reserved for driver */
180 } MIDIHDR16, *LPMIDIHDR16;
182 typedef struct {
183 HMIDI16 hMidi;
184 DWORD dwCallback;
185 DWORD dwInstance;
186 UINT16 reserved;
187 DWORD dnDevNode;
188 DWORD cIds;
189 MIDIOPENSTRMID rgIds;
190 } MIDIOPENDESC16, *LPMIDIOPENDESC16;
192 UINT16 WINAPI midiOutGetNumDevs16(void);
193 UINT16 WINAPI midiOutGetDevCaps16(UINT16,LPMIDIOUTCAPS16,UINT16);
194 UINT16 WINAPI midiOutGetVolume16(UINT16,DWORD*);
195 UINT16 WINAPI midiOutSetVolume16(UINT16,DWORD);
196 UINT16 WINAPI midiOutGetErrorText16(UINT16,LPSTR,UINT16);
197 UINT16 WINAPI midiOutOpen16(HMIDIOUT16*,UINT16,DWORD,DWORD,DWORD);
198 UINT16 WINAPI midiOutClose16(HMIDIOUT16);
199 UINT16 WINAPI midiOutPrepareHeader16(HMIDIOUT16,SEGPTR,UINT16);
200 UINT16 WINAPI midiOutUnprepareHeader16(HMIDIOUT16,SEGPTR,UINT16);
201 UINT16 WINAPI midiOutShortMsg16(HMIDIOUT16,DWORD);
202 UINT16 WINAPI midiOutLongMsg16(HMIDIOUT16,MIDIHDR16*,UINT16);
203 UINT16 WINAPI midiOutReset16(HMIDIOUT16);
204 UINT16 WINAPI midiOutCachePatches16(HMIDIOUT16,UINT16,WORD*,UINT16);
205 UINT16 WINAPI midiOutCacheDrumPatches16(HMIDIOUT16,UINT16,WORD*,UINT16);
206 UINT16 WINAPI midiOutGetID16(HMIDIOUT16,UINT16*);
207 DWORD WINAPI midiOutMessage16(HMIDIOUT16,UINT16,DWORD,DWORD);
208 UINT16 WINAPI midiInGetNumDevs16(void);
209 UINT16 WINAPI midiInGetDevCaps16(UINT16,LPMIDIINCAPS16,UINT16);
210 UINT16 WINAPI midiInGetErrorText16(UINT16,LPSTR,UINT16);
211 UINT16 WINAPI midiInOpen16(HMIDIIN16*,UINT16,DWORD,DWORD,DWORD);
212 UINT16 WINAPI midiInClose16(HMIDIIN16);
213 UINT16 WINAPI midiInPrepareHeader16(HMIDIIN16,SEGPTR,UINT16);
214 UINT16 WINAPI midiInUnprepareHeader16(HMIDIIN16,SEGPTR,UINT16);
215 UINT16 WINAPI midiInAddBuffer16(HMIDIIN16,MIDIHDR16*,UINT16);
216 UINT16 WINAPI midiInStart16(HMIDIIN16);
217 UINT16 WINAPI midiInStop16(HMIDIIN16);
218 UINT16 WINAPI midiInReset16(HMIDIIN16);
219 UINT16 WINAPI midiInGetID16(HMIDIIN16,UINT16*);
220 DWORD WINAPI midiInMessage16(HMIDIIN16,UINT16,DWORD,DWORD);
221 MMRESULT16 WINAPI midiStreamClose16(HMIDISTRM16 hms);
222 MMRESULT16 WINAPI midiStreamOpen16(HMIDISTRM16*,LPUINT16,DWORD,DWORD,DWORD,DWORD);
223 MMRESULT16 WINAPI midiStreamOut16(HMIDISTRM16,LPMIDIHDR16,UINT16);
224 MMRESULT16 WINAPI midiStreamPause16(HMIDISTRM16);
225 MMRESULT16 WINAPI midiStreamPosition16(HMIDISTRM16,LPMMTIME16,UINT16);
226 MMRESULT16 WINAPI midiStreamProperty16(HMIDISTRM16,LPBYTE,DWORD);
227 MMRESULT16 WINAPI midiStreamRestart16(HMIDISTRM16);
228 MMRESULT16 WINAPI midiStreamStop16(HMIDISTRM16);
230 typedef struct {
231 WORD wMid; /* manufacturer ID */
232 WORD wPid; /* product ID */
233 MMVERSION16 vDriverVersion; /* version of the driver */
234 CHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
235 WORD wTechnology; /* type of device */
236 DWORD dwSupport; /* functionality supported by driver */
237 } AUXCAPS16, *LPAUXCAPS16;
239 typedef void (CALLBACK *LPTIMECALLBACK16)(UINT16,UINT16,DWORD,DWORD,DWORD);
241 typedef struct {
242 UINT16 wPeriodMin; /* minimum period supported */
243 UINT16 wPeriodMax; /* maximum period supported */
244 } TIMECAPS16,*LPTIMECAPS16;
246 typedef struct {
247 WORD wMid; /* manufacturer ID */
248 WORD wPid; /* product ID */
249 char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */
250 UINT16 wXmin; /* minimum x position value */
251 UINT16 wXmax; /* maximum x position value */
252 UINT16 wYmin; /* minimum y position value */
253 UINT16 wYmax; /* maximum y position value */
254 UINT16 wZmin; /* minimum z position value */
255 UINT16 wZmax; /* maximum z position value */
256 UINT16 wNumButtons; /* number of buttons */
257 UINT16 wPeriodMin; /* minimum message period when captured */
258 UINT16 wPeriodMax; /* maximum message period when captured */
259 /* win95,nt4 additions: */
260 UINT16 wRmin; /* minimum r position value */
261 UINT16 wRmax; /* maximum r position value */
262 UINT16 wUmin; /* minimum u (5th axis) position value */
263 UINT16 wUmax; /* maximum u (5th axis) position value */
264 UINT16 wVmin; /* minimum v (6th axis) position value */
265 UINT16 wVmax; /* maximum v (6th axis) position value */
266 UINT16 wCaps; /* joystick capabilities */
267 UINT16 wMaxAxes; /* maximum number of axes supported */
268 UINT16 wNumAxes; /* number of axes in use */
269 UINT16 wMaxButtons; /* maximum number of buttons supported */
270 CHAR szRegKey[MAXPNAMELEN]; /* registry key */
271 CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; /* OEM VxD in use */
272 } JOYCAPS16, *LPJOYCAPS16;
274 typedef struct {
275 UINT16 wXpos; /* x position */
276 UINT16 wYpos; /* y position */
277 UINT16 wZpos; /* z position */
278 UINT16 wButtons; /* button states */
279 } JOYINFO16, *LPJOYINFO16;
281 typedef struct {
282 WORD wMid; /* manufacturer id */
283 WORD wPid; /* product id */
284 MMVERSION16 vDriverVersion; /* version of the driver */
285 CHAR szPname[MAXPNAMELEN]; /* product name */
286 DWORD fdwSupport; /* misc. support bits */
287 DWORD cDestinations; /* count of destinations */
288 } MIXERCAPS16,*LPMIXERCAPS16;
290 typedef struct tMIXEROPENDESC16
292 HMIXEROBJ16 hmx;
293 LPVOID pReserved0;
294 DWORD dwCallback;
295 DWORD dwInstance;
296 } MIXEROPENDESC16, *LPMIXEROPENDESC16;
298 typedef struct {
299 DWORD cbStruct; /* size of MIXERLINE structure */
300 DWORD dwDestination; /* zero based destination index */
301 DWORD dwSource; /* zero based source index (if source) */
302 DWORD dwLineID; /* unique line id for mixer device */
303 DWORD fdwLine; /* state/information about line */
304 DWORD dwUser; /* driver specific information */
305 DWORD dwComponentType; /* component type line connects to */
306 DWORD cChannels; /* number of channels line supports */
307 DWORD cConnections; /* number of connections [possible] */
308 DWORD cControls; /* number of controls at this line */
309 CHAR szShortName[MIXER_SHORT_NAME_CHARS];
310 CHAR szName[MIXER_LONG_NAME_CHARS];
311 struct {
312 DWORD dwType; /* MIXERLINE_TARGETTYPE_xxxx */
313 DWORD dwDeviceID; /* target device ID of device type */
314 WORD wMid; /* of target device */
315 WORD wPid; /* " */
316 MMVERSION16 vDriverVersion; /* " */
317 CHAR szPname[MAXPNAMELEN]; /* " */
318 } Target;
319 } MIXERLINE16, *LPMIXERLINE16;
321 typedef struct {
322 DWORD cbStruct; /* size in bytes of MIXERCONTROL */
323 DWORD dwControlID; /* unique control id for mixer device */
324 DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */
325 DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */
326 DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set */
327 CHAR szShortName[MIXER_SHORT_NAME_CHARS];
328 CHAR szName[MIXER_LONG_NAME_CHARS];
329 union {
330 struct {
331 LONG lMinimum; /* signed minimum for this control */
332 LONG lMaximum; /* signed maximum for this control */
333 } s;
334 struct {
335 DWORD dwMinimum; /* unsigned minimum for this control */
336 DWORD dwMaximum; /* unsigned maximum for this control */
337 } s1;
338 DWORD dwReserved[6];
339 } Bounds;
340 union {
341 DWORD cSteps; /* # of steps between min & max */
342 DWORD cbCustomData; /* size in bytes of custom data */
343 DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */
344 } Metrics;
345 } MIXERCONTROL16, *LPMIXERCONTROL16;
347 typedef struct {
348 DWORD cbStruct; /* size in bytes of MIXERLINECONTROLS */
349 DWORD dwLineID; /* line id (from MIXERLINE.dwLineID) */
350 union {
351 DWORD dwControlID; /* MIXER_GETLINECONTROLSF_ONEBYID */
352 DWORD dwControlType; /* MIXER_GETLINECONTROLSF_ONEBYTYPE */
353 } u;
354 DWORD cControls; /* count of controls pmxctrl points to */
355 DWORD cbmxctrl; /* size in bytes of _one_ MIXERCONTROL */
356 SEGPTR pamxctrl; /* pointer to first MIXERCONTROL array */
357 } MIXERLINECONTROLS16, *LPMIXERLINECONTROLS16;
359 typedef struct {
360 DWORD cbStruct; /* size in bytes of MIXERCONTROLDETAILS */
361 DWORD dwControlID; /* control id to get/set details on */
362 DWORD cChannels; /* number of channels in paDetails array */
363 union {
364 HWND16 hwndOwner; /* for MIXER_SETCONTROLDETAILSF_CUSTOM */
365 DWORD cMultipleItems; /* if _MULTIPLE, the number of items per channel */
366 } u;
367 DWORD cbDetails; /* size of _one_ details_XX struct */
368 LPVOID paDetails; /* pointer to array of details_XX structs */
369 } MIXERCONTROLDETAILS16,*LPMIXERCONTROLDETAILS16;
371 typedef struct {
372 DWORD dwParam1;
373 DWORD dwParam2;
374 CHAR szName[MIXER_LONG_NAME_CHARS];
375 } MIXERCONTROLDETAILS_LISTTEXT16,*LPMIXERCONTROLDETAILS_LISTTEXT16;
377 typedef LRESULT (CALLBACK *LPMMIOPROC16)(LPSTR lpmmioinfo,UINT16 uMessage,
378 LPARAM lParam1,LPARAM lParam2);
380 typedef struct {
381 DWORD dwFlags; /* general status flags */
382 FOURCC fccIOProc; /* pointer to I/O procedure */
383 LPMMIOPROC16 pIOProc; /* pointer to I/O procedure */
384 UINT16 wErrorRet; /* place for error to be returned */
385 HTASK16 hTask; /* alternate local task */
386 /* fields maintained by MMIO functions during buffered I/O */
387 LONG cchBuffer; /* size of I/O buffer (or 0L) */
388 HPSTR pchBuffer; /* start of I/O buffer (or NULL) */
389 HPSTR pchNext; /* pointer to next byte to read/write */
390 HPSTR pchEndRead; /* pointer to last valid byte to read */
391 HPSTR pchEndWrite; /* pointer to last byte to write */
392 LONG lBufOffset; /* disk offset of start of buffer */
393 /* fields maintained by I/O procedure */
394 LONG lDiskOffset; /* disk offset of next read or write */
395 DWORD adwInfo[3]; /* data specific to type of MMIOPROC */
396 /* other fields maintained by MMIO */
397 DWORD dwReserved1; /* reserved for MMIO use */
398 DWORD dwReserved2; /* reserved for MMIO use */
399 HMMIO16 hmmio; /* handle to open file */
400 } MMIOINFO16, *LPMMIOINFO16;
402 typedef UINT16 (CALLBACK *YIELDPROC16)(UINT16,DWORD);
404 UINT16 WINAPI auxGetNumDevs16(void);
405 UINT16 WINAPI auxGetDevCaps16 (UINT16,LPAUXCAPS16,UINT16);
406 UINT16 WINAPI auxSetVolume16(UINT16,DWORD);
407 UINT16 WINAPI auxGetVolume16(UINT16,LPDWORD);
408 DWORD WINAPI auxOutMessage16(UINT16,UINT16,DWORD,DWORD);
409 MMRESULT16 WINAPI timeGetSystemTime16(LPMMTIME16,UINT16);
410 MMRESULT16 WINAPI timeSetEvent16(UINT16,UINT16,LPTIMECALLBACK16,DWORD,UINT16);
411 MMRESULT16 WINAPI timeKillEvent16(UINT16);
412 MMRESULT16 WINAPI timeGetDevCaps16(LPTIMECAPS16,UINT16);
413 MMRESULT16 WINAPI timeBeginPeriod16(UINT16);
414 MMRESULT16 WINAPI timeEndPeriod16(UINT16);
415 MMRESULT16 WINAPI joyGetDevCaps16 (UINT16,LPJOYCAPS16,UINT16);
416 UINT16 WINAPI joyGetNumDevs16(void);
417 MMRESULT16 WINAPI joyGetPos16(UINT16,LPJOYINFO16);
418 MMRESULT16 WINAPI joyGetPosEx16(UINT16,LPJOYINFOEX);
419 MMRESULT16 WINAPI joyGetThreshold16(UINT16,UINT16*);
420 MMRESULT16 WINAPI joyReleaseCapture16(UINT16);
421 MMRESULT16 WINAPI joySetCapture16(HWND16,UINT16,UINT16,BOOL16);
422 MMRESULT16 WINAPI joySetThreshold16(UINT16,UINT16);
423 UINT16 WINAPI mixerGetNumDevs16(void);
424 UINT16 WINAPI mixerOpen16(LPHMIXER16,UINT16,DWORD,DWORD,DWORD);
425 UINT16 WINAPI mixerClose16(HMIXER16);
426 DWORD WINAPI mixerMessage16(HMIXER16,UINT16,DWORD,DWORD);
427 UINT16 WINAPI mixerGetDevCaps16(UINT16,LPMIXERCAPS16,UINT16);
428 UINT16 WINAPI mixerGetLineInfo16(HMIXEROBJ16,LPMIXERLINE16,DWORD);
429 UINT16 WINAPI mixerGetID16(HMIXEROBJ16,LPUINT16,DWORD);
430 UINT16 WINAPI mixerGetLineControls16(HMIXEROBJ16,LPMIXERLINECONTROLS16,DWORD);
431 UINT16 WINAPI mixerGetControlDetails16(HMIXEROBJ16,LPMIXERCONTROLDETAILS16,DWORD);
432 UINT16 WINAPI mixerSetControlDetails16(HMIXEROBJ16,LPMIXERCONTROLDETAILS16,DWORD);
433 LPMMIOPROC16 WINAPI mmioInstallIOProc16(FOURCC,LPMMIOPROC16,DWORD);
434 FOURCC WINAPI mmioStringToFOURCC16(LPCSTR,UINT16);
435 HMMIO16 WINAPI mmioOpen16(LPSTR,MMIOINFO16*,DWORD);
436 UINT16 WINAPI mmioRename16(LPCSTR,LPCSTR,MMIOINFO16*,DWORD);
437 MMRESULT16 WINAPI mmioClose16(HMMIO16,UINT16);
438 LONG WINAPI mmioRead16(HMMIO16,HPSTR,LONG);
439 LONG WINAPI mmioWrite16(HMMIO16,HPCSTR,LONG);
440 LONG WINAPI mmioSeek16(HMMIO16,LONG,INT16);
441 MMRESULT16 WINAPI mmioGetInfo16(HMMIO16,MMIOINFO16*,UINT16);
442 MMRESULT16 WINAPI mmioSetInfo16(HMMIO16,const MMIOINFO16*,UINT16);
443 UINT16 WINAPI mmioSetBuffer16(HMMIO16,LPSTR,LONG,UINT16);
444 UINT16 WINAPI mmioFlush16(HMMIO16,UINT16);
445 UINT16 WINAPI mmioAdvance16(HMMIO16,MMIOINFO16*,UINT16);
446 LRESULT WINAPI mmioSendMessage16(HMMIO16,UINT16,LPARAM,LPARAM);
447 UINT16 WINAPI mmioDescend16(HMMIO16,MMCKINFO*,const MMCKINFO*,UINT16);
448 UINT16 WINAPI mmioAscend16(HMMIO16,MMCKINFO*,UINT16);
449 UINT16 WINAPI mmioCreateChunk16(HMMIO16,MMCKINFO*,UINT16);
450 DWORD WINAPI mciSendCommand16(UINT16,UINT16,DWORD,DWORD);
451 DWORD WINAPI mciSendString16(LPCSTR,LPSTR,UINT16,HWND16);
452 UINT16 WINAPI mciGetDeviceID16(LPCSTR);
453 UINT16 WINAPI mciGetDeviceIDFromElementID16(DWORD,LPCSTR);
454 BOOL16 WINAPI mciGetErrorString16 (DWORD,LPSTR,UINT16);
455 BOOL16 WINAPI mciSetYieldProc16(UINT16,YIELDPROC16,DWORD);
456 HTASK16 WINAPI mciGetCreatorTask16(UINT16);
457 YIELDPROC16 WINAPI mciGetYieldProc16(UINT16,DWORD*);
458 DWORD WINAPI mciGetDriverData16(UINT16 uDeviceID);
459 BOOL16 WINAPI mciSetDriverData16(UINT16 uDeviceID, DWORD dwData);
460 UINT16 WINAPI mciDriverYield16(UINT16 uDeviceID);
461 BOOL16 WINAPI mciDriverNotify16(HWND16 hwndCallback, UINT16 uDeviceID,
462 UINT16 uStatus);
463 UINT16 WINAPI mciLoadCommandResource16(HINSTANCE16 hInstance,
464 LPCSTR lpResName, UINT16 uType);
465 BOOL16 WINAPI mciFreeCommandResource16(UINT16 uTable);
467 HINSTANCE16 WINAPI mmTaskCreate16(SEGPTR spProc, HINSTANCE16 *lphMmTask, DWORD dwPmt);
468 void WINAPI mmTaskBlock16(HINSTANCE16 hInst);
469 LRESULT WINAPI mmTaskSignal16(HTASK16 ht);
470 void WINAPI mmTaskYield16(void);
471 LRESULT WINAPI mmThreadCreate16(FARPROC16 fpThreadAddr, LPHANDLE16 lpHndl,
472 DWORD dwPmt, DWORD dwFlags);
473 void WINAPI mmThreadSignal16(HANDLE16 hndl);
474 void WINAPI mmThreadBlock16(HANDLE16 hndl);
475 HANDLE16 WINAPI mmThreadGetTask16(HANDLE16 hndl);
476 BOOL16 WINAPI mmThreadIsValid16(HANDLE16 hndl);
477 BOOL16 WINAPI mmThreadIsCurrent16(HANDLE16 hndl);
479 BOOL16 WINAPI DriverCallback16(DWORD dwCallBack, UINT16 uFlags, HANDLE16 hDev,
480 WORD wMsg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2);
482 typedef struct {
483 DWORD dwCallback;
484 WORD wDeviceID;
485 WORD wReserved0;
486 SEGPTR lpstrDeviceType;
487 SEGPTR lpstrElementName;
488 SEGPTR lpstrAlias;
489 } MCI_OPEN_PARMS16, *LPMCI_OPEN_PARMS16;
491 typedef struct {
492 DWORD dwCallback;
493 SEGPTR lpstrReturn;
494 DWORD dwRetSize;
495 } MCI_INFO_PARMS16, *LPMCI_INFO_PARMS16;
497 typedef struct {
498 DWORD dwCallback;
499 SEGPTR lpstrReturn;
500 DWORD dwRetSize;
501 DWORD dwNumber;
502 WORD wDeviceType;
503 WORD wReserved0;
504 } MCI_SYSINFO_PARMS16, *LPMCI_SYSINFO_PARMS16;
506 typedef struct {
507 DWORD dwCallback;
508 UINT16 nVirtKey;
509 WORD wReserved0;
510 HWND16 hwndBreak;
511 WORD wReserved1;
512 } MCI_BREAK_PARMS16, *LPMCI_BREAK_PARMS16;
514 typedef struct {
515 DWORD dwCallback;
516 LPCSTR lpfilename;
517 } MCI_LOAD_PARMS16, *LPMCI_LOAD_PARMS16;
519 typedef struct {
520 DWORD dwCallback;
521 SEGPTR lpstrSoundName;
522 } MCI_SOUND_PARMS16, *LPMCI_SOUND_PARMS16;
524 typedef struct {
525 DWORD dwCallback;
526 SEGPTR lpstrCommand;
527 } MCI_VD_ESCAPE_PARMS16, *LPMCI_VD_ESCAPE_PARMS16;
529 typedef struct {
530 UINT16 wDeviceID; /* device ID */
531 SEGPTR lpstrParams; /* parameter string for entry in SYSTEM.INI */
532 UINT16 wCustomCommandTable; /* custom command table (0xFFFF if none)
533 * filled in by the driver */
534 UINT16 wType; /* driver type (filled in by the driver) */
535 } MCI_OPEN_DRIVER_PARMS16, *LPMCI_OPEN_DRIVER_PARMS16;
537 typedef struct {
538 DWORD dwCallback;
539 MCIDEVICEID16 wDeviceID;
540 WORD wReserved0;
541 SEGPTR lpstrDeviceType;
542 SEGPTR lpstrElementName;
543 SEGPTR lpstrAlias;
544 DWORD dwBufferSeconds;
545 } MCI_WAVE_OPEN_PARMS16, *LPMCI_WAVE_OPEN_PARMS16;
547 typedef struct {
548 DWORD dwCallback;
549 DWORD dwTimeFormat;
550 DWORD dwAudio;
551 UINT16 wInput;
552 UINT16 wReserved0;
553 UINT16 wOutput;
554 UINT16 wReserved1;
555 UINT16 wFormatTag;
556 UINT16 wReserved2;
557 UINT16 nChannels;
558 UINT16 wReserved3;
559 DWORD nSamplesPerSec;
560 DWORD nAvgBytesPerSec;
561 UINT16 nBlockAlign;
562 UINT16 wReserved4;
563 UINT16 wBitsPerSample;
564 UINT16 wReserved5;
565 } MCI_WAVE_SET_PARMS16, * LPMCI_WAVE_SET_PARMS16;
567 typedef struct {
568 DWORD dwCallback;
569 UINT16 wDeviceID;
570 UINT16 wReserved0;
571 SEGPTR lpstrDeviceType;
572 SEGPTR lpstrElementName;
573 SEGPTR lpstrAlias;
574 DWORD dwStyle;
575 HWND16 hWndParent;
576 UINT16 wReserved1;
577 } MCI_ANIM_OPEN_PARMS16, *LPMCI_ANIM_OPEN_PARMS16;
579 typedef struct {
580 DWORD dwCallback;
581 HWND16 hWnd;
582 WORD wReserved1;
583 WORD nCmdShow;
584 WORD wReserved2;
585 LPCSTR lpstrText;
586 } MCI_ANIM_WINDOW_PARMS16, *LPMCI_ANIM_WINDOW_PARMS16;
588 typedef struct {
589 DWORD dwCallback;
590 #ifdef MCI_USE_OFFEXT
591 POINT16 ptOffset;
592 POINT16 ptExtent;
593 #else /* ifdef MCI_USE_OFFEXT */
594 RECT16 rc;
595 #endif /* ifdef MCI_USE_OFFEXT */
596 } MCI_ANIM_RECT_PARMS16, *LPMCI_ANIM_RECT_PARMS16;
598 typedef struct {
599 DWORD dwCallback;
600 RECT16 rc;
601 HDC16 hDC;
602 } MCI_ANIM_UPDATE_PARMS16, *LPMCI_ANIM_UPDATE_PARMS16;
604 typedef struct {
605 DWORD dwCallback;
606 MCIDEVICEID16 wDeviceID;
607 WORD wReserved0;
608 LPCSTR lpstrDeviceType;
609 LPCSTR lpstrElementName;
610 LPCSTR lpstrAlias;
611 DWORD dwStyle;
612 HWND16 hWndParent;
613 WORD wReserved1;
614 } MCI_OVLY_OPEN_PARMS16, *LPMCI_OVLY_OPEN_PARMS16;
616 typedef struct {
617 DWORD dwCallback;
618 HWND16 hWnd;
619 WORD wReserved1;
620 UINT16 nCmdShow;
621 WORD wReserved2;
622 LPCSTR lpstrText;
623 } MCI_OVLY_WINDOW_PARMS16, *LPMCI_OVLY_WINDOW_PARMS16;
625 typedef struct {
626 DWORD dwCallback;
627 #ifdef MCI_USE_OFFEXT
628 POINT16 ptOffset;
629 POINT16 ptExtent;
630 #else /* ifdef MCI_USE_OFFEXT */
631 RECT16 rc;
632 #endif /* ifdef MCI_USE_OFFEXT */
633 } MCI_OVLY_RECT_PARMS16, *LPMCI_OVLY_RECT_PARMS16;
635 typedef struct {
636 DWORD dwCallback;
637 LPCSTR lpfilename;
638 RECT16 rc;
639 } MCI_OVLY_SAVE_PARMS16, *LPMCI_OVLY_SAVE_PARMS16;
641 typedef struct {
642 DWORD dwCallback;
643 LPCSTR lpfilename;
644 RECT16 rc;
645 } MCI_OVLY_LOAD_PARMS16, *LPMCI_OVLY_LOAD_PARMS16;
647 /* from digitalv / 16 bit */
648 typedef struct {
649 DWORD dwCallback;
650 RECT16 rc;
651 } MCI_DGV_RECT_PARMS16, *LPMCI_DGV_RECT_PARMS16;
653 typedef struct {
654 DWORD dwCallback;
655 LPSTR lpstrFileName;
656 RECT16 rc;
657 } MCI_DGV_CAPTURE_PARMS16, *LPMCI_DGV_CAPTURE_PARMS16;
659 typedef struct {
660 DWORD dwCallback;
661 DWORD dwFrom;
662 DWORD dwTo;
663 RECT16 rc;
664 DWORD dwAudioStream;
665 DWORD dwVideoStream;
666 } MCI_DGV_COPY_PARMS16, *LPMCI_DGV_COPY_PARMS16;
668 typedef struct {
669 DWORD dwCallback;
670 DWORD dwFrom;
671 DWORD dwTo;
672 RECT16 rc;
673 DWORD dwAudioStream;
674 DWORD dwVideoStream;
675 } MCI_DGV_CUT_PARMS16, * LPMCI_DGV_CUT_PARMS16;
677 typedef struct {
678 DWORD dwCallback;
679 DWORD dwFrom;
680 DWORD dwTo;
681 RECT16 rc;
682 DWORD dwAudioStream;
683 DWORD dwVideoStream;
684 } MCI_DGV_DELETE_PARMS16, * LPMCI_DGV_DELETE_PARMS16;
686 typedef MCI_DGV_RECT_PARMS16 MCI_DGV_FREEZE_PARMS16, * LPMCI_DGV_FREEZE_PARMS16;
688 typedef struct {
689 DWORD dwCallback;
690 LPSTR lpstrReturn;
691 DWORD dwRetSize;
692 DWORD dwItem;
693 } MCI_DGV_INFO_PARMS16, * LPMCI_DGV_INFO_PARMS16;
695 typedef struct {
696 DWORD dwCallback;
697 LPSTR lpstrReturn;
698 DWORD dwLength;
699 DWORD dwNumber;
700 DWORD dwItem;
701 LPSTR lpstrAlgorithm;
702 } MCI_DGV_LIST_PARMS16, *LPMCI_DGV_LIST_PARMS16;
704 typedef MCI_LOAD_PARMS16 MCI_DGV_LOAD_PARMS16 , * LPMCI_DGV_LOAD_PARMS16;
706 typedef struct {
707 DWORD dwCallback;
708 UINT16 wDeviceID;
709 UINT16 wReserved0;
710 LPSTR lpstrDeviceType;
711 LPSTR lpstrElementName;
712 LPSTR lpstrAlias;
713 DWORD dwStyle;
714 HWND16 hWndParent;
715 UINT16 wReserved1;
716 } MCI_DGV_OPEN_PARMS16, *LPMCI_DGV_OPEN_PARMS16;
718 typedef struct {
719 DWORD dwCallback;
720 DWORD dwTo;
721 RECT16 rc;
722 DWORD dwAudioStream;
723 DWORD dwVideoStream;
724 } MCI_DGV_PASTE_PARMS16, * LPMCI_DGV_PASTE_PARMS16;
726 typedef MCI_DGV_RECT_PARMS16 MCI_DGV_PUT_PARMS16, * LPMCI_DGV_PUT_PARMS16;
728 typedef struct {
729 DWORD dwCallback;
730 DWORD dwItem;
731 LPSTR lpstrName;
732 DWORD lpstrAlgorithm;
733 DWORD dwHandle;
734 } MCI_DGV_QUALITY_PARMS16, *LPMCI_DGV_QUALITY_PARMS16;
736 typedef struct {
737 DWORD dwCallback;
738 DWORD dwFrom;
739 DWORD dwTo;
740 RECT16 rc;
741 DWORD dwAudioStream;
742 DWORD dwVideoStream;
743 } MCI_DGV_RECORD_PARMS16, * LPMCI_DGV_RECORD_PARMS16;
745 typedef struct {
746 DWORD dwCallback;
747 LPSTR lpstrPath;
748 DWORD dwSize;
749 } MCI_DGV_RESERVE_PARMS16, *LPMCI_DGV_RESERVE_PARMS16A;
751 typedef struct {
752 DWORD dwCallback;
753 LPSTR lpstrFileName;
754 RECT16 rc;
755 } MCI_DGV_RESTORE_PARMS16, *LPMCI_DGV_RESTORE_PARMS16;
757 typedef struct {
758 DWORD dwCallback;
759 LPSTR lpstrFileName;
760 RECT16 rc;
761 } MCI_DGV_SAVE_PARMS16, *LPMCI_DGV_SAVE_PARMS16;
763 typedef struct {
764 DWORD dwCallback;
765 DWORD dwItem;
766 DWORD dwValue;
767 DWORD dwOver;
768 LPSTR lpstrAlgorithm;
769 LPSTR lpstrQuality;
770 } MCI_DGV_SETAUDIO_PARMS16, *LPMCI_DGV_SETAUDIO_PARMS16;
772 typedef struct {
773 DWORD dwCallback;
774 DWORD dwItem;
775 DWORD dwValue;
776 DWORD dwOver;
777 LPSTR lpstrAlgorithm;
778 LPSTR lpstrQuality;
779 DWORD dwSourceNumber;
780 } MCI_DGV_SETVIDEO_PARMS16, *LPMCI_DGV_SETVIDEO_PARMS16;
782 typedef struct {
783 DWORD dwCallback;
784 DWORD dwReturn;
785 DWORD dwItem;
786 DWORD dwTrack;
787 SEGPTR lpstrDrive;
788 DWORD dwReference;
789 } MCI_DGV_STATUS_PARMS16, *LPMCI_DGV_STATUS_PARMS16;
791 typedef struct {
792 DWORD dwCallback;
793 RECT16 rc;
794 HDC16 hDC;
795 UINT16 wReserved0;
796 } MCI_DGV_UPDATE_PARMS16, * LPMCI_DGV_UPDATE_PARMS16;
798 typedef MCI_DGV_RECT_PARMS16 MCI_DGV_UNFREEZE_PARMS16, * LPMCI_DGV_UNFREEZE_PARMS16;
800 typedef MCI_DGV_RECT_PARMS16 MCI_DGV_WHERE_PARMS16, * LPMCI_DGV_WHERE_PARMS16;
802 typedef struct {
803 DWORD dwCallback;
804 HWND16 hWnd;
805 UINT16 wReserved1;
806 UINT16 nCmdShow;
807 UINT16 wReserved2;
808 LPSTR lpstrText;
809 } MCI_DGV_WINDOW_PARMS16, *LPMCI_DGV_WINDOW_PARMS16;
811 #include <poppack.h>
813 #endif /* __WINE_WINE_MMSYSTEM16_H */