'' FreeBASIC binding for mingw-w64-v4.0.4
''
'' based on the C header files:
''   This Software is provided under the Zope Public License (ZPL) Version 2.1.
''
''   Copyright (c) 2009, 2010 by the mingw-w64 project
''
''   See the AUTHORS file for the list of contributors to the mingw-w64 project.
''
''   This license has been certified as open source. It has also been designated
''   as GPL compatible by the Free Software Foundation (FSF).
''
''   Redistribution and use in source and binary forms, with or without
''   modification, are permitted provided that the following conditions are met:
''
''     1. Redistributions in source code must retain the accompanying copyright
''        notice, this list of conditions, and the following disclaimer.
''     2. Redistributions in binary form must reproduce the accompanying
''        copyright notice, this list of conditions, and the following disclaimer
''        in the documentation and/or other materials provided with the
''        distribution.
''     3. Names of the copyright holders must not be used to endorse or promote
''        products derived from this software without prior written permission
''        from the copyright holders.
''     4. The right to distribute this software or to use it for any purpose does
''        not give you the right to use Servicemarks (sm) or Trademarks (tm) of
''        the copyright holders.  Use of them is covered by separate agreement
''        with the copyright holders.
''     5. If any files are modified, you must cause the modified files to carry
''        prominent notices stating that you changed the files and the date of
''        any change.
''
''   Disclaimer
''
''   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
''   OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
''   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
''   EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
''   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
''   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
''   OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
''   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
''   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
''   EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
''
'' translated to FreeBASIC by:
''   Copyright © 2015 FreeBASIC development team

#pragma once

#include once "mmsystem.bi"
#include once "winapifamily.bi"

extern "C"

const _INC_MMREG = 158
const MM_MICROSOFT = 1
const MM_CREATIVE = 2
const MM_MEDIAVISION = 3
const MM_FUJITSU = 4
const MM_PRAGMATRAX = 5
const MM_CYRIX = 6
const MM_PHILIPS_SPEECH_PROCESSING = 7
const MM_NETXL = 8
const MM_ZYXEL = 9
const MM_BECUBED = 10
const MM_AARDVARK = 11
const MM_BINTEC = 12
const MM_HEWLETT_PACKARD = 13
const MM_ACULAB = 14
const MM_FAITH = 15
const MM_MITEL = 16
const MM_QUANTUM3D = 17
const MM_SNI = 18
const MM_EMU = 19
const MM_ARTISOFT = 20
const MM_TURTLE_BEACH = 21
const MM_IBM = 22
const MM_VOCALTEC = 23
const MM_ROLAND = 24
const MM_DSP_SOLUTIONS = 25
const MM_NEC = 26
const MM_ATI = 27
const MM_WANGLABS = 28
const MM_TANDY = 29
const MM_VOYETRA = 30
const MM_ANTEX = 31
const MM_ICL_PS = 32
const MM_INTEL = 33
const MM_GRAVIS = 34
const MM_VAL = 35
const MM_INTERACTIVE = 36
const MM_YAMAHA = 37
const MM_EVEREX = 38
const MM_ECHO = 39
const MM_SIERRA = 40
const MM_CAT = 41
const MM_APPS = 42
const MM_DSP_GROUP = 43
const MM_MELABS = 44
const MM_COMPUTER_FRIENDS = 45
const MM_ESS = 46
const MM_AUDIOFILE = 47
const MM_MOTOROLA = 48
const MM_CANOPUS = 49
const MM_EPSON = 50
const MM_TRUEVISION = 51
const MM_AZTECH = 52
const MM_VIDEOLOGIC = 53
const MM_SCALACS = 54
const MM_KORG = 55
const MM_APT = 56
const MM_ICS = 57
const MM_ITERATEDSYS = 58
const MM_METHEUS = 59
const MM_LOGITECH = 60
const MM_WINNOV = 61
const MM_NCR = 62
const MM_EXAN = 63
const MM_AST = 64
const MM_WILLOWPOND = 65
const MM_SONICFOUNDRY = 66
const MM_VITEC = 67
const MM_MOSCOM = 68
const MM_SILICONSOFT = 69
const MM_TERRATEC = 70
const MM_MEDIASONIC = 71
const MM_SANYO = 72
const MM_SUPERMAC = 73
const MM_AUDIOPT = 74
const MM_NOGATECH = 75
const MM_SPEECHCOMP = 76
const MM_AHEAD = 77
const MM_DOLBY = 78
const MM_OKI = 79
const MM_AURAVISION = 80
const MM_OLIVETTI = 81
const MM_IOMAGIC = 82
const MM_MATSUSHITA = 83
const MM_CONTROLRES = 84
const MM_XEBEC = 85
const MM_NEWMEDIA = 86
const MM_NMS = 87
const MM_LYRRUS = 88
const MM_COMPUSIC = 89
const MM_OPTI = 90
const MM_ADLACC = 91
const MM_COMPAQ = 92
const MM_DIALOGIC = 93
const MM_INSOFT = 94
const MM_MPTUS = 95
const MM_WEITEK = 96
const MM_LERNOUT_AND_HAUSPIE = 97
const MM_QCIAR = 98
const MM_APPLE = 99
const MM_DIGITAL = 100
const MM_MOTU = 101
const MM_WORKBIT = 102
const MM_OSITECH = 103
const MM_MIRO = 104
const MM_CIRRUSLOGIC = 105
const MM_ISOLUTION = 106
const MM_HORIZONS = 107
const MM_CONCEPTS = 108
const MM_VTG = 109
const MM_RADIUS = 110
const MM_ROCKWELL = 111
const MM_XYZ = 112
const MM_OPCODE = 113
const MM_VOXWARE = 114
const MM_NORTHERN_TELECOM = 115
const MM_APICOM = 116
const MM_GRANDE = 117
const MM_ADDX = 118
const MM_WILDCAT = 119
const MM_RHETOREX = 120
const MM_BROOKTREE = 121
const MM_ENSONIQ = 125
const MM_FAST = 126
const MM_NVIDIA = 127
const MM_OKSORI = 128
const MM_DIACOUSTICS = 129
const MM_GULBRANSEN = 130
const MM_KAY_ELEMETRICS = 131
const MM_CRYSTAL = 132
const MM_SPLASH_STUDIOS = 133
const MM_QUARTERDECK = 134
const MM_TDK = 135
const MM_DIGITAL_AUDIO_LABS = 136
const MM_SEERSYS = 137
const MM_PICTURETEL = 138
const MM_ATT_MICROELECTRONICS = 139
const MM_OSPREY = 140
const MM_MEDIATRIX = 141
const MM_SOUNDESIGNS = 142
const MM_ALDIGITAL = 143
const MM_SPECTRUM_SIGNAL_PROCESSING = 144
const MM_ECS = 145
const MM_AMD = 146
const MM_COREDYNAMICS = 147
const MM_CANAM = 148
const MM_SOFTSOUND = 149
const MM_NORRIS = 150
const MM_DDD = 151
const MM_EUPHONICS = 152
const MM_PRECEPT = 153
const MM_CRYSTAL_NET = 154
const MM_CHROMATIC = 155
const MM_VOICEINFO = 156
const MM_VIENNASYS = 157
const MM_CONNECTIX = 158
const MM_GADGETLABS = 159
const MM_FRONTIER = 160
const MM_VIONA = 161
const MM_CASIO = 162
const MM_DIAMONDMM = 163
const MM_S3 = 164
const MM_DVISION = 165
const MM_NETSCAPE = 166
const MM_SOUNDSPACE = 167
const MM_VANKOEVERING = 168
const MM_QTEAM = 169
const MM_ZEFIRO = 170
const MM_STUDER = 171
const MM_FRAUNHOFER_IIS = 172
const MM_QUICKNET = 173
const MM_ALARIS = 174
const MM_SICRESOURCE = 175
const MM_NEOMAGIC = 176
const MM_MERGING_TECHNOLOGIES = 177
const MM_XIRLINK = 178
const MM_COLORGRAPH = 179
const MM_OTI = 180
const MM_AUREAL = 181
const MM_VIVO = 182
const MM_SHARP = 183
const MM_LUCENT = 184
const MM_ATT = 185
const MM_SUNCOM = 186
const MM_SORVIS = 187
const MM_INVISION = 188
const MM_BERKOM = 189
const MM_MARIAN = 190
const MM_DPSINC = 191
const MM_BCB = 192
const MM_MOTIONPIXELS = 193
const MM_QDESIGN = 194
const MM_NMP = 195
const MM_DATAFUSION = 196
const MM_DUCK = 197
const MM_FTR = 198
const MM_BERCOS = 199
const MM_ONLIVE = 200
const MM_SIEMENS_SBC = 201
const MM_TERALOGIC = 202
const MM_PHONET = 203
const MM_WINBOND = 204
const MM_VIRTUALMUSIC = 205
const MM_ENET = 206
const MM_GUILLEMOT = 207
const MM_EMAGIC = 208
const MM_MWM = 209
const MM_PACIFICRESEARCH = 210
const MM_SIPROLAB = 211
const MM_LYNX = 212
const MM_SPECTRUM_PRODUCTIONS = 213
const MM_DICTAPHONE = 214
const MM_QUALCOMM = 215
const MM_RZS = 216
const MM_AUDIOSCIENCE = 217
const MM_PINNACLE = 218
const MM_EES = 219
const MM_HAFTMANN = 220
const MM_LUCID = 221
const MM_HEADSPACE = 222
const MM_UNISYS = 223
const MM_LUMINOSITI = 224
const MM_ACTIVEVOICE = 225
const MM_DTS = 226
const MM_DIGIGRAM = 227
const MM_SOFTLAB_NSK = 228
const MM_FORTEMEDIA = 229
const MM_SONORUS = 230
const MM_ARRAY = 231
const MM_DATARAN = 232
const MM_I_LINK = 233
const MM_SELSIUS_SYSTEMS = 234
const MM_ADMOS = 235
const MM_LEXICON = 236
const MM_SGI = 237
const MM_IPI = 238
const MM_ICE = 239
const MM_VQST = 240
const MM_ETEK = 241
const MM_CS = 242
const MM_ALESIS = 243
const MM_INTERNET = 244
const MM_SONY = 245
const MM_HYPERACTIVE = 246
const MM_UHER_INFORMATIC = 247
const MM_SYDEC_NV = 248
const MM_FLEXION = 249
const MM_VIA = 250
const MM_MICRONAS = 251
const MM_ANALOGDEVICES = 252
const MM_HP = 253
const MM_MATROX_DIV = 254
const MM_QUICKAUDIO = 255
const MM_YOUCOM = 256
const MM_RICHMOND = 257
const MM_IODD = 258
const MM_ICCC = 259
const MM_3COM = 260
const MM_MALDEN = 261
const MM_3DFX = 262
const MM_MINDMAKER = 263
const MM_TELEKOL = 264
const MM_ST_MICROELECTRONICS = 265
const MM_ALGOVISION = 266
const MM_UNMAPPED = &hffff
const MM_PID_UNMAPPED = MM_UNMAPPED
#macro INIT_MMREG_MID(guid, id)
	scope
		(guid)->Data1 = &hd5a47fa7 + cast(USHORT, id)
		(guid)->Data2 = &h6d98
		(guid)->Data3 = &h11d1
		(guid)->Data4(0) = &ha2
		(guid)->Data4(1) = &h1a
		(guid)->Data4(2) = &h00
		(guid)->Data4(3) = &ha0
		(guid)->Data4(4) = &hc9
		(guid)->Data4(5) = &h22
		(guid)->Data4(6) = &h31
		(guid)->Data4(7) = &h96
	end scope
#endmacro
#define EXTRACT_MMREG_MID(guid) cast(USHORT, (guid)->Data1 - &hd5a47fa7)
#define IS_COMPATIBLE_MMREG_MID(guid) (((((((((((((guid)->Data1 >= &hd5a47fa7) andalso ((guid)->Data1 < (&hd5a47fa7 + &hffff))) andalso ((guid)->Data2 = &h6d98)) andalso ((guid)->Data3 = &h11d1)) andalso ((guid)->Data4(0) = &ha2)) andalso ((guid)->Data4(1) = &h1a)) andalso ((guid)->Data4(2) = &h00)) andalso ((guid)->Data4(3) = &ha0)) andalso ((guid)->Data4(4) = &hc9)) andalso ((guid)->Data4(5) = &h22)) andalso ((guid)->Data4(6) = &h31)) andalso ((guid)->Data4(7) = &h96))
#macro INIT_MMREG_PID(guid, id)
	scope
		(guid)->Data1 = &he36dc2ac + cast(USHORT, id)
		(guid)->Data2 = &h6d9a
		(guid)->Data3 = &h11d1
		(guid)->Data4(0) = &ha2
		(guid)->Data4(1) = &h1a
		(guid)->Data4(2) = &h00
		(guid)->Data4(3) = &ha0
		(guid)->Data4(4) = &hc9
		(guid)->Data4(5) = &h22
		(guid)->Data4(6) = &h31
		(guid)->Data4(7) = &h96
	end scope
#endmacro
#define EXTRACT_MMREG_PID(guid) cast(USHORT, (guid)->Data1 - &he36dc2ac)

#define IS_COMPATIBLE_MMREG_PID(guid) (((((((((((((guid)->Data1 >= &he36dc2ac) andalso ((guid)->Data1 < (&he36dc2ac + &hffff))) andalso ((guid)->Data2 = &h6d9a)) andalso ((guid)->Data3 = &h11d1)) andalso ((guid)->Data4(0) = &ha2)) andalso ((guid)->Data4(1) = &h1a)) andalso ((guid)->Data4(2) = &h00)) andalso ((guid)->Data4(3) = &ha0)) andalso ((guid)->Data4(4) = &hc9)) andalso ((guid)->Data4(5) = &h22)) andalso ((guid)->Data4(6) = &h31)) andalso ((guid)->Data4(7) = &h96))
const MM_MIDI_MAPPER = 1
const MM_WAVE_MAPPER = 2
const MM_SNDBLST_MIDIOUT = 3
const MM_SNDBLST_MIDIIN = 4
const MM_SNDBLST_SYNTH = 5
const MM_SNDBLST_WAVEOUT = 6
const MM_SNDBLST_WAVEIN = 7
const MM_ADLIB = 9
const MM_MPU401_MIDIOUT = 10
const MM_MPU401_MIDIIN = 11
const MM_PC_JOYSTICK = 12
const MM_PCSPEAKER_WAVEOUT = 13
const MM_MSFT_WSS_WAVEIN = 14
const MM_MSFT_WSS_WAVEOUT = 15
const MM_MSFT_WSS_FMSYNTH_STEREO = 16
const MM_MSFT_WSS_MIXER = 17
const MM_MSFT_WSS_OEM_WAVEIN = 18
const MM_MSFT_WSS_OEM_WAVEOUT = 19
const MM_MSFT_WSS_OEM_FMSYNTH_STEREO = 20
const MM_MSFT_WSS_AUX = 21
const MM_MSFT_WSS_OEM_AUX = 22
const MM_MSFT_GENERIC_WAVEIN = 23
const MM_MSFT_GENERIC_WAVEOUT = 24
const MM_MSFT_GENERIC_MIDIIN = 25
const MM_MSFT_GENERIC_MIDIOUT = 26
const MM_MSFT_GENERIC_MIDISYNTH = 27
const MM_MSFT_GENERIC_AUX_LINE = 28
const MM_MSFT_GENERIC_AUX_MIC = 29
const MM_MSFT_GENERIC_AUX_CD = 30
const MM_MSFT_WSS_OEM_MIXER = 31
const MM_MSFT_MSACM = 32
const MM_MSFT_ACM_MSADPCM = 33
const MM_MSFT_ACM_IMAADPCM = 34
const MM_MSFT_ACM_MSFILTER = 35
const MM_MSFT_ACM_GSM610 = 36
const MM_MSFT_ACM_G711 = 37
const MM_MSFT_ACM_PCM = 38
const MM_WSS_SB16_WAVEIN = 39
const MM_WSS_SB16_WAVEOUT = 40
const MM_WSS_SB16_MIDIIN = 41
const MM_WSS_SB16_MIDIOUT = 42
const MM_WSS_SB16_SYNTH = 43
const MM_WSS_SB16_AUX_LINE = 44
const MM_WSS_SB16_AUX_CD = 45
const MM_WSS_SB16_MIXER = 46
const MM_WSS_SBPRO_WAVEIN = 47
const MM_WSS_SBPRO_WAVEOUT = 48
const MM_WSS_SBPRO_MIDIIN = 49
const MM_WSS_SBPRO_MIDIOUT = 50
const MM_WSS_SBPRO_SYNTH = 51
const MM_WSS_SBPRO_AUX_LINE = 52
const MM_WSS_SBPRO_AUX_CD = 53
const MM_WSS_SBPRO_MIXER = 54
const MM_MSFT_WSS_NT_WAVEIN = 55
const MM_MSFT_WSS_NT_WAVEOUT = 56
const MM_MSFT_WSS_NT_FMSYNTH_STEREO = 57
const MM_MSFT_WSS_NT_MIXER = 58
const MM_MSFT_WSS_NT_AUX = 59
const MM_MSFT_SB16_WAVEIN = 60
const MM_MSFT_SB16_WAVEOUT = 61
const MM_MSFT_SB16_MIDIIN = 62
const MM_MSFT_SB16_MIDIOUT = 63
const MM_MSFT_SB16_SYNTH = 64
const MM_MSFT_SB16_AUX_LINE = 65
const MM_MSFT_SB16_AUX_CD = 66
const MM_MSFT_SB16_MIXER = 67
const MM_MSFT_SBPRO_WAVEIN = 68
const MM_MSFT_SBPRO_WAVEOUT = 69
const MM_MSFT_SBPRO_MIDIIN = 70
const MM_MSFT_SBPRO_MIDIOUT = 71
const MM_MSFT_SBPRO_SYNTH = 72
const MM_MSFT_SBPRO_AUX_LINE = 73
const MM_MSFT_SBPRO_AUX_CD = 74
const MM_MSFT_SBPRO_MIXER = 75
const MM_MSFT_MSOPL_SYNTH = 76
const MM_MSFT_VMDMS_LINE_WAVEIN = 80
const MM_MSFT_VMDMS_LINE_WAVEOUT = 81
const MM_MSFT_VMDMS_HANDSET_WAVEIN = 82
const MM_MSFT_VMDMS_HANDSET_WAVEOUT = 83
const MM_MSFT_VMDMW_LINE_WAVEIN = 84
const MM_MSFT_VMDMW_LINE_WAVEOUT = 85
const MM_MSFT_VMDMW_HANDSET_WAVEIN = 86
const MM_MSFT_VMDMW_HANDSET_WAVEOUT = 87
const MM_MSFT_VMDMW_MIXER = 88
const MM_MSFT_VMDM_GAME_WAVEOUT = 89
const MM_MSFT_VMDM_GAME_WAVEIN = 90
const MM_MSFT_ACM_MSNAUDIO = 91
const MM_MSFT_ACM_MSG723 = 92
const MM_MSFT_ACM_MSRT24 = 93
const MM_MSFT_WDMAUDIO_WAVEOUT = 100
const MM_MSFT_WDMAUDIO_WAVEIN = 101
const MM_MSFT_WDMAUDIO_MIDIOUT = 102
const MM_MSFT_WDMAUDIO_MIDIIN = 103
const MM_MSFT_WDMAUDIO_MIXER = 104
const MM_MSFT_WDMAUDIO_AUX = 105
const MM_CREATIVE_SB15_WAVEIN = 1
const MM_CREATIVE_SB20_WAVEIN = 2
const MM_CREATIVE_SBPRO_WAVEIN = 3
const MM_CREATIVE_SBP16_WAVEIN = 4
const MM_CREATIVE_PHNBLST_WAVEIN = 5
const MM_CREATIVE_SB15_WAVEOUT = 101
const MM_CREATIVE_SB20_WAVEOUT = 102
const MM_CREATIVE_SBPRO_WAVEOUT = 103
const MM_CREATIVE_SBP16_WAVEOUT = 104
const MM_CREATIVE_PHNBLST_WAVEOUT = 105
const MM_CREATIVE_MIDIOUT = 201
const MM_CREATIVE_MIDIIN = 202
const MM_CREATIVE_FMSYNTH_MONO = 301
const MM_CREATIVE_FMSYNTH_STEREO = 302
const MM_CREATIVE_MIDI_AWE32 = 303
const MM_CREATIVE_AUX_CD = 401
const MM_CREATIVE_AUX_LINE = 402
const MM_CREATIVE_AUX_MIC = 403
const MM_CREATIVE_AUX_MASTER = 404
const MM_CREATIVE_AUX_PCSPK = 405
const MM_CREATIVE_AUX_WAVE = 406
const MM_CREATIVE_AUX_MIDI = 407
const MM_CREATIVE_SBPRO_MIXER = 408
const MM_CREATIVE_SB16_MIXER = 409
const MM_MEDIAVISION_PROAUDIO = &h10
const MM_PROAUD_MIDIOUT = MM_MEDIAVISION_PROAUDIO + 1
const MM_PROAUD_MIDIIN = MM_MEDIAVISION_PROAUDIO + 2
const MM_PROAUD_SYNTH = MM_MEDIAVISION_PROAUDIO + 3
const MM_PROAUD_WAVEOUT = MM_MEDIAVISION_PROAUDIO + 4
const MM_PROAUD_WAVEIN = MM_MEDIAVISION_PROAUDIO + 5
const MM_PROAUD_MIXER = MM_MEDIAVISION_PROAUDIO + 6
const MM_PROAUD_AUX = MM_MEDIAVISION_PROAUDIO + 7
const MM_MEDIAVISION_THUNDER = &h20
const MM_THUNDER_SYNTH = MM_MEDIAVISION_THUNDER + 3
const MM_THUNDER_WAVEOUT = MM_MEDIAVISION_THUNDER + 4
const MM_THUNDER_WAVEIN = MM_MEDIAVISION_THUNDER + 5
const MM_THUNDER_AUX = MM_MEDIAVISION_THUNDER + 7
const MM_MEDIAVISION_TPORT = &h40
const MM_TPORT_WAVEOUT = MM_MEDIAVISION_TPORT + 1
const MM_TPORT_WAVEIN = MM_MEDIAVISION_TPORT + 2
const MM_TPORT_SYNTH = MM_MEDIAVISION_TPORT + 3
const MM_MEDIAVISION_PROAUDIO_PLUS = &h50
const MM_PROAUD_PLUS_MIDIOUT = MM_MEDIAVISION_PROAUDIO_PLUS + 1
const MM_PROAUD_PLUS_MIDIIN = MM_MEDIAVISION_PROAUDIO_PLUS + 2
const MM_PROAUD_PLUS_SYNTH = MM_MEDIAVISION_PROAUDIO_PLUS + 3
const MM_PROAUD_PLUS_WAVEOUT = MM_MEDIAVISION_PROAUDIO_PLUS + 4
const MM_PROAUD_PLUS_WAVEIN = MM_MEDIAVISION_PROAUDIO_PLUS + 5
const MM_PROAUD_PLUS_MIXER = MM_MEDIAVISION_PROAUDIO_PLUS + 6
const MM_PROAUD_PLUS_AUX = MM_MEDIAVISION_PROAUDIO_PLUS + 7
const MM_MEDIAVISION_PROAUDIO_16 = &h60
const MM_PROAUD_16_MIDIOUT = MM_MEDIAVISION_PROAUDIO_16 + 1
const MM_PROAUD_16_MIDIIN = MM_MEDIAVISION_PROAUDIO_16 + 2
const MM_PROAUD_16_SYNTH = MM_MEDIAVISION_PROAUDIO_16 + 3
const MM_PROAUD_16_WAVEOUT = MM_MEDIAVISION_PROAUDIO_16 + 4
const MM_PROAUD_16_WAVEIN = MM_MEDIAVISION_PROAUDIO_16 + 5
const MM_PROAUD_16_MIXER = MM_MEDIAVISION_PROAUDIO_16 + 6
const MM_PROAUD_16_AUX = MM_MEDIAVISION_PROAUDIO_16 + 7
const MM_MEDIAVISION_PROSTUDIO_16 = &h60
const MM_STUDIO_16_MIDIOUT = MM_MEDIAVISION_PROSTUDIO_16 + 1
const MM_STUDIO_16_MIDIIN = MM_MEDIAVISION_PROSTUDIO_16 + 2
const MM_STUDIO_16_SYNTH = MM_MEDIAVISION_PROSTUDIO_16 + 3
const MM_STUDIO_16_WAVEOUT = MM_MEDIAVISION_PROSTUDIO_16 + 4
const MM_STUDIO_16_WAVEIN = MM_MEDIAVISION_PROSTUDIO_16 + 5
const MM_STUDIO_16_MIXER = MM_MEDIAVISION_PROSTUDIO_16 + 6
const MM_STUDIO_16_AUX = MM_MEDIAVISION_PROSTUDIO_16 + 7
const MM_MEDIAVISION_CDPC = &h70
const MM_CDPC_MIDIOUT = MM_MEDIAVISION_CDPC + 1
const MM_CDPC_MIDIIN = MM_MEDIAVISION_CDPC + 2
const MM_CDPC_SYNTH = MM_MEDIAVISION_CDPC + 3
const MM_CDPC_WAVEOUT = MM_MEDIAVISION_CDPC + 4
const MM_CDPC_WAVEIN = MM_MEDIAVISION_CDPC + 5
const MM_CDPC_MIXER = MM_MEDIAVISION_CDPC + 6
const MM_CDPC_AUX = MM_MEDIAVISION_CDPC + 7
const MM_MEDIAVISION_OPUS1208 = &h80
const MM_OPUS401_MIDIOUT = MM_MEDIAVISION_OPUS1208 + 1
const MM_OPUS401_MIDIIN = MM_MEDIAVISION_OPUS1208 + 2
const MM_OPUS1208_SYNTH = MM_MEDIAVISION_OPUS1208 + 3
const MM_OPUS1208_WAVEOUT = MM_MEDIAVISION_OPUS1208 + 4
const MM_OPUS1208_WAVEIN = MM_MEDIAVISION_OPUS1208 + 5
const MM_OPUS1208_MIXER = MM_MEDIAVISION_OPUS1208 + 6
const MM_OPUS1208_AUX = MM_MEDIAVISION_OPUS1208 + 7
const MM_MEDIAVISION_OPUS1216 = &h90
const MM_OPUS1216_MIDIOUT = MM_MEDIAVISION_OPUS1216 + 1
const MM_OPUS1216_MIDIIN = MM_MEDIAVISION_OPUS1216 + 2
const MM_OPUS1216_SYNTH = MM_MEDIAVISION_OPUS1216 + 3
const MM_OPUS1216_WAVEOUT = MM_MEDIAVISION_OPUS1216 + 4
const MM_OPUS1216_WAVEIN = MM_MEDIAVISION_OPUS1216 + 5
const MM_OPUS1216_MIXER = MM_MEDIAVISION_OPUS1216 + 6
const MM_OPUS1216_AUX = MM_MEDIAVISION_OPUS1216 + 7
const MM_CYRIX_XASYNTH = 1
const MM_CYRIX_XAMIDIIN = 2
const MM_CYRIX_XAMIDIOUT = 3
const MM_CYRIX_XAWAVEIN = 4
const MM_CYRIX_XAWAVEOUT = 5
const MM_CYRIX_XAAUX = 6
const MM_CYRIX_XAMIXER = 7
const MM_PHILIPS_ACM_LPCBB = 1
const MM_NETXL_XLVIDEO = 1
const MM_ZYXEL_ACM_ADPCM = 1
const MM_AARDVARK_STUDIO12_WAVEOUT = 1
const MM_AARDVARK_STUDIO12_WAVEIN = 2
const MM_AARDVARK_STUDIO88_WAVEOUT = 3
const MM_AARDVARK_STUDIO88_WAVEIN = 4
const MM_BINTEC_TAPI_WAVE = 1
const MM_HEWLETT_PACKARD_CU_CODEC = 1
const MM_MITEL_TALKTO_LINE_WAVEOUT = 100
const MM_MITEL_TALKTO_LINE_WAVEIN = 101
const MM_MITEL_TALKTO_HANDSET_WAVEOUT = 102
const MM_MITEL_TALKTO_HANDSET_WAVEIN = 103
const MM_MITEL_TALKTO_BRIDGED_WAVEOUT = 104
const MM_MITEL_TALKTO_BRIDGED_WAVEIN = 105
const MM_MITEL_MPA_HANDSET_WAVEOUT = 200
const MM_MITEL_MPA_HANDSET_WAVEIN = 201
const MM_MITEL_MPA_HANDSFREE_WAVEOUT = 202
const MM_MITEL_MPA_HANDSFREE_WAVEIN = 203
const MM_MITEL_MPA_LINE1_WAVEOUT = 204
const MM_MITEL_MPA_LINE1_WAVEIN = 205
const MM_MITEL_MPA_LINE2_WAVEOUT = 206
const MM_MITEL_MPA_LINE2_WAVEIN = 207
const MM_MITEL_MEDIAPATH_WAVEOUT = 300
const MM_MITEL_MEDIAPATH_WAVEIN = 301
const MM_SNI_ACM_G721 = 1
const MM_EMU_APSSYNTH = 1
const MM_EMU_APSMIDIIN = 2
const MM_EMU_APSMIDIOUT = 3
const MM_EMU_APSWAVEIN = 4
const MM_EMU_APSWAVEOUT = 5
const MM_ARTISOFT_SBWAVEIN = 1
const MM_ARTISOFT_SBWAVEOUT = 2
const MM_TBS_TROPEZ_WAVEIN = 37
const MM_TBS_TROPEZ_WAVEOUT = 38
const MM_TBS_TROPEZ_AUX1 = 39
const MM_TBS_TROPEZ_AUX2 = 40
const MM_TBS_TROPEZ_LINE = 41
const MM_MMOTION_WAVEAUX = 1
const MM_MMOTION_WAVEOUT = 2
const MM_MMOTION_WAVEIN = 3
const MM_IBM_PCMCIA_WAVEIN = 11
const MM_IBM_PCMCIA_WAVEOUT = 12
const MM_IBM_PCMCIA_SYNTH = 13
const MM_IBM_PCMCIA_MIDIIN = 14
const MM_IBM_PCMCIA_MIDIOUT = 15
const MM_IBM_PCMCIA_AUX = 16
const MM_IBM_THINKPAD200 = 17
const MM_IBM_MWAVE_WAVEIN = 18
const MM_IBM_MWAVE_WAVEOUT = 19
const MM_IBM_MWAVE_MIXER = 20
const MM_IBM_MWAVE_MIDIIN = 21
const MM_IBM_MWAVE_MIDIOUT = 22
const MM_IBM_MWAVE_AUX = 23
const MM_IBM_WC_MIDIOUT = 30
const MM_IBM_WC_WAVEOUT = 31
const MM_IBM_WC_MIXEROUT = 33
const MM_VOCALTEC_WAVEOUT = 1
const MM_VOCALTEC_WAVEIN = 2
const MM_ROLAND_RAP10_MIDIOUT = 10
const MM_ROLAND_RAP10_MIDIIN = 11
const MM_ROLAND_RAP10_SYNTH = 12
const MM_ROLAND_RAP10_WAVEOUT = 13
const MM_ROLAND_RAP10_WAVEIN = 14
const MM_ROLAND_MPU401_MIDIOUT = 15
const MM_ROLAND_MPU401_MIDIIN = 16
const MM_ROLAND_SMPU_MIDIOUTA = 17
const MM_ROLAND_SMPU_MIDIOUTB = 18
const MM_ROLAND_SMPU_MIDIINA = 19
const MM_ROLAND_SMPU_MIDIINB = 20
const MM_ROLAND_SC7_MIDIOUT = 21
const MM_ROLAND_SC7_MIDIIN = 22
const MM_ROLAND_SERIAL_MIDIOUT = 23
const MM_ROLAND_SERIAL_MIDIIN = 24
const MM_ROLAND_SCP_MIDIOUT = 38
const MM_ROLAND_SCP_MIDIIN = 39
const MM_ROLAND_SCP_WAVEOUT = 40
const MM_ROLAND_SCP_WAVEIN = 41
const MM_ROLAND_SCP_MIXER = 42
const MM_ROLAND_SCP_AUX = 48
const MM_DSP_SOLUTIONS_WAVEOUT = 1
const MM_DSP_SOLUTIONS_WAVEIN = 2
const MM_DSP_SOLUTIONS_SYNTH = 3
const MM_DSP_SOLUTIONS_AUX = 4
const MM_NEC_73_86_SYNTH = 5
const MM_NEC_73_86_WAVEOUT = 6
const MM_NEC_73_86_WAVEIN = 7
const MM_NEC_26_SYNTH = 9
const MM_NEC_MPU401_MIDIOUT = 10
const MM_NEC_MPU401_MIDIIN = 11
const MM_NEC_JOYSTICK = 12
const MM_WANGLABS_WAVEIN1 = 1
const MM_WANGLABS_WAVEOUT1 = 2
const MM_TANDY_VISWAVEIN = 1
const MM_TANDY_VISWAVEOUT = 2
const MM_TANDY_VISBIOSSYNTH = 3
const MM_TANDY_SENS_MMAWAVEIN = 4
const MM_TANDY_SENS_MMAWAVEOUT = 5
const MM_TANDY_SENS_MMAMIDIIN = 6
const MM_TANDY_SENS_MMAMIDIOUT = 7
const MM_TANDY_SENS_VISWAVEOUT = 8
const MM_TANDY_PSSJWAVEIN = 9
const MM_TANDY_PSSJWAVEOUT = 10
const MM_ANTEX_SX12_WAVEIN = 1
const MM_ANTEX_SX12_WAVEOUT = 2
const MM_ANTEX_SX15_WAVEIN = 3
const MM_ANTEX_SX15_WAVEOUT = 4
const MM_ANTEX_VP625_WAVEIN = 5
const MM_ANTEX_VP625_WAVEOUT = 6
const MM_ANTEX_AUDIOPORT22_WAVEIN = 7
const MM_ANTEX_AUDIOPORT22_WAVEOUT = 8
const MM_ANTEX_AUDIOPORT22_FEEDTHRU = 9
const MM_INTELOPD_WAVEIN = 1
const MM_INTELOPD_WAVEOUT = 101
const MM_INTELOPD_AUX = 401
const MM_INTEL_NSPMODEMLINEIN = 501
const MM_INTEL_NSPMODEMLINEOUT = 502
const MM_VAL_MICROKEY_AP_WAVEIN = 1
const MM_VAL_MICROKEY_AP_WAVEOUT = 2
const MM_INTERACTIVE_WAVEIN = &h45
const MM_INTERACTIVE_WAVEOUT = &h45
const MM_YAMAHA_GSS_SYNTH = &h01
const MM_YAMAHA_GSS_WAVEOUT = &h02
const MM_YAMAHA_GSS_WAVEIN = &h03
const MM_YAMAHA_GSS_MIDIOUT = &h04
const MM_YAMAHA_GSS_MIDIIN = &h05
const MM_YAMAHA_GSS_AUX = &h06
const MM_YAMAHA_SERIAL_MIDIOUT = &h07
const MM_YAMAHA_SERIAL_MIDIIN = &h08
const MM_YAMAHA_OPL3SA_WAVEOUT = &h10
const MM_YAMAHA_OPL3SA_WAVEIN = &h11
const MM_YAMAHA_OPL3SA_FMSYNTH = &h12
const MM_YAMAHA_OPL3SA_YSYNTH = &h13
const MM_YAMAHA_OPL3SA_MIDIOUT = &h14
const MM_YAMAHA_OPL3SA_MIDIIN = &h15
const MM_YAMAHA_OPL3SA_MIXER = &h17
const MM_YAMAHA_OPL3SA_JOYSTICK = &h18
const MM_YAMAHA_YMF724LEG_MIDIOUT = &h19
const MM_YAMAHA_YMF724LEG_MIDIIN = &h1a
const MM_YAMAHA_YMF724_WAVEOUT = &h1b
const MM_YAMAHA_YMF724_WAVEIN = &h1c
const MM_YAMAHA_YMF724_MIDIOUT = &h1d
const MM_YAMAHA_YMF724_AUX = &h1e
const MM_YAMAHA_YMF724_MIXER = &h1f
const MM_YAMAHA_YMF724LEG_FMSYNTH = &h20
const MM_YAMAHA_YMF724LEG_MIXER = &h21
const MM_YAMAHA_SXG_MIDIOUT = &h22
const MM_YAMAHA_SXG_WAVEOUT = &h23
const MM_YAMAHA_SXG_MIXER = &h24
const MM_YAMAHA_ACXG_WAVEIN = &h25
const MM_YAMAHA_ACXG_WAVEOUT = &h26
const MM_YAMAHA_ACXG_MIDIOUT = &h27
const MM_YAMAHA_ACXG_MIXER = &h28
const MM_YAMAHA_ACXG_AUX = &h29
const MM_EVEREX_CARRIER = 1
const MM_ECHO_SYNTH = 1
const MM_ECHO_WAVEOUT = 2
const MM_ECHO_WAVEIN = 3
const MM_ECHO_MIDIOUT = 4
const MM_ECHO_MIDIIN = 5
const MM_ECHO_AUX = 6
const MM_SIERRA_ARIA_MIDIOUT = &h14
const MM_SIERRA_ARIA_MIDIIN = &h15
const MM_SIERRA_ARIA_SYNTH = &h16
const MM_SIERRA_ARIA_WAVEOUT = &h17
const MM_SIERRA_ARIA_WAVEIN = &h18
const MM_SIERRA_ARIA_AUX = &h19
const MM_SIERRA_ARIA_AUX2 = &h20
const MM_SIERRA_QUARTET_WAVEIN = &h50
const MM_SIERRA_QUARTET_WAVEOUT = &h51
const MM_SIERRA_QUARTET_MIDIIN = &h52
const MM_SIERRA_QUARTET_MIDIOUT = &h53
const MM_SIERRA_QUARTET_SYNTH = &h54
const MM_SIERRA_QUARTET_AUX_CD = &h55
const MM_SIERRA_QUARTET_AUX_LINE = &h56
const MM_SIERRA_QUARTET_AUX_MODEM = &h57
const MM_SIERRA_QUARTET_MIXER = &h58
const MM_CAT_WAVEOUT = 1
const MM_DSP_GROUP_TRUESPEECH = 1
const MM_MELABS_MIDI2GO = 1
const MM_ESS_AMWAVEOUT = &h01
const MM_ESS_AMWAVEIN = &h02
const MM_ESS_AMAUX = &h03
const MM_ESS_AMSYNTH = &h04
const MM_ESS_AMMIDIOUT = &h05
const MM_ESS_AMMIDIIN = &h06
const MM_ESS_MIXER = &h07
const MM_ESS_AUX_CD = &h08
const MM_ESS_MPU401_MIDIOUT = &h09
const MM_ESS_MPU401_MIDIIN = &h0a
const MM_ESS_ES488_WAVEOUT = &h10
const MM_ESS_ES488_WAVEIN = &h11
const MM_ESS_ES488_MIXER = &h12
const MM_ESS_ES688_WAVEOUT = &h13
const MM_ESS_ES688_WAVEIN = &h14
const MM_ESS_ES688_MIXER = &h15
const MM_ESS_ES1488_WAVEOUT = &h16
const MM_ESS_ES1488_WAVEIN = &h17
const MM_ESS_ES1488_MIXER = &h18
const MM_ESS_ES1688_WAVEOUT = &h19
const MM_ESS_ES1688_WAVEIN = &h1a
const MM_ESS_ES1688_MIXER = &h1b
const MM_ESS_ES1788_WAVEOUT = &h1c
const MM_ESS_ES1788_WAVEIN = &h1d
const MM_ESS_ES1788_MIXER = &h1e
const MM_ESS_ES1888_WAVEOUT = &h1f
const MM_ESS_ES1888_WAVEIN = &h20
const MM_ESS_ES1888_MIXER = &h21
const MM_ESS_ES1868_WAVEOUT = &h22
const MM_ESS_ES1868_WAVEIN = &h23
const MM_ESS_ES1868_MIXER = &h24
const MM_ESS_ES1878_WAVEOUT = &h25
const MM_ESS_ES1878_WAVEIN = &h26
const MM_ESS_ES1878_MIXER = &h27
const MM_CANOPUS_ACM_DVREX = 1
const MM_EPS_FMSND = 1
const MM_TRUEVISION_WAVEIN1 = 1
const MM_TRUEVISION_WAVEOUT1 = 2
const MM_AZTECH_MIDIOUT = 3
const MM_AZTECH_MIDIIN = 4
const MM_AZTECH_WAVEIN = 17
const MM_AZTECH_WAVEOUT = 18
const MM_AZTECH_FMSYNTH = 20
const MM_AZTECH_MIXER = 21
const MM_AZTECH_PRO16_WAVEIN = 33
const MM_AZTECH_PRO16_WAVEOUT = 34
const MM_AZTECH_PRO16_FMSYNTH = 38
const MM_AZTECH_DSP16_WAVEIN = 65
const MM_AZTECH_DSP16_WAVEOUT = 66
const MM_AZTECH_DSP16_FMSYNTH = 68
const MM_AZTECH_DSP16_WAVESYNTH = 70
const MM_AZTECH_NOVA16_WAVEIN = 71
const MM_AZTECH_NOVA16_WAVEOUT = 72
const MM_AZTECH_NOVA16_MIXER = 73
const MM_AZTECH_WASH16_WAVEIN = 74
const MM_AZTECH_WASH16_WAVEOUT = 75
const MM_AZTECH_WASH16_MIXER = 76
const MM_AZTECH_AUX_CD = 401
const MM_AZTECH_AUX_LINE = 402
const MM_AZTECH_AUX_MIC = 403
const MM_AZTECH_AUX = 404
const MM_VIDEOLOGIC_MSWAVEIN = 1
const MM_VIDEOLOGIC_MSWAVEOUT = 2
const MM_KORG_PCIF_MIDIOUT = 1
const MM_KORG_PCIF_MIDIIN = 2
const MM_KORG_1212IO_MSWAVEIN = 3
const MM_KORG_1212IO_MSWAVEOUT = 4
const MM_APT_ACE100CD = 1
const MM_ICS_WAVEDECK_WAVEOUT = 1
const MM_ICS_WAVEDECK_WAVEIN = 2
const MM_ICS_WAVEDECK_MIXER = 3
const MM_ICS_WAVEDECK_AUX = 4
const MM_ICS_WAVEDECK_SYNTH = 5
const MM_ICS_WAVEDEC_SB_WAVEOUT = 6
const MM_ICS_WAVEDEC_SB_WAVEIN = 7
const MM_ICS_WAVEDEC_SB_FM_MIDIOUT = 8
const MM_ICS_WAVEDEC_SB_MPU401_MIDIOUT = 9
const MM_ICS_WAVEDEC_SB_MPU401_MIDIIN = 10
const MM_ICS_WAVEDEC_SB_MIXER = 11
const MM_ICS_WAVEDEC_SB_AUX = 12
const MM_ICS_2115_LITE_MIDIOUT = 13
const MM_ICS_2120_LITE_MIDIOUT = 14
const MM_ITERATEDSYS_FUFCODEC = 1
const MM_METHEUS_ZIPPER = 1
const MM_WINNOV_CAVIAR_WAVEIN = 1
const MM_WINNOV_CAVIAR_WAVEOUT = 2
const MM_WINNOV_CAVIAR_VIDC = 3
const MM_WINNOV_CAVIAR_CHAMPAGNE = 4
const MM_WINNOV_CAVIAR_YUV8 = 5
const MM_NCR_BA_WAVEIN = 1
const MM_NCR_BA_WAVEOUT = 2
const MM_NCR_BA_SYNTH = 3
const MM_NCR_BA_AUX = 4
const MM_NCR_BA_MIXER = 5
const MM_AST_MODEMWAVE_WAVEIN = 13
const MM_AST_MODEMWAVE_WAVEOUT = 14
const MM_WILLOWPOND_FMSYNTH_STEREO = 20
const MM_WILLOWPOND_MPU401 = 21
const MM_WILLOWPOND_SNDPORT_WAVEIN = 100
const MM_WILLOWPOND_SNDPORT_WAVEOUT = 101
const MM_WILLOWPOND_SNDPORT_MIXER = 102
const MM_WILLOWPOND_SNDPORT_AUX = 103
const MM_WILLOWPOND_PH_WAVEIN = 104
const MM_WILLOWPOND_PH_WAVEOUT = 105
const MM_WILLOWPOND_PH_MIXER = 106
const MM_WILLOWPOND_PH_AUX = 107
const MM_WILLOPOND_SNDCOMM_WAVEIN = 108
const MM_WILLOWPOND_SNDCOMM_WAVEOUT = 109
const MM_WILLOWPOND_SNDCOMM_MIXER = 110
const MM_WILLOWPOND_SNDCOMM_AUX = 111
const MM_WILLOWPOND_GENERIC_WAVEIN = 112
const MM_WILLOWPOND_GENERIC_WAVEOUT = 113
const MM_WILLOWPOND_GENERIC_MIXER = 114
const MM_WILLOWPOND_GENERIC_AUX = 115
const MM_VITEC_VMAKER = 1
const MM_VITEC_VMPRO = 2
const MM_MOSCOM_VPC2400_IN = 1
const MM_MOSCOM_VPC2400_OUT = 2
const MM_SILICONSOFT_SC1_WAVEIN = 1
const MM_SILICONSOFT_SC1_WAVEOUT = 2
const MM_SILICONSOFT_SC2_WAVEIN = 3
const MM_SILICONSOFT_SC2_WAVEOUT = 4
const MM_SILICONSOFT_SOUNDJR2_WAVEOUT = 5
const MM_SILICONSOFT_SOUNDJR2PR_WAVEIN = 6
const MM_SILICONSOFT_SOUNDJR2PR_WAVEOUT = 7
const MM_SILICONSOFT_SOUNDJR3_WAVEOUT = 8
const MM_TTEWS_WAVEIN = 1
const MM_TTEWS_WAVEOUT = 2
const MM_TTEWS_MIDIIN = 3
const MM_TTEWS_MIDIOUT = 4
const MM_TTEWS_MIDISYNTH = 5
const MM_TTEWS_MIDIMONITOR = 6
const MM_TTEWS_VMIDIIN = 7
const MM_TTEWS_VMIDIOUT = 8
const MM_TTEWS_AUX = 9
const MM_TTEWS_MIXER = 10
const MM_MEDIASONIC_ACM_G723 = 1
const MM_MEDIASONIC_ICOM = 2
const MM_ICOM_WAVEIN = 3
const MM_ICOM_WAVEOUT = 4
const MM_ICOM_MIXER = 5
const MM_ICOM_AUX = 6
const MM_ICOM_LINE = 7
const MM_SANYO_ACM_LD_ADPCM = 1
const MM_AHEAD_MULTISOUND = 1
const MM_AHEAD_SOUNDBLASTER = 2
const MM_AHEAD_PROAUDIO = 3
const MM_AHEAD_GENERIC = 4
const MM_OLIVETTI_WAVEIN = 1
const MM_OLIVETTI_WAVEOUT = 2
const MM_OLIVETTI_MIXER = 3
const MM_OLIVETTI_AUX = 4
const MM_OLIVETTI_MIDIIN = 5
const MM_OLIVETTI_MIDIOUT = 6
const MM_OLIVETTI_SYNTH = 7
const MM_OLIVETTI_JOYSTICK = 8
const MM_OLIVETTI_ACM_GSM = 9
const MM_OLIVETTI_ACM_ADPCM = 10
const MM_OLIVETTI_ACM_CELP = 11
const MM_OLIVETTI_ACM_SBC = 12
const MM_OLIVETTI_ACM_OPR = 13
const MM_IOMAGIC_TEMPO_WAVEOUT = 1
const MM_IOMAGIC_TEMPO_WAVEIN = 2
const MM_IOMAGIC_TEMPO_SYNTH = 3
const MM_IOMAGIC_TEMPO_MIDIOUT = 4
const MM_IOMAGIC_TEMPO_MXDOUT = 5
const MM_IOMAGIC_TEMPO_AUXOUT = 6
const MM_MATSUSHITA_WAVEIN = 1
const MM_MATSUSHITA_WAVEOUT = 2
const MM_MATSUSHITA_FMSYNTH_STEREO = 3
const MM_MATSUSHITA_MIXER = 4
const MM_MATSUSHITA_AUX = 5
const MM_NEWMEDIA_WAVJAMMER = 1
const MM_LYRRUS_BRIDGE_GUITAR = 1
const MM_OPTI_M16_FMSYNTH_STEREO = &h0001
const MM_OPTI_M16_MIDIIN = &h0002
const MM_OPTI_M16_MIDIOUT = &h0003
const MM_OPTI_M16_WAVEIN = &h0004
const MM_OPTI_M16_WAVEOUT = &h0005
const MM_OPTI_M16_MIXER = &h0006
const MM_OPTI_M16_AUX = &h0007
const MM_OPTI_P16_FMSYNTH_STEREO = &h0010
const MM_OPTI_P16_MIDIIN = &h0011
const MM_OPTI_P16_MIDIOUT = &h0012
const MM_OPTI_P16_WAVEIN = &h0013
const MM_OPTI_P16_WAVEOUT = &h0014
const MM_OPTI_P16_MIXER = &h0015
const MM_OPTI_P16_AUX = &h0016
const MM_OPTI_M32_WAVEIN = &h0020
const MM_OPTI_M32_WAVEOUT = &h0021
const MM_OPTI_M32_MIDIIN = &h0022
const MM_OPTI_M32_MIDIOUT = &h0023
const MM_OPTI_M32_SYNTH_STEREO = &h0024
const MM_OPTI_M32_MIXER = &h0025
const MM_OPTI_M32_AUX = &h0026
const MM_COMPAQ_BB_WAVEIN = 1
const MM_COMPAQ_BB_WAVEOUT = 2
const MM_COMPAQ_BB_WAVEAUX = 3
const MM_MPTUS_SPWAVEOUT = 1
const MM_LERNOUT_ANDHAUSPIE_LHCODECACM = 1
const MM_DIGITAL_AV320_WAVEIN = 1
const MM_DIGITAL_AV320_WAVEOUT = 2
const MM_DIGITAL_ACM_G723 = 3
const MM_DIGITAL_ICM_H263 = 4
const MM_DIGITAL_ICM_H261 = 5
const MM_MOTU_MTP_MIDIOUT_ALL = 100
const MM_MOTU_MTP_MIDIIN_1 = 101
const MM_MOTU_MTP_MIDIOUT_1 = 101
const MM_MOTU_MTP_MIDIIN_2 = 102
const MM_MOTU_MTP_MIDIOUT_2 = 102
const MM_MOTU_MTP_MIDIIN_3 = 103
const MM_MOTU_MTP_MIDIOUT_3 = 103
const MM_MOTU_MTP_MIDIIN_4 = 104
const MM_MOTU_MTP_MIDIOUT_4 = 104
const MM_MOTU_MTP_MIDIIN_5 = 105
const MM_MOTU_MTP_MIDIOUT_5 = 105
const MM_MOTU_MTP_MIDIIN_6 = 106
const MM_MOTU_MTP_MIDIOUT_6 = 106
const MM_MOTU_MTP_MIDIIN_7 = 107
const MM_MOTU_MTP_MIDIOUT_7 = 107
const MM_MOTU_MTP_MIDIIN_8 = 108
const MM_MOTU_MTP_MIDIOUT_8 = 108
const MM_MOTU_MTPII_MIDIOUT_ALL = 200
const MM_MOTU_MTPII_MIDIIN_SYNC = 200
const MM_MOTU_MTPII_MIDIIN_1 = 201
const MM_MOTU_MTPII_MIDIOUT_1 = 201
const MM_MOTU_MTPII_MIDIIN_2 = 202
const MM_MOTU_MTPII_MIDIOUT_2 = 202
const MM_MOTU_MTPII_MIDIIN_3 = 203
const MM_MOTU_MTPII_MIDIOUT_3 = 203
const MM_MOTU_MTPII_MIDIIN_4 = 204
const MM_MOTU_MTPII_MIDIOUT_4 = 204
const MM_MOTU_MTPII_MIDIIN_5 = 205
const MM_MOTU_MTPII_MIDIOUT_5 = 205
const MM_MOTU_MTPII_MIDIIN_6 = 206
const MM_MOTU_MTPII_MIDIOUT_6 = 206
const MM_MOTU_MTPII_MIDIIN_7 = 207
const MM_MOTU_MTPII_MIDIOUT_7 = 207
const MM_MOTU_MTPII_MIDIIN_8 = 208
const MM_MOTU_MTPII_MIDIOUT_8 = 208
const MM_MOTU_MTPII_NET_MIDIIN_1 = 209
const MM_MOTU_MTPII_NET_MIDIOUT_1 = 209
const MM_MOTU_MTPII_NET_MIDIIN_2 = 210
const MM_MOTU_MTPII_NET_MIDIOUT_2 = 210
const MM_MOTU_MTPII_NET_MIDIIN_3 = 211
const MM_MOTU_MTPII_NET_MIDIOUT_3 = 211
const MM_MOTU_MTPII_NET_MIDIIN_4 = 212
const MM_MOTU_MTPII_NET_MIDIOUT_4 = 212
const MM_MOTU_MTPII_NET_MIDIIN_5 = 213
const MM_MOTU_MTPII_NET_MIDIOUT_5 = 213
const MM_MOTU_MTPII_NET_MIDIIN_6 = 214
const MM_MOTU_MTPII_NET_MIDIOUT_6 = 214
const MM_MOTU_MTPII_NET_MIDIIN_7 = 215
const MM_MOTU_MTPII_NET_MIDIOUT_7 = 215
const MM_MOTU_MTPII_NET_MIDIIN_8 = 216
const MM_MOTU_MTPII_NET_MIDIOUT_8 = 216
const MM_MOTU_MXP_MIDIIN_MIDIOUT_ALL = 300
const MM_MOTU_MXP_MIDIIN_SYNC = 300
const MM_MOTU_MXP_MIDIIN_MIDIIN_1 = 301
const MM_MOTU_MXP_MIDIIN_MIDIOUT_1 = 301
const MM_MOTU_MXP_MIDIIN_MIDIIN_2 = 302
const MM_MOTU_MXP_MIDIIN_MIDIOUT_2 = 302
const MM_MOTU_MXP_MIDIIN_MIDIIN_3 = 303
const MM_MOTU_MXP_MIDIIN_MIDIOUT_3 = 303
const MM_MOTU_MXP_MIDIIN_MIDIIN_4 = 304
const MM_MOTU_MXP_MIDIIN_MIDIOUT_4 = 304
const MM_MOTU_MXP_MIDIIN_MIDIIN_5 = 305
const MM_MOTU_MXP_MIDIIN_MIDIOUT_5 = 305
const MM_MOTU_MXP_MIDIIN_MIDIIN_6 = 306
const MM_MOTU_MXP_MIDIIN_MIDIOUT_6 = 306
const MM_MOTU_MXPMPU_MIDIOUT_ALL = 400
const MM_MOTU_MXPMPU_MIDIIN_SYNC = 400
const MM_MOTU_MXPMPU_MIDIIN_1 = 401
const MM_MOTU_MXPMPU_MIDIOUT_1 = 401
const MM_MOTU_MXPMPU_MIDIIN_2 = 402
const MM_MOTU_MXPMPU_MIDIOUT_2 = 402
const MM_MOTU_MXPMPU_MIDIIN_3 = 403
const MM_MOTU_MXPMPU_MIDIOUT_3 = 403
const MM_MOTU_MXPMPU_MIDIIN_4 = 404
const MM_MOTU_MXPMPU_MIDIOUT_4 = 404
const MM_MOTU_MXPMPU_MIDIIN_5 = 405
const MM_MOTU_MXPMPU_MIDIOUT_5 = 405
const MM_MOTU_MXPMPU_MIDIIN_6 = 406
const MM_MOTU_MXPMPU_MIDIOUT_6 = 406
const MM_MOTU_MXN_MIDIOUT_ALL = 500
const MM_MOTU_MXN_MIDIIN_SYNC = 500
const MM_MOTU_MXN_MIDIIN_1 = 501
const MM_MOTU_MXN_MIDIOUT_1 = 501
const MM_MOTU_MXN_MIDIIN_2 = 502
const MM_MOTU_MXN_MIDIOUT_2 = 502
const MM_MOTU_MXN_MIDIIN_3 = 503
const MM_MOTU_MXN_MIDIOUT_3 = 503
const MM_MOTU_MXN_MIDIIN_4 = 504
const MM_MOTU_MXN_MIDIOUT_4 = 504
const MM_MOTU_FLYER_MIDI_IN_SYNC = 600
const MM_MOTU_FLYER_MIDI_IN_A = 601
const MM_MOTU_FLYER_MIDI_OUT_A = 601
const MM_MOTU_FLYER_MIDI_IN_B = 602
const MM_MOTU_FLYER_MIDI_OUT_B = 602
const MM_MOTU_PKX_MIDI_IN_SYNC = 700
const MM_MOTU_PKX_MIDI_IN_A = 701
const MM_MOTU_PKX_MIDI_OUT_A = 701
const MM_MOTU_PKX_MIDI_IN_B = 702
const MM_MOTU_PKX_MIDI_OUT_B = 702
const MM_MOTU_DTX_MIDI_IN_SYNC = 800
const MM_MOTU_DTX_MIDI_IN_A = 801
const MM_MOTU_DTX_MIDI_OUT_A = 801
const MM_MOTU_DTX_MIDI_IN_B = 802
const MM_MOTU_DTX_MIDI_OUT_B = 802
const MM_MOTU_MTPAV_MIDIOUT_ALL = 900
const MM_MOTU_MTPAV_MIDIIN_SYNC = 900
const MM_MOTU_MTPAV_MIDIIN_1 = 901
const MM_MOTU_MTPAV_MIDIOUT_1 = 901
const MM_MOTU_MTPAV_MIDIIN_2 = 902
const MM_MOTU_MTPAV_MIDIOUT_2 = 902
const MM_MOTU_MTPAV_MIDIIN_3 = 903
const MM_MOTU_MTPAV_MIDIOUT_3 = 903
const MM_MOTU_MTPAV_MIDIIN_4 = 904
const MM_MOTU_MTPAV_MIDIOUT_4 = 904
const MM_MOTU_MTPAV_MIDIIN_5 = 905
const MM_MOTU_MTPAV_MIDIOUT_5 = 905
const MM_MOTU_MTPAV_MIDIIN_6 = 906
const MM_MOTU_MTPAV_MIDIOUT_6 = 906
const MM_MOTU_MTPAV_MIDIIN_7 = 907
const MM_MOTU_MTPAV_MIDIOUT_7 = 907
const MM_MOTU_MTPAV_MIDIIN_8 = 908
const MM_MOTU_MTPAV_MIDIOUT_8 = 908
const MM_MOTU_MTPAV_NET_MIDIIN_1 = 909
const MM_MOTU_MTPAV_NET_MIDIOUT_1 = 909
const MM_MOTU_MTPAV_NET_MIDIIN_2 = 910
const MM_MOTU_MTPAV_NET_MIDIOUT_2 = 910
const MM_MOTU_MTPAV_NET_MIDIIN_3 = 911
const MM_MOTU_MTPAV_NET_MIDIOUT_3 = 911
const MM_MOTU_MTPAV_NET_MIDIIN_4 = 912
const MM_MOTU_MTPAV_NET_MIDIOUT_4 = 912
const MM_MOTU_MTPAV_NET_MIDIIN_5 = 913
const MM_MOTU_MTPAV_NET_MIDIOUT_5 = 913
const MM_MOTU_MTPAV_NET_MIDIIN_6 = 914
const MM_MOTU_MTPAV_NET_MIDIOUT_6 = 914
const MM_MOTU_MTPAV_NET_MIDIIN_7 = 915
const MM_MOTU_MTPAV_NET_MIDIOUT_7 = 915
const MM_MOTU_MTPAV_NET_MIDIIN_8 = 916
const MM_MOTU_MTPAV_NET_MIDIOUT_8 = 916
const MM_MOTU_MTPAV_MIDIIN_ADAT = 917
const MM_MOTU_MTPAV_MIDIOUT_ADAT = 917
const MM_MOTU_MXPXT_MIDIIN_SYNC = 1000
const MM_MOTU_MXPXT_MIDIOUT_ALL = 1000
const MM_MOTU_MXPXT_MIDIIN_1 = 1001
const MM_MOTU_MXPXT_MIDIOUT_1 = 1001
const MM_MOTU_MXPXT_MIDIOUT_2 = 1002
const MM_MOTU_MXPXT_MIDIIN_2 = 1002
const MM_MOTU_MXPXT_MIDIIN_3 = 1003
const MM_MOTU_MXPXT_MIDIOUT_3 = 1003
const MM_MOTU_MXPXT_MIDIIN_4 = 1004
const MM_MOTU_MXPXT_MIDIOUT_4 = 1004
const MM_MOTU_MXPXT_MIDIIN_5 = 1005
const MM_MOTU_MXPXT_MIDIOUT_5 = 1005
const MM_MOTU_MXPXT_MIDIOUT_6 = 1006
const MM_MOTU_MXPXT_MIDIIN_6 = 1006
const MM_MOTU_MXPXT_MIDIOUT_7 = 1007
const MM_MOTU_MXPXT_MIDIIN_7 = 1007
const MM_MOTU_MXPXT_MIDIOUT_8 = 1008
const MM_MOTU_MXPXT_MIDIIN_8 = 1008
const MM_WORKBIT_MIXER = 1
const MM_WORKBIT_WAVEOUT = 2
const MM_WORKBIT_WAVEIN = 3
const MM_WORKBIT_MIDIIN = 4
const MM_WORKBIT_MIDIOUT = 5
const MM_WORKBIT_FMSYNTH = 6
const MM_WORKBIT_AUX = 7
const MM_WORKBIT_JOYSTICK = 8
const MM_OSITECH_TRUMPCARD = 1
const MM_MIRO_MOVIEPRO = 1
const MM_MIRO_VIDEOD1 = 2
const MM_MIRO_VIDEODC1TV = 3
const MM_MIRO_VIDEOTD = 4
const MM_MIRO_DC30_WAVEOUT = 5
const MM_MIRO_DC30_WAVEIN = 6
const MM_MIRO_DC30_MIX = 7
const MM_ISOLUTION_PASCAL = 1
const MM_VOICEMIXER = 1
const ROCKWELL_WA1_WAVEIN = 100
const ROCKWELL_WA1_WAVEOUT = 101
const ROCKWELL_WA1_SYNTH = 102
const ROCKWELL_WA1_MIXER = 103
const ROCKWELL_WA1_MPU401_IN = 104
const ROCKWELL_WA1_MPU401_OUT = 105
const ROCKWELL_WA2_WAVEIN = 200
const ROCKWELL_WA2_WAVEOUT = 201
const ROCKWELL_WA2_SYNTH = 202
const ROCKWELL_WA2_MIXER = 203
const ROCKWELL_WA2_MPU401_IN = 204
const ROCKWELL_WA2_MPU401_OUT = 205
const MM_VOXWARE_CODEC = 1
const MM_NORTEL_MPXAC_WAVEIN = 1
const MM_NORTEL_MPXAC_WAVEOUT = 2
const MM_ADDX_PCTV_DIGITALMIX = 1
const MM_ADDX_PCTV_WAVEIN = 2
const MM_ADDX_PCTV_WAVEOUT = 3
const MM_ADDX_PCTV_MIXER = 4
const MM_ADDX_PCTV_AUX_CD = 5
const MM_ADDX_PCTV_AUX_LINE = 6
const MM_WILDCAT_AUTOSCOREMIDIIN = 1
const MM_RHETOREX_WAVEIN = 1
const MM_RHETOREX_WAVEOUT = 2
const MM_BTV_WAVEIN = 1
const MM_BTV_WAVEOUT = 2
const MM_BTV_MIDIIN = 3
const MM_BTV_MIDIOUT = 4
const MM_BTV_MIDISYNTH = 5
const MM_BTV_AUX_LINE = 6
const MM_BTV_AUX_MIC = 7
const MM_BTV_AUX_CD = 8
const MM_BTV_DIGITALIN = 9
const MM_BTV_DIGITALOUT = 10
const MM_BTV_MIDIWAVESTREAM = 11
const MM_BTV_MIXER = 12
const MM_ENSONIQ_SOUNDSCAPE = &h10
const MM_SOUNDSCAPE_WAVEOUT = MM_ENSONIQ_SOUNDSCAPE + 1
const MM_SOUNDSCAPE_WAVEOUT_AUX = MM_ENSONIQ_SOUNDSCAPE + 2
const MM_SOUNDSCAPE_WAVEIN = MM_ENSONIQ_SOUNDSCAPE + 3
const MM_SOUNDSCAPE_MIDIOUT = MM_ENSONIQ_SOUNDSCAPE + 4
const MM_SOUNDSCAPE_MIDIIN = MM_ENSONIQ_SOUNDSCAPE + 5
const MM_SOUNDSCAPE_SYNTH = MM_ENSONIQ_SOUNDSCAPE + 6
const MM_SOUNDSCAPE_MIXER = MM_ENSONIQ_SOUNDSCAPE + 7
const MM_SOUNDSCAPE_AUX = MM_ENSONIQ_SOUNDSCAPE + 8
const MM_NVIDIA_WAVEOUT = 1
const MM_NVIDIA_WAVEIN = 2
const MM_NVIDIA_MIDIOUT = 3
const MM_NVIDIA_MIDIIN = 4
const MM_NVIDIA_GAMEPORT = 5
const MM_NVIDIA_MIXER = 6
const MM_NVIDIA_AUX = 7
const MM_OKSORI_BASE = 0
const MM_OKSORI_OSR8_WAVEOUT = MM_OKSORI_BASE + 1
const MM_OKSORI_OSR8_WAVEIN = MM_OKSORI_BASE + 2
const MM_OKSORI_OSR16_WAVEOUT = MM_OKSORI_BASE + 3
const MM_OKSORI_OSR16_WAVEIN = MM_OKSORI_BASE + 4
const MM_OKSORI_FM_OPL4 = MM_OKSORI_BASE + 5
const MM_OKSORI_MIX_MASTER = MM_OKSORI_BASE + 6
const MM_OKSORI_MIX_WAVE = MM_OKSORI_BASE + 7
const MM_OKSORI_MIX_FM = MM_OKSORI_BASE + 8
const MM_OKSORI_MIX_LINE = MM_OKSORI_BASE + 9
const MM_OKSORI_MIX_CD = MM_OKSORI_BASE + 10
const MM_OKSORI_MIX_MIC = MM_OKSORI_BASE + 11
const MM_OKSORI_MIX_ECHO = MM_OKSORI_BASE + 12
const MM_OKSORI_MIX_AUX1 = MM_OKSORI_BASE + 13
const MM_OKSORI_MIX_LINE1 = MM_OKSORI_BASE + 14
const MM_OKSORI_EXT_MIC1 = MM_OKSORI_BASE + 15
const MM_OKSORI_EXT_MIC2 = MM_OKSORI_BASE + 16
const MM_OKSORI_MIDIOUT = MM_OKSORI_BASE + 17
const MM_OKSORI_MIDIIN = MM_OKSORI_BASE + 18
const MM_OKSORI_MPEG_CDVISION = MM_OKSORI_BASE + 19
const MM_DIACOUSTICS_DRUM_ACTION = 1
const MM_KAY_ELEMETRICS_CSL = &h4300
const MM_KAY_ELEMETRICS_CSL_DAT = &h4308
const MM_KAY_ELEMETRICS_CSL_4CHANNEL = &h4309
const MM_CRYSTAL_CS4232_WAVEIN = 1
const MM_CRYSTAL_CS4232_WAVEOUT = 2
const MM_CRYSTAL_CS4232_WAVEMIXER = 3
const MM_CRYSTAL_CS4232_WAVEAUX_AUX1 = 4
const MM_CRYSTAL_CS4232_WAVEAUX_AUX2 = 5
const MM_CRYSTAL_CS4232_WAVEAUX_LINE = 6
const MM_CRYSTAL_CS4232_WAVEAUX_MONO = 7
const MM_CRYSTAL_CS4232_WAVEAUX_MASTER = 8
const MM_CRYSTAL_CS4232_MIDIIN = 9
const MM_CRYSTAL_CS4232_MIDIOUT = 10
const MM_CRYSTAL_CS4232_INPUTGAIN_AUX1 = 13
const MM_CRYSTAL_CS4232_INPUTGAIN_LOOP = 14
const MM_CRYSTAL_SOUND_FUSION_WAVEIN = 21
const MM_CRYSTAL_SOUND_FUSION_WAVEOUT = 22
const MM_CRYSTAL_SOUND_FUSION_MIXER = 23
const MM_CRYSTAL_SOUND_FUSION_MIDIIN = 24
const MM_CRYSTAL_SOUND_FUSION_MIDIOUT = 25
const MM_CRYSTAL_SOUND_FUSION_JOYSTICK = 26
const MM_QUARTERDECK_LHWAVEIN = 0
const MM_QUARTERDECK_LHWAVEOUT = 1
const MM_TDK_MW_MIDI_SYNTH = 1
const MM_TDK_MW_MIDI_IN = 2
const MM_TDK_MW_MIDI_OUT = 3
const MM_TDK_MW_WAVE_IN = 4
const MM_TDK_MW_WAVE_OUT = 5
const MM_TDK_MW_AUX = 6
const MM_TDK_MW_MIXER = 10
const MM_TDK_MW_AUX_MASTER = 100
const MM_TDK_MW_AUX_BASS = 101
const MM_TDK_MW_AUX_TREBLE = 102
const MM_TDK_MW_AUX_MIDI_VOL = 103
const MM_TDK_MW_AUX_WAVE_VOL = 104
const MM_TDK_MW_AUX_WAVE_RVB = 105
const MM_TDK_MW_AUX_WAVE_CHR = 106
const MM_TDK_MW_AUX_VOL = 107
const MM_TDK_MW_AUX_RVB = 108
const MM_TDK_MW_AUX_CHR = 109
const MM_DIGITAL_AUDIO_LABS_TC = &h01
const MM_DIGITAL_AUDIO_LABS_DOC = &h02
const MM_DIGITAL_AUDIO_LABS_V8 = &h10
const MM_DIGITAL_AUDIO_LABS_CPRO = &h11
const MM_DIGITAL_AUDIO_LABS_VP = &h12
const MM_DIGITAL_AUDIO_LABS_CDLX = &h13
const MM_DIGITAL_AUDIO_LABS_CTDIF = &h14
const MM_SEERSYS_SEERSYNTH = 1
const MM_SEERSYS_SEERWAVE = 2
const MM_SEERSYS_SEERMIX = 3
const MM_SEERSYS_WAVESYNTH = 4
const MM_SEERSYS_WAVESYNTH_WG = 5
const MM_SEERSYS_REALITY = 6
const MM_OSPREY_1000WAVEIN = 1
const MM_OSPREY_1000WAVEOUT = 2
const MM_SOUNDESIGNS_WAVEIN = 1
const MM_SOUNDESIGNS_WAVEOUT = 2
const MM_SSP_SNDFESWAVEIN = 1
const MM_SSP_SNDFESWAVEOUT = 2
const MM_SSP_SNDFESMIDIIN = 3
const MM_SSP_SNDFESMIDIOUT = 4
const MM_SSP_SNDFESSYNTH = 5
const MM_SSP_SNDFESMIX = 6
const MM_SSP_SNDFESAUX = 7
const MM_ECS_AADF_MIDI_IN = 10
const MM_ECS_AADF_MIDI_OUT = 11
const MM_ECS_AADF_WAVE2MIDI_IN = 12
const MM_AMD_INTERWAVE_WAVEIN = 1
const MM_AMD_INTERWAVE_WAVEOUT = 2
const MM_AMD_INTERWAVE_SYNTH = 3
const MM_AMD_INTERWAVE_MIXER1 = 4
const MM_AMD_INTERWAVE_MIXER2 = 5
const MM_AMD_INTERWAVE_JOYSTICK = 6
const MM_AMD_INTERWAVE_EX_CD = 7
const MM_AMD_INTERWAVE_MIDIIN = 8
const MM_AMD_INTERWAVE_MIDIOUT = 9
const MM_AMD_INTERWAVE_AUX1 = 10
const MM_AMD_INTERWAVE_AUX2 = 11
const MM_AMD_INTERWAVE_AUX_MIC = 12
const MM_AMD_INTERWAVE_AUX_CD = 13
const MM_AMD_INTERWAVE_MONO_IN = 14
const MM_AMD_INTERWAVE_MONO_OUT = 15
const MM_AMD_INTERWAVE_EX_TELEPHONY = 16
const MM_AMD_INTERWAVE_WAVEOUT_BASE = 17
const MM_AMD_INTERWAVE_WAVEOUT_TREBLE = 18
const MM_AMD_INTERWAVE_STEREO_ENHANCED = 19
const MM_COREDYNAMICS_DYNAMIXHR = 1
const MM_COREDYNAMICS_DYNASONIX_SYNTH = 2
const MM_COREDYNAMICS_DYNASONIX_MIDI_IN = 3
const MM_COREDYNAMICS_DYNASONIX_MIDI_OUT = 4
const MM_COREDYNAMICS_DYNASONIX_WAVE_IN = 5
const MM_COREDYNAMICS_DYNASONIX_WAVE_OUT = 6
const MM_COREDYNAMICS_DYNASONIX_AUDIO_IN = 7
const MM_COREDYNAMICS_DYNASONIX_AUDIO_OUT = 8
const MM_COREDYNAMICS_DYNAGRAFX_VGA = 9
const MM_COREDYNAMICS_DYNAGRAFX_WAVE_IN = 10
const MM_COREDYNAMICS_DYNAGRAFX_WAVE_OUT = 11
const MM_CANAM_CBXWAVEOUT = 1
const MM_CANAM_CBXWAVEIN = 2
const MM_SOFTSOUND_CODEC = 1
const MM_NORRIS_VOICELINK = 1
const MM_DDD_MIDILINK_MIDIIN = 1
const MM_DDD_MIDILINK_MIDIOUT = 2
const MM_EUPHONICS_AUX_CD = 1
const MM_EUPHONICS_AUX_LINE = 2
const MM_EUPHONICS_AUX_MASTER = 3
const MM_EUPHONICS_AUX_MIC = 4
const MM_EUPHONICS_AUX_MIDI = 5
const MM_EUPHONICS_AUX_WAVE = 6
const MM_EUPHONICS_FMSYNTH_MONO = 7
const MM_EUPHONICS_FMSYNTH_STEREO = 8
const MM_EUPHONICS_MIDIIN = 9
const MM_EUPHONICS_MIDIOUT = 10
const MM_EUPHONICS_MIXER = 11
const MM_EUPHONICS_WAVEIN = 12
const MM_EUPHONICS_WAVEOUT = 13
const MM_EUPHONICS_EUSYNTH = 14
const CRYSTAL_NET_SFM_CODEC = 1
const MM_CHROMATIC_M1 = &h0001
const MM_CHROMATIC_M1_WAVEIN = &h0002
const MM_CHROMATIC_M1_WAVEOUT = &h0003
const MM_CHROMATIC_M1_FMSYNTH = &h0004
const MM_CHROMATIC_M1_MIXER = &h0005
const MM_CHROMATIC_M1_AUX = &h0006
const MM_CHROMATIC_M1_AUX_CD = &h0007
const MM_CHROMATIC_M1_MIDIIN = &h0008
const MM_CHROMATIC_M1_MIDIOUT = &h0009
const MM_CHROMATIC_M1_WTSYNTH = &h0010
const MM_CHROMATIC_M1_MPEGWAVEIN = &h0011
const MM_CHROMATIC_M1_MPEGWAVEOUT = &h0012
const MM_CHROMATIC_M2 = &h0013
const MM_CHROMATIC_M2_WAVEIN = &h0014
const MM_CHROMATIC_M2_WAVEOUT = &h0015
const MM_CHROMATIC_M2_FMSYNTH = &h0016
const MM_CHROMATIC_M2_MIXER = &h0017
const MM_CHROMATIC_M2_AUX = &h0018
const MM_CHROMATIC_M2_AUX_CD = &h0019
const MM_CHROMATIC_M2_MIDIIN = &h0020
const MM_CHROMATIC_M2_MIDIOUT = &h0021
const MM_CHROMATIC_M2_WTSYNTH = &h0022
const MM_CHROMATIC_M2_MPEGWAVEIN = &h0023
const MM_CHROMATIC_M2_MPEGWAVEOUT = &h0024
const MM_VIENNASYS_TSP_WAVE_DRIVER = 1
const MM_CONNECTIX_VIDEC_CODEC = 1
const MM_GADGETLABS_WAVE44_WAVEIN = 1
const MM_GADGETLABS_WAVE44_WAVEOUT = 2
const MM_GADGETLABS_WAVE42_WAVEIN = 3
const MM_GADGETLABS_WAVE42_WAVEOUT = 4
const MM_GADGETLABS_WAVE4_MIDIIN = 5
const MM_GADGETLABS_WAVE4_MIDIOUT = 6
const MM_FRONTIER_WAVECENTER_MIDIIN = 1
const MM_FRONTIER_WAVECENTER_MIDIOUT = 2
const MM_FRONTIER_WAVECENTER_WAVEIN = 3
const MM_FRONTIER_WAVECENTER_WAVEOUT = 4
const MM_VIONA_QVINPCI_MIXER = 1
const MM_VIONA_QVINPCI_WAVEIN = 2
const MM_VIONAQVINPCI_WAVEOUT = 3
const MM_VIONA_BUSTER_MIXER = 4
const MM_VIONA_CINEMASTER_MIXER = 5
const MM_VIONA_CONCERTO_MIXER = 6
const MM_CASIO_WP150_MIDIOUT = 1
const MM_CASIO_WP150_MIDIIN = 2
const MM_CASIO_LSG_MIDIOUT = 3
const MM_DIMD_PLATFORM = 0
const MM_DIMD_DIRSOUND = 1
const MM_DIMD_VIRTMPU = 2
const MM_DIMD_VIRTSB = 3
const MM_DIMD_VIRTJOY = 4
const MM_DIMD_WAVEIN = 5
const MM_DIMD_WAVEOUT = 6
const MM_DIMD_MIDIIN = 7
const MM_DIMD_MIDIOUT = 8
const MM_DIMD_AUX_LINE = 9
const MM_DIMD_MIXER = 10
const MM_DIMD_WSS_WAVEIN = 14
const MM_DIMD_WSS_WAVEOUT = 15
const MM_DIMD_WSS_MIXER = 17
const MM_DIMD_WSS_AUX = 21
const MM_DIMD_WSS_SYNTH = 76
const MM_S3_WAVEOUT = 1
const MM_S3_WAVEIN = 2
const MM_S3_MIDIOUT = 3
const MM_S3_MIDIIN = 4
const MM_S3_FMSYNTH = 5
const MM_S3_MIXER = 6
const MM_S3_AUX = 7
const MM_VKC_MPU401_MIDIIN = &h0100
const MM_VKC_SERIAL_MIDIIN = &h0101
const MM_VKC_MPU401_MIDIOUT = &h0200
const MM_VKC_SERIAL_MIDIOUT = &h0201
const MM_ZEFIRO_ZA2 = 2
const MM_FHGIIS_MPEGLAYER3_DECODE = 9
const MM_FHGIIS_MPEGLAYER3 = 10
const MM_FHGIIS_MPEGLAYER3_LITE = 10
const MM_FHGIIS_MPEGLAYER3_BASIC = 11
const MM_FHGIIS_MPEGLAYER3_ADVANCED = 12
const MM_FHGIIS_MPEGLAYER3_PROFESSIONAL = 13
const MM_FHGIIS_MPEGLAYER3_ADVANCEDPLUS = 14
const MM_QUICKNET_PJWAVEIN = 1
const MM_QUICKNET_PJWAVEOUT = 2
const MM_SICRESOURCE_SSO3D = 2
const MM_SICRESOURCE_SSOW3DI = 3
const MM_NEOMAGIC_SYNTH = 1
const MM_NEOMAGIC_WAVEOUT = 2
const MM_NEOMAGIC_WAVEIN = 3
const MM_NEOMAGIC_MIDIOUT = 4
const MM_NEOMAGIC_MIDIIN = 5
const MM_NEOMAGIC_AUX = 6
const MM_NEOMAGIC_MW3DX_WAVEOUT = 10
const MM_NEOMAGIC_MW3DX_WAVEIN = 11
const MM_NEOMAGIC_MW3DX_MIDIOUT = 12
const MM_NEOMAGIC_MW3DX_MIDIIN = 13
const MM_NEOMAGIC_MW3DX_FMSYNTH = 14
const MM_NEOMAGIC_MW3DX_GMSYNTH = 15
const MM_NEOMAGIC_MW3DX_MIXER = 16
const MM_NEOMAGIC_MW3DX_AUX = 17
const MM_NEOMAGIC_MWAVE_WAVEOUT = 20
const MM_NEOMAGIC_MWAVE_WAVEIN = 21
const MM_NEOMAGIC_MWAVE_MIDIOUT = 22
const MM_NEOMAGIC_MWAVE_MIDIIN = 23
const MM_NEOMAGIC_MWAVE_MIXER = 24
const MM_NEOMAGIC_MWAVE_AUX = 25
const MM_MERGING_MPEGL3 = 1
const MM_XIRLINK_VISIONLINK = 1
const MM_OTI_611WAVEIN = 5
const MM_OTI_611WAVEOUT = 6
const MM_OTI_611MIXER = 7
const MM_OTI_611MIDIN = &h12
const MM_OTI_611MIDIOUT = &h13
const MM_AUREAL_AU8820 = 16
const MM_AU8820_SYNTH = 17
const MM_AU8820_WAVEOUT = 18
const MM_AU8820_WAVEIN = 19
const MM_AU8820_MIXER = 20
const MM_AU8820_AUX = 21
const MM_AU8820_MIDIOUT = 22
const MM_AU8820_MIDIIN = 23
const MM_AUREAL_AU8830 = 32
const MM_AU8830_SYNTH = 33
const MM_AU8830_WAVEOUT = 34
const MM_AU8830_WAVEIN = 35
const MM_AU8830_MIXER = 36
const MM_AU8830_AUX = 37
const MM_AU8830_MIDIOUT = 38
const MM_AU8830_MIDIIN = 39
const MM_VIVO_AUDIO_CODEC = 1
const MM_SHARP_MDC_MIDI_SYNTH = 1
const MM_SHARP_MDC_MIDI_IN = 2
const MM_SHARP_MDC_MIDI_OUT = 3
const MM_SHARP_MDC_WAVE_IN = 4
const MM_SHARP_MDC_WAVE_OUT = 5
const MM_SHARP_MDC_AUX = 6
const MM_SHARP_MDC_MIXER = 10
const MM_SHARP_MDC_AUX_MASTER = 100
const MM_SHARP_MDC_AUX_BASS = 101
const MM_SHARP_MDC_AUX_TREBLE = 102
const MM_SHARP_MDC_AUX_MIDI_VOL = 103
const MM_SHARP_MDC_AUX_WAVE_VOL = 104
const MM_SHARP_MDC_AUX_WAVE_RVB = 105
const MM_SHARP_MDC_AUX_WAVE_CHR = 106
const MM_SHARP_MDC_AUX_VOL = 107
const MM_SHARP_MDC_AUX_RVB = 108
const MM_SHARP_MDC_AUX_CHR = 109
const MM_LUCENT_ACM_G723 = 0
const MM_ATT_G729A = 1
const MM_MARIAN_ARC44WAVEIN = 1
const MM_MARIAN_ARC44WAVEOUT = 2
const MM_MARIAN_PRODIF24WAVEIN = 3
const MM_MARIAN_PRODIF24WAVEOUT = 4
const MM_MARIAN_ARC88WAVEIN = 5
const MM_MARIAN_ARC88WAVEOUT = 6
const MM_BCB_NETBOARD_10 = 1
const MM_BCB_TT75_10 = 2
const MM_MOTIONPIXELS_MVI2 = 1
const MM_QDESIGN_ACM_MPEG = 1
const MM_QDESIGN_ACM_QDESIGN_MUSIC = 2
const MM_NMP_CCP_WAVEIN = 1
const MM_NMP_CCP_WAVEOUT = 2
const MM_NMP_ACM_AMR = 10
const MM_DF_ACM_G726 = 1
const MM_DF_ACM_GSM610 = 2
const MM_BERCOS_WAVEIN = 1
const MM_BERCOS_MIXER = 2
const MM_BERCOS_WAVEOUT = 3
const MM_ONLIVE_MPCODEC = 1
const MM_PHONET_PP_WAVEOUT = 1
const MM_PHONET_PP_WAVEIN = 2
const MM_PHONET_PP_MIXER = 3
const MM_FTR_ENCODER_WAVEIN = 1
const MM_FTR_ACM = 2
const MM_ENET_T2000_LINEIN = 1
const MM_ENET_T2000_LINEOUT = 2
const MM_ENET_T2000_HANDSETIN = 3
const MM_ENET_T2000_HANDSETOUT = 4
const MM_EMAGIC_UNITOR8 = 1
const MM_SIPROLAB_ACELPNET = 1
const MM_DICTAPHONE_G726 = 1
const MM_RZS_ACM_TUBGSM = 1
const MM_EES_PCMIDI14 = 1
const MM_EES_PCMIDI14_IN = 2
const MM_EES_PCMIDI14_OUT1 = 3
const MM_EES_PCMIDI14_OUT2 = 4
const MM_EES_PCMIDI14_OUT3 = 5
const MM_EES_PCMIDI14_OUT4 = 6
const MM_HAFTMANN_LPTDAC2 = 1
const MM_LUCID_PCI24WAVEIN = 1
const MM_LUCID_PCI24WAVEOUT = 2
const MM_HEADSPACE_HAESYNTH = 1
const MM_HEADSPACE_HAEWAVEOUT = 2
const MM_HEADSPACE_HAEWAVEIN = 3
const MM_HEADSPACE_HAEMIXER = 4
const MM_UNISYS_ACM_NAP = 1
const MM_LUMINOSITI_SCWAVEIN = 1
const MM_LUMINOSITI_SCWAVEOUT = 2
const MM_LUMINOSITI_SCWAVEMIX = 3
const MM_ACTIVEVOICE_ACM_VOXADPCM = 1
const MM_DTS_DS = 1
const MM_SOFTLAB_NSK_FRW_WAVEIN = 1
const MM_SOFTLAB_NSK_FRW_WAVEOUT = 2
const MM_SOFTLAB_NSK_FRW_MIXER = 3
const MM_SOFTLAB_NSK_FRW_AUX = 4
const MM_FORTEMEDIA_WAVEIN = 1
const MM_FORTEMEDIA_WAVEOUT = 2
const MM_FORTEMEDIA_FMSYNC = 3
const MM_FORTEMEDIA_MIXER = 4
const MM_FORTEMEDIA_AUX = 5
const MM_SONORUS_STUDIO = 1
const MM_I_LINK_VOICE_CODER = 1
const MM_SELSIUS_SYSTEMS_RTPWAVEOUT = 1
const MM_SELSIUS_SYSTEMS_RTPWAVEIN = 2
const MM_ADMOS_FM_SYNTH = 1
const MM_ADMOS_QS3AMIDIOUT = 2
const MM_ADMOS_QS3AMIDIIN = 3
const MM_ADMOS_QS3AWAVEOUT = 4
const MM_ADMOS_QS3AWAVEIN = 5
const MM_LEXICON_STUDIO_WAVE_OUT = 1
const MM_LEXICON_STUDIO_WAVE_IN = 2
const MM_SGI_320_WAVEIN = 1
const MM_SGI_320_WAVEOUT = 2
const MM_SGI_320_MIXER = 3
const MM_SGI_540_WAVEIN = 4
const MM_SGI_540_WAVEOUT = 5
const MM_SGI_540_MIXER = 6
const MM_SGI_RAD_ADATMONO1_WAVEIN = 7
const MM_SGI_RAD_ADATMONO2_WAVEIN = 8
const MM_SGI_RAD_ADATMONO3_WAVEIN = 9
const MM_SGI_RAD_ADATMONO4_WAVEIN = 10
const MM_SGI_RAD_ADATMONO5_WAVEIN = 11
const MM_SGI_RAD_ADATMONO6_WAVEIN = 12
const MM_SGI_RAD_ADATMONO7_WAVEIN = 13
const MM_SGI_RAD_ADATMONO8_WAVEIN = 14
const MM_SGI_RAD_ADATSTEREO12_WAVEIN = 15
const MM_SGI_RAD_ADATSTEREO34_WAVEIN = 16
const MM_SGI_RAD_ADATSTEREO56_WAVEIN = 17
const MM_SGI_RAD_ADATSTEREO78_WAVEIN = 18
const MM_SGI_RAD_ADAT8CHAN_WAVEIN = 19
const MM_SGI_RAD_ADATMONO1_WAVEOUT = 20
const MM_SGI_RAD_ADATMONO2_WAVEOUT = 21
const MM_SGI_RAD_ADATMONO3_WAVEOUT = 22
const MM_SGI_RAD_ADATMONO4_WAVEOUT = 23
const MM_SGI_RAD_ADATMONO5_WAVEOUT = 24
const MM_SGI_RAD_ADATMONO6_WAVEOUT = 25
const MM_SGI_RAD_ADATMONO7_WAVEOUT = 26
const MM_SGI_RAD_ADATMONO8_WAVEOUT = 27
const MM_SGI_RAD_ADATSTEREO12_WAVEOUT = 28
const MM_SGI_RAD_ADATSTEREO32_WAVEOUT = 29
const MM_SGI_RAD_ADATSTEREO56_WAVEOUT = 30
const MM_SGI_RAD_ADATSTEREO78_WAVEOUT = 31
const MM_SGI_RAD_ADAT8CHAN_WAVEOUT = 32
const MM_SGI_RAD_AESMONO1_WAVEIN = 33
const MM_SGI_RAD_AESMONO2_WAVEIN = 34
const MM_SGI_RAD_AESSTEREO_WAVEIN = 35
const MM_SGI_RAD_AESMONO1_WAVEOUT = 36
const MM_SGI_RAD_AESMONO2_WAVEOUT = 37
const MM_SGI_RAD_AESSTEREO_WAVEOUT = 38
const MM_IPI_ACM_HSX = 1
const MM_IPI_ACM_RPELP = 2
const MM_IPI_WF_ASSS = 3
const MM_IPI_AT_WAVEOUT = 4
const MM_IPI_AT_WAVEIN = 5
const MM_IPI_AT_MIXER = 6
const MM_ICE_WAVEOUT = 1
const MM_ICE_WAVEIN = 2
const MM_ICE_MTWAVEOUT = 3
const MM_ICE_MTWAVEIN = 4
const MM_ICE_MIDIOUT1 = 5
const MM_ICE_MIDIIN1 = 6
const MM_ICE_MIDIOUT2 = 7
const MM_ICE_MIDIIN2 = 8
const MM_ICE_SYNTH = 9
const MM_ICE_MIXER = 10
const MM_ICE_AUX = 11
const MM_VQST_VQC1 = 1
const MM_VQST_VQC2 = 2
const MM_ETEK_KWIKMIDI_MIDIIN = 1
const MM_ETEK_KWIKMIDI_MIDIOUT = 2
const MM_INTERNET_SSW_MIDIOUT = 10
const MM_INTERNET_SSW_MIDIIN = 11
const MM_INTERNET_SSW_WAVEOUT = 12
const MM_INTERNET_SSW_WAVEIN = 13
const MM_SONY_ACM_SCX = 1
const MM_UH_ACM_ADPCM = 1
const MM_SYDEC_NV_WAVEIN = 1
const MM_SYDEC_NV_WAVEOUT = 2
const MM_FLEXION_X300_WAVEIN = 1
const MM_FLEXION_X300_WAVEOUT = 2
const MM_VIA_WAVEOUT = 1
const MM_VIA_WAVEIN = 2
const MM_VIA_MIXER = 3
const MM_VIA_AUX = 4
const MM_VIA_MPU401_MIDIOUT = 5
const MM_VIA_MPU401_MIDIIN = 6
const MM_VIA_SWFM_SYNTH = 7
const MM_VIA_WDM_WAVEOUT = 8
const MM_VIA_WDM_WAVEIN = 9
const MM_VIA_WDM_MIXER = 10
const MM_VIA_WDM_MPU401_MIDIOUT = 11
const MM_VIA_WDM_MPU401_MIDIIN = 12
const MM_MICRONAS_SC4 = 1
const MM_MICRONAS_CLP833 = 2
const MM_HP_WAVEOUT = 1
const MM_HP_WAVEIN = 2
const MM_QUICKAUDIO_MINIMIDI = 1
const MM_QUICKAUDIO_MAXIMIDI = 2
const MM_ICCC_UNA3_WAVEIN = 1
const MM_ICCC_UNA3_WAVEOUT = 2
const MM_ICCC_UNA3_AUX = 3
const MM_ICCC_UNA3_MIXER = 4
const MM_3COM_CB_MIXER = 1
const MM_3COM_CB_WAVEIN = 2
const MM_3COM_CB_WAVEOUT = 3
const MM_MINDMAKER_GC_WAVEIN = 1
const MM_MINDMAKER_GC_WAVEOUT = 2
const MM_MINDMAKER_GC_MIXER = 3
const MM_TELEKOL_WAVEOUT = 1
const MM_TELEKOL_WAVEIN = 2
const MM_ALGOVISION_VB80WAVEOUT = 1
const MM_ALGOVISION_VB80WAVEIN = 2
const MM_ALGOVISION_VB80MIXER = 3
const MM_ALGOVISION_VB80AUX = 4
const MM_ALGOVISION_VB80AUX2 = 5
#define RIFFINFO_IARL mmioFOURCC(asc("I"), asc("A"), asc("R"), asc("L"))
#define RIFFINFO_IART mmioFOURCC(asc("I"), asc("A"), asc("R"), asc("T"))
#define RIFFINFO_ICMS mmioFOURCC(asc("I"), asc("C"), asc("M"), asc("S"))
#define RIFFINFO_ICMT mmioFOURCC(asc("I"), asc("C"), asc("M"), asc("T"))
#define RIFFINFO_ICOP mmioFOURCC(asc("I"), asc("C"), asc("O"), asc("P"))
#define RIFFINFO_ICRD mmioFOURCC(asc("I"), asc("C"), asc("R"), asc("D"))
#define RIFFINFO_ICRP mmioFOURCC(asc("I"), asc("C"), asc("R"), asc("P"))
#define RIFFINFO_IDIM mmioFOURCC(asc("I"), asc("D"), asc("I"), asc("M"))
#define RIFFINFO_IDPI mmioFOURCC(asc("I"), asc("D"), asc("P"), asc("I"))
#define RIFFINFO_IENG mmioFOURCC(asc("I"), asc("E"), asc("N"), asc("G"))
#define RIFFINFO_IGNR mmioFOURCC(asc("I"), asc("G"), asc("N"), asc("R"))
#define RIFFINFO_IKEY mmioFOURCC(asc("I"), asc("K"), asc("E"), asc("Y"))
#define RIFFINFO_ILGT mmioFOURCC(asc("I"), asc("L"), asc("G"), asc("T"))
#define RIFFINFO_IMED mmioFOURCC(asc("I"), asc("M"), asc("E"), asc("D"))
#define RIFFINFO_INAM mmioFOURCC(asc("I"), asc("N"), asc("A"), asc("M"))
#define RIFFINFO_IPLT mmioFOURCC(asc("I"), asc("P"), asc("L"), asc("T"))
#define RIFFINFO_IPRD mmioFOURCC(asc("I"), asc("P"), asc("R"), asc("D"))
#define RIFFINFO_ISBJ mmioFOURCC(asc("I"), asc("S"), asc("B"), asc("J"))
#define RIFFINFO_ISFT mmioFOURCC(asc("I"), asc("S"), asc("F"), asc("T"))
#define RIFFINFO_ISHP mmioFOURCC(asc("I"), asc("S"), asc("H"), asc("P"))
#define RIFFINFO_ISRC mmioFOURCC(asc("I"), asc("S"), asc("R"), asc("C"))
#define RIFFINFO_ISRF mmioFOURCC(asc("I"), asc("S"), asc("R"), asc("F"))
#define RIFFINFO_ITCH mmioFOURCC(asc("I"), asc("T"), asc("C"), asc("H"))
#define RIFFINFO_ISMP mmioFOURCC(asc("I"), asc("S"), asc("M"), asc("P"))
#define RIFFINFO_IDIT mmioFOURCC(asc("I"), asc("D"), asc("I"), asc("T"))
#define RIFFINFO_ITRK mmioFOURCC(asc("I"), asc("T"), asc("R"), asc("K"))
#define RIFFINFO_ITOC mmioFOURCC(asc("I"), asc("T"), asc("O"), asc("C"))
const WAVE_FORMAT_UNKNOWN = &h0000
const WAVE_FORMAT_ADPCM = &h0002
const WAVE_FORMAT_IEEE_FLOAT = &h0003
const WAVE_FORMAT_VSELP = &h0004
const WAVE_FORMAT_IBM_CVSD = &h0005
const WAVE_FORMAT_ALAW = &h0006
const WAVE_FORMAT_MULAW = &h0007
const WAVE_FORMAT_DTS = &h0008
const WAVE_FORMAT_DRM = &h0009
const WAVE_FORMAT_WMAVOICE9 = &h000a
const WAVE_FORMAT_WMAVOICE10 = &h000b
const WAVE_FORMAT_OKI_ADPCM = &h0010
const WAVE_FORMAT_DVI_ADPCM = &h0011
const WAVE_FORMAT_IMA_ADPCM = WAVE_FORMAT_DVI_ADPCM
const WAVE_FORMAT_MEDIASPACE_ADPCM = &h0012
const WAVE_FORMAT_SIERRA_ADPCM = &h0013
const WAVE_FORMAT_G723_ADPCM = &h0014
const WAVE_FORMAT_DIGISTD = &h0015
const WAVE_FORMAT_DIGIFIX = &h0016
const WAVE_FORMAT_DIALOGIC_OKI_ADPCM = &h0017
const WAVE_FORMAT_MEDIAVISION_ADPCM = &h0018
const WAVE_FORMAT_CU_CODEC = &h0019
const WAVE_FORMAT_HP_DYN_VOICE = &h001a
const WAVE_FORMAT_YAMAHA_ADPCM = &h0020
const WAVE_FORMAT_SONARC = &h0021
const WAVE_FORMAT_DSPGROUP_TRUESPEECH = &h0022
const WAVE_FORMAT_ECHOSC1 = &h0023
const WAVE_FORMAT_AUDIOFILE_AF36 = &h0024
const WAVE_FORMAT_APTX = &h0025
const WAVE_FORMAT_AUDIOFILE_AF10 = &h0026
const WAVE_FORMAT_PROSODY_1612 = &h0027
const WAVE_FORMAT_LRC = &h0028
const WAVE_FORMAT_DOLBY_AC2 = &h0030
const WAVE_FORMAT_GSM610 = &h0031
const WAVE_FORMAT_MSNAUDIO = &h0032
const WAVE_FORMAT_ANTEX_ADPCME = &h0033
const WAVE_FORMAT_CONTROL_RES_VQLPC = &h0034
const WAVE_FORMAT_DIGIREAL = &h0035
const WAVE_FORMAT_DIGIADPCM = &h0036
const WAVE_FORMAT_CONTROL_RES_CR10 = &h0037
const WAVE_FORMAT_NMS_VBXADPCM = &h0038
const WAVE_FORMAT_CS_IMAADPCM = &h0039
const WAVE_FORMAT_ECHOSC3 = &h003a
const WAVE_FORMAT_ROCKWELL_ADPCM = &h003b
const WAVE_FORMAT_ROCKWELL_DIGITALK = &h003c
const WAVE_FORMAT_XEBEC = &h003d
const WAVE_FORMAT_G721_ADPCM = &h0040
const WAVE_FORMAT_G728_CELP = &h0041
const WAVE_FORMAT_MSG723 = &h0042
const WAVE_FORMAT_INTEL_G723_1 = &h0043
const WAVE_FORMAT_INTEL_G729 = &h0044
const WAVE_FORMAT_SHARP_G726 = &h0045
const WAVE_FORMAT_MPEG = &h0050
const WAVE_FORMAT_RT24 = &h0052
const WAVE_FORMAT_PAC = &h0053
const WAVE_FORMAT_MPEGLAYER3 = &h0055
const WAVE_FORMAT_LUCENT_G723 = &h0059
const WAVE_FORMAT_CIRRUS = &h0060
const WAVE_FORMAT_ESPCM = &h0061
const WAVE_FORMAT_VOXWARE = &h0062
const WAVE_FORMAT_CANOPUS_ATRAC = &h0063
const WAVE_FORMAT_G726_ADPCM = &h0064
const WAVE_FORMAT_G722_ADPCM = &h0065
const WAVE_FORMAT_DSAT = &h0066
const WAVE_FORMAT_DSAT_DISPLAY = &h0067
const WAVE_FORMAT_VOXWARE_BYTE_ALIGNED = &h0069
const WAVE_FORMAT_VOXWARE_AC8 = &h0070
const WAVE_FORMAT_VOXWARE_AC10 = &h0071
const WAVE_FORMAT_VOXWARE_AC16 = &h0072
const WAVE_FORMAT_VOXWARE_AC20 = &h0073
const WAVE_FORMAT_VOXWARE_RT24 = &h0074
const WAVE_FORMAT_VOXWARE_RT29 = &h0075
const WAVE_FORMAT_VOXWARE_RT29HW = &h0076
const WAVE_FORMAT_VOXWARE_VR12 = &h0077
const WAVE_FORMAT_VOXWARE_VR18 = &h0078
const WAVE_FORMAT_VOXWARE_TQ40 = &h0079
const WAVE_FORMAT_VOXWARE_SC3 = &h007a
const WAVE_FORMAT_VOXWARE_SC3_1 = &h007b
const WAVE_FORMAT_SOFTSOUND = &h0080
const WAVE_FORMAT_VOXWARE_TQ60 = &h0081
const WAVE_FORMAT_MSRT24 = &h0082
const WAVE_FORMAT_G729A = &h0083
const WAVE_FORMAT_MVI_MVI2 = &h0084
const WAVE_FORMAT_DF_G726 = &h0085
const WAVE_FORMAT_DF_GSM610 = &h0086
const WAVE_FORMAT_ISIAUDIO = &h0088
const WAVE_FORMAT_ONLIVE = &h0089
const WAVE_FORMAT_MULTITUDE_FT_SX20 = &h008a
const WAVE_FORMAT_INFOCOM_ITS_G721_ADPCM = &h008b
const WAVE_FORMAT_CONVEDIA_G729 = &h008c
const WAVE_FORMAT_CONGRUENCY = &h008d
const WAVE_FORMAT_SBC24 = &h0091
const WAVE_FORMAT_DOLBY_AC3_SPDIF = &h0092
const WAVE_FORMAT_MEDIASONIC_G723 = &h0093
const WAVE_FORMAT_PROSODY_8KBPS = &h0094
const WAVE_FORMAT_ZYXEL_ADPCM = &h0097
const WAVE_FORMAT_PHILIPS_LPCBB = &h0098
const WAVE_FORMAT_PACKED = &h0099
const WAVE_FORMAT_MALDEN_PHONYTALK = &h00a0
const WAVE_FORMAT_RACAL_RECORDER_GSM = &h00a1
const WAVE_FORMAT_RACAL_RECORDER_G720_A = &h00a2
const WAVE_FORMAT_RACAL_RECORDER_G723_1 = &h00a3
const WAVE_FORMAT_RACAL_RECORDER_TETRA_ACELP = &h00a4
const WAVE_FORMAT_NEC_AAC = &h00b0
const WAVE_FORMAT_RAW_AAC1 = &h00ff
const WAVE_FORMAT_RHETOREX_ADPCM = &h0100
const WAVE_FORMAT_IRAT = &h0101
const WAVE_FORMAT_VIVO_G723 = &h0111
const WAVE_FORMAT_VIVO_SIREN = &h0112
const WAVE_FORMAT_PHILIPS_CELP = &h0120
const WAVE_FORMAT_PHILIPS_GRUNDIG = &h0121
const WAVE_FORMAT_DIGITAL_G723 = &h0123
const WAVE_FORMAT_SANYO_LD_ADPCM = &h0125
const WAVE_FORMAT_SIPROLAB_ACEPLNET = &h0130
const WAVE_FORMAT_SIPROLAB_ACELP4800 = &h0131
const WAVE_FORMAT_SIPROLAB_ACELP8V3 = &h0132
const WAVE_FORMAT_SIPROLAB_G729 = &h0133
const WAVE_FORMAT_SIPROLAB_G729A = &h0134
const WAVE_FORMAT_SIPROLAB_KELVIN = &h0135
const WAVE_FORMAT_VOICEAGE_AMR = &h0136
const WAVE_FORMAT_G726ADPCM = &h0140
const WAVE_FORMAT_DICTAPHONE_CELP68 = &h0141
const WAVE_FORMAT_DICTAPHONE_CELP54 = &h0142
const WAVE_FORMAT_QUALCOMM_PUREVOICE = &h0150
const WAVE_FORMAT_QUALCOMM_HALFRATE = &h0151
const WAVE_FORMAT_TUBGSM = &h0155
const WAVE_FORMAT_MSAUDIO1 = &h0160
const WAVE_FORMAT_WMAUDIO2 = &h0161
const WAVE_FORMAT_WMAUDIO3 = &h0162
const WAVE_FORMAT_WMAUDIO_LOSSLESS = &h0163
const WAVE_FORMAT_WMASPDIF = &h0164
const WAVE_FORMAT_UNISYS_NAP_ADPCM = &h0170
const WAVE_FORMAT_UNISYS_NAP_ULAW = &h0171
const WAVE_FORMAT_UNISYS_NAP_ALAW = &h0172
const WAVE_FORMAT_UNISYS_NAP_16K = &h0173
const WAVE_FORMAT_SYCOM_ACM_SYC008 = &h0174
const WAVE_FORMAT_SYCOM_ACM_SYC701_G726L = &h0175
const WAVE_FORMAT_SYCOM_ACM_SYC701_CELP54 = &h0176
const WAVE_FORMAT_SYCOM_ACM_SYC701_CELP68 = &h0177
const WAVE_FORMAT_KNOWLEDGE_ADVENTURE_ADPCM = &h0178
const WAVE_FORMAT_FRAUNHOFER_IIS_MPEG2_AAC = &h0180
const WAVE_FORMAT_DTS_DS = &h0190
const WAVE_FORMAT_CREATIVE_ADPCM = &h0200
const WAVE_FORMAT_CREATIVE_FASTSPEECH8 = &h0202
const WAVE_FORMAT_CREATIVE_FASTSPEECH10 = &h0203
const WAVE_FORMAT_UHER_ADPCM = &h0210
const WAVE_FORMAT_ULEAD_DV_AUDIO = &h0215
const WAVE_FORMAT_ULEAD_DV_AUDIO_1 = &h0216
const WAVE_FORMAT_QUARTERDECK = &h0220
const WAVE_FORMAT_ILINK_VC = &h0230
const WAVE_FORMAT_RAW_SPORT = &h0240
const WAVE_FORMAT_ESST_AC3 = &h0241
const WAVE_FORMAT_GENERIC_PASSTHRU = &h0249
const WAVE_FORMAT_IPI_HSX = &h0250
const WAVE_FORMAT_IPI_RPELP = &h0251
const WAVE_FORMAT_CS2 = &h0260
const WAVE_FORMAT_SONY_SCX = &h0270
const WAVE_FORMAT_SONY_SCY = &h0271
const WAVE_FORMAT_SONY_ATRAC3 = &h0272
const WAVE_FORMAT_SONY_SPC = &h0273
const WAVE_FORMAT_TELUM_AUDIO = &h0280
const WAVE_FORMAT_TELUM_IA_AUDIO = &h0281
const WAVE_FORMAT_NORCOM_VOICE_SYSTEMS_ADPCM = &h0285
const WAVE_FORMAT_FM_TOWNS_SND = &h0300
const WAVE_FORMAT_MICRONAS = &h0350
const WAVE_FORMAT_MICRONAS_CELP833 = &h0351
const WAVE_FORMAT_BTV_DIGITAL = &h0400
const WAVE_FORMAT_INTEL_MUSIC_CODER = &h0401
const WAVE_FORMAT_INDEO_AUDIO = &h0402
const WAVE_FORMAT_QDESIGN_MUSIC = &h0450
const WAVE_FORMAT_ON2_VP7_AUDIO = &h0500
const WAVE_FORMAT_ON2_VP6_AUDIO = &h0501
const WAVE_FORMAT_VME_VMPCM = &h0680
const WAVE_FORMAT_TPC = &h0681
const WAVE_FORMAT_LIGHTWAVE_LOSSLESS = &h08ae
const WAVE_FORMAT_OLIGSM = &h1000
const WAVE_FORMAT_OLIADPCM = &h1001
const WAVE_FORMAT_OLICELP = &h1002
const WAVE_FORMAT_OLISBC = &h1003
const WAVE_FORMAT_OLIOPR = &h1004
const WAVE_FORMAT_LH_CODEC = &h1100
const WAVE_FORMAT_LH_CODEC_CELP = &h1101
const WAVE_FORMAT_LH_CODEC_SBC8 = &h1102
const WAVE_FORMAT_LH_CODEC_SBC12 = &h1103
const WAVE_FORMAT_LH_CODEC_SBC16 = &h1104
const WAVE_FORMAT_NORRIS = &h1400
const WAVE_FORMAT_ISIAUDIO_2 = &h1401
const WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS = &h1500
const WAVE_FORMAT_MPEG_ADTS_AAC = &h1600
const WAVE_FORMAT_MPEG_RAW_AAC = &h1601
const WAVE_FORMAT_MPEG_LOAS = &h1602
const WAVE_FORMAT_NOKIA_MPEG_ADTS_AAC = &h1608
const WAVE_FORMAT_NOKIA_MPEG_RAW_AAC = &h1609
const WAVE_FORMAT_VODAFONE_MPEG_ADTS_AAC = &h160a
const WAVE_FORMAT_VODAFONE_MPEG_RAW_AAC = &h160b
const WAVE_FORMAT_MPEG_HEAAC = &h1610
const WAVE_FORMAT_VOXWARE_RT24_SPEECH = &h181c
const WAVE_FORMAT_SONICFOUNDRY_LOSSLESS = &h1971
const WAVE_FORMAT_INNINGS_TELECOM_ADPCM = &h1979
const WAVE_FORMAT_LUCENT_SX8300P = &h1c07
const WAVE_FORMAT_LUCENT_SX5363S = &h1c0c
const WAVE_FORMAT_CUSEEME = &h1f03
const WAVE_FORMAT_NTCSOFT_ALF2CM_ACM = &h1fc4
const WAVE_FORMAT_DVM = &h2000
const WAVE_FORMAT_DTS2 = &h2001
const WAVE_FORMAT_MAKEAVIS = &h3313
const WAVE_FORMAT_DIVIO_MPEG4_AAC = &h4143
const WAVE_FORMAT_NOKIA_ADAPTIVE_MULTIRATE = &h4201
const WAVE_FORMAT_DIVIO_G726 = &h4243
const WAVE_FORMAT_LEAD_SPEECH = &h434c
const WAVE_FORMAT_LEAD_VORBIS = &h564c
const WAVE_FORMAT_WAVPACK_AUDIO = &h5756
const WAVE_FORMAT_OGG_VORBIS_MODE_1 = &h674f
const WAVE_FORMAT_OGG_VORBIS_MODE_2 = &h6750
const WAVE_FORMAT_OGG_VORBIS_MODE_3 = &h6751
const WAVE_FORMAT_OGG_VORBIS_MODE_1_PLUS = &h676f
const WAVE_FORMAT_OGG_VORBIS_MODE_2_PLUS = &h6770
const WAVE_FORMAT_OGG_VORBIS_MODE_3_PLUS = &h6771
const WAVE_FORMAT_3COM_NBX = &h7000
const WAVE_FORMAT_FAAD_AAC = &h706d
const WAVE_FORMAT_GSM_AMR_CBR = &h7a21
const WAVE_FORMAT_GSM_AMR_VBR_SID = &h7a22
const WAVE_FORMAT_COMVERSE_INFOSYS_G723_1 = &ha100
const WAVE_FORMAT_COMVERSE_INFOSYS_AVQSBC = &ha101
const WAVE_FORMAT_COMVERSE_INFOSYS_SBC = &ha102
const WAVE_FORMAT_SYMBOL_G729_A = &ha103
const WAVE_FORMAT_VOICEAGE_AMR_WB = &ha104
const WAVE_FORMAT_INGENIENT_G726 = &ha105
const WAVE_FORMAT_MPEG4_AAC = &ha106
const WAVE_FORMAT_ENCORE_G726 = &ha107
const WAVE_FORMAT_ZOLL_ASAO = &ha108
const WAVE_FORMAT_SPEEX_VOICE = &ha109
const WAVE_FORMAT_VIANIX_MASC = &ha10a
const WAVE_FORMAT_WM9_SPECTRUM_ANALYZER = &ha10b
const WAVE_FORMAT_WMF_SPECTRUM_ANAYZER = &ha10c
const WAVE_FORMAT_GSM_610 = &ha10d
const WAVE_FORMAT_GSM_620 = &ha10e
const WAVE_FORMAT_GSM_660 = &ha10f
const WAVE_FORMAT_GSM_690 = &ha110
const WAVE_FORMAT_GSM_ADAPTIVE_MULTIRATE_WB = &ha111
const WAVE_FORMAT_POLYCOM_G722 = &ha112
const WAVE_FORMAT_POLYCOM_G728 = &ha113
const WAVE_FORMAT_POLYCOM_G729_A = &ha114
const WAVE_FORMAT_POLYCOM_SIREN = &ha115
const WAVE_FORMAT_GLOBAL_IP_ILBC = &ha116
const WAVE_FORMAT_RADIOTIME_TIME_SHIFT_RADIO = &ha117
const WAVE_FORMAT_NICE_ACA = &ha118
const WAVE_FORMAT_NICE_ADPCM = &ha119
const WAVE_FORMAT_VOCORD_G721 = &ha11a
const WAVE_FORMAT_VOCORD_G726 = &ha11b
const WAVE_FORMAT_VOCORD_G722_1 = &ha11c
const WAVE_FORMAT_VOCORD_G728 = &ha11d
const WAVE_FORMAT_VOCORD_G729 = &ha11e
const WAVE_FORMAT_VOCORD_G729_A = &ha11f
const WAVE_FORMAT_VOCORD_G723_1 = &ha120
const WAVE_FORMAT_VOCORD_LBC = &ha121
const WAVE_FORMAT_NICE_G728 = &ha122
const WAVE_FORMAT_FRACE_TELECOM_G729 = &ha123
const WAVE_FORMAT_CODIAN = &ha124
const WAVE_FORMAT_FLAC = &hf1ac
const WAVE_FORMAT_EXTENSIBLE = &hfffe
const WAVE_FORMAT_DEVELOPMENT = &hffff
#define STATICGUIDOF(guid) STATIC_##guid

extern KSDATAFORMAT_SUBTYPE_PCM as const GUID
extern KSDATAFORMAT_SUBTYPE_IEEE_FLOAT as const GUID
#define STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX &h00000000l, &h0000, &h0010, &h80, &h00, &h00, &haa, &h00, &h38, &h9b, &h71
extern KSDATAFORMAT_SUBTYPE_WAVEFORMATEX as const GUID

#macro INIT_WAVEFORMATEX_GUID(Guid, x)
	scope
		(*(Guid)) = KSDATAFORMAT_SUBTYPE_WAVEFORMATEX
		(Guid)->Data1 = cast(USHORT, (x))
	end scope
#endmacro
#define EXTRACT_WAVEFORMATEX_ID(Guid) cast(USHORT, (Guid)->Data1)
#define IS_VALID_WAVEFORMATEX_GUID(Guid) (memcmp(cast(PUSHORT, @KSDATAFORMAT_SUBTYPE_WAVEFORMATEX) + 1, cast(PUSHORT, (Guid)) + 1, sizeof(GUID) - sizeof(USHORT)) = 0)
#define _WAVEFORMATEXTENSIBLE_

union WAVEFORMATEXTENSIBLE_Samples field = 1
	wValidBitsPerSample as WORD
	wSamplesPerBlock as WORD
	wReserved as WORD
end union

type WAVEFORMATEXTENSIBLE field = 1
	Format as WAVEFORMATEX
	Samples as WAVEFORMATEXTENSIBLE_Samples
	dwChannelMask as DWORD
	SubFormat as GUID
end type

type PWAVEFORMATEXTENSIBLE as WAVEFORMATEXTENSIBLE ptr
type WAVEFORMATPCMEX as WAVEFORMATEXTENSIBLE
type PWAVEFORMATPCMEX as WAVEFORMATPCMEX ptr
type NPWAVEFORMATPCMEX as WAVEFORMATPCMEX ptr
type LPWAVEFORMATPCMEX as WAVEFORMATPCMEX ptr
type WAVEFORMATIEEEFLOATEX as WAVEFORMATEXTENSIBLE
type PWAVEFORMATIEEEFLOATEX as WAVEFORMATIEEEFLOATEX ptr
type NPWAVEFORMATIEEEFLOATEX as WAVEFORMATIEEEFLOATEX ptr
type LPWAVEFORMATIEEEFLOATEX as WAVEFORMATIEEEFLOATEX ptr

#define _SPEAKER_POSITIONS_
const SPEAKER_FRONT_LEFT = &h1
const SPEAKER_FRONT_RIGHT = &h2
const SPEAKER_FRONT_CENTER = &h4
const SPEAKER_LOW_FREQUENCY = &h8
const SPEAKER_BACK_LEFT = &h10
const SPEAKER_BACK_RIGHT = &h20
const SPEAKER_FRONT_LEFT_OF_CENTER = &h40
const SPEAKER_FRONT_RIGHT_OF_CENTER = &h80
const SPEAKER_BACK_CENTER = &h100
const SPEAKER_SIDE_LEFT = &h200
const SPEAKER_SIDE_RIGHT = &h400
const SPEAKER_TOP_CENTER = &h800
const SPEAKER_TOP_FRONT_LEFT = &h1000
const SPEAKER_TOP_FRONT_CENTER = &h2000
const SPEAKER_TOP_FRONT_RIGHT = &h4000
const SPEAKER_TOP_BACK_LEFT = &h8000
const SPEAKER_TOP_BACK_CENTER = &h10000
const SPEAKER_TOP_BACK_RIGHT = &h20000
const SPEAKER_RESERVED = &h7ffc0000
const SPEAKER_ALL = &h80000000

type adpcmcoef_tag field = 1
	iCoef1 as short
	iCoef2 as short
end type

type ADPCMCOEFSET as adpcmcoef_tag
type PADPCMCOEFSET as adpcmcoef_tag ptr
type NPADPCMCOEFSET as adpcmcoef_tag ptr
type LPADPCMCOEFSET as adpcmcoef_tag ptr

type adpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
	wNumCoef as WORD
	aCoef(0 to 0) as ADPCMCOEFSET
end type

type ADPCMWAVEFORMAT as adpcmwaveformat_tag
type PADPCMWAVEFORMAT as adpcmwaveformat_tag ptr
type NPADPCMWAVEFORMAT as adpcmwaveformat_tag ptr
type LPADPCMWAVEFORMAT as adpcmwaveformat_tag ptr

type drmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wReserved as WORD
	ulContentId as ULONG
	wfxSecure as WAVEFORMATEX
end type

type DRMWAVEFORMAT as drmwaveformat_tag
type PDRMWAVEFORMAT as drmwaveformat_tag ptr
type NPDRMWAVEFORMAT as drmwaveformat_tag ptr
type LPDRMWAVEFORMAT as drmwaveformat_tag ptr

type dvi_adpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
end type

type DVIADPCMWAVEFORMAT as dvi_adpcmwaveformat_tag
type PDVIADPCMWAVEFORMAT as dvi_adpcmwaveformat_tag ptr
type NPDVIADPCMWAVEFORMAT as dvi_adpcmwaveformat_tag ptr
type LPDVIADPCMWAVEFORMAT as dvi_adpcmwaveformat_tag ptr

type ima_adpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
end type

type IMAADPCMWAVEFORMAT as ima_adpcmwaveformat_tag
type PIMAADPCMWAVEFORMAT as ima_adpcmwaveformat_tag ptr
type NPIMAADPCMWAVEFORMAT as ima_adpcmwaveformat_tag ptr
type LPIMAADPCMWAVEFORMAT as ima_adpcmwaveformat_tag ptr

type mediaspace_adpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wRevision as WORD
end type

type MEDIASPACEADPCMWAVEFORMAT as mediaspace_adpcmwaveformat_tag
type PMEDIASPACEADPCMWAVEFORMAT as mediaspace_adpcmwaveformat_tag ptr
type NPMEDIASPACEADPCMWAVEFORMAT as mediaspace_adpcmwaveformat_tag ptr
type LPMEDIASPACEADPCMWAVEFORMAT as mediaspace_adpcmwaveformat_tag ptr

type sierra_adpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wRevision as WORD
end type

type SIERRAADPCMWAVEFORMAT as sierra_adpcmwaveformat_tag
type PSIERRAADPCMWAVEFORMAT as sierra_adpcmwaveformat_tag ptr
type NPSIERRAADPCMWAVEFORMAT as sierra_adpcmwaveformat_tag ptr
type LPSIERRAADPCMWAVEFORMAT as sierra_adpcmwaveformat_tag ptr

type g723_adpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	cbExtraSize as WORD
	nAuxBlockSize as WORD
end type

type G723_ADPCMWAVEFORMAT as g723_adpcmwaveformat_tag
type PG723_ADPCMWAVEFORMAT as g723_adpcmwaveformat_tag ptr
type NPG723_ADPCMWAVEFORMAT as g723_adpcmwaveformat_tag ptr
type LPG723_ADPCMWAVEFORMAT as g723_adpcmwaveformat_tag ptr

type digistdwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type DIGISTDWAVEFORMAT as digistdwaveformat_tag
type PDIGISTDWAVEFORMAT as digistdwaveformat_tag ptr
type NPDIGISTDWAVEFORMAT as digistdwaveformat_tag ptr
type LPDIGISTDWAVEFORMAT as digistdwaveformat_tag ptr

type digifixwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type DIGIFIXWAVEFORMAT as digifixwaveformat_tag
type PDIGIFIXWAVEFORMAT as digifixwaveformat_tag ptr
type NPDIGIFIXWAVEFORMAT as digifixwaveformat_tag ptr
type LPDIGIFIXWAVEFORMAT as digifixwaveformat_tag ptr

type creative_fastspeechformat_tag field = 1
	ewf as WAVEFORMATEX
end type

type DIALOGICOKIADPCMWAVEFORMAT as creative_fastspeechformat_tag
type PDIALOGICOKIADPCMWAVEFORMAT as creative_fastspeechformat_tag ptr
type NPDIALOGICOKIADPCMWAVEFORMAT as creative_fastspeechformat_tag ptr
type LPDIALOGICOKIADPCMWAVEFORMAT as creative_fastspeechformat_tag ptr

type yamaha_adpmcwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type YAMAHA_ADPCMWAVEFORMAT as yamaha_adpmcwaveformat_tag
type PYAMAHA_ADPCMWAVEFORMAT as yamaha_adpmcwaveformat_tag ptr
type NPYAMAHA_ADPCMWAVEFORMAT as yamaha_adpmcwaveformat_tag ptr
type LPYAMAHA_ADPCMWAVEFORMAT as yamaha_adpmcwaveformat_tag ptr

type sonarcwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wCompType as WORD
end type

type SONARCWAVEFORMAT as sonarcwaveformat_tag
type PSONARCWAVEFORMAT as sonarcwaveformat_tag ptr
type NPSONARCWAVEFORMAT as sonarcwaveformat_tag ptr
type LPSONARCWAVEFORMAT as sonarcwaveformat_tag ptr

type truespeechwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wRevision as WORD
	nSamplesPerBlock as WORD
	abReserved(0 to 27) as UBYTE
end type

type TRUESPEECHWAVEFORMAT as truespeechwaveformat_tag
type PTRUESPEECHWAVEFORMAT as truespeechwaveformat_tag ptr
type NPTRUESPEECHWAVEFORMAT as truespeechwaveformat_tag ptr
type LPTRUESPEECHWAVEFORMAT as truespeechwaveformat_tag ptr

type echosc1waveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type ECHOSC1WAVEFORMAT as echosc1waveformat_tag
type PECHOSC1WAVEFORMAT as echosc1waveformat_tag ptr
type NPECHOSC1WAVEFORMAT as echosc1waveformat_tag ptr
type LPECHOSC1WAVEFORMAT as echosc1waveformat_tag ptr

type audiofile_af36waveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type AUDIOFILE_AF36WAVEFORMAT as audiofile_af36waveformat_tag
type PAUDIOFILE_AF36WAVEFORMAT as audiofile_af36waveformat_tag ptr
type NPAUDIOFILE_AF36WAVEFORMAT as audiofile_af36waveformat_tag ptr
type LPAUDIOFILE_AF36WAVEFORMAT as audiofile_af36waveformat_tag ptr

type aptxwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type APTXWAVEFORMAT as aptxwaveformat_tag
type PAPTXWAVEFORMAT as aptxwaveformat_tag ptr
type NPAPTXWAVEFORMAT as aptxwaveformat_tag ptr
type LPAPTXWAVEFORMAT as aptxwaveformat_tag ptr

type audiofile_af10waveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type AUDIOFILE_AF10WAVEFORMAT as audiofile_af10waveformat_tag
type PAUDIOFILE_AF10WAVEFORMAT as audiofile_af10waveformat_tag ptr
type NPAUDIOFILE_AF10WAVEFORMAT as audiofile_af10waveformat_tag ptr
type LPAUDIOFILE_AF10WAVEFORMAT as audiofile_af10waveformat_tag ptr

type dolbyac2waveformat_tag field = 1
	wfx as WAVEFORMATEX
	nAuxBitsCode as WORD
end type

type DOLBYAC2WAVEFORMAT as dolbyac2waveformat_tag

type gsm610waveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
end type

type GSM610WAVEFORMAT as gsm610waveformat_tag
type PGSM610WAVEFORMAT as gsm610waveformat_tag ptr
type NPGSM610WAVEFORMAT as gsm610waveformat_tag ptr
type LPGSM610WAVEFORMAT as gsm610waveformat_tag ptr

type adpcmewaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
end type

type ADPCMEWAVEFORMAT as adpcmewaveformat_tag
type PADPCMEWAVEFORMAT as adpcmewaveformat_tag ptr
type NPADPCMEWAVEFORMAT as adpcmewaveformat_tag ptr
type LPADPCMEWAVEFORMAT as adpcmewaveformat_tag ptr

type contres_vqlpcwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
end type

type CONTRESVQLPCWAVEFORMAT as contres_vqlpcwaveformat_tag
type PCONTRESVQLPCWAVEFORMAT as contres_vqlpcwaveformat_tag ptr
type NPCONTRESVQLPCWAVEFORMAT as contres_vqlpcwaveformat_tag ptr
type LPCONTRESVQLPCWAVEFORMAT as contres_vqlpcwaveformat_tag ptr

type digirealwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
end type

type DIGIREALWAVEFORMAT as digirealwaveformat_tag
type PDIGIREALWAVEFORMAT as digirealwaveformat_tag ptr
type NPDIGIREALWAVEFORMAT as digirealwaveformat_tag ptr
type LPDIGIREALWAVEFORMAT as digirealwaveformat_tag ptr

type digiadpcmmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
end type

type DIGIADPCMWAVEFORMAT as digiadpcmmwaveformat_tag
type PDIGIADPCMWAVEFORMAT as digiadpcmmwaveformat_tag ptr
type NPDIGIADPCMWAVEFORMAT as digiadpcmmwaveformat_tag ptr
type LPDIGIADPCMWAVEFORMAT as digiadpcmmwaveformat_tag ptr

type contres_cr10waveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
end type

type CONTRESCR10WAVEFORMAT as contres_cr10waveformat_tag
type PCONTRESCR10WAVEFORMAT as contres_cr10waveformat_tag ptr
type NPCONTRESCR10WAVEFORMAT as contres_cr10waveformat_tag ptr
type LPCONTRESCR10WAVEFORMAT as contres_cr10waveformat_tag ptr

type nms_vbxadpcmmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
end type

type NMS_VBXADPCMWAVEFORMAT as nms_vbxadpcmmwaveformat_tag
type PNMS_VBXADPCMWAVEFORMAT as nms_vbxadpcmmwaveformat_tag ptr
type NPNMS_VBXADPCMWAVEFORMAT as nms_vbxadpcmmwaveformat_tag ptr
type LPNMS_VBXADPCMWAVEFORMAT as nms_vbxadpcmmwaveformat_tag ptr

type g721_adpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	nAuxBlockSize as WORD
end type

type G721_ADPCMWAVEFORMAT as g721_adpcmwaveformat_tag
type PG721_ADPCMWAVEFORMAT as g721_adpcmwaveformat_tag ptr
type NPG721_ADPCMWAVEFORMAT as g721_adpcmwaveformat_tag ptr
type LPG721_ADPCMWAVEFORMAT as g721_adpcmwaveformat_tag ptr

type mpeg1waveformat_tag field = 1
	wfx as WAVEFORMATEX
	fwHeadLayer as WORD
	dwHeadBitrate as DWORD
	fwHeadMode as WORD
	fwHeadModeExt as WORD
	wHeadEmphasis as WORD
	fwHeadFlags as WORD
	dwPTSLow as DWORD
	dwPTSHigh as DWORD
end type

type MPEG1WAVEFORMAT as mpeg1waveformat_tag
type PMPEG1WAVEFORMAT as mpeg1waveformat_tag ptr
type NPMPEG1WAVEFORMAT as mpeg1waveformat_tag ptr
type LPMPEG1WAVEFORMAT as mpeg1waveformat_tag ptr

const ACM_MPEG_LAYER1 = &h0001
const ACM_MPEG_LAYER2 = &h0002
const ACM_MPEG_LAYER3 = &h0004
const ACM_MPEG_STEREO = &h0001
const ACM_MPEG_JOINTSTEREO = &h0002
const ACM_MPEG_DUALCHANNEL = &h0004
const ACM_MPEG_SINGLECHANNEL = &h0008
const ACM_MPEG_PRIVATEBIT = &h0001
const ACM_MPEG_COPYRIGHT = &h0002
const ACM_MPEG_ORIGINALHOME = &h0004
const ACM_MPEG_PROTECTIONBIT = &h0008
const ACM_MPEG_ID_MPEG1 = &h0010
const MPEGLAYER3_WFX_EXTRA_BYTES = 12

type mpeglayer3waveformat_tag field = 1
	wfx as WAVEFORMATEX
	wID as WORD
	fdwFlags as DWORD
	nBlockSize as WORD
	nFramesPerBlock as WORD
	nCodecDelay as WORD
end type

type MPEGLAYER3WAVEFORMAT as mpeglayer3waveformat_tag
type PMPEGLAYER3WAVEFORMAT as mpeglayer3waveformat_tag ptr
type NPMPEGLAYER3WAVEFORMAT as mpeglayer3waveformat_tag ptr
type LPMPEGLAYER3WAVEFORMAT as mpeglayer3waveformat_tag ptr

const MPEGLAYER3_ID_UNKNOWN = 0
const MPEGLAYER3_ID_MPEG = 1
const MPEGLAYER3_ID_CONSTANTFRAMESIZE = 2
const MPEGLAYER3_FLAG_PADDING_ISO = &h00000000
const MPEGLAYER3_FLAG_PADDING_ON = &h00000001
const MPEGLAYER3_FLAG_PADDING_OFF = &h00000002

type heaacwaveinfo_tag field = 1
	wfx as WAVEFORMATEX
	wPayloadType as WORD
	wAudioProfileLevelIndication as WORD
	wStructType as WORD
	wReserved1 as WORD
	dwReserved2 as DWORD
end type

type HEAACWAVEINFO as heaacwaveinfo_tag
type PHEAACWAVEINFO as heaacwaveinfo_tag ptr
type NPHEAACWAVEINFO as heaacwaveinfo_tag ptr
type LPHEAACWAVEINFO as heaacwaveinfo_tag ptr

type heaacwaveformat_tag field = 1
	wfInfo as HEAACWAVEINFO
	pbAudioSpecificConfig(0 to 0) as UBYTE
end type

type HEAACWAVEFORMAT as heaacwaveformat_tag
type PHEAACWAVEFORMAT as heaacwaveformat_tag ptr
type NPHEAACWAVEFORMAT as heaacwaveformat_tag ptr
type LPHEAACWAVEFORMAT as heaacwaveformat_tag ptr

const MM_MSFT_ACM_WMAUDIO = 39
const MM_MSFT_ACM_MSAUDIO1 = 39
const WMAUDIO_BITS_PER_SAMPLE = 16
const WMAUDIO_MAX_CHANNELS = 2

type msaudio1waveformat_tag field = 1
	wfx as WAVEFORMATEX
	wSamplesPerBlock as WORD
	wEncodeOptions as WORD
end type

type MSAUDIO1WAVEFORMAT as msaudio1waveformat_tag
type LPMSAUDIO1WAVEFORMAT as msaudio1waveformat_tag ptr
const MSAUDIO1_BITS_PER_SAMPLE = WMAUDIO_BITS_PER_SAMPLE
const MSAUDIO1_MAX_CHANNELS = WMAUDIO_MAX_CHANNELS
#define MSAUDIO1_WFX_EXTRA_BYTES (sizeof(MSAUDIO1WAVEFORMAT) - sizeof(WAVEFORMATEX))
const MM_MSFT_ACM_WMAUDIO2 = 101

type wmaudio2waveformat_tag field = 1
	wfx as WAVEFORMATEX
	dwSamplesPerBlock as DWORD
	wEncodeOptions as WORD
	dwSuperBlockAlign as DWORD
end type

type WMAUDIO2WAVEFORMAT as wmaudio2waveformat_tag
type LPWMAUDIO2WAVEFORMAT as wmaudio2waveformat_tag ptr
const WMAUDIO2_BITS_PER_SAMPLE = WMAUDIO_BITS_PER_SAMPLE
const WMAUDIO2_MAX_CHANNELS = WMAUDIO_MAX_CHANNELS
#define WMAUDIO2_WFX_EXTRA_BYTES (sizeof(WMAUDIO2WAVEFORMAT) - sizeof(WAVEFORMATEX))

type wmaudio3waveformat_tag field = 1
	wfx as WAVEFORMATEX
	wValidBitsPerSample as WORD
	dwChannelMask as DWORD
	dwReserved1 as DWORD
	dwReserved2 as DWORD
	wEncodeOptions as WORD
	wReserved3 as WORD
end type

type WMAUDIO3WAVEFORMAT as wmaudio3waveformat_tag
type LPWMAUDIO3WAVEFORMAT as wmaudio3waveformat_tag ptr
#define WMAUDIO3_WFX_EXTRA_BYTES (sizeof(WMAUDIO3WAVEFORMAT) - sizeof(WAVEFORMATEX))

type creative_adpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
	wRevision as WORD
end type

type CREATIVEADPCMWAVEFORMAT as creative_adpcmwaveformat_tag
type PCREATIVEADPCMWAVEFORMAT as creative_adpcmwaveformat_tag ptr
type NPCREATIVEADPCMWAVEFORMAT as creative_adpcmwaveformat_tag ptr
type LPCREATIVEADPCMWAVEFORMAT as creative_adpcmwaveformat_tag ptr

type creative_fastspeech8format_tag field = 1
	wfx as WAVEFORMATEX
	wRevision as WORD
end type

type CREATIVEFASTSPEECH8WAVEFORMAT as creative_fastspeech8format_tag
type PCREATIVEFASTSPEECH8WAVEFORMAT as creative_fastspeech8format_tag ptr
type NPCREATIVEFASTSPEECH8WAVEFORMAT as creative_fastspeech8format_tag ptr
type LPCREATIVEFASTSPEECH8WAVEFORMAT as creative_fastspeech8format_tag ptr

type creative_fastspeech10format_tag field = 1
	wfx as WAVEFORMATEX
	wRevision as WORD
end type

type CREATIVEFASTSPEECH10WAVEFORMAT as creative_fastspeech10format_tag
type PCREATIVEFASTSPEECH10WAVEFORMAT as creative_fastspeech10format_tag ptr
type NPCREATIVEFASTSPEECH10WAVEFORMAT as creative_fastspeech10format_tag ptr
type LPCREATIVEFASTSPEECH10WAVEFORMAT as creative_fastspeech10format_tag ptr

type fmtowns_snd_waveformat_tag field = 1
	wfx as WAVEFORMATEX
	wRevision as WORD
end type

type FMTOWNS_SND_WAVEFORMAT as fmtowns_snd_waveformat_tag
type PFMTOWNS_SND_WAVEFORMAT as fmtowns_snd_waveformat_tag ptr
type NPFMTOWNS_SND_WAVEFORMAT as fmtowns_snd_waveformat_tag ptr
type LPFMTOWNS_SND_WAVEFORMAT as fmtowns_snd_waveformat_tag ptr

type oligsmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type OLIGSMWAVEFORMAT as oligsmwaveformat_tag
type POLIGSMWAVEFORMAT as oligsmwaveformat_tag ptr
type NPOLIGSMWAVEFORMAT as oligsmwaveformat_tag ptr
type LPOLIGSMWAVEFORMAT as oligsmwaveformat_tag ptr

type oliadpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type OLIADPCMWAVEFORMAT as oliadpcmwaveformat_tag
type POLIADPCMWAVEFORMAT as oliadpcmwaveformat_tag ptr
type NPOLIADPCMWAVEFORMAT as oliadpcmwaveformat_tag ptr
type LPOLIADPCMWAVEFORMAT as oliadpcmwaveformat_tag ptr

type olicelpwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type OLICELPWAVEFORMAT as olicelpwaveformat_tag
type POLICELPWAVEFORMAT as olicelpwaveformat_tag ptr
type NPOLICELPWAVEFORMAT as olicelpwaveformat_tag ptr
type LPOLICELPWAVEFORMAT as olicelpwaveformat_tag ptr

type olisbcwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type OLISBCWAVEFORMAT as olisbcwaveformat_tag
type POLISBCWAVEFORMAT as olisbcwaveformat_tag ptr
type NPOLISBCWAVEFORMAT as olisbcwaveformat_tag ptr
type LPOLISBCWAVEFORMAT as olisbcwaveformat_tag ptr

type olioprwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type OLIOPRWAVEFORMAT as olioprwaveformat_tag
type POLIOPRWAVEFORMAT as olioprwaveformat_tag ptr
type NPOLIOPRWAVEFORMAT as olioprwaveformat_tag ptr
type LPOLIOPRWAVEFORMAT as olioprwaveformat_tag ptr

type csimaadpcmwaveformat_tag field = 1
	wfx as WAVEFORMATEX
end type

type CSIMAADPCMWAVEFORMAT as csimaadpcmwaveformat_tag
type PCSIMAADPCMWAVEFORMAT as csimaadpcmwaveformat_tag ptr
type NPCSIMAADPCMWAVEFORMAT as csimaadpcmwaveformat_tag ptr
type LPCSIMAADPCMWAVEFORMAT as csimaadpcmwaveformat_tag ptr

#define _ACM_WAVEFILTER
const WAVE_FILTER_UNKNOWN = &h0000
const WAVE_FILTER_DEVELOPMENT = &hffff

type wavefilter_tag field = 1
	cbStruct as DWORD
	dwFilterTag as DWORD
	fdwFilter as DWORD
	dwReserved(0 to 4) as DWORD
end type

type WAVEFILTER as wavefilter_tag
type PWAVEFILTER as wavefilter_tag ptr
type NPWAVEFILTER as wavefilter_tag ptr
type LPWAVEFILTER as wavefilter_tag ptr
const WAVE_FILTER_VOLUME = &h0001

type wavefilter_volume_tag field = 1
	wfltr as WAVEFILTER
	dwVolume as DWORD
end type

type VOLUMEWAVEFILTER as wavefilter_volume_tag
type PVOLUMEWAVEFILTER as wavefilter_volume_tag ptr
type NPVOLUMEWAVEFILTER as wavefilter_volume_tag ptr
type LPVOLUMEWAVEFILTER as wavefilter_volume_tag ptr
const WAVE_FILTER_ECHO = &h0002

type wavefilter_echo_tag field = 1
	wfltr as WAVEFILTER
	dwVolume as DWORD
	dwDelay as DWORD
end type

type ECHOWAVEFILTER as wavefilter_echo_tag
type PECHOWAVEFILTER as wavefilter_echo_tag ptr
type NPECHOWAVEFILTER as wavefilter_echo_tag ptr
type LPECHOWAVEFILTER as wavefilter_echo_tag ptr
#define RIFFWAVE_inst mmioFOURCC(asc("i"), asc("n"), asc("s"), asc("t"))

type tag_s_RIFFWAVE_inst field = 1
	bUnshiftedNote as UBYTE
	chFineTune as byte
	chGain as byte
	bLowNote as UBYTE
	bHighNote as UBYTE
	bLowVelocity as UBYTE
	bHighVelocity as UBYTE
end type

type s_RIFFWAVE_inst as tag_s_RIFFWAVE_INST
#define RIFFCPPO mmioFOURCC(asc("C"), asc("P"), asc("P"), asc("O"))
#define RIFFCPPO_objr mmioFOURCC(asc("o"), asc("b"), asc("j"), asc("r"))
#define RIFFCPPO_obji mmioFOURCC(asc("o"), asc("b"), asc("j"), asc("i"))
#define RIFFCPPO_clsr mmioFOURCC(asc("c"), asc("l"), asc("s"), asc("r"))
#define RIFFCPPO_clsi mmioFOURCC(asc("c"), asc("l"), asc("s"), asc("i"))
#define RIFFCPPO_mbr mmioFOURCC(asc("m"), asc("b"), asc("r"), asc(" "))
#define RIFFCPPO_char mmioFOURCC(asc("c"), asc("h"), asc("a"), asc("r"))
#define RIFFCPPO_byte mmioFOURCC(asc("b"), asc("y"), asc("t"), asc("e"))
#define RIFFCPPO_int mmioFOURCC(asc("i"), asc("n"), asc("t"), asc(" "))
#define RIFFCPPO_word mmioFOURCC(asc("w"), asc("o"), asc("r"), asc("d"))
#define RIFFCPPO_long mmioFOURCC(asc("l"), asc("o"), asc("n"), asc("g"))
#define RIFFCPPO_dwrd mmioFOURCC(asc("d"), asc("w"), asc("r"), asc("d"))
#define RIFFCPPO_flt mmioFOURCC(asc("f"), asc("l"), asc("t"), asc(" "))
#define RIFFCPPO_dbl mmioFOURCC(asc("d"), asc("b"), asc("l"), asc(" "))
#define RIFFCPPO_str mmioFOURCC(asc("s"), asc("t"), asc("r"), asc(" "))

type tagEXBMINFOHEADER field = 1
	bmi as BITMAPINFOHEADER
	biExtDataOffset as DWORD
end type

type EXBMINFOHEADER as tagEXBMINFOHEADER
#define BICOMP_IBMULTIMOTION mmioFOURCC(asc("U"), asc("L"), asc("T"), asc("I"))
#define BICOMP_IBMPHOTOMOTION mmioFOURCC(asc("P"), asc("H"), asc("M"), asc("O"))
#define BICOMP_CREATIVEYUV mmioFOURCC(asc("c"), asc("y"), asc("u"), asc("v"))
#define JPEG_DIB mmioFOURCC(asc("J"), asc("P"), asc("E"), asc("G"))
#define MJPG_DIB mmioFOURCC(asc("M"), asc("J"), asc("P"), asc("G"))
const JPEG_PROCESS_BASELINE = 0
const AVIIF_CONTROLFRAME = &h00000200
const JIFMK_SOF0 = &hffc0
const JIFMK_SOF1 = &hffc1
const JIFMK_SOF2 = &hffc2
const JIFMK_SOF3 = &hffc3
const JIFMK_SOF5 = &hffc5
const JIFMK_SOF6 = &hffc6
const JIFMK_SOF7 = &hffc7
const JIFMK_JPG = &hffc8
const JIFMK_SOF9 = &hffc9
const JIFMK_SOF10 = &hffca
const JIFMK_SOF11 = &hffcb
const JIFMK_SOF13 = &hffcd
const JIFMK_SOF14 = &hffce
const JIFMK_SOF15 = &hffcf
const JIFMK_DHT = &hffc4
const JIFMK_DAC = &hffcc
const JIFMK_RST0 = &hffd0
const JIFMK_RST1 = &hffd1
const JIFMK_RST2 = &hffd2
const JIFMK_RST3 = &hffd3
const JIFMK_RST4 = &hffd4
const JIFMK_RST5 = &hffd5
const JIFMK_RST6 = &hffd6
const JIFMK_RST7 = &hffd7
const JIFMK_SOI = &hffd8
const JIFMK_EOI = &hffd9
const JIFMK_SOS = &hffda
const JIFMK_DQT = &hffdb
const JIFMK_DNL = &hffdc
const JIFMK_DRI = &hffdd
const JIFMK_DHP = &hffde
const JIFMK_EXP = &hffdf
const JIFMK_APP0 = &hffe0
const JIFMK_APP1 = &hffe1
const JIFMK_APP2 = &hffe2
const JIFMK_APP3 = &hffe3
const JIFMK_APP4 = &hffe4
const JIFMK_APP5 = &hffe5
const JIFMK_APP6 = &hffe6
const JIFMK_APP7 = &hffe7
const JIFMK_JPG0 = &hfff0
const JIFMK_JPG1 = &hfff1
const JIFMK_JPG2 = &hfff2
const JIFMK_JPG3 = &hfff3
const JIFMK_JPG4 = &hfff4
const JIFMK_JPG5 = &hfff5
const JIFMK_JPG6 = &hfff6
const JIFMK_JPG7 = &hfff7
const JIFMK_JPG8 = &hfff8
const JIFMK_JPG9 = &hfff9
const JIFMK_JPG10 = &hfffa
const JIFMK_JPG11 = &hfffb
const JIFMK_JPG12 = &hfffc
const JIFMK_JPG13 = &hfffd
const JIFMK_COM = &hfffe
const JIFMK_TEM = &hff01
const JIFMK_RES = &hff02
const JIFMK_00 = &hff00
const JIFMK_FF = &hffff
const JPEG_Y = 1
const JPEG_YCbCr = 2
const JPEG_RGB = 3

type tagJPEGINFOHEADER field = 1
	JPEGSize as DWORD
	JPEGProcess as DWORD
	JPEGColorSpaceID as DWORD
	JPEGBitsPerSample as DWORD
	JPEGHSubSampling as DWORD
	JPEGVSubSampling as DWORD
end type

type JPEGINFOHEADER as tagJPEGINFOHEADER
#define ICTYPE_VIDEO mmioFOURCC(asc("v"), asc("i"), asc("d"), asc("c"))
#define ICTYPE_AUDIO mmioFOURCC(asc("a"), asc("u"), asc("d"), asc("c"))
#define FOURCC_RDSP mmioFOURCC(asc("R"), asc("D"), asc("S"), asc("P"))
const MIXERCONTROL_CONTROLTYPE_SRS_MTS = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 6
const MIXERCONTROL_CONTROLTYPE_SRS_ONOFF = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 7
const MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8

end extern
