dmime: Remove the extraneous IUnknown from DMSegTriggerTrack.
[wine.git] / include / mmreg.h
blob08517a86046c04c1bfb9bbd78ca07c8ca8c54930
1 /*
2 * Declarations for MultiMedia-REGistration
4 * Copyright (C) 1999 Eric Pouech
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_MMREG_H
22 #define __WINE_MMREG_H
24 /***********************************************************************
25 * Defines/Enums
28 #ifndef _ACM_WAVEFILTER
29 #define _ACM_WAVEFILTER
31 #define WAVE_FILTER_UNKNOWN 0x0000
32 #define WAVE_FILTER_DEVELOPMENT 0xFFFF
34 typedef struct _WAVEFILTER {
35 DWORD cbStruct;
36 DWORD dwFilterTag;
37 DWORD fdwFilter;
38 DWORD dwReserved[5];
39 } WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER;
40 #endif /* _ACM_WAVEFILTER */
42 #ifndef WAVE_FILTER_VOLUME
43 #define WAVE_FILTER_VOLUME 0x0001
45 typedef struct _WAVEFILTER_VOLUME {
46 WAVEFILTER wfltr;
47 DWORD dwVolume;
48 } VOLUMEWAVEFILTER, *PVOLUMEWAVEFILTER, *NPVOLUMEWAVEFILTER, *LPVOLUMEWAVEFILTER;
49 #endif /* WAVE_FILTER_VOLUME */
51 #ifndef WAVE_FILTER_ECHO
52 #define WAVE_FILTER_ECHO 0x0002
54 typedef struct WAVEFILTER_ECHO {
55 WAVEFILTER wfltr;
56 DWORD dwVolume;
57 DWORD dwDelay;
58 } ECHOWAVEFILTER, *PECHOWAVEFILTER, *NPECHOWAVEFILTER, *LPECHOWAVEFILTER;
59 #endif /* WAVEFILTER_ECHO */
61 #ifndef _WAVEFORMATEX_
62 #define _WAVEFORMATEX_
63 typedef struct _WAVEFORMATEX {
64 WORD wFormatTag;
65 WORD nChannels;
66 DWORD nSamplesPerSec;
67 DWORD nAvgBytesPerSec;
68 WORD nBlockAlign;
69 WORD wBitsPerSample;
70 WORD cbSize;
71 } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX;
72 #endif /* _WAVEFORMATEX_ */
74 /* WAVE form wFormatTag IDs */
75 #define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */
76 #define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */
77 #define WAVE_FORMAT_IEEE_FLOAT 0x0003 /* Microsoft Corporation */
78 #define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */
79 #define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */
80 #define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */
81 #define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */
82 #define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */
83 #define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */
84 #define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /* Videologic */
85 #define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra Semiconductor Corp */
86 #define WAVE_FORMAT_G723_ADPCM 0x0014 /* Antex Electronics Corporation */
87 #define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solutions, Inc. */
88 #define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solutions, Inc. */
89 #define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic Corporation */
90 #define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha Corporation of America */
91 #define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression */
92 #define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */
93 #define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech Corporation */
94 #define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* */
95 #define WAVE_FORMAT_APTX 0x0025 /* Audio Processing Technology */
96 #define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* */
97 #define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */
98 #define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */
99 #define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex Electronics Corporation */
100 #define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Resources Limited */
101 #define WAVE_FORMAT_DIGIREAL 0x0035 /* DSP Solutions, Inc. */
102 #define WAVE_FORMAT_DIGIADPCM 0x0036 /* DSP Solutions, Inc. */
103 #define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Resources Limited */
104 #define WAVE_FORMAT_NMS_VBXADPCM 0x0038 /* Natural MicroSystems */
105 #define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */
106 #define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */
107 #define WAVE_FORMAT_MPEGLAYER3 0x0055
108 #define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */
109 #define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */
110 #define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */
111 #define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */
112 #define WAVE_FORMAT_OLIGSM 0x1000 /* Ing C. Olivetti & C., S.p.A. */
113 #define WAVE_FORMAT_OLIADPCM 0x1001 /* Ing C. Olivetti & C., S.p.A. */
114 #define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */
115 #define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */
116 #define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */
118 #ifndef MM_MICROSOFT
119 #define MM_MICROSOFT 0x01
120 #endif
121 #define MM_MSFT_ACM_MSADPCM 0x21
122 #define MM_MSFT_ACM_IMAADPCM 0x22
123 #define MM_MSFT_ACM_GSM610 0x24
124 #define MM_MSFT_ACM_G711 0x25
125 #define MM_MSFT_ACM_PCM 0x26
127 #define MM_FRAUNHOFER_IIS 0xAC
128 #define MM_FHGIIS_MPEGLAYER3_DECODE 0x09
130 #if !defined(WAVE_FORMAT_EXTENSIBLE)
131 #define WAVE_FORMAT_EXTENSIBLE 0xFFFE /* Microsoft */
132 #endif
134 #define WAVE_FORMAT_DEVELOPMENT (0xFFFF)
136 typedef struct adpcmcoef_tag {
137 short iCoef1;
138 short iCoef2;
139 } ADPCMCOEFSET;
140 typedef ADPCMCOEFSET *PADPCMCOEFSET,
141 *NPADPCMCOEFSET, *LPADPCMCOEFSET;
143 typedef struct adpcmwaveformat_tag {
144 WAVEFORMATEX wfx;
145 WORD wSamplesPerBlock;
146 WORD wNumCoef;
147 /* FIXME: this should be aCoef[0] */
148 ADPCMCOEFSET aCoef[1];
149 } ADPCMWAVEFORMAT;
150 typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT,
151 *NPADPCMWAVEFORMAT, *LPADPCMWAVEFORMAT;
153 typedef struct dvi_adpcmwaveformat_tag {
154 WAVEFORMATEX wfx;
155 WORD wSamplesPerBlock;
156 } DVIADPCMWAVEFORMAT;
157 typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT,
158 *NPDVIADPCMWAVEFORMAT, *LPDVIADPCMWAVEFORMAT;
160 typedef struct ima_adpcmwaveformat_tag {
161 WAVEFORMATEX wfx;
162 WORD wSamplesPerBlock;
163 } IMAADPCMWAVEFORMAT;
164 typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT, *NPIMAADPCMWAVEFORMAT,
165 *LPIMAADPCMWAVEFORMAT;
167 typedef struct mediaspace_adpcmwaveformat_tag {
168 WAVEFORMATEX wfx;
169 WORD wRevision;
170 } MEDIASPACEADPCMWAVEFORMAT;
171 typedef MEDIASPACEADPCMWAVEFORMAT *PMEDIASPACEADPCMWAVEFORMAT,
172 *NPMEDIASPACEADPCMWAVEFORMAT, *LPMEDIASPACEADPCMWAVEFORMAT;
174 typedef struct sierra_adpcmwaveformat_tag {
175 WAVEFORMATEX wfx;
176 WORD wRevision;
177 } SIERRAADPCMWAVEFORMAT;
178 typedef SIERRAADPCMWAVEFORMAT *PSIERRAADPCMWAVEFORMAT,
179 *NPSIERRAADPCMWAVEFORMAT, *LPSIERRAADPCMWAVEFORMAT;
181 typedef struct g723_adpcmwaveformat_tag {
182 WAVEFORMATEX wfx;
183 WORD cbExtraSize;
184 WORD nAuxBlockSize;
185 } G723_ADPCMWAVEFORMAT;
186 typedef G723_ADPCMWAVEFORMAT *PG723_ADPCMWAVEFORMAT,
187 *NPG723_ADPCMWAVEFORMAT, *LPG723_ADPCMWAVEFORMAT;
189 typedef struct digistdwaveformat_tag {
190 WAVEFORMATEX wfx;
191 } DIGISTDWAVEFORMAT;
192 typedef DIGISTDWAVEFORMAT *PDIGISTDWAVEFORMAT,
193 *NPDIGISTDWAVEFORMAT, *LPDIGISTDWAVEFORMAT;
195 typedef struct digifixwaveformat_tag {
196 WAVEFORMATEX wfx;
197 } DIGIFIXWAVEFORMAT;
198 typedef DIGIFIXWAVEFORMAT *PDIGIFIXWAVEFORMAT,
199 *NPDIGIFIXWAVEFORMAT, *LPDIGIFIXWAVEFORMAT;
201 typedef struct creative_fastspeechformat_tag {
202 WAVEFORMATEX ewf;
203 } DIALOGICOKIADPCMWAVEFORMAT;
204 typedef DIALOGICOKIADPCMWAVEFORMAT *PDIALOGICOKIADPCMWAVEFORMAT,
205 *NPDIALOGICOKIADPCMWAVEFORMAT, *LPDIALOGICOKIADPCMWAVEFORMAT;
207 typedef struct yamaha_adpmcwaveformat_tag {
208 WAVEFORMATEX wfx;
209 } YAMAHA_ADPCMWAVEFORMAT;
210 typedef YAMAHA_ADPCMWAVEFORMAT *PYAMAHA_ADPCMWAVEFORMAT,
211 *NPYAMAHA_ADPCMWAVEFORMAT, *LPYAMAHA_ADPCMWAVEFORMAT;
213 typedef struct sonarcwaveformat_tag {
214 WAVEFORMATEX wfx;
215 WORD wCompType;
216 } SONARCWAVEFORMAT;
217 typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT,
218 *NPSONARCWAVEFORMAT,*LPSONARCWAVEFORMAT;
220 typedef struct truespeechwaveformat_tag {
221 WAVEFORMATEX wfx;
222 WORD wRevision;
223 WORD nSamplesPerBlock;
224 BYTE abReserved[28];
225 } TRUESPEECHWAVEFORMAT;
226 typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT,
227 *NPTRUESPEECHWAVEFORMAT, *LPTRUESPEECHWAVEFORMAT;
229 typedef struct echosc1waveformat_tag {
230 WAVEFORMATEX wfx;
231 } ECHOSC1WAVEFORMAT;
232 typedef ECHOSC1WAVEFORMAT *PECHOSC1WAVEFORMAT,
233 *NPECHOSC1WAVEFORMAT, *LPECHOSC1WAVEFORMAT;
235 typedef struct audiofile_af36waveformat_tag {
236 WAVEFORMATEX wfx;
237 } AUDIOFILE_AF36WAVEFORMAT;
238 typedef AUDIOFILE_AF36WAVEFORMAT *PAUDIOFILE_AF36WAVEFORMAT,
239 *NPAUDIOFILE_AF36WAVEFORMAT, *LPAUDIOFILE_AF36WAVEFORMAT;
241 typedef struct aptxwaveformat_tag {
242 WAVEFORMATEX wfx;
243 } APTXWAVEFORMAT;
244 typedef APTXWAVEFORMAT *PAPTXWAVEFORMAT,
245 *NPAPTXWAVEFORMAT, *LPAPTXWAVEFORMAT;
247 typedef struct audiofile_af10waveformat_tag {
248 WAVEFORMATEX wfx;
249 } AUDIOFILE_AF10WAVEFORMAT;
250 typedef AUDIOFILE_AF10WAVEFORMAT *PAUDIOFILE_AF10WAVEFORMAT,
251 *NPAUDIOFILE_AF10WAVEFORMAT, *LPAUDIOFILE_AF10WAVEFORMAT;
253 typedef struct dolbyac2waveformat_tag {
254 WAVEFORMATEX wfx;
255 WORD nAuxBitsCode;
256 } DOLBYAC2WAVEFORMAT;
258 typedef struct gsm610waveformat_tag {
259 WAVEFORMATEX wfx;
260 WORD wSamplesPerBlock;
261 } GSM610WAVEFORMAT;
262 typedef GSM610WAVEFORMAT *PGSM610WAVEFORMAT,
263 *NPGSM610WAVEFORMAT, *LPGSM610WAVEFORMAT;
265 typedef struct adpcmewaveformat_tag {
266 WAVEFORMATEX wfx;
267 WORD wSamplesPerBlock;
268 } ADPCMEWAVEFORMAT;
269 typedef ADPCMEWAVEFORMAT *PADPCMEWAVEFORMAT,
270 *NPADPCMEWAVEFORMAT, *LPADPCMEWAVEFORMAT;
272 typedef struct contres_vqlpcwaveformat_tag {
273 WAVEFORMATEX wfx;
274 WORD wSamplesPerBlock;
275 } CONTRESVQLPCWAVEFORMAT;
276 typedef CONTRESVQLPCWAVEFORMAT *PCONTRESVQLPCWAVEFORMAT,
277 *NPCONTRESVQLPCWAVEFORMAT, *LPCONTRESVQLPCWAVEFORMAT;
279 typedef struct digirealwaveformat_tag {
280 WAVEFORMATEX wfx;
281 WORD wSamplesPerBlock;
282 } DIGIREALWAVEFORMAT;
283 typedef DIGIREALWAVEFORMAT *PDIGIREALWAVEFORMAT,
284 *NPDIGIREALWAVEFORMAT, *LPDIGIREALWAVEFORMAT;
286 typedef struct digiadpcmmwaveformat_tag {
287 WAVEFORMATEX wfx;
288 WORD wSamplesPerBlock;
289 } DIGIADPCMWAVEFORMAT;
290 typedef DIGIADPCMWAVEFORMAT *PDIGIADPCMWAVEFORMAT,
291 *NPDIGIADPCMWAVEFORMAT, *LPDIGIADPCMWAVEFORMAT;
293 typedef struct contres_cr10waveformat_tag {
294 WAVEFORMATEX wfx;
295 WORD wSamplesPerBlock;
296 } CONTRESCR10WAVEFORMAT;
297 typedef CONTRESCR10WAVEFORMAT *PCONTRESCR10WAVEFORMAT,
298 *NPCONTRESCR10WAVEFORMAT, *LPCONTRESCR10WAVEFORMAT;
300 typedef struct nms_vbxadpcmmwaveformat_tag {
301 WAVEFORMATEX wfx;
302 WORD wSamplesPerBlock;
303 } NMS_VBXADPCMWAVEFORMAT;
304 typedef NMS_VBXADPCMWAVEFORMAT *PNMS_VBXADPCMWAVEFORMAT,
305 *NPNMS_VBXADPCMWAVEFORMAT, *LPNMS_VBXADPCMWAVEFORMAT;
307 typedef struct g721_adpcmwaveformat_tag {
308 WAVEFORMATEX wfx;
309 WORD nAuxBlockSize;
310 } G721_ADPCMWAVEFORMAT;
311 typedef G721_ADPCMWAVEFORMAT *PG721_ADPCMWAVEFORMAT,
312 *NG721_ADPCMWAVEFORMAT, *LPG721_ADPCMWAVEFORMAT;
314 typedef struct creative_adpcmwaveformat_tag {
315 WAVEFORMATEX wfx;
316 WORD wRevision;
317 } CREATIVEADPCMWAVEFORMAT;
318 typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT,
319 *NPCREATIVEADPCMWAVEFORMAT, *LPCREATIVEADPCMWAVEFORMAT;
321 typedef struct creative_fastspeech8format_tag {
322 WAVEFORMATEX wfx;
323 WORD wRevision;
324 } CREATIVEFASTSPEECH8WAVEFORMAT;
325 typedef CREATIVEFASTSPEECH8WAVEFORMAT *PCREATIVEFASTSPEECH8WAVEFORMAT,
326 *NPCREATIVEFASTSPEECH8WAVEFORMAT, *LPCREATIVEFASTSPEECH8WAVEFORMAT;
328 typedef struct creative_fastspeech10format_tag {
329 WAVEFORMATEX wfx;
330 WORD wRevision;
331 } CREATIVEFASTSPEECH10WAVEFORMAT;
332 typedef CREATIVEFASTSPEECH10WAVEFORMAT *PCREATIVEFASTSPEECH10WAVEFORMAT,
333 *NPCREATIVEFASTSPEECH10WAVEFORMAT, *LPCREATIVEFASTSPEECH10WAVEFORMAT;
335 typedef struct fmtowns_snd_waveformat_tag {
336 WAVEFORMATEX wfx;
337 WORD wRevision;
338 } FMTOWNS_SND_WAVEFORMAT;
339 typedef FMTOWNS_SND_WAVEFORMAT *PFMTOWNS_SND_WAVEFORMAT,
340 *NPFMTOWNS_SND_WAVEFORMAT, *LPFMTOWNS_SND_WAVEFORMAT;
342 typedef struct oligsmwaveformat_tag {
343 WAVEFORMATEX wfx;
344 } OLIGSMWAVEFORMAT;
345 typedef OLIGSMWAVEFORMAT *POLIGSMWAVEFORMAT,
346 *NPOLIGSMWAVEFORMAT, *LPOLIGSMWAVEFORMAT;
348 typedef struct oliadpcmwaveformat_tag {
349 WAVEFORMATEX wfx;
350 } OLIADPCMWAVEFORMAT;
351 typedef OLIADPCMWAVEFORMAT *POLIADPCMWAVEFORMAT,
352 *NPOLIADPCMWAVEFORMAT, *LPOLIADPCMWAVEFORMAT;
354 typedef struct olicelpwaveformat_tag {
355 WAVEFORMATEX wfx;
356 } OLICELPWAVEFORMAT;
357 typedef OLICELPWAVEFORMAT *POLICELPWAVEFORMAT,
358 *NPOLICELPWAVEFORMAT, *LPOLICELPWAVEFORMAT;
360 typedef struct olisbcwaveformat_tag {
361 WAVEFORMATEX wfx;
362 } OLISBCWAVEFORMAT;
363 typedef OLISBCWAVEFORMAT *POLISBCWAVEFORMAT,
364 *NPOLISBCWAVEFORMAT, *LPOLISBCWAVEFORMAT;
366 typedef struct olioprwaveformat_tag {
367 WAVEFORMATEX wfx;
368 } OLIOPRWAVEFORMAT;
369 typedef OLIOPRWAVEFORMAT *POLIOPRWAVEFORMAT,
370 *NPOLIOPRWAVEFORMAT, *LPOLIOPRWAVEFORMAT;
372 typedef struct csimaadpcmwaveformat_tag {
373 WAVEFORMATEX wfx;
374 } CSIMAADPCMWAVEFORMAT;
375 typedef CSIMAADPCMWAVEFORMAT *PCSIMAADPCMWAVEFORMAT,
376 *NPCSIMAADPCMWAVEFORMAT, *LPCSIMAADPCMWAVEFORMAT;
378 typedef struct mpeg1waveformat_tag {
379 WAVEFORMATEX wfx;
380 WORD fwHeadLayer;
381 DWORD dwHeadBitrate;
382 WORD fwHeadMode;
383 WORD fwHeadModeExt;
384 WORD wHeadEmphasis;
385 WORD fwHeadFlags;
386 DWORD dwPTSLow;
387 DWORD dwPTSHigh;
388 } MPEG1WAVEFORMAT,* PMPEG1WAVEFORMAT;
390 #define ACM_MPEG_LAYER1 0x0001
391 #define ACM_MPEG_LAYER2 0x0002
392 #define ACM_MPEG_LAYER3 0x0004
394 #define ACM_MPEG_STEREO 0x0001
395 #define ACM_MPEG_JOINTSTEREO 0x0002
396 #define ACM_MPEG_DUALCHANNEL 0x0004
397 #define ACM_MPEG_SINGLECHANNEL 0x0008
398 #define ACM_MPEG_PRIVATEBIT 0x0001
399 #define ACM_MPEG_COPYRIGHT 0x0002
400 #define ACM_MPEG_ORIGINALHOME 0x0004
401 #define ACM_MPEG_PROTECTIONBIT 0x0008
402 #define ACM_MPEG_ID_MPEG1 0x0010
404 typedef struct mpeglayer3waveformat_tag {
405 WAVEFORMATEX wfx;
406 WORD wID;
407 DWORD fdwFlags;
408 WORD nBlockSize;
409 WORD nFramesPerBlock;
410 WORD nCodecDelay;
411 } MPEGLAYER3WAVEFORMAT;
413 #define MPEGLAYER3_WFX_EXTRA_BYTES 12
415 #define MPEGLAYER3_ID_UNKNOWN 0
416 #define MPEGLAYER3_ID_MPEG 1
417 #define MPEGLAYER3_ID_CONSTANTFRAMESIZE 2
419 #define MPEGLAYER3_FLAG_PADDING_ISO 0x00000000
420 #define MPEGLAYER3_FLAG_PADDING_ON 0x00000001
421 #define MPEGLAYER3_FLAG_PADDING_OFF 0x00000002
423 #ifdef GUID_DEFINED
425 #ifndef _WAVEFORMATEXTENSIBLE_
426 #define _WAVEFORMATEXTENSIBLE_
427 typedef struct {
428 WAVEFORMATEX Format;
429 union {
430 WORD wValidBitsPerSample;
431 WORD wSamplesPerBlock;
432 WORD wReserved;
433 } Samples;
434 DWORD dwChannelMask;
435 GUID SubFormat;
436 } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
437 #endif /* _WAVEFORMATEXTENSIBLE_ */
439 #endif /* GUID_DEFINED */
441 typedef WAVEFORMATEXTENSIBLE WAVEFORMATPCMEX;
442 typedef WAVEFORMATPCMEX* PWAVEFORMATPCMEX;
443 typedef WAVEFORMATPCMEX* NPWAVEFORMATPCMEX;
444 typedef WAVEFORMATPCMEX* LPWAVEFORMATPCMEX;
446 typedef WAVEFORMATEXTENSIBLE WAVEFORMATIEEEFLOATEX;
447 typedef WAVEFORMATIEEEFLOATEX* PWAVEFORMATIEEEFLOATEX;
448 typedef WAVEFORMATIEEEFLOATEX* NPWAVEFORMATIEEEFLOATEX;
449 typedef WAVEFORMATIEEEFLOATEX* LPWAVEFORMATIEEEFLOATEX;
451 #ifndef _SPEAKER_POSITIONS_
452 #define _SPEAKER_POSITIONS_
454 #define SPEAKER_FRONT_LEFT 0x00000001
455 #define SPEAKER_FRONT_RIGHT 0x00000002
456 #define SPEAKER_FRONT_CENTER 0x00000004
457 #define SPEAKER_LOW_FREQUENCY 0x00000008
458 #define SPEAKER_BACK_LEFT 0x00000010
459 #define SPEAKER_BACK_RIGHT 0x00000020
460 #define SPEAKER_FRONT_LEFT_OF_CENTER 0x00000040
461 #define SPEAKER_FRONT_RIGHT_OF_CENTER 0x00000080
462 #define SPEAKER_BACK_CENTER 0x00000100
463 #define SPEAKER_SIDE_LEFT 0x00000200
464 #define SPEAKER_SIDE_RIGHT 0x00000400
465 #define SPEAKER_TOP_CENTER 0x00000800
466 #define SPEAKER_TOP_FRONT_LEFT 0x00001000
467 #define SPEAKER_TOP_FRONT_CENTER 0x00002000
468 #define SPEAKER_TOP_FRONT_RIGHT 0x00004000
469 #define SPEAKER_TOP_BACK_LEFT 0x00008000
470 #define SPEAKER_TOP_BACK_CENTER 0x00010000
471 #define SPEAKER_TOP_BACK_RIGHT 0x00020000
472 #define SPEAKER_RESERVED 0x7FFC0000
473 #define SPEAKER_ALL 0x80000000
475 #endif /* _SPEAKER_POSITIONS_ */
478 /* DIB stuff */
480 #ifndef BI_BITFIELDS
481 #define BI_BITFIELDS 3
482 #endif
484 #ifndef QUERYDIBSUPPORT
485 #define QUERYDIBSUPPORT 3073
486 #define QDI_SETDIBITS 1
487 #define QDI_GETDIBITS 2
488 #define QDI_DIBTOSCREEN 4
489 #define QDI_STRETCHDIB 8
490 #endif
492 #ifndef NOBITMAP
493 typedef struct tagEXBMINFOHEADER {
494 BITMAPINFOHEADER bmi;
495 DWORD biExtDataOffset;
496 } EXBMINFOHEADER;
497 #endif
500 /* Video stuff */
502 #ifndef NONEWIC
504 #ifndef ICTYPE_VIDEO
505 #define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c')
506 #define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c')
507 #endif
509 #endif
511 #endif /* __WINE_MMREG_H */