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