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