Store window properties in the server. Moved property.c to dlls/user.
[wine] / include / wine / mmsystem16.h
1 /* 
2  * MMSYSTEM - Multimedia Wine Extension ... :-)
3  */
4
5 #ifndef __WINE_WINE_MMSYSTEM16_H
6 #define __WINE_WINE_MMSYSTEM16_H
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 #include "windef.h"
13 #include "wine/windef16.h"
14
15 typedef UINT16  MMVERSION16;
16 typedef UINT16  MCIDEVICEID16;
17 typedef UINT16  MMRESULT16;
18
19 typedef struct {
20     UINT16    wType;            /* indicates the contents of the union */
21     union {
22         DWORD ms;               /* milliseconds */
23         DWORD sample;           /* samples */
24         DWORD cb;               /* byte count */
25         struct {                /* SMPTE */
26             BYTE hour;          /* hours */
27             BYTE min;           /* minutes */
28             BYTE sec;           /* seconds */
29             BYTE frame;         /* frames  */
30             BYTE fps;           /* frames per second */
31             BYTE dummy;         /* pad */
32         } smpte;
33         struct {                /* MIDI */
34             DWORD songptrpos;   /* song pointer position */
35         } midi;
36     } u;
37 } MMTIME16,  *LPMMTIME16;
38
39 typedef struct {
40     DWORD   dwDCISize;
41     SEGPTR  lpszDCISectionName;
42     SEGPTR  lpszDCIAliasName;
43 } DRVCONFIGINFO16, *LPDRVCONFIGINFO16;
44
45 /* GetDriverInfo16 references this structure, so this a struct defined
46  * in the Win16 API.
47  * GetDriverInfo has been deprecated in Win32.
48  */
49 typedef struct
50 {
51     UINT16       length;
52     HDRVR16      hDriver;
53     HINSTANCE16  hModule;
54     CHAR         szAliasName[128];
55 } DRIVERINFOSTRUCT16, *LPDRIVERINFOSTRUCT16;
56
57 LRESULT   WINAPI DefDriverProc16(DWORD,HDRVR16,UINT16,LPARAM,LPARAM);
58 HDRVR16   WINAPI OpenDriver16(LPCSTR,LPCSTR,LPARAM);
59 LRESULT   WINAPI CloseDriver16(HDRVR16,LPARAM,LPARAM);
60 LRESULT   WINAPI SendDriverMessage16(HDRVR16,UINT16,LPARAM,LPARAM);
61 HMODULE16 WINAPI GetDriverModuleHandle16(HDRVR16);
62 HDRVR16   WINAPI GetNextDriver16(HDRVR16,DWORD);
63 BOOL16    WINAPI GetDriverInfo16(HDRVR16,DRIVERINFOSTRUCT16 *);
64
65 typedef void CALLBACK (*LPDRVCALLBACK16) (HDRVR16,UINT16,DWORD,DWORD,DWORD);
66 typedef LPDRVCALLBACK16 LPWAVECALLBACK16;
67
68 UINT16    WINAPI mmsystemGetVersion16(void);
69 BOOL16    WINAPI sndPlaySound16(LPCSTR,UINT16);
70
71 typedef struct {
72     WORD        wMid;                   /* manufacturer ID */
73     WORD        wPid;                   /* product ID */
74     MMVERSION16 vDriverVersion;         /* version of the driver */
75     CHAR        szPname[MAXPNAMELEN];   /* product name (0 terminated string) */
76     DWORD       dwFormats;              /* formats supported */
77     WORD        wChannels;              /* number of sources supported */
78     DWORD       dwSupport;              /* functionality supported by driver */
79 } WAVEOUTCAPS16, *LPWAVEOUTCAPS16;
80
81 typedef struct {
82     WORD        wMid;                   /* manufacturer ID */
83     WORD        wPid;                   /* product ID */
84     MMVERSION16 vDriverVersion;         /* version of the driver */
85     CHAR        szPname[MAXPNAMELEN];   /* product name (0 terminated string) */
86     DWORD       dwFormats;              /* formats supported */
87     WORD        wChannels;              /* number of channels supported */
88 } WAVEINCAPS16, *LPWAVEINCAPS16;
89
90 UINT16    WINAPI waveOutGetNumDevs16(void);
91 UINT16    WINAPI waveOutGetDevCaps16(UINT16,LPWAVEOUTCAPS16,UINT16);
92 UINT16    WINAPI waveOutGetVolume16(UINT16,DWORD*);
93 UINT16    WINAPI waveOutSetVolume16(UINT16,DWORD);
94 UINT16    WINAPI waveOutGetErrorText16(UINT16,LPSTR,UINT16);
95 UINT16    WINAPI waveOutOpen16(HWAVEOUT16*,UINT16,const LPWAVEFORMATEX,DWORD,DWORD,DWORD);
96 UINT16    WINAPI waveOutClose16(HWAVEOUT16);
97 UINT16    WINAPI waveOutPrepareHeader16(HWAVEOUT16,SEGPTR,UINT16);
98 UINT16    WINAPI waveOutUnprepareHeader16(HWAVEOUT16,SEGPTR,UINT16);
99 UINT16    WINAPI waveOutWrite16(HWAVEOUT16,WAVEHDR*,UINT16);
100 UINT16    WINAPI waveOutPause16(HWAVEOUT16);
101 UINT16    WINAPI waveOutRestart16(HWAVEOUT16);
102 UINT16    WINAPI waveOutReset16(HWAVEOUT16);
103 UINT16    WINAPI waveOutBreakLoop16(HWAVEOUT16);
104 UINT16    WINAPI waveOutGetPosition16(HWAVEOUT16,LPMMTIME16,UINT16);
105 UINT16    WINAPI waveOutGetPitch16(HWAVEOUT16,DWORD*);
106 UINT16    WINAPI waveOutSetPitch16(HWAVEOUT16,DWORD);
107 UINT16    WINAPI waveOutGetPlaybackRate16(HWAVEOUT16,DWORD*);
108 UINT16    WINAPI waveOutSetPlaybackRate16(HWAVEOUT16,DWORD);
109 UINT16    WINAPI waveOutGetID16(HWAVEOUT16,UINT16*);
110 DWORD     WINAPI waveOutMessage16(HWAVEOUT16,UINT16,DWORD,DWORD);
111 UINT16    WINAPI waveInGetNumDevs16(void);
112 UINT16    WINAPI waveInGetDevCaps16(UINT16,LPWAVEINCAPS16,UINT16);
113 UINT16    WINAPI waveInGetErrorText16(UINT16,LPSTR,UINT16);
114 UINT16    WINAPI waveInOpen16(HWAVEIN16*,UINT16,const LPWAVEFORMATEX,DWORD,DWORD,DWORD);
115 UINT16    WINAPI waveInClose16(HWAVEIN16);
116 UINT16    WINAPI waveInPrepareHeader16(HWAVEIN16,SEGPTR,UINT16);
117 UINT16    WINAPI waveInUnprepareHeader16(HWAVEIN16,SEGPTR,UINT16);
118 UINT16    WINAPI waveInAddBuffer16(HWAVEIN16,WAVEHDR*,UINT16);
119 UINT16    WINAPI waveInStart16(HWAVEIN16);
120 UINT16    WINAPI waveInStop16(HWAVEIN16);
121 UINT16    WINAPI waveInReset16(HWAVEIN16);
122 UINT16    WINAPI waveInGetPosition16(HWAVEIN16,LPMMTIME16,UINT16);
123 UINT16    WINAPI waveInGetID16(HWAVEIN16,UINT16*);
124 DWORD     WINAPI waveInMessage16(HWAVEIN16,UINT16,DWORD,DWORD);
125
126 typedef LPDRVCALLBACK16 LPMIDICALLBACK16;
127
128 typedef struct {
129     WORD        wMid;           /* manufacturer ID */
130     WORD        wPid;           /* product ID */
131     MMVERSION16 vDriverVersion; /* version of the driver */
132     CHAR        szPname[MAXPNAMELEN];/* product name (NULL terminated string) */
133     WORD        wTechnology;    /* type of device */
134     WORD        wVoices;        /* # of voices (internal synth only) */
135     WORD        wNotes;         /* max # of notes (internal synth only) */
136     WORD        wChannelMask;   /* channels used (internal synth only) */
137     DWORD       dwSupport;      /* functionality supported by driver */
138 } MIDIOUTCAPS16, *LPMIDIOUTCAPS16;
139
140 typedef struct {
141     WORD        wMid;           /* manufacturer ID */
142     WORD        wPid;           /* product ID */
143     MMVERSION16 vDriverVersion; /* version of the driver */
144     CHAR        szPname[MAXPNAMELEN];/* product name (NULL terminated string) */
145     DWORD       dwSupport;      /* included in win95 and higher */
146 } MIDIINCAPS16, *LPMIDIINCAPS16;
147
148 typedef struct midihdr16_tag {
149     LPSTR       lpData;         /* pointer to locked data block */
150     DWORD       dwBufferLength; /* length of data in data block */
151     DWORD       dwBytesRecorded;/* used for input only */
152     DWORD       dwUser;         /* for client's use */
153     DWORD       dwFlags;        /* assorted flags (see defines) */
154     struct midihdr16_tag *lpNext;       /* reserved for driver */
155     DWORD       reserved;       /* reserved for driver */
156 } MIDIHDR16, *LPMIDIHDR16;
157
158 UINT16     WINAPI midiOutGetNumDevs16(void);
159 UINT16     WINAPI midiOutGetDevCaps16(UINT16,LPMIDIOUTCAPS16,UINT16);
160 UINT16     WINAPI midiOutGetVolume16(UINT16,DWORD*);
161 UINT16     WINAPI midiOutSetVolume16(UINT16,DWORD);
162 UINT16     WINAPI midiOutGetErrorText16(UINT16,LPSTR,UINT16);
163 UINT16     WINAPI midiOutOpen16(HMIDIOUT16*,UINT16,DWORD,DWORD,DWORD);
164 UINT16     WINAPI midiOutClose16(HMIDIOUT16);
165 UINT16     WINAPI midiOutPrepareHeader16(HMIDIOUT16,SEGPTR,UINT16);
166 UINT16     WINAPI midiOutUnprepareHeader16(HMIDIOUT16,SEGPTR,UINT16);
167 UINT16     WINAPI midiOutShortMsg16(HMIDIOUT16,DWORD);
168 UINT16     WINAPI midiOutLongMsg16(HMIDIOUT16,MIDIHDR16*,UINT16);
169 UINT16     WINAPI midiOutReset16(HMIDIOUT16);
170 UINT16     WINAPI midiOutCachePatches16(HMIDIOUT16,UINT16,WORD*,UINT16);
171 UINT16     WINAPI midiOutCacheDrumPatches16(HMIDIOUT16,UINT16,WORD*,UINT16);
172 UINT16     WINAPI midiOutGetID16(HMIDIOUT16,UINT16*);
173 DWORD      WINAPI midiOutMessage16(HMIDIOUT16,UINT16,DWORD,DWORD);
174 UINT16     WINAPI midiInGetNumDevs16(void);
175 UINT16     WINAPI midiInGetDevCaps16(UINT16,LPMIDIINCAPS16,UINT16);
176 UINT16     WINAPI midiInGetErrorText16(UINT16,LPSTR,UINT16);
177 UINT16     WINAPI midiInOpen16(HMIDIIN16*,UINT16,DWORD,DWORD,DWORD);
178 UINT16     WINAPI midiInClose16(HMIDIIN16);
179 UINT16     WINAPI midiInPrepareHeader16(HMIDIIN16,SEGPTR,UINT16);
180 UINT16     WINAPI midiInUnprepareHeader16(HMIDIIN16,SEGPTR,UINT16);
181 UINT16     WINAPI midiInAddBuffer16(HMIDIIN16,MIDIHDR16*,UINT16);
182 UINT16     WINAPI midiInStart16(HMIDIIN16);
183 UINT16     WINAPI midiInStop16(HMIDIIN16);
184 UINT16     WINAPI midiInReset16(HMIDIIN16);
185 UINT16     WINAPI midiInGetID16(HMIDIIN16,UINT16*);
186 DWORD      WINAPI midiInMessage16(HMIDIIN16,UINT16,DWORD,DWORD);
187 MMRESULT16 WINAPI midiStreamClose16(HMIDISTRM16 hms);
188 MMRESULT16 WINAPI midiStreamOpen16(HMIDISTRM16*,LPUINT16,DWORD,DWORD,DWORD,DWORD);
189 MMRESULT16 WINAPI midiStreamOut16(HMIDISTRM16,LPMIDIHDR16,UINT16);
190 MMRESULT16 WINAPI midiStreamPause16(HMIDISTRM16);
191 MMRESULT16 WINAPI midiStreamPosition16(HMIDISTRM16,LPMMTIME16,UINT16);
192 MMRESULT16 WINAPI midiStreamProperty16(HMIDISTRM16,LPBYTE,DWORD);
193 MMRESULT16 WINAPI midiStreamRestart16(HMIDISTRM16);
194 MMRESULT16 WINAPI midiStreamStop16(HMIDISTRM16);
195
196 typedef struct {
197     WORD        wMid;                   /* manufacturer ID */
198     WORD        wPid;                   /* product ID */
199     MMVERSION16 vDriverVersion;         /* version of the driver */
200     CHAR        szPname[MAXPNAMELEN];   /* product name (NULL terminated string) */
201     WORD        wTechnology;            /* type of device */
202     DWORD       dwSupport;              /* functionality supported by driver */
203 } AUXCAPS16, *LPAUXCAPS16;
204
205 typedef void CALLBACK (*LPTIMECALLBACK16)(UINT16,UINT16,DWORD,DWORD,DWORD);
206
207 typedef struct {
208     UINT16      wPeriodMin;     /* minimum period supported  */
209     UINT16      wPeriodMax;     /* maximum period supported  */
210 } TIMECAPS16,*LPTIMECAPS16;
211
212 typedef struct {
213     WORD wMid;                  /* manufacturer ID */
214     WORD wPid;                  /* product ID */
215     char szPname[MAXPNAMELEN];  /* product name (NULL terminated string) */
216     UINT16 wXmin;               /* minimum x position value */
217     UINT16 wXmax;               /* maximum x position value */
218     UINT16 wYmin;               /* minimum y position value */
219     UINT16 wYmax;               /* maximum y position value */
220     UINT16 wZmin;               /* minimum z position value */
221     UINT16 wZmax;               /* maximum z position value */
222     UINT16 wNumButtons;         /* number of buttons */
223     UINT16 wPeriodMin;          /* minimum message period when captured */
224     UINT16 wPeriodMax;          /* maximum message period when captured */
225                                 /* win95,nt4 additions: */
226     UINT16 wRmin;               /* minimum r position value */
227     UINT16 wRmax;               /* maximum r position value */
228     UINT16 wUmin;               /* minimum u (5th axis) position value */
229     UINT16 wUmax;               /* maximum u (5th axis) position value */
230     UINT16 wVmin;               /* minimum v (6th axis) position value */
231     UINT16 wVmax;               /* maximum v (6th axis) position value */
232     UINT16 wCaps;               /* joystick capabilites */
233     UINT16 wMaxAxes;            /* maximum number of axes supported */
234     UINT16 wNumAxes;            /* number of axes in use */
235     UINT16 wMaxButtons;         /* maximum number of buttons supported */
236     CHAR szRegKey[MAXPNAMELEN]; /* registry key */
237     CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; /* OEM VxD in use */
238 } JOYCAPS16, *LPJOYCAPS16;
239
240 typedef struct {
241     UINT16 wXpos;                 /* x position */
242     UINT16 wYpos;                 /* y position */
243     UINT16 wZpos;                 /* z position */
244     UINT16 wButtons;              /* button states */
245 } JOYINFO16, *LPJOYINFO16;
246
247 typedef struct {
248     WORD         wMid;                  /* manufacturer id */
249     WORD         wPid;                  /* product id */
250     MMVERSION16  vDriverVersion;        /* version of the driver */
251     CHAR         szPname[MAXPNAMELEN];  /* product name */
252     DWORD        fdwSupport;            /* misc. support bits */
253     DWORD        cDestinations;         /* count of destinations */
254 } MIXERCAPS16,*LPMIXERCAPS16;
255
256 typedef struct {
257     DWORD       cbStruct;               /* size of MIXERLINE structure */
258     DWORD       dwDestination;          /* zero based destination index */
259     DWORD       dwSource;               /* zero based source index (if source) */
260     DWORD       dwLineID;               /* unique line id for mixer device */
261     DWORD       fdwLine;                /* state/information about line */
262     DWORD       dwUser;                 /* driver specific information */
263     DWORD       dwComponentType;        /* component type line connects to */
264     DWORD       cChannels;              /* number of channels line supports */
265     DWORD       cConnections;           /* number of connections [possible] */
266     DWORD       cControls;              /* number of controls at this line */
267     CHAR        szShortName[MIXER_SHORT_NAME_CHARS];
268     CHAR        szName[MIXER_LONG_NAME_CHARS];
269     struct {
270         DWORD   dwType;                 /* MIXERLINE_TARGETTYPE_xxxx */
271         DWORD   dwDeviceID;             /* target device ID of device type */
272         WORD    wMid;                   /* of target device */
273         WORD    wPid;                   /*      " */
274         MMVERSION16     vDriverVersion; /*      " */
275         CHAR    szPname[MAXPNAMELEN];   /*      " */
276     } Target;
277 } MIXERLINE16, *LPMIXERLINE16;
278
279 typedef struct {
280     DWORD               cbStruct;           /* size in bytes of MIXERCONTROL */
281     DWORD               dwControlID;        /* unique control id for mixer device */
282     DWORD               dwControlType;      /* MIXERCONTROL_CONTROLTYPE_xxx */
283     DWORD               fdwControl;         /* MIXERCONTROL_CONTROLF_xxx */
284     DWORD               cMultipleItems;     /* if MIXERCONTROL_CONTROLF_MULTIPLE set */
285     CHAR                szShortName[MIXER_SHORT_NAME_CHARS];
286     CHAR                szName[MIXER_LONG_NAME_CHARS];
287     union {
288         struct {
289             LONG        lMinimum;       /* signed minimum for this control */
290             LONG        lMaximum;       /* signed maximum for this control */
291         } DUMMYSTRUCTNAME;
292         struct {
293             DWORD       dwMinimum;      /* unsigned minimum for this control */
294             DWORD       dwMaximum;      /* unsigned maximum for this control */
295         } DUMMYSTRUCTNAME1;
296         DWORD           dwReserved[6];
297     } Bounds;
298     union {
299         DWORD           cSteps;         /* # of steps between min & max */
300         DWORD           cbCustomData;   /* size in bytes of custom data */
301         DWORD           dwReserved[6];  /* !!! needed? we have cbStruct.... */
302     } Metrics;
303 } MIXERCONTROL16, *LPMIXERCONTROL16;
304
305 typedef struct {
306     DWORD       cbStruct;       /* size in bytes of MIXERLINECONTROLS */
307     DWORD       dwLineID;       /* line id (from MIXERLINE.dwLineID) */
308     union {
309         DWORD   dwControlID;    /* MIXER_GETLINECONTROLSF_ONEBYID */
310         DWORD   dwControlType;  /* MIXER_GETLINECONTROLSF_ONEBYTYPE */
311     } DUMMYUNIONNAME;
312     DWORD       cControls;      /* count of controls pmxctrl points to */
313     DWORD       cbmxctrl;       /* size in bytes of _one_ MIXERCONTROL */
314     SEGPTR      pamxctrl;       /* pointer to first MIXERCONTROL array */
315 } MIXERLINECONTROLS16, *LPMIXERLINECONTROLS16;
316
317 typedef struct {
318     DWORD       cbStruct;       /* size in bytes of MIXERCONTROLDETAILS */
319     DWORD       dwControlID;    /* control id to get/set details on */
320     DWORD       cChannels;      /* number of channels in paDetails array */
321     union {
322         HWND16  hwndOwner;      /* for MIXER_SETCONTROLDETAILSF_CUSTOM */
323         DWORD   cMultipleItems; /* if _MULTIPLE, the number of items per channel */
324     } DUMMYUNIONNAME;
325     DWORD       cbDetails;      /* size of _one_ details_XX struct */
326     LPVOID      paDetails;      /* pointer to array of details_XX structs */
327 } MIXERCONTROLDETAILS16,*LPMIXERCONTROLDETAILS16;
328
329 typedef struct {
330     DWORD       dwParam1;
331     DWORD       dwParam2;
332     CHAR        szName[MIXER_LONG_NAME_CHARS];
333 } MIXERCONTROLDETAILS_LISTTEXT16,*LPMIXERCONTROLDETAILS_LISTTEXT16;
334
335 typedef LRESULT CALLBACK (*LPMMIOPROC16)(LPSTR lpmmioinfo,UINT16 uMessage,
336                                          LPARAM lParam1,LPARAM lParam2);
337
338 typedef struct {
339         DWORD           dwFlags;        /* general status flags */
340         FOURCC          fccIOProc;      /* pointer to I/O procedure */
341         LPMMIOPROC16    pIOProc;        /* pointer to I/O procedure */
342         UINT16          wErrorRet;      /* place for error to be returned */
343         HTASK16         hTask;          /* alternate local task */
344         /* fields maintained by MMIO functions during buffered I/O */
345         LONG            cchBuffer;      /* size of I/O buffer (or 0L) */
346         HPSTR           pchBuffer;      /* start of I/O buffer (or NULL) */
347         HPSTR           pchNext;        /* pointer to next byte to read/write */
348         HPSTR           pchEndRead;     /* pointer to last valid byte to read */
349         HPSTR           pchEndWrite;    /* pointer to last byte to write */
350         LONG            lBufOffset;     /* disk offset of start of buffer */
351         /* fields maintained by I/O procedure */
352         LONG            lDiskOffset;    /* disk offset of next read or write */
353         DWORD           adwInfo[3];     /* data specific to type of MMIOPROC */
354         /* other fields maintained by MMIO */
355         DWORD           dwReserved1;    /* reserved for MMIO use */
356         DWORD           dwReserved2;    /* reserved for MMIO use */
357         HMMIO16         hmmio;          /* handle to open file */
358 } MMIOINFO16, *LPMMIOINFO16;
359
360 typedef UINT16 CALLBACK (*YIELDPROC16)(UINT16,DWORD);
361
362 UINT16          WINAPI auxGetNumDevs16(void);
363 UINT16          WINAPI auxGetDevCaps16 (UINT16,LPAUXCAPS16,UINT16);
364 UINT16          WINAPI auxSetVolume16(UINT16,DWORD);
365 UINT16          WINAPI auxGetVolume16(UINT16,LPDWORD);
366 DWORD           WINAPI auxOutMessage16(UINT16,UINT16,DWORD,DWORD);
367 MMRESULT16      WINAPI timeGetSystemTime16(LPMMTIME16,UINT16);
368 MMRESULT16      WINAPI timeSetEvent16(UINT16,UINT16,LPTIMECALLBACK16,DWORD,UINT16);
369 MMRESULT16      WINAPI timeKillEvent16(UINT16);
370 MMRESULT16      WINAPI timeGetDevCaps16(LPTIMECAPS16,UINT16);
371 MMRESULT16      WINAPI timeBeginPeriod16(UINT16);
372 MMRESULT16      WINAPI timeEndPeriod16(UINT16);
373 MMRESULT16      WINAPI joyGetDevCaps16 (UINT16,LPJOYCAPS16,UINT16);
374 UINT16          WINAPI joyGetNumDevs16(void);
375 MMRESULT16      WINAPI joyGetPos16(UINT16,LPJOYINFO16);
376 MMRESULT16      WINAPI joyGetPosEx16(UINT16,LPJOYINFOEX);
377 MMRESULT16      WINAPI joyGetThreshold16(UINT16,UINT16*);
378 MMRESULT16      WINAPI joyReleaseCapture16(UINT16);
379 MMRESULT16      WINAPI joySetCapture16(HWND16,UINT16,UINT16,BOOL16);
380 MMRESULT16      WINAPI joySetThreshold16(UINT16,UINT16);
381 UINT16          WINAPI mixerGetNumDevs16(void);
382 UINT16          WINAPI mixerOpen16(LPHMIXER16,UINT16,DWORD,DWORD,DWORD);
383 UINT16          WINAPI mixerClose16(HMIXER16);
384 DWORD           WINAPI mixerMessage16(HMIXER16,UINT16,DWORD,DWORD);
385 UINT16          WINAPI mixerGetDevCaps16(UINT16,LPMIXERCAPS16,UINT16);
386 UINT16          WINAPI mixerGetLineInfo16(HMIXEROBJ16,LPMIXERLINE16,DWORD);
387 UINT16          WINAPI mixerGetID16(HMIXEROBJ16,LPUINT16,DWORD);
388 UINT16          WINAPI mixerGetLineControls16(HMIXEROBJ16,LPMIXERLINECONTROLS16,DWORD);
389 UINT16          WINAPI mixerGetControlDetails16(HMIXEROBJ16,LPMIXERCONTROLDETAILS16,DWORD);
390 UINT16          WINAPI mixerSetControlDetails16(HMIXEROBJ16,LPMIXERCONTROLDETAILS16,DWORD);
391 LPMMIOPROC16    WINAPI mmioInstallIOProc16(FOURCC,LPMMIOPROC16,DWORD);
392 FOURCC          WINAPI mmioStringToFOURCC16(LPCSTR,UINT16);
393 HMMIO16         WINAPI mmioOpen16(LPSTR,MMIOINFO16*,DWORD);
394 UINT16          WINAPI mmioRename16(LPCSTR,LPCSTR,MMIOINFO16*,DWORD);
395 MMRESULT16      WINAPI mmioClose16(HMMIO16,UINT16);
396 LONG            WINAPI mmioRead16(HMMIO16,HPSTR,LONG);
397 LONG            WINAPI mmioWrite16(HMMIO16,HPCSTR,LONG);
398 LONG            WINAPI mmioSeek16(HMMIO16,LONG,INT16);
399 MMRESULT16      WINAPI mmioGetInfo16(HMMIO16,MMIOINFO16*,UINT16);
400 MMRESULT16      WINAPI mmioSetInfo16(HMMIO16,const MMIOINFO16*,UINT16);
401 UINT16          WINAPI mmioSetBuffer16(HMMIO16,LPSTR,LONG,UINT16);
402 UINT16          WINAPI mmioFlush16(HMMIO16,UINT16);
403 UINT16          WINAPI mmioAdvance16(HMMIO16,MMIOINFO16*,UINT16);
404 LONG            WINAPI mmioSendMessage16(HMMIO16,UINT16,LPARAM,LPARAM);
405 UINT16          WINAPI mmioDescend16(HMMIO16,MMCKINFO*,const MMCKINFO*,UINT16);
406 UINT16          WINAPI mmioAscend16(HMMIO16,MMCKINFO*,UINT16);
407 UINT16          WINAPI mmioCreateChunk16(HMMIO16,MMCKINFO*,UINT16);
408 DWORD           WINAPI mciSendCommand16(UINT16,UINT16,DWORD,DWORD);
409 DWORD           WINAPI mciSendString16(LPCSTR,LPSTR,UINT16,HWND16);
410 UINT16          WINAPI mciGetDeviceID16(LPCSTR);
411 UINT16          WINAPI mciGetDeviceIDFromElementID16(DWORD,LPCSTR);
412 BOOL16          WINAPI mciGetErrorString16 (DWORD,LPSTR,UINT16);
413 BOOL16          WINAPI mciSetYieldProc16(UINT16,YIELDPROC16,DWORD);
414 HTASK16         WINAPI mciGetCreatorTask16(UINT16);
415 YIELDPROC16     WINAPI mciGetYieldProc16(UINT16,DWORD*);
416
417 typedef struct {
418     DWORD       dwCallback;
419     WORD        wDeviceID;
420     WORD        wReserved0;
421     SEGPTR      lpstrDeviceType;
422     SEGPTR      lpstrElementName;
423     SEGPTR      lpstrAlias;
424 } MCI_OPEN_PARMS16, *LPMCI_OPEN_PARMS16;
425
426 typedef struct {
427     DWORD   dwCallback;
428     SEGPTR  lpstrReturn;
429     DWORD   dwRetSize;
430 } MCI_INFO_PARMS16, *LPMCI_INFO_PARMS16;
431
432 typedef struct {
433     DWORD       dwCallback;
434     SEGPTR      lpstrReturn;
435     DWORD       dwRetSize;
436     DWORD       dwNumber;
437     WORD        wDeviceType;
438     WORD        wReserved0;
439 } MCI_SYSINFO_PARMS16, *LPMCI_SYSINFO_PARMS16;
440
441 typedef struct {
442     DWORD       dwCallback;
443     UINT16      nVirtKey;
444     WORD        wReserved0;
445     HWND16      hwndBreak;
446     WORD        wReserved1;
447 } MCI_BREAK_PARMS16, *LPMCI_BREAK_PARMS16;
448
449 typedef struct {
450     DWORD       dwCallback;
451     LPCSTR      lpfilename;
452 } MCI_LOAD_PARMS16, *LPMCI_LOAD_PARMS16;
453
454 typedef struct {
455     DWORD       dwCallback;
456     SEGPTR      lpstrCommand;
457 } MCI_VD_ESCAPE_PARMS16, *LPMCI_VD_ESCAPE_PARMS16;
458
459 typedef struct {
460     DWORD               dwCallback;
461     MCIDEVICEID16       wDeviceID;
462     WORD                wReserved0;
463     SEGPTR              lpstrDeviceType;
464     SEGPTR              lpstrElementName;
465     SEGPTR              lpstrAlias;
466     DWORD               dwBufferSeconds;
467 } MCI_WAVE_OPEN_PARMS16, *LPMCI_WAVE_OPEN_PARMS16;
468
469 typedef struct {
470     DWORD       dwCallback;
471     DWORD       dwTimeFormat;
472     DWORD       dwAudio;
473     UINT16      wInput;
474     UINT16      wReserved0;
475     UINT16      wOutput;
476     UINT16      wReserved1;
477     UINT16      wFormatTag;
478     UINT16      wReserved2;
479     UINT16      nChannels;
480     UINT16      wReserved3;
481     DWORD       nSamplesPerSec;
482     DWORD       nAvgBytesPerSec;
483     UINT16      nBlockAlign;
484     UINT16      wReserved4;
485     UINT16      wBitsPerSample;
486     UINT16      wReserved5;
487 } MCI_WAVE_SET_PARMS16, * LPMCI_WAVE_SET_PARMS16;
488
489 typedef struct {
490     DWORD   dwCallback;
491     UINT16  wDeviceID;
492     UINT16  wReserved0;
493     SEGPTR  lpstrDeviceType;
494     SEGPTR  lpstrElementName;
495     SEGPTR  lpstrAlias;
496     DWORD   dwStyle;
497     HWND16  hWndParent;
498     UINT16  wReserved1;
499 } MCI_ANIM_OPEN_PARMS16, *LPMCI_ANIM_OPEN_PARMS16;
500
501 typedef struct {
502     DWORD       dwCallback;
503     HWND16      hWnd;
504     WORD        wReserved1;
505     WORD        nCmdShow;
506     WORD        wReserved2;
507     LPCSTR      lpstrText;
508 } MCI_ANIM_WINDOW_PARMS16, *LPMCI_ANIM_WINDOW_PARMS16;
509
510 typedef struct {
511     DWORD   dwCallback;
512 #ifdef MCI_USE_OFFEXT
513     POINT16 ptOffset;
514     POINT16 ptExtent;
515 #else   /* ifdef MCI_USE_OFFEXT */
516     RECT16  rc;
517 #endif  /* ifdef MCI_USE_OFFEXT */
518 } MCI_ANIM_RECT_PARMS16, *LPMCI_ANIM_RECT_PARMS16;
519
520 typedef struct {
521     DWORD   dwCallback;
522     RECT16  rc;
523     HDC16   hDC;
524 } MCI_ANIM_UPDATE_PARMS16, *LPMCI_ANIM_UPDATE_PARMS16;
525
526 typedef struct {
527     DWORD               dwCallback;
528     MCIDEVICEID16       wDeviceID;
529     WORD                wReserved0;
530     LPCSTR              lpstrDeviceType;
531     LPCSTR              lpstrElementName;
532     LPCSTR              lpstrAlias;
533     DWORD               dwStyle;
534     HWND16              hWndParent;
535     WORD                wReserved1;
536 } MCI_OVLY_OPEN_PARMS16, *LPMCI_OVLY_OPEN_PARMS16;
537
538 typedef struct {
539     DWORD       dwCallback;
540     HWND16      hWnd;
541     WORD        wReserved1;
542     UINT16      nCmdShow;
543     WORD        wReserved2;
544     LPCSTR      lpstrText;
545 } MCI_OVLY_WINDOW_PARMS16, *LPMCI_OVLY_WINDOW_PARMS16;
546
547 typedef struct {
548     DWORD   dwCallback;
549 #ifdef MCI_USE_OFFEXT
550     POINT16 ptOffset;
551     POINT16 ptExtent;
552 #else   /* ifdef MCI_USE_OFFEXT */
553     RECT16  rc;
554 #endif  /* ifdef MCI_USE_OFFEXT */
555 } MCI_OVLY_RECT_PARMS16, *LPMCI_OVLY_RECT_PARMS16;
556
557 typedef struct {
558     DWORD   dwCallback;
559     LPCSTR  lpfilename;
560     RECT16  rc;
561 } MCI_OVLY_SAVE_PARMS16, *LPMCI_OVLY_SAVE_PARMS16;
562
563 typedef struct {
564     DWORD       dwCallback;
565     LPCSTR      lpfilename;
566     RECT16      rc;
567 } MCI_OVLY_LOAD_PARMS16, *LPMCI_OVLY_LOAD_PARMS16;
568
569 #endif  /* __WINE_WINE_MMSYSTEM16_H */