|
|
1.1 ! root 1: /**************************************************************************** ! 2: * ! 3: * mmreg.h - Registered Multimedia Information Public Header File ! 4: * ! 5: * Copyright (c) 1991,1992,1993 Microsoft Corporation. All Rights Reserved. ! 6: * ! 7: * Multimedia Registration ! 8: * ! 9: * Place this system include file in your INCLUDE path with the Windows SDK ! 10: * include files. ! 11: * ! 12: * Obtain the Multimedia Developer Registration Kit from: ! 13: * ! 14: * Microsoft Corporation ! 15: * Multimedia Systems Group ! 16: * Product Marketing ! 17: * One Microsoft Way ! 18: * Redmond, WA 98052-6399 ! 19: * ! 20: * 800-227-4679 x11771 ! 21: * ! 22: * Last Update: 01/21/93 ! 23: * ! 24: ***************************************************************************/ ! 25: ! 26: // Define the following to skip definitions ! 27: // ! 28: // NOMMIDS Multimedia IDs are not defined ! 29: // NONEWWAVE No new waveform types are defined except WAVEFORMATEX ! 30: // NONEWRIFF No new RIFF forms are defined ! 31: // NONEWIC No new Image Compressor types are defined ! 32: ! 33: #ifndef _INC_MMREG ! 34: /* use version number to verify compatibility */ ! 35: #define _INC_MMREG 130 // version * 100 + revision ! 36: ! 37: #ifndef RC_INVOKED ! 38: #pragma pack(1) /* Assume byte packing throughout */ ! 39: #endif /* RC_INVOKED */ ! 40: ! 41: #ifdef __cplusplus ! 42: extern "C" { /* Assume C declarations for C++ */ ! 43: #endif /* __cplusplus */ ! 44: ! 45: #ifndef NOMMIDS ! 46: ! 47: /* manufacturer IDs */ ! 48: #ifndef MM_MICROSOFT ! 49: #define MM_MICROSOFT 1 /* Microsoft Corporation */ ! 50: #endif ! 51: #define MM_CREATIVE 2 /* Creative Labs Inc. */ ! 52: #define MM_MEDIAVISION 3 /* Media Vision Inc. */ ! 53: #define MM_FUJITSU 4 ! 54: #define MM_ARTISOFT 20 /* Artisoft Inc. */ ! 55: #define MM_TURTLE_BEACH 21 ! 56: #define MM_IBM 22 /* International Bussiness Machines Corp. */ ! 57: #define MM_VOCALTEC 23 /* Vocaltec LTD. */ ! 58: #define MM_ROLAND 24 ! 59: #define MM_DIGISPEECH 25 /* Digispeech, Inc. */ ! 60: #define MM_NEC 26 /* NEC */ ! 61: #define MM_ATI 27 /* ATI */ ! 62: #define MM_WANGLABS 28 /* Wang Laboratories, Inc. */ ! 63: #define MM_TANDY 29 /* Tandy Corporation */ ! 64: #define MM_VOYETRA 30 /* Voyetra */ ! 65: #define MM_ANTEX 31 /* Antex */ ! 66: #define MM_ICL_PS 32 ! 67: #define MM_INTEL 33 ! 68: #define MM_GRAVIS 34 ! 69: #define MM_VAL 35 /* Video Associates Labs */ ! 70: #define MM_INTERACTIVE 36 /* InterActive, Inc. */ ! 71: #define MM_YAMAHA 37 /* Yamaha Corp. of America */ ! 72: #define MM_EVEREX 38 /* Everex Systems, Inc. */ ! 73: #define MM_ECHO 39 /* Echo Speech Corporation */ ! 74: #define MM_SIERRA 40 /* Sierra Semiconductor */ ! 75: #define MM_CAT 41 /* Computer Aided Technologies */ ! 76: #define MM_APPS 42 /* APPS Software International */ ! 77: #define MM_DSP_GROUP 43 /* DSP Group, Inc. */ ! 78: #define MM_MELABS 44 /* microEngineering Labs */ ! 79: #define MM_COMPUTER_FRIENDS 45 /* Computer Friends, Inc */ ! 80: ! 81: /* MM_MICROSOFT product IDs */ ! 82: #ifndef MM_MIDI_MAPPER ! 83: ! 84: #define MM_MIDI_MAPPER 1 /* MIDI Mapper */ ! 85: #define MM_WAVE_MAPPER 2 /* Wave Mapper */ ! 86: #define MM_SNDBLST_MIDIOUT 3 /* Sound Blaster MIDI output port */ ! 87: #define MM_SNDBLST_MIDIIN 4 /* Sound Blaster MIDI input port */ ! 88: #define MM_SNDBLST_SYNTH 5 /* Sound Blaster internal synthesizer */ ! 89: #define MM_SNDBLST_WAVEOUT 6 /* Sound Blaster waveform output */ ! 90: #define MM_SNDBLST_WAVEIN 7 /* Sound Blaster waveform input */ ! 91: #define MM_ADLIB 9 /* Ad Lib-compatible synthesizer */ ! 92: #define MM_MPU401_MIDIOUT 10 /* MPU401-compatible MIDI output port */ ! 93: #define MM_MPU401_MIDIIN 11 /* MPU401-compatible MIDI input port */ ! 94: #define MM_PC_JOYSTICK 12 /* Joystick adapter */ ! 95: #endif ! 96: ! 97: #define MM_PCSPEAKER_WAVEOUT 13 /* PC Speaker waveform output */ ! 98: ! 99: #define MM_MSFT_WSS_WAVEIN 14 /* MS Audio Board waveform input */ ! 100: #define MM_MSFT_WSS_WAVEOUT 15 /* MS Audio Board waveform output */ ! 101: #define MM_MSFT_WSS_FMSYNTH_STEREO 16 /* MS Audio Board Stereo FM synthesizer */ ! 102: #define MM_MSFT_WSS_OEM_WAVEIN 18 /* MS OEM Audio Board waveform input */ ! 103: #define MM_MSFT_WSS_OEM_WAVEOUT 19 /* MS OEM Audio Board waveform Output */ ! 104: #define MM_MSFT_WSS_OEM_FMSYNTH_STEREO 20 /* MS OEM Audio Board Stereo FM synthesizer */ ! 105: #define MM_MSFT_WSS_AUX 21 /* MS Audio Board Auxiliary Port */ ! 106: #define MM_MSFT_WSS_OEM_AUX 22 /* MS OEM Audio Auxiliary Port */ ! 107: ! 108: #define MM_MSFT_GENERIC_WAVEIN 23 /* MS vanilla driver waveform input */ ! 109: #define MM_MSFT_GENERIC_WAVEOUT 24 /* MS vanilla driver waveform output */ ! 110: #define MM_MSFT_GENERIC_MIDIIN 25 /* MS vanilla driver MIDI input */ ! 111: #define MM_MSFT_GENERIC_MIDIOUT 26 /* MS vanilla driver external MIDI output */ ! 112: #define MM_MSFT_GENERIC_MIDISYNTH 27 /* MS vanilla driver MIDI synthesizer */ ! 113: #define MM_MSFT_GENERIC_AUX_LINE 28 /* MS vanilla driver aux (line in) */ ! 114: #define MM_MSFT_GENERIC_AUX_MIC 29 /* MS vanilla driver aux (mic) */ ! 115: #define MM_MSFT_GENERIC_AUX_CD 30 /* MS vanilla driver aux (CD) */ ! 116: ! 117: ! 118: /* MM_CREATIVE product IDs */ ! 119: #define MM_CREATIVE_SB15_WAVEIN 1 /* SB (r) 1.5 waveform input */ ! 120: #define MM_CREATIVE_SB20_WAVEIN 2 /* SB (r) 2.0 waveform input */ ! 121: #define MM_CREATIVE_SBPRO_WAVEIN 3 /* SB Pro (r) waveform input */ ! 122: #define MM_CREATIVE_SBP16_WAVEIN 4 /* SBP16 (r) waveform input */ ! 123: #define MM_CREATIVE_SB15_WAVEOUT 101 /* SB (r) 1.5 waveform output */ ! 124: #define MM_CREATIVE_SB20_WAVEOUT 102 /* SB (r) 2.0 waveform output */ ! 125: #define MM_CREATIVE_SBPRO_WAVEOUT 103 /* SB Pro (r) waveform output */ ! 126: #define MM_CREATIVE_SBP16_WAVEOUT 104 /* SBP16 (r) waveform output */ ! 127: #define MM_CREATIVE_MIDIOUT 201 /* SB (r) MIDI output port */ ! 128: #define MM_CREATIVE_MIDIIN 202 /* SB (r) MIDI input port */ ! 129: #define MM_CREATIVE_FMSYNTH_MONO 301 /* SB (r) FM synthesizer */ ! 130: #define MM_CREATIVE_FMSYNTH_STEREO 302 /* SB Pro (r) stereo FM synthesizer */ ! 131: #define MM_CREATIVE_AUX_CD 401 /* SB Pro (r) aux (CD) */ ! 132: #define MM_CREATIVE_AUX_LINE 402 /* SB Pro (r) aux (line in) */ ! 133: #define MM_CREATIVE_AUX_MIC 403 /* SB Pro (r) aux (mic) */ ! 134: ! 135: ! 136: /* MM_ARTISOFT product IDs */ ! 137: #define MM_ARTISOFT_SBWAVEIN 1 /* Artisoft Sounding Board waveform input */ ! 138: #define MM_ARTISOFT_SBWAVEOUT 2 /* Artisoft Sounding Board waveform output */ ! 139: ! 140: /* MM_IBM Product IDs */ ! 141: #define MM_MMOTION_WAVEAUX 1 /* IBM M-Motion Auxiliary Device */ ! 142: #define MM_MMOTION_WAVEOUT 2 /* IBM M-Motion Waveform Output */ ! 143: #define MM_MMOTION_WAVEIN 3 /* IBM M-Motion Waveform Input */ ! 144: ! 145: /* MM_MEDIAVISION Product IDs */ ! 146: #define MM_MEDIAVISION_PROAUDIO 0x10 ! 147: #define MM_PROAUD_MIDIOUT MM_MEDIAVISION_PROAUDIO+1 ! 148: #define MM_PROAUD_MIDIIN MM_MEDIAVISION_PROAUDIO+2 ! 149: #define MM_PROAUD_SYNTH MM_MEDIAVISION_PROAUDIO+3 ! 150: #define MM_PROAUD_WAVEOUT MM_MEDIAVISION_PROAUDIO+4 ! 151: #define MM_PROAUD_WAVEIN MM_MEDIAVISION_PROAUDIO+5 ! 152: #define MM_PROAUD_MIXER MM_MEDIAVISION_PROAUDIO+6 ! 153: #define MM_PROAUD_AUX MM_MEDIAVISION_PROAUDIO+7 ! 154: ! 155: #define MM_MEDIAVISION_THUNDER 0x20 ! 156: #define MM_THUNDER_WAVEOUT MM_MEDIAVISION_THUNDER+1 ! 157: #define MM_THUNDER_WAVEIN MM_MEDIAVISION_THUNDER+2 ! 158: #define MM_THUNDER_SYNTH MM_MEDIAVISION_THUNDER+3 ! 159: ! 160: #define MM_MEDIAVISION_TPORT 0x40 ! 161: #define MM_TPORT_WAVEOUT MM_MEDIAVISION_TPORT+1 ! 162: #define MM_TPORT_WAVEIN MM_MEDIAVISION_TPORT+2 ! 163: #define MM_TPORT_SYNTH MM_MEDIAVISION_TPORT+3 ! 164: ! 165: // THIS CARD IS THE OEM VERSION OF THE NEXT PAS ! 166: #define MM_MEDIAVISION_PROAUDIO_PLUS 0x50 ! 167: #define MM_PROAUD_PLUS_MIDIOUT MM_MEDIAVISION_PROAUDIO_PLUS+1 ! 168: #define MM_PROAUD_PLUS_MIDIIN MM_MEDIAVISION_PROAUDIO_PLUS+2 ! 169: #define MM_PROAUD_PLUS_SYNTH MM_MEDIAVISION_PROAUDIO_PLUS+3 ! 170: #define MM_PROAUD_PLUS_WAVEOUT MM_MEDIAVISION_PROAUDIO_PLUS+4 ! 171: #define MM_PROAUD_PLUS_WAVEIN MM_MEDIAVISION_PROAUDIO_PLUS+5 ! 172: #define MM_PROAUD_PLUS_MIXER MM_MEDIAVISION_PROAUDIO_PLUS+6 ! 173: #define MM_PROAUD_PLUS_AUX MM_MEDIAVISION_PROAUDIO_PLUS+7 ! 174: ! 175: ! 176: // THIS CARD IS THE NEW MEDIA VISION 16-bit card ! 177: #define MM_MEDIAVISION_PROAUDIO_16 0x60 ! 178: #define MM_PROAUD_16_MIDIOUT MM_MEDIAVISION_PROAUDIO_16+1 ! 179: #define MM_PROAUD_16_MIDIIN MM_MEDIAVISION_PROAUDIO_16+2 ! 180: #define MM_PROAUD_16_SYNTH MM_MEDIAVISION_PROAUDIO_16+3 ! 181: #define MM_PROAUD_16_WAVEOUT MM_MEDIAVISION_PROAUDIO_16+4 ! 182: #define MM_PROAUD_16_WAVEIN MM_MEDIAVISION_PROAUDIO_16+5 ! 183: #define MM_PROAUD_16_MIXER MM_MEDIAVISION_PROAUDIO_16+6 ! 184: #define MM_PROAUD_16_AUX MM_MEDIAVISION_PROAUDIO_16+7 ! 185: ! 186: ! 187: // THIS CARD IS THE NEW MEDIA VISION CDPC card ! 188: #define MM_MEDIAVISION_CDPC 0x70 ! 189: #define MM_CDPC_MIDIOUT MM_MEDIAVISION_CDPC+1 ! 190: #define MM_CDPC_MIDIIN MM_MEDIAVISION_CDPC+2 ! 191: #define MM_CDPC_SYNTH MM_MEDIAVISION_CDPC+3 ! 192: #define MM_CDPC_WAVEOUT MM_MEDIAVISION_CDPC+4 ! 193: #define MM_CDPC_WAVEIN MM_MEDIAVISION_CDPC+5 ! 194: #define MM_CDPC_MIXER MM_MEDIAVISION_CDPC+6 ! 195: #define MM_CDPC_AUX MM_MEDIAVISION_CDPC+7 ! 196: ! 197: ! 198: // ! 199: // Opus MV1208 Chipset ! 200: // ! 201: #define MM_MEDIAVISION_OPUS1208 0x80 ! 202: #define MM_OPUS401_MIDIOUT MM_MEDIAVISION_OPUS1208+1 ! 203: #define MM_OPUS401_MIDIIN MM_MEDIAVISION_OPUS1208+2 ! 204: #define MM_OPUS1208_SYNTH MM_MEDIAVISION_OPUS1208+3 ! 205: #define MM_OPUS1208_WAVEOUT MM_MEDIAVISION_OPUS1208+4 ! 206: #define MM_OPUS1208_WAVEIN MM_MEDIAVISION_OPUS1208+5 ! 207: #define MM_OPUS1208_MIXER MM_MEDIAVISION_OPUS1208+6 ! 208: #define MM_OPUS1208_AUX MM_MEDIAVISION_OPUS1208+7 ! 209: ! 210: ! 211: // ! 212: // Opus MV1216 Chipset ! 213: // ! 214: #define MM_MEDIAVISION_OPUS1216 0x90 ! 215: #define MM_OPUS1216_MIDIOUT MM_MEDIAVISION_OPUS1216+1 ! 216: #define MM_OPUS1216_MIDIIN MM_MEDIAVISION_OPUS1216+2 ! 217: #define MM_OPUS1216_SYNTH MM_MEDIAVISION_OPUS1216+3 ! 218: #define MM_OPUS1216_WAVEOUT MM_MEDIAVISION_OPUS1216+4 ! 219: #define MM_OPUS1216_WAVEIN MM_MEDIAVISION_OPUS1216+5 ! 220: #define MM_OPUS1216_MIXER MM_MEDIAVISION_OPUS1216+6 ! 221: #define MM_OPUS1216_AUX MM_MEDIAVISION_OPUS1216+7 ! 222: ! 223: ! 224: // ! 225: // Mixer ! 226: // ! 227: #define MIXERR_BASE 512 ! 228: ! 229: /* MM_VOCALTEC Product IDs */ ! 230: #define MM_VOCALTEC_WAVEOUT 1 /* Vocaltec Waveform output port */ ! 231: #define MM_VOCALTEC_WAVEIN 2 /* Vocaltec Waveform input port */ ! 232: ! 233: /* MM_ROLAND Product IDs */ ! 234: #define MM_ROLAND_MPU401_MIDIOUT 15 ! 235: #define MM_ROLAND_MPU401_MIDIIN 16 ! 236: #define MM_ROLAND_SMPU_MIDIOUTA 17 ! 237: #define MM_ROLAND_SMPU_MIDIOUTB 18 ! 238: #define MM_ROLAND_SMPU_MIDIINA 19 ! 239: #define MM_ROLAND_SMPU_MIDIINB 20 ! 240: #define MM_ROLAND_SC7_MIDIOUT 21 ! 241: #define MM_ROLAND_SC7_MIDIIN 22 ! 242: ! 243: ! 244: /* MM_DIGISPEECH Product IDs */ ! 245: #define MM_DIGISP_WAVEOUT 1 /* Digispeech Waveform output port */ ! 246: #define MM_DIGISP_WAVEIN 2 /* Digispeech Waveform input port */ ! 247: ! 248: /* MM_NEC Product IDs */ ! 249: ! 250: /* MM_ATI Product IDs */ ! 251: ! 252: /* MM_WANGLABS Product IDs */ ! 253: ! 254: #define MM_WANGLABS_WAVEIN1 1 ! 255: /* Input audio wave device present on the CPU board of the following Wang models: Exec 4010, 4030 and 3450; PC 251/25C, PC 461/25S and PC 461/33C */ ! 256: #define MM_WANGLABS_WAVEOUT1 2 ! 257: /* Output audio wave device present on the CPU board of the Wang models listed above. */ ! 258: ! 259: /* MM_TANDY Product IDs */ ! 260: ! 261: /* MM_VOYETRA Product IDs */ ! 262: ! 263: /* MM_ANTEX Product IDs */ ! 264: ! 265: /* MM_ICL_PS Product IDs */ ! 266: ! 267: /* MM_INTEL Product IDs */ ! 268: ! 269: #define MM_INTELOPD_WAVEIN 1 // HID2 WaveAudio Input driver ! 270: #define MM_INTELOPD_WAVEOUT 101 // HID2 WaveAudio Output driver ! 271: #define MM_INTELOPD_AUX 401 // HID2 Auxiliary driver (required for mixing functions) ! 272: ! 273: /* MM_GRAVIS Product IDs */ ! 274: ! 275: /* MM_VAL Product IDs */ ! 276: ! 277: // values not defined by Manufacturer ! 278: ! 279: // #define MM_VAL_MICROKEY_AP_WAVEIN ??? // Microkey/AudioPort Waveform Input ! 280: // #define MM_VAL_MICROKEY_AP_WAVEOUT ??? // Microkey/AudioPort Waveform Output ! 281: ! 282: /* MM_INTERACTIVE Product IDs */ ! 283: ! 284: #define MM_INTERACTIVE_WAVEIN 0x45 // no comment provided by Manufacturer ! 285: #define MM_INTERACTIVE_WAVEOUT 0x45 // no comment provided by Manufacturer ! 286: ! 287: /* MM_YAMAHA Product IDs */ ! 288: ! 289: #define MM_YAMAHA_GSS_SYNTH 0x01 // Yamaha Gold Sound Standard FM sythesis driver ! 290: #define MM_YAMAHA_GSS_WAVEOUT 0x02 // Yamaha Gold Sound Standard wave output driver ! 291: #define MM_YAMAHA_GSS_WAVEIN 0x03 // Yamaha Gold Sound Standard wave input driver ! 292: #define MM_YAMAHA_GSS_MIDIOUT 0x04 // Yamaha Gold Sound Standard midi output driver ! 293: #define MM_YAMAHA_GSS_MIDIIN 0x05 // Yamaha Gold Sound Standard midi input driver ! 294: #define MM_YAMAHA_GSS_AUX 0x06 // Yamaha Gold Sound Standard auxillary driver for mixer functions ! 295: ! 296: /* MM_EVEREX Product IDs */ ! 297: ! 298: #define MM_EVEREX_CARRIER 0x01 // Everex Carrier SL/25 Notebook ! 299: ! 300: /* MM_ECHO Product IDs */ ! 301: ! 302: #define MM_ECHO_SYNTH 0x01 // Echo EuSythesis driver ! 303: #define MM_ECHO_WAVEOUT 0x02 // Wave output driver ! 304: #define MM_ECHO_WAVEIN 0x03 // Wave input driver ! 305: #define MM_ECHO_MIDIOUT 0x04 // MIDI output driver ! 306: #define MM_ECHO_MIDIIN 0x05 // MIDI input driver ! 307: #define MM_ECHO_AUX 0x06 // auxillary driver for mixer functions ! 308: ! 309: ! 310: /* MM_SIERRA Product IDs */ ! 311: ! 312: #define MM_SIERRA_ARIA_MIDIOUT 0x14 // Sierra Aria MIDI output ! 313: #define MM_SIERRA_ARIA_MIDIIN 0x15 // Sierra Aria MIDI input ! 314: #define MM_SIERRA_ARIA_SYNTH 0x16 // Sierra Aria Synthesizer ! 315: #define MM_SIERRA_ARIA_WAVEOUT 0x17 // Sierra Aria Waveform output ! 316: #define MM_SIERRA_ARIA_WAVEIN 0x18 // Sierra Aria Waveform input ! 317: #define MM_SIERRA_ARIA_AUX 0x19 // Siarra Aria Auxiliary device ! 318: ! 319: /* MM_CAT Product IDs */ ! 320: ! 321: /* MM_APPS Product IDs */ ! 322: ! 323: /* MM_DSP_GROUP Product IDs */ ! 324: ! 325: #define MM_DSP_GROUP_TRUESPEECH 0x01 // High quality 9.54:1 Speech Compression Vocoder ! 326: ! 327: /* MM_MELABS Product IDs */ ! 328: ! 329: #define MM_MELABS_MIDI2GO 0x01 // parellel port MIDI interface ! 330: ! 331: #endif ! 332: ! 333: /*////////////////////////////////////////////////////////////////////////// */ ! 334: ! 335: #ifndef NONEWWAVE ! 336: ! 337: /* WAVE form wFormatTag IDs */ ! 338: #define WAVE_FORMAT_UNKNOWN (0x0000) ! 339: #define WAVE_FORMAT_ADPCM (0x0002) ! 340: #define WAVE_FORMAT_IBM_CVSD (0x0005) ! 341: #define WAVE_FORMAT_ALAW (0x0006) ! 342: #define WAVE_FORMAT_MULAW (0x0007) ! 343: #define WAVE_FORMAT_OKI_ADPCM (0x0010) ! 344: #define WAVE_FORMAT_DVI_ADPCM (0x0011) ! 345: #define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) ! 346: #define WAVE_FORMAT_DIGISTD (0x0015) ! 347: #define WAVE_FORMAT_DIGIFIX (0x0016) ! 348: #define WAVE_FORMAT_YAMAHA_ADPCM (0x0020) ! 349: #define WAVE_FORMAT_SONARC (0x0021) ! 350: #define WAVE_FORMAT_DSPGROUP_TRUESPEECH (0x0022) ! 351: #define WAVE_FORMAT_ECHOSC1 (0x0023) ! 352: #define WAVE_FORMAT_CREATIVE_ADPCM (0x0200) ! 353: ! 354: #endif /* NONEWWAVE */ ! 355: ! 356: ! 357: #ifndef WAVE_FORMAT_PCM ! 358: ! 359: /* general waveform format structure (information common to all formats) */ ! 360: typedef struct waveformat_tag { ! 361: WORD wFormatTag; /* format type */ ! 362: WORD nChannels; /* number of channels (i.e. mono, stereo...) */ ! 363: DWORD nSamplesPerSec; /* sample rate */ ! 364: DWORD nAvgBytesPerSec; /* for buffer estimation */ ! 365: WORD nBlockAlign; /* block size of data */ ! 366: } WAVEFORMAT; ! 367: typedef WAVEFORMAT *PWAVEFORMAT; ! 368: typedef WAVEFORMAT NEAR *NPWAVEFORMAT; ! 369: typedef WAVEFORMAT FAR *LPWAVEFORMAT; ! 370: ! 371: /* flags for wFormatTag field of WAVEFORMAT */ ! 372: #define WAVE_FORMAT_PCM 1 ! 373: ! 374: /* specific waveform format structure for PCM data */ ! 375: typedef struct pcmwaveformat_tag { ! 376: WAVEFORMAT wf; ! 377: WORD wBitsPerSample; ! 378: } PCMWAVEFORMAT; ! 379: typedef PCMWAVEFORMAT *PPCMWAVEFORMAT; ! 380: typedef PCMWAVEFORMAT NEAR *NPPCMWAVEFORMAT; ! 381: typedef PCMWAVEFORMAT FAR *LPPCMWAVEFORMAT; ! 382: ! 383: ! 384: #endif /* WAVE_FORMAT_PCM */ ! 385: ! 386: ! 387: ! 388: /* general extended waveform format structure ! 389: Use this for all NON PCM formats ! 390: (information common to all formats) ! 391: */ ! 392: ! 393: typedef struct waveformat_extended_tag { ! 394: WORD wFormatTag; /* format type */ ! 395: WORD nChannels; /* number of channels (i.e. mono, stereo...) */ ! 396: DWORD nSamplesPerSec; /* sample rate */ ! 397: DWORD nAvgBytesPerSec; /* for buffer estimation */ ! 398: WORD nBlockAlign; /* block size of data */ ! 399: WORD wBitsPerSample; /* Number of bits per sample of mono data */ ! 400: WORD cbSize; /* The count in bytes of the size of ! 401: extra information (after cbSize) */ ! 402: ! 403: } WAVEFORMATEX; ! 404: typedef WAVEFORMATEX *PWAVEFORMATEX; ! 405: typedef WAVEFORMATEX NEAR *NPWAVEFORMATEX; ! 406: typedef WAVEFORMATEX FAR *LPWAVEFORMATEX; ! 407: ! 408: ! 409: #ifndef NONEWWAVE ! 410: ! 411: /* Define data for MS ADPCM */ ! 412: ! 413: typedef struct adpcmcoef_tag { ! 414: short iCoef1; ! 415: short iCoef2; ! 416: } ADPCMCOEFSET; ! 417: typedef ADPCMCOEFSET *PADPCMCOEFSET; ! 418: typedef ADPCMCOEFSET NEAR *NPADPCMCOEFSET; ! 419: typedef ADPCMCOEFSET FAR *LPADPCMCOEFSET; ! 420: ! 421: typedef struct adpcmwaveformat_tag { ! 422: WAVEFORMATEX wfx; ! 423: WORD wSamplesPerBlock; ! 424: WORD wNumCoef; ! 425: ADPCMCOEFSET aCoef[]; ! 426: } ADPCMWAVEFORMAT; ! 427: typedef ADPCMWAVEFORMAT *PADPCMWAVEFORMAT; ! 428: typedef ADPCMWAVEFORMAT NEAR *NPADPCMWAVEFORMAT; ! 429: typedef ADPCMWAVEFORMAT FAR *LPADPCMWAVEFORMAT; ! 430: ! 431: ! 432: // ! 433: // Intel's DVI ADPCM structure definitions ! 434: // ! 435: // for WAVE_FORMAT_DVI_ADPCM (0x0011) ! 436: // ! 437: // ! 438: ! 439: typedef struct dvi_adpcmwaveformat_tag { ! 440: WAVEFORMATEX wfx; ! 441: WORD wSamplesPerBlock; ! 442: } DVIADPCMWAVEFORMAT; ! 443: typedef DVIADPCMWAVEFORMAT *PDVIADPCMWAVEFORMAT; ! 444: typedef DVIADPCMWAVEFORMAT NEAR *NPDVIADPCMWAVEFORMAT; ! 445: typedef DVIADPCMWAVEFORMAT FAR *LPDVIADPCMWAVEFORMAT; ! 446: ! 447: ! 448: // ! 449: // IMA endorsed ADPCM structure definitions--note that this is exactly ! 450: // the same format as Intel's DVI ADPCM. ! 451: // ! 452: // for WAVE_FORMAT_IMA_ADPCM (0x0011) ! 453: // ! 454: // ! 455: ! 456: typedef struct ima_adpcmwaveformat_tag { ! 457: WAVEFORMATEX wfx; ! 458: WORD wSamplesPerBlock; ! 459: } IMAADPCMWAVEFORMAT; ! 460: typedef IMAADPCMWAVEFORMAT *PIMAADPCMWAVEFORMAT; ! 461: typedef IMAADPCMWAVEFORMAT NEAR *NPIMAADPCMWAVEFORMAT; ! 462: typedef IMAADPCMWAVEFORMAT FAR *LPIMAADPCMWAVEFORMAT; ! 463: ! 464: ! 465: // ! 466: // Speech Compression's Sonarc structure definitions ! 467: // ! 468: // for WAVE_FORMAT_SONARC (0x0021) ! 469: // ! 470: // ! 471: ! 472: typedef struct sonarcwaveformat_tag { ! 473: WAVEFORMATEX wfx; ! 474: WORD wCompType; ! 475: } SONARCWAVEFORMAT; ! 476: typedef SONARCWAVEFORMAT *PSONARCWAVEFORMAT; ! 477: typedef SONARCWAVEFORMAT NEAR *NPSONARCWAVEFORMAT; ! 478: typedef SONARCWAVEFORMAT FAR *LPSONARCWAVEFORMAT; ! 479: ! 480: // ! 481: // DSP Groups's TRUESPEECH structure definitions ! 482: // ! 483: // for WAVE_FORMAT_DSPGROUP_TRUESPEECH (0x0022) ! 484: // ! 485: // ! 486: ! 487: typedef struct truespeechwaveformat_tag { ! 488: WAVEFORMATEX wfx; ! 489: WORD nSamplesPerBlock; ! 490: } TRUESPEECHWAVEFORMAT; ! 491: typedef TRUESPEECHWAVEFORMAT *PTRUESPEECHWAVEFORMAT; ! 492: typedef TRUESPEECHWAVEFORMAT NEAR *NPTRUESPEECHWAVEFORMAT; ! 493: typedef TRUESPEECHWAVEFORMAT FAR *LPTRUESPEECHWAVEFORMAT; ! 494: ! 495: ! 496: ! 497: // ! 498: // Creative's ADPCM structure definitions ! 499: // ! 500: // for WAVE_FORMAT_CREATIVE_ADPCM (0x0200) ! 501: // ! 502: // ! 503: ! 504: typedef struct creative_adpcmwaveformat_tag { ! 505: WAVEFORMATEX wfx; ! 506: WORD wRevision; ! 507: } CREATIVEADPCMWAVEFORMAT; ! 508: typedef CREATIVEADPCMWAVEFORMAT *PCREATIVEADPCMWAVEFORMAT; ! 509: typedef CREATIVEADPCMWAVEFORMAT NEAR *NPCREATIVEADPCMWAVEFORMAT; ! 510: typedef CREATIVEADPCMWAVEFORMAT FAR *LPCREATIVEADPCMWAVEFORMAT; ! 511: ! 512: /*////////////////////////////////////////////////////////////////////////// ! 513: // ! 514: // New RIFF WAVE Chunks ! 515: // ! 516: */ ! 517: ! 518: #define RIFFWAVE_inst mmioFOURCC('i','n','s','t') ! 519: ! 520: struct tag_s_RIFFWAVE_inst { ! 521: BYTE bUnshiftedNote; ! 522: char chFineTune; ! 523: char chGain; ! 524: BYTE bLowNote; ! 525: BYTE bHighNote; ! 526: BYTE bLowVelocity; ! 527: BYTE bHighVelocity; ! 528: }; ! 529: ! 530: typedef struct tag_s_RIFFWAVE_INST s_RIFFWAVE_inst; ! 531: ! 532: #endif ! 533: ! 534: /*////////////////////////////////////////////////////////////////////////// ! 535: // ! 536: // New RIFF Forms ! 537: // ! 538: */ ! 539: ! 540: #ifndef NONEWRIFF ! 541: ! 542: /* RIFF AVI */ ! 543: ! 544: // ! 545: // AVI file format is specified in a seperate file (AVIFMT.H), ! 546: // which is available from the sources listed in MSFTMM ! 547: // ! 548: ! 549: /* RIFF CPPO */ ! 550: ! 551: #define RIFFCPPO mmioFOURCC('C','P','P','O') ! 552: ! 553: #define RIFFCPPO_objr mmioFOURCC('o','b','j','r') ! 554: #define RIFFCPPO_obji mmioFOURCC('o','b','j','i') ! 555: ! 556: #define RIFFCPPO_clsr mmioFOURCC('c','l','s','r') ! 557: #define RIFFCPPO_clsi mmioFOURCC('c','l','s','i') ! 558: ! 559: #define RIFFCPPO_mbr mmioFOURCC('m','b','r',' ') ! 560: ! 561: #define RIFFCPPO_char mmioFOURCC('c','h','a','r') ! 562: ! 563: ! 564: #define RIFFCPPO_byte mmioFOURCC('b','y','t','e') ! 565: #define RIFFCPPO_int mmioFOURCC('i','n','t',' ') ! 566: #define RIFFCPPO_word mmioFOURCC('w','o','r','d') ! 567: #define RIFFCPPO_long mmioFOURCC('l','o','n','g') ! 568: #define RIFFCPPO_dwrd mmioFOURCC('d','w','r','d') ! 569: #define RIFFCPPO_flt mmioFOURCC('f','l','t',' ') ! 570: #define RIFFCPPO_dbl mmioFOURCC('d','b','l',' ') ! 571: #define RIFFCPPO_str mmioFOURCC('s','t','r',' ') ! 572: ! 573: ! 574: #endif ! 575: ! 576: /*////////////////////////////////////////////////////////////////////////// ! 577: // ! 578: // DIB Compression Defines ! 579: // ! 580: */ ! 581: ! 582: #ifndef BI_BITFIELDS ! 583: #define BI_BITFIELDS 3 ! 584: #endif ! 585: ! 586: #ifndef QUERYDIBSUPPORT ! 587: ! 588: #define QUERYDIBSUPPORT 3073 ! 589: #define QDI_SETDIBITS 0x0001 ! 590: #define QDI_GETDIBITS 0x0002 ! 591: #define QDI_DIBTOSCREEN 0x0004 ! 592: #define QDI_STRETCHDIB 0x0008 ! 593: ! 594: #endif ! 595: ! 596: ! 597: /*////////////////////////////////////////////////////////////////////////// ! 598: // ! 599: // Defined IC types ! 600: */ ! 601: ! 602: #ifndef NONEWIC ! 603: ! 604: #ifndef ICTYPE_VIDEO ! 605: #define ICTYPE_VIDEO mmioFOURCC('v', 'i', 'd', 'c') ! 606: #define ICTYPE_AUDIO mmioFOURCC('a', 'u', 'd', 'c') ! 607: #endif ! 608: ! 609: #endif ! 610: ! 611: #ifndef RC_INVOKED ! 612: #pragma pack() /* Revert to default packing */ ! 613: #endif /* RC_INVOKED */ ! 614: ! 615: #ifdef __cplusplus ! 616: } /* End of extern "C" { */ ! 617: #endif /* __cplusplus */ ! 618: ! 619: #endif /* _INC_MMREG */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.