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