Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

619 lines
22 KiB

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