holdingarea/llvm/llvm-gcc4.2-2.7-x86-mingw32/include/mmsystem.h
branchbug235_bringup_0
changeset 20 d2d6724aef32
equal deleted inserted replaced
19:da7c1a80df0d 20:d2d6724aef32
       
     1 
       
     2 #ifndef _MMSYSTEM_H
       
     3 #define _MMSYSTEM_H
       
     4 #if __GNUC__ >=3
       
     5 #pragma GCC system_header
       
     6 #endif
       
     7 #pragma pack(push,1)
       
     8 #ifdef __cplusplus
       
     9 extern "C" {
       
    10 #endif
       
    11 #define	WINMMAPI	DECLSPEC_IMPORT
       
    12 #define _loadds
       
    13 #define _huge
       
    14 #define MAXPNAMELEN 32
       
    15 #define MAXERRORLENGTH 256
       
    16 #define MAX_JOYSTICKOEMVXDNAME 260
       
    17 #define _MMRESULT_
       
    18 #define TIME_MS 1
       
    19 #define TIME_SAMPLES 2
       
    20 #define TIME_BYTES 4
       
    21 #define TIME_SMPTE 8
       
    22 #define TIME_MIDI 16
       
    23 #define TIME_TICKS 32
       
    24 #define MAKEFOURCC(c0,c1,c2,c3) ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<<16)|((DWORD)(BYTE)(c3)<<24))
       
    25 #ifndef mmioFOURCC
       
    26 #define mmioFOURCC(c0,c1,c2,c3) MAKEFOURCC(c0,c1,c2,c3)
       
    27 #endif
       
    28 #define MM_JOY1MOVE 0x3A0
       
    29 #define MM_JOY2MOVE 0x3A1
       
    30 #define MM_JOY1ZMOVE 0x3A2
       
    31 #define MM_JOY2ZMOVE 0x3A3
       
    32 #define MM_JOY1BUTTONDOWN 0x3B5
       
    33 #define MM_JOY2BUTTONDOWN 0x3B6
       
    34 #define MM_JOY1BUTTONUP 0x3B7
       
    35 #define MM_JOY2BUTTONUP 0x3B8
       
    36 #define MM_MCINOTIFY 0x3B9
       
    37 #define MM_WOM_OPEN 0x3BB
       
    38 #define MM_WOM_CLOSE 0x3BC
       
    39 #define MM_WOM_DONE 0x3BD
       
    40 #define MM_WIM_OPEN 0x3BE
       
    41 #define MM_WIM_CLOSE 0x3BF
       
    42 #define MM_WIM_DATA 0x3C0
       
    43 #define MM_MIM_OPEN 0x3C1
       
    44 #define MM_MIM_CLOSE 0x3C2
       
    45 #define MM_MIM_DATA 0x3C3
       
    46 #define MM_MIM_LONGDATA 0x3C4
       
    47 #define MM_MIM_ERROR 0x3C5
       
    48 #define MM_MIM_LONGERROR 0x3C6
       
    49 #define MM_MOM_OPEN 0x3C7
       
    50 #define MM_MOM_CLOSE 0x3C8
       
    51 #define MM_MOM_DONE 0x3C9
       
    52 #define MM_DRVM_OPEN 0x3D0
       
    53 #define MM_DRVM_CLOSE 0x3D1
       
    54 #define MM_DRVM_DATA 0x3D2
       
    55 #define MM_DRVM_ERROR 0x3D3
       
    56 #define MM_STREAM_OPEN	0x3D4
       
    57 #define MM_STREAM_CLOSE	0x3D5
       
    58 #define MM_STREAM_DONE	0x3D6
       
    59 #define MM_STREAM_ERROR	0x3D7
       
    60 #define MM_MOM_POSITIONCB 0x3CA
       
    61 #define MM_MCISIGNAL 0x3CB
       
    62 #define MM_MIM_MOREDATA 0x3CC
       
    63 #define MM_MIXM_LINE_CHANGE 0x3D0
       
    64 #define MM_MIXM_CONTROL_CHANGE 0x3D1
       
    65 #define MMSYSERR_BASE 0
       
    66 #define WAVERR_BASE 32
       
    67 #define MIDIERR_BASE 64
       
    68 #define TIMERR_BASE 96
       
    69 #define JOYERR_BASE 160
       
    70 #define MCIERR_BASE 256
       
    71 #define MIXERR_BASE 1024
       
    72 #define MCI_STRING_OFFSET 512
       
    73 #define MCI_VD_OFFSET 1024
       
    74 #define MCI_CD_OFFSET 1088
       
    75 #define MCI_WAVE_OFFSET 1152
       
    76 #define MCI_SEQ_OFFSET 1216
       
    77 #define MMSYSERR_NOERROR 0
       
    78 #define MMSYSERR_ERROR (MMSYSERR_BASE+1)
       
    79 #define MMSYSERR_BADDEVICEID (MMSYSERR_BASE+2)
       
    80 #define MMSYSERR_NOTENABLED (MMSYSERR_BASE+3)
       
    81 #define MMSYSERR_ALLOCATED (MMSYSERR_BASE+4)
       
    82 #define MMSYSERR_INVALHANDLE (MMSYSERR_BASE+5)
       
    83 #define MMSYSERR_NODRIVER (MMSYSERR_BASE+6)
       
    84 #define MMSYSERR_NOMEM (MMSYSERR_BASE+7)
       
    85 #define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE+8)
       
    86 #define MMSYSERR_BADERRNUM (MMSYSERR_BASE+9)
       
    87 #define MMSYSERR_INVALFLAG (MMSYSERR_BASE+10)
       
    88 #define MMSYSERR_INVALPARAM (MMSYSERR_BASE+11)
       
    89 #define MMSYSERR_HANDLEBUSY (MMSYSERR_BASE+12)
       
    90 #define MMSYSERR_INVALIDALIAS (MMSYSERR_BASE+13)
       
    91 #define MMSYSERR_BADDB (MMSYSERR_BASE+14)
       
    92 #define MMSYSERR_KEYNOTFOUND (MMSYSERR_BASE+15)
       
    93 #define MMSYSERR_READERROR (MMSYSERR_BASE+16)
       
    94 #define MMSYSERR_WRITEERROR (MMSYSERR_BASE+17)
       
    95 #define MMSYSERR_DELETEERROR (MMSYSERR_BASE+18)
       
    96 #define MMSYSERR_VALNOTFOUND (MMSYSERR_BASE+19)
       
    97 #define MMSYSERR_NODRIVERCB (MMSYSERR_BASE+20)
       
    98 #define MMSYSERR_LASTERROR (MMSYSERR_BASE+20)
       
    99 #define DRV_LOAD 1
       
   100 #define DRV_ENABLE 2
       
   101 #define DRV_OPEN 3
       
   102 #define DRV_CLOSE 4
       
   103 #define DRV_DISABLE 5
       
   104 #define DRV_FREE 6
       
   105 #define DRV_CONFIGURE 7
       
   106 #define DRV_QUERYCONFIGURE 8
       
   107 #define DRV_INSTALL 9
       
   108 #define DRV_REMOVE 10
       
   109 #define DRV_EXITSESSION 11
       
   110 #define DRV_POWER 15
       
   111 #define DRV_RESERVED 0x800
       
   112 #define DRV_USER 0x4000
       
   113 #define DRVCNF_CANCEL 0
       
   114 #define DRVCNF_OK 1
       
   115 #define DRVCNF_RESTART 2
       
   116 #define DRV_CANCEL DRVCNF_CANCEL
       
   117 #define DRV_OK DRVCNF_OK
       
   118 #define DRV_RESTART DRVCNF_RESTART
       
   119 #define DRV_MCI_FIRST DRV_RESERVED
       
   120 #define DRV_MCI_LAST (DRV_RESERVED+0xFFF)
       
   121 #define CALLBACK_TYPEMASK 0x70000
       
   122 #define CALLBACK_NULL 0
       
   123 #define CALLBACK_WINDOW 0x10000
       
   124 #define CALLBACK_TASK 0x20000
       
   125 #define CALLBACK_FUNCTION 0x30000
       
   126 #define CALLBACK_THREAD CALLBACK_TASK
       
   127 #define CALLBACK_EVENT 0x50000
       
   128 #define SND_SYNC 0
       
   129 #define SND_ASYNC 1
       
   130 #define SND_NODEFAULT 2
       
   131 #define SND_MEMORY 4
       
   132 #define SND_LOOP 8
       
   133 #define SND_NOSTOP 16
       
   134 #define SND_NOWAIT	0x2000
       
   135 #define SND_ALIAS 0x10000
       
   136 #define SND_ALIAS_ID	0x110000
       
   137 #define SND_FILENAME 0x20000
       
   138 #define SND_RESOURCE 0x40004
       
   139 #define SND_PURGE 0x40
       
   140 #define SND_APPLICATION 0x80
       
   141 #define SND_ALIAS_START	0
       
   142 #define	sndAlias(c0,c1)	(SND_ALIAS_START+(DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8))
       
   143 #define SND_ALIAS_SYSTEMASTERISK sndAlias('S','*')
       
   144 #define SND_ALIAS_SYSTEMQUESTION sndAlias('S','?')
       
   145 #define SND_ALIAS_SYSTEMHAND sndAlias('S','H')
       
   146 #define SND_ALIAS_SYSTEMEXIT sndAlias('S','E')
       
   147 #define SND_ALIAS_SYSTEMSTART sndAlias('S','S')
       
   148 #define SND_ALIAS_SYSTEMWELCOME sndAlias('S','W')
       
   149 #define SND_ALIAS_SYSTEMEXCLAMATION sndAlias('S','!')
       
   150 #define SND_ALIAS_SYSTEMDEFAULT sndAlias('S','D')
       
   151 #define WAVERR_BADFORMAT (WAVERR_BASE + 0)
       
   152 #define WAVERR_STILLPLAYING (WAVERR_BASE + 1)
       
   153 #define WAVERR_UNPREPARED (WAVERR_BASE + 2)
       
   154 #define WAVERR_SYNC (WAVERR_BASE + 3)
       
   155 #define WAVERR_LASTERROR (WAVERR_BASE + 3)
       
   156 #define WOM_OPEN MM_WOM_OPEN
       
   157 #define WOM_CLOSE MM_WOM_CLOSE
       
   158 #define WOM_DONE MM_WOM_DONE
       
   159 #define WIM_OPEN MM_WIM_OPEN
       
   160 #define WIM_CLOSE MM_WIM_CLOSE
       
   161 #define WIM_DATA MM_WIM_DATA
       
   162 #define WAVE_MAPPER ((UINT)-1)
       
   163 #define WAVE_FORMAT_QUERY 1
       
   164 #define WAVE_ALLOWSYNC 2
       
   165 #define WAVE_MAPPED 4
       
   166 #define WAVE_FORMAT_DIRECT 8
       
   167 #define WAVE_FORMAT_DIRECT_QUERY (WAVE_FORMAT_QUERY|WAVE_FORMAT_DIRECT)
       
   168 #define WHDR_DONE 1
       
   169 #define WHDR_PREPARED 2
       
   170 #define WHDR_BEGINLOOP 4
       
   171 #define WHDR_ENDLOOP 8
       
   172 #define WHDR_INQUEUE 16
       
   173 #define WAVECAPS_PITCH 1
       
   174 #define WAVECAPS_PLAYBACKRATE 2
       
   175 #define WAVECAPS_VOLUME 4
       
   176 #define WAVECAPS_LRVOLUME 8
       
   177 #define WAVECAPS_SYNC 16
       
   178 #define WAVECAPS_SAMPLEACCURATE 32
       
   179 #define WAVECAPS_DIRECTSOUND 64
       
   180 #define WAVE_INVALIDFORMAT 0
       
   181 #define WAVE_FORMAT_1M08 1
       
   182 #define WAVE_FORMAT_1S08 2
       
   183 #define WAVE_FORMAT_1M16 4
       
   184 #define WAVE_FORMAT_1S16 8
       
   185 #define WAVE_FORMAT_2M08 16
       
   186 #define WAVE_FORMAT_2S08 32
       
   187 #define WAVE_FORMAT_2M16 64
       
   188 #define WAVE_FORMAT_2S16 128
       
   189 #define WAVE_FORMAT_4M08 256
       
   190 #define WAVE_FORMAT_4S08 512
       
   191 #define WAVE_FORMAT_4M16 1024
       
   192 #define WAVE_FORMAT_4S16 2048
       
   193 #define WAVE_FORMAT_PCM 1
       
   194 #define WAVE_FORMAT_EXTENSIBLE 0xFFFE
       
   195 #define MIDIERR_UNPREPARED MIDIERR_BASE
       
   196 #define MIDIERR_STILLPLAYING (MIDIERR_BASE+1)
       
   197 #define MIDIERR_NOMAP (MIDIERR_BASE+2)
       
   198 #define MIDIERR_NOTREADY (MIDIERR_BASE+3)
       
   199 #define MIDIERR_NODEVICE (MIDIERR_BASE+4)
       
   200 #define MIDIERR_INVALIDSETUP (MIDIERR_BASE+5)
       
   201 #define MIDIERR_BADOPENMODE (MIDIERR_BASE+6)
       
   202 #define MIDIERR_DONT_CONTINUE (MIDIERR_BASE+7)
       
   203 #define MIDIERR_LASTERROR (MIDIERR_BASE+7)
       
   204 #define MIDIPATCHSIZE 128
       
   205 #define MIM_OPEN MM_MIM_OPEN
       
   206 #define MIM_CLOSE MM_MIM_CLOSE
       
   207 #define MIM_DATA MM_MIM_DATA
       
   208 #define MIM_LONGDATA MM_MIM_LONGDATA
       
   209 #define MIM_ERROR MM_MIM_ERROR
       
   210 #define MIM_LONGERROR MM_MIM_LONGERROR
       
   211 #define MOM_OPEN MM_MOM_OPEN
       
   212 #define MOM_CLOSE MM_MOM_CLOSE
       
   213 #define MOM_DONE MM_MOM_DONE
       
   214 #define MIM_MOREDATA MM_MIM_MOREDATA
       
   215 #define MOM_POSITIONCB MM_MOM_POSITIONCB
       
   216 #define MIDIMAPPER ((UINT)-1)
       
   217 #define MIDI_MAPPER ((UINT)-1)
       
   218 #define MIDI_IO_STATUS 32
       
   219 #define MIDI_CACHE_ALL 1
       
   220 #define MIDI_CACHE_BESTFIT 2
       
   221 #define MIDI_CACHE_QUERY 3
       
   222 #define MIDI_UNCACHE 4
       
   223 #define MOD_MIDIPORT 1
       
   224 #define MOD_SYNTH 2
       
   225 #define MOD_SQSYNTH 3
       
   226 #define MOD_FMSYNTH 4
       
   227 #define MOD_MAPPER 5
       
   228 #define MIDICAPS_VOLUME 1
       
   229 #define MIDICAPS_LRVOLUME 2
       
   230 #define MIDICAPS_CACHE 4
       
   231 #define MIDICAPS_STREAM 8
       
   232 #define MHDR_DONE 1
       
   233 #define MHDR_PREPARED 2
       
   234 #define MHDR_INQUEUE 4
       
   235 #define MHDR_ISSTRM 8
       
   236 #define MEVT_F_SHORT 0
       
   237 #define MEVT_F_LONG 0x80000000
       
   238 #define MEVT_F_CALLBACK 0x40000000
       
   239 #define MEVT_EVENTTYPE(x) ((BYTE)(((x)>>24)&0xFF))
       
   240 #define MEVT_EVENTPARM(x) ((DWORD)((x)&0xFFFFFFL))
       
   241 #define MEVT_SHORTMSG 0
       
   242 #define MEVT_TEMPO 1
       
   243 #define MEVT_NOP 2
       
   244 #define MEVT_LONGMSG ((BYTE)0x80)
       
   245 #define MEVT_COMMENT ((BYTE)0x82)
       
   246 #define MEVT_VERSION ((BYTE)0x84)
       
   247 #define MIDISTRM_ERROR (-2)
       
   248 #define MIDIPROP_SET 0x80000000
       
   249 #define MIDIPROP_GET 0x40000000
       
   250 #define MIDIPROP_TIMEDIV 1
       
   251 #define MIDIPROP_TEMPO 2
       
   252 #define AUX_MAPPER ((UINT)-1)
       
   253 #define AUXCAPS_CDAUDIO 1
       
   254 #define AUXCAPS_AUXIN 2
       
   255 #define AUXCAPS_VOLUME 1
       
   256 #define AUXCAPS_LRVOLUME 2
       
   257 #define MIXER_SHORT_NAME_CHARS 16
       
   258 #define MIXER_LONG_NAME_CHARS 64
       
   259 #define MIXERR_INVALLINE MIXERR_BASE
       
   260 #define MIXERR_INVALCONTROL (MIXERR_BASE+1)
       
   261 #define MIXERR_INVALVALUE (MIXERR_BASE+2)
       
   262 #define MIXERR_LASTERROR (MIXERR_BASE+2)
       
   263 #define MIXER_OBJECTF_HANDLE 0x80000000
       
   264 #define MIXER_OBJECTF_MIXER 0
       
   265 #define MIXER_OBJECTF_HMIXER (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER)
       
   266 #define MIXER_OBJECTF_WAVEOUT 0x10000000
       
   267 #define MIXER_OBJECTF_HWAVEOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT)
       
   268 #define MIXER_OBJECTF_WAVEIN 0x20000000
       
   269 #define MIXER_OBJECTF_HWAVEIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN)
       
   270 #define MIXER_OBJECTF_MIDIOUT 0x30000000
       
   271 #define MIXER_OBJECTF_HMIDIOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT)
       
   272 #define MIXER_OBJECTF_MIDIIN 0x40000000
       
   273 #define MIXER_OBJECTF_HMIDIIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN)
       
   274 #define MIXER_OBJECTF_AUX 0x50000000
       
   275 #define MIXERLINE_LINEF_ACTIVE 1
       
   276 #define MIXERLINE_LINEF_DISCONNECTED 0x8000
       
   277 #define MIXERLINE_LINEF_SOURCE 0x80000000
       
   278 #define MIXERLINE_COMPONENTTYPE_DST_FIRST 0
       
   279 #define MIXERLINE_COMPONENTTYPE_DST_UNDEFINED MIXERLINE_COMPONENTTYPE_DST_FIRST
       
   280 #define MIXERLINE_COMPONENTTYPE_DST_DIGITAL (MIXERLINE_COMPONENTTYPE_DST_FIRST+1)
       
   281 #define MIXERLINE_COMPONENTTYPE_DST_LINE (MIXERLINE_COMPONENTTYPE_DST_FIRST+2)
       
   282 #define MIXERLINE_COMPONENTTYPE_DST_MONITOR (MIXERLINE_COMPONENTTYPE_DST_FIRST+3)
       
   283 #define MIXERLINE_COMPONENTTYPE_DST_SPEAKERS (MIXERLINE_COMPONENTTYPE_DST_FIRST+4)
       
   284 #define MIXERLINE_COMPONENTTYPE_DST_HEADPHONES (MIXERLINE_COMPONENTTYPE_DST_FIRST+5)
       
   285 #define MIXERLINE_COMPONENTTYPE_DST_TELEPHONE (MIXERLINE_COMPONENTTYPE_DST_FIRST+6)
       
   286 #define MIXERLINE_COMPONENTTYPE_DST_WAVEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST+7)
       
   287 #define MIXERLINE_COMPONENTTYPE_DST_VOICEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST+8)
       
   288 #define MIXERLINE_COMPONENTTYPE_DST_LAST (MIXERLINE_COMPONENTTYPE_DST_FIRST+8)
       
   289 #define MIXERLINE_COMPONENTTYPE_SRC_FIRST 0x1000
       
   290 #define MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED MIXERLINE_COMPONENTTYPE_SRC_FIRST
       
   291 #define MIXERLINE_COMPONENTTYPE_SRC_DIGITAL (MIXERLINE_COMPONENTTYPE_SRC_FIRST+1)
       
   292 #define MIXERLINE_COMPONENTTYPE_SRC_LINE (MIXERLINE_COMPONENTTYPE_SRC_FIRST+2)
       
   293 #define MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST+3)
       
   294 #define MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER (MIXERLINE_COMPONENTTYPE_SRC_FIRST+4)
       
   295 #define MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC (MIXERLINE_COMPONENTTYPE_SRC_FIRST+5)
       
   296 #define MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST+6)
       
   297 #define MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER (MIXERLINE_COMPONENTTYPE_SRC_FIRST+7)
       
   298 #define MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT (MIXERLINE_COMPONENTTYPE_SRC_FIRST+8)
       
   299 #define MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY (MIXERLINE_COMPONENTTYPE_SRC_FIRST+9)
       
   300 #define MIXERLINE_COMPONENTTYPE_SRC_ANALOG (MIXERLINE_COMPONENTTYPE_SRC_FIRST+10)
       
   301 #define MIXERLINE_COMPONENTTYPE_SRC_LAST (MIXERLINE_COMPONENTTYPE_SRC_FIRST+10)
       
   302 #define MIXERLINE_TARGETTYPE_UNDEFINED 0
       
   303 #define MIXERLINE_TARGETTYPE_WAVEOUT 1
       
   304 #define MIXERLINE_TARGETTYPE_WAVEIN 2
       
   305 #define MIXERLINE_TARGETTYPE_MIDIOUT 3
       
   306 #define MIXERLINE_TARGETTYPE_MIDIIN 4
       
   307 #define MIXERLINE_TARGETTYPE_AUX 5
       
   308 #define MIXER_GETLINEINFOF_DESTINATION 0
       
   309 #define MIXER_GETLINEINFOF_SOURCE 1
       
   310 #define MIXER_GETLINEINFOF_LINEID 2
       
   311 #define MIXER_GETLINEINFOF_COMPONENTTYPE 3
       
   312 #define MIXER_GETLINEINFOF_TARGETTYPE 4
       
   313 #define MIXER_GETLINEINFOF_QUERYMASK 15
       
   314 #define MIXERCONTROL_CONTROLF_UNIFORM 1
       
   315 #define MIXERCONTROL_CONTROLF_MULTIPLE 2
       
   316 #define MIXERCONTROL_CONTROLF_DISABLED 0x80000000
       
   317 #define MIXERCONTROL_CT_CLASS_MASK 0xF0000000
       
   318 #define MIXERCONTROL_CT_CLASS_CUSTOM 0
       
   319 #define MIXERCONTROL_CT_CLASS_METER 0x10000000
       
   320 #define MIXERCONTROL_CT_CLASS_SWITCH 0x20000000
       
   321 #define MIXERCONTROL_CT_CLASS_NUMBER 0x30000000
       
   322 #define MIXERCONTROL_CT_CLASS_SLIDER 0x40000000
       
   323 #define MIXERCONTROL_CT_CLASS_FADER 0x50000000
       
   324 #define MIXERCONTROL_CT_CLASS_TIME 0x60000000
       
   325 #define MIXERCONTROL_CT_CLASS_LIST 0x70000000
       
   326 #define MIXERCONTROL_CT_SUBCLASS_MASK 0xF000000
       
   327 #define MIXERCONTROL_CT_SC_SWITCH_BOOLEAN 0
       
   328 #define MIXERCONTROL_CT_SC_SWITCH_BUTTON 0x1000000
       
   329 #define MIXERCONTROL_CT_SC_METER_POLLED 0
       
   330 #define MIXERCONTROL_CT_SC_TIME_MICROSECS 0
       
   331 #define MIXERCONTROL_CT_SC_TIME_MILLISECS 0x1000000
       
   332 #define MIXERCONTROL_CT_SC_LIST_SINGLE 0
       
   333 #define MIXERCONTROL_CT_SC_LIST_MULTIPLE 0x1000000
       
   334 #define MIXERCONTROL_CT_UNITS_MASK 0xFF0000
       
   335 #define MIXERCONTROL_CT_UNITS_CUSTOM 0
       
   336 #define MIXERCONTROL_CT_UNITS_BOOLEAN 0x10000
       
   337 #define MIXERCONTROL_CT_UNITS_SIGNED 0x20000
       
   338 #define MIXERCONTROL_CT_UNITS_UNSIGNED 0x30000
       
   339 #define MIXERCONTROL_CT_UNITS_DECIBELS 0x40000
       
   340 #define MIXERCONTROL_CT_UNITS_PERCENT 0x50000
       
   341 #define MIXERCONTROL_CONTROLTYPE_CUSTOM (MIXERCONTROL_CT_CLASS_CUSTOM|MIXERCONTROL_CT_UNITS_CUSTOM)
       
   342 #define MIXERCONTROL_CONTROLTYPE_BOOLEANMETER (MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_BOOLEAN)
       
   343 #define MIXERCONTROL_CONTROLTYPE_SIGNEDMETER (MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_SIGNED)
       
   344 #define MIXERCONTROL_CONTROLTYPE_PEAKMETER (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER+1)
       
   345 #define MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER (MIXERCONTROL_CT_CLASS_METER|MIXERCONTROL_CT_SC_METER_POLLED|MIXERCONTROL_CT_UNITS_UNSIGNED)
       
   346 #define MIXERCONTROL_CONTROLTYPE_BOOLEAN (MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BOOLEAN|MIXERCONTROL_CT_UNITS_BOOLEAN)
       
   347 #define MIXERCONTROL_CONTROLTYPE_ONOFF (MIXERCONTROL_CONTROLTYPE_BOOLEAN+1)
       
   348 #define MIXERCONTROL_CONTROLTYPE_MUTE (MIXERCONTROL_CONTROLTYPE_BOOLEAN+2)
       
   349 #define MIXERCONTROL_CONTROLTYPE_MONO (MIXERCONTROL_CONTROLTYPE_BOOLEAN+3)
       
   350 #define MIXERCONTROL_CONTROLTYPE_LOUDNESS (MIXERCONTROL_CONTROLTYPE_BOOLEAN+4)
       
   351 #define MIXERCONTROL_CONTROLTYPE_STEREOENH (MIXERCONTROL_CONTROLTYPE_BOOLEAN+5)
       
   352 #define MIXERCONTROL_CONTROLTYPE_BUTTON (MIXERCONTROL_CT_CLASS_SWITCH|MIXERCONTROL_CT_SC_SWITCH_BUTTON|MIXERCONTROL_CT_UNITS_BOOLEAN)
       
   353 #define MIXERCONTROL_CONTROLTYPE_DECIBELS (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_DECIBELS)
       
   354 #define MIXERCONTROL_CONTROLTYPE_SIGNED (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_SIGNED)
       
   355 #define MIXERCONTROL_CONTROLTYPE_UNSIGNED (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_UNSIGNED)
       
   356 #define MIXERCONTROL_CONTROLTYPE_PERCENT (MIXERCONTROL_CT_CLASS_NUMBER|MIXERCONTROL_CT_UNITS_PERCENT)
       
   357 #define MIXERCONTROL_CONTROLTYPE_SLIDER (MIXERCONTROL_CT_CLASS_SLIDER|MIXERCONTROL_CT_UNITS_SIGNED)
       
   358 #define MIXERCONTROL_CONTROLTYPE_PAN (MIXERCONTROL_CONTROLTYPE_SLIDER+1)
       
   359 #define MIXERCONTROL_CONTROLTYPE_QSOUNDPAN (MIXERCONTROL_CONTROLTYPE_SLIDER+2)
       
   360 #define MIXERCONTROL_CONTROLTYPE_FADER (MIXERCONTROL_CT_CLASS_FADER|MIXERCONTROL_CT_UNITS_UNSIGNED)
       
   361 #define MIXERCONTROL_CONTROLTYPE_VOLUME (MIXERCONTROL_CONTROLTYPE_FADER+1)
       
   362 #define MIXERCONTROL_CONTROLTYPE_BASS (MIXERCONTROL_CONTROLTYPE_FADER+2)
       
   363 #define MIXERCONTROL_CONTROLTYPE_TREBLE (MIXERCONTROL_CONTROLTYPE_FADER+3)
       
   364 #define MIXERCONTROL_CONTROLTYPE_EQUALIZER (MIXERCONTROL_CONTROLTYPE_FADER+4)
       
   365 #define MIXERCONTROL_CONTROLTYPE_SINGLESELECT (MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_SINGLE|MIXERCONTROL_CT_UNITS_BOOLEAN)
       
   366 #define MIXERCONTROL_CONTROLTYPE_MUX (MIXERCONTROL_CONTROLTYPE_SINGLESELECT+1)
       
   367 #define MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT (MIXERCONTROL_CT_CLASS_LIST|MIXERCONTROL_CT_SC_LIST_MULTIPLE|MIXERCONTROL_CT_UNITS_BOOLEAN)
       
   368 #define MIXERCONTROL_CONTROLTYPE_MIXER (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT+1)
       
   369 #define MIXERCONTROL_CONTROLTYPE_MICROTIME (MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MICROSECS|MIXERCONTROL_CT_UNITS_UNSIGNED)
       
   370 #define MIXERCONTROL_CONTROLTYPE_MILLITIME (MIXERCONTROL_CT_CLASS_TIME|MIXERCONTROL_CT_SC_TIME_MILLISECS|MIXERCONTROL_CT_UNITS_UNSIGNED)
       
   371 #define MIXER_GETLINECONTROLSF_ALL 0
       
   372 #define MIXER_GETLINECONTROLSF_ONEBYID 1
       
   373 #define MIXER_GETLINECONTROLSF_ONEBYTYPE 2
       
   374 #define MIXER_GETLINECONTROLSF_QUERYMASK 15
       
   375 #define MIXER_GETCONTROLDETAILSF_VALUE 0
       
   376 #define MIXER_GETCONTROLDETAILSF_LISTTEXT 1
       
   377 #define MIXER_GETCONTROLDETAILSF_QUERYMASK 15
       
   378 #define MIXER_SETCONTROLDETAILSF_VALUE 0
       
   379 #define MIXER_SETCONTROLDETAILSF_CUSTOM 1
       
   380 #define MIXER_SETCONTROLDETAILSF_QUERYMASK 15
       
   381 #define TIMERR_NOERROR 0
       
   382 #define TIMERR_NOCANDO (TIMERR_BASE+1)
       
   383 #define TIMERR_STRUCT (TIMERR_BASE+33)
       
   384 #define TIME_ONESHOT 0
       
   385 #define TIME_PERIODIC 1
       
   386 #define TIME_CALLBACK_FUNCTION 0
       
   387 #define TIME_CALLBACK_EVENT_SET 16
       
   388 #define TIME_CALLBACK_EVENT_PULSE 32
       
   389 #if (WINVER >= 0x0501)
       
   390 #define TIME_KILL_SYNCHRONOUS 0x0100
       
   391 #endif
       
   392 #define JOYERR_NOERROR (0)
       
   393 #define JOYERR_PARMS (JOYERR_BASE+5)
       
   394 #define JOYERR_NOCANDO (JOYERR_BASE+6)
       
   395 #define JOYERR_UNPLUGGED (JOYERR_BASE+7)
       
   396 #define JOY_BUTTON1 1
       
   397 #define JOY_BUTTON2 2
       
   398 #define JOY_BUTTON3 4
       
   399 #define JOY_BUTTON4 8
       
   400 #define JOY_BUTTON1CHG 256
       
   401 #define JOY_BUTTON2CHG 512
       
   402 #define JOY_BUTTON3CHG 1024
       
   403 #define JOY_BUTTON4CHG 2048
       
   404 #define JOY_BUTTON5 257
       
   405 #define JOY_BUTTON6 513
       
   406 #define JOY_BUTTON7 1025
       
   407 #define JOY_BUTTON8 2049
       
   408 #define JOY_BUTTON9 256
       
   409 #define JOY_BUTTON10 512
       
   410 #define JOY_BUTTON11 1024
       
   411 #define JOY_BUTTON12 2048
       
   412 #define JOY_BUTTON13 4096
       
   413 #define JOY_BUTTON14 8192
       
   414 #define JOY_BUTTON15 16384
       
   415 #define JOY_BUTTON16 32768
       
   416 #define JOY_BUTTON17 65536
       
   417 #define JOY_BUTTON18 0x20000
       
   418 #define JOY_BUTTON19 0x40000
       
   419 #define JOY_BUTTON20 0x80000
       
   420 #define JOY_BUTTON21 0x100000
       
   421 #define JOY_BUTTON22 0x200000
       
   422 #define JOY_BUTTON23 0x400000
       
   423 #define JOY_BUTTON24 0x800000
       
   424 #define JOY_BUTTON25 0x1000000
       
   425 #define JOY_BUTTON26 0x2000000
       
   426 #define JOY_BUTTON27 0x4000000
       
   427 #define JOY_BUTTON28 0x8000000
       
   428 #define JOY_BUTTON29 0x10000000
       
   429 #define JOY_BUTTON30 0x20000000
       
   430 #define JOY_BUTTON31 0x40000000
       
   431 #define JOY_BUTTON32 0x80000000
       
   432 #define JOY_POVCENTERED	((WORD)-1)
       
   433 #define JOY_POVFORWARD	0
       
   434 #define JOY_POVRIGHT	9000
       
   435 #define JOY_POVBACKWARD	18000
       
   436 #define JOY_POVLEFT	27000
       
   437 #define JOY_RETURNX	1
       
   438 #define JOY_RETURNY	2
       
   439 #define JOY_RETURNZ	4l
       
   440 #define JOY_RETURNR	8
       
   441 #define JOY_RETURNU	16
       
   442 #define JOY_RETURNV	32
       
   443 #define JOY_RETURNPOV	64
       
   444 #define JOY_RETURNBUTTONS	128
       
   445 #define JOY_RETURNRAWDATA	256
       
   446 #define JOY_RETURNPOVCTS	512
       
   447 #define JOY_RETURNCENTERED	1024
       
   448 #define JOY_USEDEADZONE	2048
       
   449 #define JOY_RETURNALL	(JOY_RETURNX|JOY_RETURNY|JOY_RETURNZ|JOY_RETURNR|JOY_RETURNU|JOY_RETURNV|JOY_RETURNPOV|JOY_RETURNBUTTONS)
       
   450 #define JOY_CAL_READALWAYS	0x10000
       
   451 #define JOY_CAL_READXYONLY	0x20000
       
   452 #define JOY_CAL_READ3	0x40000
       
   453 #define JOY_CAL_READ4	0x80000
       
   454 #define JOY_CAL_READXONLY	0x100000
       
   455 #define JOY_CAL_READYONLY	0x200000
       
   456 #define JOY_CAL_READ5	0x400000
       
   457 #define JOY_CAL_READ6	0x800000
       
   458 #define JOY_CAL_READZONLY	0x1000000
       
   459 #define JOY_CAL_READRONLY	0x2000000
       
   460 #define JOY_CAL_READUONLY	0x4000000
       
   461 #define JOY_CAL_READVONLY	0x8000000
       
   462 #define JOYSTICKID1 0
       
   463 #define JOYSTICKID2 1
       
   464 #define JOYCAPS_HASZ	1
       
   465 #define JOYCAPS_HASR	2
       
   466 #define JOYCAPS_HASU	4
       
   467 #define JOYCAPS_HASV	8
       
   468 #define JOYCAPS_HASPOV	16
       
   469 #define JOYCAPS_POV4DIR	32
       
   470 #define JOYCAPS_POVCTS	64
       
   471 #define MMIOERR_BASE 256
       
   472 #define MMIOERR_FILENOTFOUND (MMIOERR_BASE+1)
       
   473 #define MMIOERR_OUTOFMEMORY (MMIOERR_BASE+2)
       
   474 #define MMIOERR_CANNOTOPEN (MMIOERR_BASE+3)
       
   475 #define MMIOERR_CANNOTCLOSE (MMIOERR_BASE+4)
       
   476 #define MMIOERR_CANNOTREAD (MMIOERR_BASE+5)
       
   477 #define MMIOERR_CANNOTWRITE (MMIOERR_BASE+6)
       
   478 #define MMIOERR_CANNOTSEEK (MMIOERR_BASE+7)
       
   479 #define MMIOERR_CANNOTEXPAND (MMIOERR_BASE+8)
       
   480 #define MMIOERR_CHUNKNOTFOUND (MMIOERR_BASE+9)
       
   481 #define MMIOERR_UNBUFFERED (MMIOERR_BASE+10)
       
   482 #define MMIOERR_PATHNOTFOUND (MMIOERR_BASE+11)
       
   483 #define MMIOERR_ACCESSDENIED (MMIOERR_BASE+12)
       
   484 #define MMIOERR_SHARINGVIOLATION (MMIOERR_BASE+13)
       
   485 #define MMIOERR_NETWORKERROR (MMIOERR_BASE+14)
       
   486 #define MMIOERR_TOOMANYOPENFILES (MMIOERR_BASE+15)
       
   487 #define MMIOERR_INVALIDFILE (MMIOERR_BASE+16)
       
   488 #define CFSEPCHAR '+'
       
   489 #define MMIO_RWMODE 3
       
   490 #define MMIO_SHAREMODE 0x70
       
   491 #define MMIO_CREATE 0x1000
       
   492 #define MMIO_PARSE 256
       
   493 #define MMIO_DELETE 512
       
   494 #define MMIO_EXIST 0x4000
       
   495 #define MMIO_ALLOCBUF 0x10000
       
   496 #define MMIO_GETTEMP 0x20000
       
   497 #define MMIO_DIRTY 0x10000000
       
   498 #define MMIO_READ 0
       
   499 #define MMIO_WRITE 1
       
   500 #define MMIO_READWRITE 2
       
   501 #define MMIO_COMPAT 0
       
   502 #define MMIO_EXCLUSIVE 16
       
   503 #define MMIO_DENYWRITE 32
       
   504 #define MMIO_DENYREAD 0x30
       
   505 #define MMIO_DENYNONE 64
       
   506 #define MMIO_FHOPEN 16
       
   507 #define MMIO_EMPTYBUF 16
       
   508 #define MMIO_TOUPPER 16
       
   509 #define MMIO_INSTALLPROC 0x10000
       
   510 #define MMIO_GLOBALPROC 0x10000000
       
   511 #define MMIO_REMOVEPROC 0x20000
       
   512 #define MMIO_UNICODEPROC 0x1000000
       
   513 #define MMIO_FINDPROC 0x40000
       
   514 #define MMIO_FINDCHUNK 16
       
   515 #define MMIO_FINDRIFF 32
       
   516 #define MMIO_FINDLIST 64
       
   517 #define MMIO_CREATERIFF 32
       
   518 #define MMIO_CREATELIST 64
       
   519 #define MMIOM_READ MMIO_READ
       
   520 #define MMIOM_WRITE MMIO_WRITE
       
   521 #define MMIOM_SEEK 2
       
   522 #define MMIOM_OPEN 3
       
   523 #define MMIOM_CLOSE 4
       
   524 #define MMIOM_WRITEFLUSH 5
       
   525 #define MMIOM_RENAME 6
       
   526 #define MMIOM_USER 0x8000
       
   527 #define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F')
       
   528 #define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T')
       
   529 #define FOURCC_DOS mmioFOURCC('D', 'O', 'S', ' ')
       
   530 #define FOURCC_MEM mmioFOURCC('M', 'E', 'M', ' ')
       
   531 #define MMIO_DEFAULTBUFFER 8192
       
   532 #define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE+1)
       
   533 #define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE+3)
       
   534 #define MCIERR_UNRECOGNIZED_COMMAND (MCIERR_BASE+5)
       
   535 #define MCIERR_HARDWARE (MCIERR_BASE+6)
       
   536 #define MCIERR_INVALID_DEVICE_NAME (MCIERR_BASE+7)
       
   537 #define MCIERR_OUT_OF_MEMORY (MCIERR_BASE+8)
       
   538 #define MCIERR_DEVICE_OPEN (MCIERR_BASE+9)
       
   539 #define MCIERR_CANNOT_LOAD_DRIVER (MCIERR_BASE+10)
       
   540 #define MCIERR_MISSING_COMMAND_STRING (MCIERR_BASE+11)
       
   541 #define MCIERR_PARAM_OVERFLOW (MCIERR_BASE+12)
       
   542 #define MCIERR_MISSING_STRING_ARGUMENT (MCIERR_BASE+13)
       
   543 #define MCIERR_BAD_INTEGER (MCIERR_BASE+14)
       
   544 #define MCIERR_PARSER_INTERNAL (MCIERR_BASE+15)
       
   545 #define MCIERR_DRIVER_INTERNAL (MCIERR_BASE+16)
       
   546 #define MCIERR_MISSING_PARAMETER (MCIERR_BASE+17)
       
   547 #define MCIERR_UNSUPPORTED_FUNCTION (MCIERR_BASE+18)
       
   548 #define MCIERR_FILE_NOT_FOUND (MCIERR_BASE+19)
       
   549 #define MCIERR_DEVICE_NOT_READY (MCIERR_BASE+20)
       
   550 #define MCIERR_INTERNAL (MCIERR_BASE+21)
       
   551 #define MCIERR_DRIVER (MCIERR_BASE+22)
       
   552 #define MCIERR_CANNOT_USE_ALL (MCIERR_BASE+23)
       
   553 #define MCIERR_MULTIPLE (MCIERR_BASE+24)
       
   554 #define MCIERR_EXTENSION_NOT_FOUND (MCIERR_BASE+25)
       
   555 #define MCIERR_OUTOFRANGE (MCIERR_BASE+26)
       
   556 #define MCIERR_FLAGS_NOT_COMPATIBLE (MCIERR_BASE+28)
       
   557 #define MCIERR_FILE_NOT_SAVED (MCIERR_BASE+30)
       
   558 #define MCIERR_DEVICE_TYPE_REQUIRED (MCIERR_BASE+31)
       
   559 #define MCIERR_DEVICE_LOCKED (MCIERR_BASE+32)
       
   560 #define MCIERR_DUPLICATE_ALIAS (MCIERR_BASE+33)
       
   561 #define MCIERR_BAD_CONSTANT (MCIERR_BASE+34)
       
   562 #define MCIERR_MUST_USE_SHAREABLE (MCIERR_BASE+35)
       
   563 #define MCIERR_MISSING_DEVICE_NAME (MCIERR_BASE+36)
       
   564 #define MCIERR_BAD_TIME_FORMAT (MCIERR_BASE+37)
       
   565 #define MCIERR_NO_CLOSING_QUOTE (MCIERR_BASE+38)
       
   566 #define MCIERR_DUPLICATE_FLAGS (MCIERR_BASE+39)
       
   567 #define MCIERR_INVALID_FILE (MCIERR_BASE+40)
       
   568 #define MCIERR_NULL_PARAMETER_BLOCK (MCIERR_BASE+41)
       
   569 #define MCIERR_UNNAMED_RESOURCE (MCIERR_BASE+42)
       
   570 #define MCIERR_NEW_REQUIRES_ALIAS (MCIERR_BASE+43)
       
   571 #define MCIERR_NOTIFY_ON_AUTO_OPEN (MCIERR_BASE+44)
       
   572 #define MCIERR_NO_ELEMENT_ALLOWED (MCIERR_BASE+45)
       
   573 #define MCIERR_NONAPPLICABLE_FUNCTION (MCIERR_BASE+46)
       
   574 #define MCIERR_ILLEGAL_FOR_AUTO_OPEN (MCIERR_BASE+47)
       
   575 #define MCIERR_FILENAME_REQUIRED (MCIERR_BASE+48)
       
   576 #define MCIERR_EXTRA_CHARACTERS (MCIERR_BASE+49)
       
   577 #define MCIERR_DEVICE_NOT_INSTALLED (MCIERR_BASE+50)
       
   578 #define MCIERR_GET_CD (MCIERR_BASE+51)
       
   579 #define MCIERR_SET_CD (MCIERR_BASE+52)
       
   580 #define MCIERR_SET_DRIVE (MCIERR_BASE+53)
       
   581 #define MCIERR_DEVICE_LENGTH (MCIERR_BASE+54)
       
   582 #define MCIERR_DEVICE_ORD_LENGTH (MCIERR_BASE+55)
       
   583 #define MCIERR_NO_INTEGER (MCIERR_BASE+56)
       
   584 #define MCIERR_WAVE_OUTPUTSINUSE (MCIERR_BASE+64)
       
   585 #define MCIERR_WAVE_SETOUTPUTINUSE (MCIERR_BASE+65)
       
   586 #define MCIERR_WAVE_INPUTSINUSE (MCIERR_BASE+66)
       
   587 #define MCIERR_WAVE_SETINPUTINUSE (MCIERR_BASE+67)
       
   588 #define MCIERR_WAVE_OUTPUTUNSPECIFIED (MCIERR_BASE+68)
       
   589 #define MCIERR_WAVE_INPUTUNSPECIFIED (MCIERR_BASE+69)
       
   590 #define MCIERR_WAVE_OUTPUTSUNSUITABLE (MCIERR_BASE+70)
       
   591 #define MCIERR_WAVE_SETOUTPUTUNSUITABLE (MCIERR_BASE+71)
       
   592 #define MCIERR_WAVE_INPUTSUNSUITABLE (MCIERR_BASE+72)
       
   593 #define MCIERR_WAVE_SETINPUTUNSUITABLE (MCIERR_BASE+73)
       
   594 #define MCIERR_SEQ_DIV_INCOMPATIBLE (MCIERR_BASE+80)
       
   595 #define MCIERR_SEQ_PORT_INUSE (MCIERR_BASE+81)
       
   596 #define MCIERR_SEQ_PORT_NONEXISTENT (MCIERR_BASE+82)
       
   597 #define MCIERR_SEQ_PORT_MAPNODEVICE (MCIERR_BASE+83)
       
   598 #define MCIERR_SEQ_PORT_MISCERROR (MCIERR_BASE+84)
       
   599 #define MCIERR_SEQ_TIMER (MCIERR_BASE+85)
       
   600 #define MCIERR_SEQ_PORTUNSPECIFIED (MCIERR_BASE+86)
       
   601 #define MCIERR_SEQ_NOMIDIPRESENT (MCIERR_BASE+87)
       
   602 #define MCIERR_NO_WINDOW (MCIERR_BASE+90)
       
   603 #define MCIERR_CREATEWINDOW (MCIERR_BASE+91)
       
   604 #define MCIERR_FILE_READ (MCIERR_BASE+92)
       
   605 #define MCIERR_FILE_WRITE (MCIERR_BASE+93)
       
   606 #define MCIERR_NO_IDENTITY (MCIERR_BASE+94)
       
   607 #define MCIERR_CUSTOM_DRIVER_BASE (MCIERR_BASE+256)
       
   608 #define MCI_FIRST DRV_MCI_FIRST
       
   609 #define MCI_OPEN 0x803
       
   610 #define MCI_CLOSE 0x804
       
   611 #define MCI_ESCAPE 0x805
       
   612 #define MCI_PLAY 0x806
       
   613 #define MCI_SEEK 0x807
       
   614 #define MCI_STOP 0x808
       
   615 #define MCI_PAUSE 0x809
       
   616 #define MCI_INFO 0x80A
       
   617 #define MCI_GETDEVCAPS 0x80B
       
   618 #define MCI_SPIN 0x80C
       
   619 #define MCI_SET 0x80D
       
   620 #define MCI_STEP 0x80E
       
   621 #define MCI_RECORD 0x80F
       
   622 #define MCI_SYSINFO 0x810
       
   623 #define MCI_BREAK 0x811
       
   624 #define MCI_SAVE 0x813
       
   625 #define MCI_STATUS 0x814
       
   626 #define MCI_CUE 0x830
       
   627 #define MCI_REALIZE 0x840
       
   628 #define MCI_WINDOW 0x841
       
   629 #define MCI_PUT 0x842
       
   630 #define MCI_WHERE 0x843
       
   631 #define MCI_FREEZE 0x844
       
   632 #define MCI_UNFREEZE 0x845
       
   633 #define MCI_LOAD 0x850
       
   634 #define MCI_CUT 0x851
       
   635 #define MCI_COPY 0x852
       
   636 #define MCI_PASTE 0x853
       
   637 #define MCI_UPDATE 0x854
       
   638 #define MCI_RESUME 0x855
       
   639 #define MCI_DELETE 0x856
       
   640 #define MCI_USER_MESSAGES (DRV_MCI_FIRST+0x400)
       
   641 #define MCI_LAST 0xFFF
       
   642 #define MCI_ALL_DEVICE_ID ((MCIDEVICEID)-1)
       
   643 #define MCI_DEVTYPE_VCR 513
       
   644 #define MCI_DEVTYPE_VIDEODISC 514
       
   645 #define MCI_DEVTYPE_OVERLAY 515
       
   646 #define MCI_DEVTYPE_CD_AUDIO 516
       
   647 #define MCI_DEVTYPE_DAT 517
       
   648 #define MCI_DEVTYPE_SCANNER 518
       
   649 #define MCI_DEVTYPE_ANIMATION 519
       
   650 #define MCI_DEVTYPE_DIGITAL_VIDEO 520
       
   651 #define MCI_DEVTYPE_OTHER 521
       
   652 #define MCI_DEVTYPE_WAVEFORM_AUDIO 522
       
   653 #define MCI_DEVTYPE_SEQUENCER 523
       
   654 #define MCI_DEVTYPE_FIRST MCI_DEVTYPE_VCR
       
   655 #define MCI_DEVTYPE_LAST MCI_DEVTYPE_SEQUENCER
       
   656 #define MCI_DEVTYPE_FIRST_USER 0x1000
       
   657 #define MCI_MODE_NOT_READY (MCI_STRING_OFFSET+12)
       
   658 #define MCI_MODE_STOP (MCI_STRING_OFFSET+13)
       
   659 #define MCI_MODE_PLAY (MCI_STRING_OFFSET+14)
       
   660 #define MCI_MODE_RECORD (MCI_STRING_OFFSET+15)
       
   661 #define MCI_MODE_SEEK (MCI_STRING_OFFSET+16)
       
   662 #define MCI_MODE_PAUSE (MCI_STRING_OFFSET+17)
       
   663 #define MCI_MODE_OPEN (MCI_STRING_OFFSET+18)
       
   664 #define MCI_FORMAT_MILLISECONDS 0
       
   665 #define MCI_FORMAT_HMS 1
       
   666 #define MCI_FORMAT_MSF 2
       
   667 #define MCI_FORMAT_FRAMES 3
       
   668 #define MCI_FORMAT_SMPTE_24 4
       
   669 #define MCI_FORMAT_SMPTE_25 5
       
   670 #define MCI_FORMAT_SMPTE_30 6
       
   671 #define MCI_FORMAT_SMPTE_30DROP 7
       
   672 #define MCI_FORMAT_BYTES 8
       
   673 #define MCI_FORMAT_SAMPLES 9
       
   674 #define MCI_FORMAT_TMSF 10
       
   675 #define MCI_MSF_MINUTE(t) ((BYTE)(t))
       
   676 #define MCI_MSF_SECOND(t) ((BYTE)(((WORD)(t))>>8))
       
   677 #define MCI_MSF_FRAME(t) ((BYTE)((t)>>16))
       
   678 #define MCI_MAKE_MSF(m,s,f) ((DWORD)(((BYTE)(m)|((WORD)(s)<<8))|(((DWORD)(BYTE)(f))<<16)))
       
   679 #define MCI_TMSF_TRACK(t) ((BYTE)(t))
       
   680 #define MCI_TMSF_MINUTE(t) ((BYTE)(((WORD)(t))>>8))
       
   681 #define MCI_TMSF_SECOND(t) ((BYTE)((t)>>16))
       
   682 #define MCI_TMSF_FRAME(t) ((BYTE)((t)>>24))
       
   683 #define MCI_MAKE_TMSF(t,m,s,f) ((DWORD)(((BYTE)(t)|((WORD)(m)<<8))|(((DWORD)(BYTE)(s)|((WORD)(f)<<8))<<16)))
       
   684 #define MCI_HMS_HOUR(t) ((BYTE)(t))
       
   685 #define MCI_HMS_MINUTE(t) ((BYTE)(((WORD)(t))>>8))
       
   686 #define MCI_HMS_SECOND(t) ((BYTE)((t)>>16))
       
   687 #define MCI_MAKE_HMS(h,m,s) ((DWORD)(((BYTE)(h)|((WORD)(m)<<8))|(((DWORD)(BYTE)(s))<<16)))
       
   688 #define MCI_NOTIFY_SUCCESSFUL 1
       
   689 #define MCI_NOTIFY_SUPERSEDED 2
       
   690 #define MCI_NOTIFY_ABORTED 4
       
   691 #define MCI_NOTIFY_FAILURE 8
       
   692 #define MCI_NOTIFY 1
       
   693 #define MCI_WAIT 2
       
   694 #define MCI_FROM 4
       
   695 #define MCI_TO 8
       
   696 #define MCI_TRACK 16
       
   697 #define MCI_OPEN_SHAREABLE 256
       
   698 #define MCI_OPEN_ELEMENT 512
       
   699 #define MCI_OPEN_ALIAS 1024
       
   700 #define MCI_OPEN_ELEMENT_ID 2048
       
   701 #define MCI_OPEN_TYPE_ID 0x1000
       
   702 #define MCI_OPEN_TYPE 0x2000
       
   703 #define MCI_SEEK_TO_START 256
       
   704 #define MCI_SEEK_TO_END 512
       
   705 #define MCI_STATUS_ITEM 256
       
   706 #define MCI_STATUS_START 512
       
   707 #define MCI_STATUS_LENGTH 1
       
   708 #define MCI_STATUS_POSITION 2
       
   709 #define MCI_STATUS_NUMBER_OF_TRACKS 3
       
   710 #define MCI_STATUS_MODE 4
       
   711 #define MCI_STATUS_MEDIA_PRESENT 5
       
   712 #define MCI_STATUS_TIME_FORMAT 6
       
   713 #define MCI_STATUS_READY 7
       
   714 #define MCI_STATUS_CURRENT_TRACK 8
       
   715 #define MCI_INFO_PRODUCT 256
       
   716 #define MCI_INFO_FILE 512
       
   717 #define MCI_INFO_MEDIA_UPC 1024
       
   718 #define MCI_INFO_MEDIA_IDENTITY 2048
       
   719 #define MCI_INFO_NAME 0x1000
       
   720 #define MCI_INFO_COPYRIGHT 0x2000
       
   721 #define MCI_GETDEVCAPS_ITEM 256
       
   722 #define MCI_GETDEVCAPS_CAN_RECORD 1
       
   723 #define MCI_GETDEVCAPS_HAS_AUDIO 2
       
   724 #define MCI_GETDEVCAPS_HAS_VIDEO 3
       
   725 #define MCI_GETDEVCAPS_DEVICE_TYPE 4
       
   726 #define MCI_GETDEVCAPS_USES_FILES 5
       
   727 #define MCI_GETDEVCAPS_COMPOUND_DEVICE 6
       
   728 #define MCI_GETDEVCAPS_CAN_EJECT 7
       
   729 #define MCI_GETDEVCAPS_CAN_PLAY 8
       
   730 #define MCI_GETDEVCAPS_CAN_SAVE 9
       
   731 #define MCI_SYSINFO_QUANTITY 256
       
   732 #define MCI_SYSINFO_OPEN 512
       
   733 #define MCI_SYSINFO_NAME 1024
       
   734 #define MCI_SYSINFO_INSTALLNAME 2048
       
   735 #define MCI_SET_DOOR_OPEN 256
       
   736 #define MCI_SET_DOOR_CLOSED 512
       
   737 #define MCI_SET_TIME_FORMAT 1024
       
   738 #define MCI_SET_AUDIO 2048
       
   739 #define MCI_SET_VIDEO 0x1000
       
   740 #define MCI_SET_ON 0x2000
       
   741 #define MCI_SET_OFF 0x4000
       
   742 #define MCI_SET_AUDIO_ALL 0
       
   743 #define MCI_SET_AUDIO_LEFT 1
       
   744 #define MCI_SET_AUDIO_RIGHT 2
       
   745 #define MCI_BREAK_KEY 256
       
   746 #define MCI_BREAK_HWND 512
       
   747 #define MCI_BREAK_OFF 1024
       
   748 #define MCI_RECORD_INSERT 256
       
   749 #define MCI_RECORD_OVERWRITE 512
       
   750 #define MCI_SAVE_FILE 256
       
   751 #define MCI_LOAD_FILE 256
       
   752 #define MCI_VD_MODE_PARK (MCI_VD_OFFSET+1)
       
   753 #define MCI_VD_MEDIA_CLV (MCI_VD_OFFSET+2)
       
   754 #define MCI_VD_MEDIA_CAV (MCI_VD_OFFSET+3)
       
   755 #define MCI_VD_MEDIA_OTHER (MCI_VD_OFFSET+4)
       
   756 #define MCI_VD_FORMAT_TRACK 0x4001
       
   757 #define MCI_VD_PLAY_REVERSE 0x10000
       
   758 #define MCI_VD_PLAY_FAST 0x20000
       
   759 #define MCI_VD_PLAY_SPEED 0x40000
       
   760 #define MCI_VD_PLAY_SCAN 0x80000
       
   761 #define MCI_VD_PLAY_SLOW 0x100000
       
   762 #define MCI_VD_SEEK_REVERSE 0x10000
       
   763 #define MCI_VD_STATUS_SPEED 0x4002
       
   764 #define MCI_VD_STATUS_FORWARD 0x4003
       
   765 #define MCI_VD_STATUS_MEDIA_TYPE 0x4004
       
   766 #define MCI_VD_STATUS_SIDE 0x4005
       
   767 #define MCI_VD_STATUS_DISC_SIZE 0x4006
       
   768 #define MCI_VD_GETDEVCAPS_CLV 0x10000
       
   769 #define MCI_VD_GETDEVCAPS_CAV 0x20000
       
   770 #define MCI_VD_SPIN_UP 0x10000
       
   771 #define MCI_VD_SPIN_DOWN 0x20000
       
   772 #define MCI_VD_GETDEVCAPS_CAN_REVERSE 0x4002
       
   773 #define MCI_VD_GETDEVCAPS_FAST_RATE 0x4003
       
   774 #define MCI_VD_GETDEVCAPS_SLOW_RATE 0x4004
       
   775 #define MCI_VD_GETDEVCAPS_NORMAL_RATE 0x4005
       
   776 #define MCI_VD_STEP_FRAMES 0x10000
       
   777 #define MCI_VD_STEP_REVERSE 0x20000
       
   778 #define MCI_VD_ESCAPE_STRING 256
       
   779 #define MCI_CDA_STATUS_TYPE_TRACK 0x4001
       
   780 #define MCI_CDA_TRACK_AUDIO MCI_CD_OFFSET
       
   781 #define MCI_CDA_TRACK_OTHER (MCI_CD_OFFSET+1)
       
   782 #define MCI_WAVE_PCM MCI_WAVE_OFFSET
       
   783 #define MCI_WAVE_MAPPER (MCI_WAVE_OFFSET+1)
       
   784 #define MCI_WAVE_OPEN_BUFFER 0x10000
       
   785 #define MCI_WAVE_SET_FORMATTAG 0x10000
       
   786 #define MCI_WAVE_SET_CHANNELS 0x20000
       
   787 #define MCI_WAVE_SET_SAMPLESPERSEC 0x40000
       
   788 #define MCI_WAVE_SET_AVGBYTESPERSEC 0x80000
       
   789 #define MCI_WAVE_SET_BLOCKALIGN 0x100000
       
   790 #define MCI_WAVE_SET_BITSPERSAMPLE 0x200000
       
   791 #define MCI_WAVE_INPUT 0x400000
       
   792 #define MCI_WAVE_OUTPUT 0x800000
       
   793 #define MCI_WAVE_STATUS_FORMATTAG 0x4001
       
   794 #define MCI_WAVE_STATUS_CHANNELS 0x4002
       
   795 #define MCI_WAVE_STATUS_SAMPLESPERSEC 0x4003
       
   796 #define MCI_WAVE_STATUS_AVGBYTESPERSEC 0x4004
       
   797 #define MCI_WAVE_STATUS_BLOCKALIGN 0x4005
       
   798 #define MCI_WAVE_STATUS_BITSPERSAMPLE 0x4006
       
   799 #define MCI_WAVE_STATUS_LEVEL 0x4007
       
   800 #define MCI_WAVE_SET_ANYINPUT 0x4000000
       
   801 #define MCI_WAVE_SET_ANYOUTPUT 0x8000000
       
   802 #define MCI_WAVE_GETDEVCAPS_INPUTS 0x4001
       
   803 #define MCI_WAVE_GETDEVCAPS_OUTPUTS 0x4002
       
   804 #define MCI_SEQ_DIV_PPQN MCI_SEQ_OFFSET
       
   805 #define MCI_SEQ_DIV_SMPTE_24 (MCI_SEQ_OFFSET+1)
       
   806 #define MCI_SEQ_DIV_SMPTE_25 (MCI_SEQ_OFFSET+2)
       
   807 #define MCI_SEQ_DIV_SMPTE_30DROP (MCI_SEQ_OFFSET+3)
       
   808 #define MCI_SEQ_DIV_SMPTE_30 (MCI_SEQ_OFFSET+4)
       
   809 #define MCI_SEQ_FORMAT_SONGPTR 0x4001
       
   810 #define MCI_SEQ_FILE 0x4002
       
   811 #define MCI_SEQ_MIDI 0x4003
       
   812 #define MCI_SEQ_SMPTE 0x4004
       
   813 #define MCI_SEQ_NONE 65533
       
   814 #define MCI_SEQ_MAPPER 65535
       
   815 #define MCI_SEQ_STATUS_TEMPO 0x4002
       
   816 #define MCI_SEQ_STATUS_PORT 0x4003
       
   817 #define MCI_SEQ_STATUS_SLAVE 0x4007
       
   818 #define MCI_SEQ_STATUS_MASTER 0x4008
       
   819 #define MCI_SEQ_STATUS_OFFSET 0x4009
       
   820 #define MCI_SEQ_STATUS_DIVTYPE 0x400A
       
   821 #define MCI_SEQ_STATUS_NAME 0x400B
       
   822 #define MCI_SEQ_STATUS_COPYRIGHT 0x400C
       
   823 #define MCI_SEQ_SET_TEMPO 0x10000
       
   824 #define MCI_SEQ_SET_PORT 0x20000
       
   825 #define MCI_SEQ_SET_SLAVE 0x40000
       
   826 #define MCI_SEQ_SET_MASTER 0x80000
       
   827 #define MCI_SEQ_SET_OFFSET 0x1000000
       
   828 #define MCI_ANIM_OPEN_WS 0x10000
       
   829 #define MCI_ANIM_OPEN_PARENT 0x20000
       
   830 #define MCI_ANIM_OPEN_NOSTATIC 0x40000
       
   831 #define MCI_ANIM_PLAY_SPEED 0x10000
       
   832 #define MCI_ANIM_PLAY_REVERSE 0x20000
       
   833 #define MCI_ANIM_PLAY_FAST 0x40000
       
   834 #define MCI_ANIM_PLAY_SLOW 0x80000
       
   835 #define MCI_ANIM_PLAY_SCAN 0x100000
       
   836 #define MCI_ANIM_STEP_REVERSE 0x10000
       
   837 #define MCI_ANIM_STEP_FRAMES 0x20000
       
   838 #define MCI_ANIM_STATUS_SPEED 0x4001
       
   839 #define MCI_ANIM_STATUS_FORWARD 0x4002
       
   840 #define MCI_ANIM_STATUS_HWND 0x4003
       
   841 #define MCI_ANIM_STATUS_HPAL 0x4004
       
   842 #define MCI_ANIM_STATUS_STRETCH 0x4005
       
   843 #define MCI_ANIM_INFO_TEXT 0x10000
       
   844 #define MCI_ANIM_GETDEVCAPS_CAN_REVERSE 0x4001
       
   845 #define MCI_ANIM_GETDEVCAPS_FAST_RATE 0x4002
       
   846 #define MCI_ANIM_GETDEVCAPS_SLOW_RATE 0x4003
       
   847 #define MCI_ANIM_GETDEVCAPS_NORMAL_RATE 0x4004
       
   848 #define MCI_ANIM_GETDEVCAPS_PALETTES 0x4006
       
   849 #define MCI_ANIM_GETDEVCAPS_CAN_STRETCH 0x4007
       
   850 #define MCI_ANIM_GETDEVCAPS_MAX_WINDOWS 0x4008
       
   851 #define MCI_ANIM_REALIZE_NORM 0x10000
       
   852 #define MCI_ANIM_REALIZE_BKGD 0x20000
       
   853 #define MCI_ANIM_WINDOW_HWND 0x10000
       
   854 #define MCI_ANIM_WINDOW_STATE 0x40000
       
   855 #define MCI_ANIM_WINDOW_TEXT 0x80000
       
   856 #define MCI_ANIM_WINDOW_ENABLE_STRETCH 0x100000
       
   857 #define MCI_ANIM_WINDOW_DISABLE_STRETCH 0x200000
       
   858 #define MCI_ANIM_WINDOW_DEFAULT 0xL
       
   859 #define MCI_ANIM_RECT 0x10000
       
   860 #define MCI_ANIM_PUT_SOURCE 0x20000
       
   861 #define MCI_ANIM_PUT_DESTINATION 0x40000
       
   862 #define MCI_ANIM_WHERE_SOURCE 0x20000
       
   863 #define MCI_ANIM_WHERE_DESTINATION 0x40000
       
   864 #define MCI_ANIM_UPDATE_HDC 0x20000
       
   865 #define MCI_OVLY_OPEN_WS 0x10000
       
   866 #define MCI_OVLY_OPEN_PARENT 0x20000
       
   867 #define MCI_OVLY_STATUS_HWND 0x4001
       
   868 #define MCI_OVLY_STATUS_STRETCH 0x4002
       
   869 #define MCI_OVLY_INFO_TEXT 0x10000
       
   870 #define MCI_OVLY_GETDEVCAPS_CAN_STRETCH 0x4001
       
   871 #define MCI_OVLY_GETDEVCAPS_CAN_FREEZE 0x4002
       
   872 #define MCI_OVLY_GETDEVCAPS_MAX_WINDOWS 0x4003
       
   873 #define MCI_OVLY_WINDOW_HWND 0x10000
       
   874 #define MCI_OVLY_WINDOW_STATE 0x40000
       
   875 #define MCI_OVLY_WINDOW_TEXT 0x80000
       
   876 #define MCI_OVLY_WINDOW_ENABLE_STRETCH 0x100000
       
   877 #define MCI_OVLY_WINDOW_DISABLE_STRETCH 0x200000
       
   878 #define MCI_OVLY_WINDOW_DEFAULT 0xL
       
   879 #define MCI_OVLY_RECT 0x10000
       
   880 #define MCI_OVLY_PUT_SOURCE 0x20000
       
   881 #define MCI_OVLY_PUT_DESTINATION 0x40000
       
   882 #define MCI_OVLY_PUT_FRAME 0x80000
       
   883 #define MCI_OVLY_PUT_VIDEO 0x100000
       
   884 #define MCI_OVLY_WHERE_SOURCE 0x20000
       
   885 #define MCI_OVLY_WHERE_DESTINATION 0x40000
       
   886 #define MCI_OVLY_WHERE_FRAME 0x80000
       
   887 #define MCI_OVLY_WHERE_VIDEO 0x100000
       
   888 #define NEWTRANSPARENT 3
       
   889 #define QUERYROPSUPPORT 40
       
   890 #define SELECTDIB 41
       
   891 #define DIBINDEX(n) MAKELONG((n),0x10FF)
       
   892 #define SC_SCREENSAVE 0xF140
       
   893 #define CAPS1 94
       
   894 #define C1_TRANSPARENT 1
       
   895 #ifndef SEEK_SET
       
   896 #define SEEK_SET 0
       
   897 #endif
       
   898 #ifndef SEEK_CUR
       
   899 #define SEEK_CUR 1
       
   900 #endif
       
   901 #ifndef SEEK_END
       
   902 #define SEEK_END 2
       
   903 #endif
       
   904 
       
   905 typedef DWORD MCIERROR;
       
   906 typedef UINT MCIDEVICEID;
       
   907 typedef UINT(CALLBACK *YIELDPROC)(MCIDEVICEID,DWORD);
       
   908 typedef UINT MMVERSION;
       
   909 typedef UINT MMRESULT;
       
   910 typedef struct mmtime_tag {
       
   911 	UINT wType;
       
   912 	union {
       
   913 		DWORD ms;
       
   914 		DWORD sample;
       
   915 		DWORD cb;
       
   916 		DWORD ticks;
       
   917 		struct {
       
   918 			BYTE hour;
       
   919 			BYTE min;
       
   920 			BYTE sec;
       
   921 			BYTE frame;
       
   922 			BYTE fps;
       
   923 			BYTE dummy;
       
   924 			BYTE pad[2];
       
   925 		} smpte;
       
   926 		struct {
       
   927 			DWORD songptrpos;
       
   928 		} midi;
       
   929 	} u;
       
   930 } MMTIME,*PMMTIME,*LPMMTIME;
       
   931 DECLARE_HANDLE(HDRVR);
       
   932 typedef struct tagDRVCONFIGINFO {
       
   933 	DWORD dwDCISize;
       
   934 	LPCWSTR lpszDCISectionName;
       
   935 	LPCWSTR lpszDCIAliasName;
       
   936 } DRVCONFIGINFO,*PDRVCONFIGINFO,*LPDRVCONFIGINFO;
       
   937 typedef struct DRVCONFIGINFOEX {
       
   938 	DWORD dwDCISize;
       
   939 	LPCWSTR lpszDCISectionName;
       
   940 	LPCWSTR lpszDCIAliasName;
       
   941 	DWORD dnDevNode;
       
   942 } DRVCONFIGINFOEX,*PDRVCONFIGINFOEX,*LPDRVCONFIGINFOEX;
       
   943 typedef LRESULT(CALLBACK* DRIVERPROC)(DWORD,HDRVR,UINT,LPARAM,LPARAM);
       
   944 typedef void (CALLBACK DRVCALLBACK)(HDRVR,UINT,DWORD,DWORD,DWORD);
       
   945 typedef DRVCALLBACK *LPDRVCALLBACK;
       
   946 typedef DRVCALLBACK *PDRVCALLBACK;
       
   947 DECLARE_HANDLE(HWAVE);
       
   948 DECLARE_HANDLE(HWAVEIN);
       
   949 DECLARE_HANDLE(HWAVEOUT);
       
   950 typedef HWAVEIN *LPHWAVEIN;
       
   951 typedef HWAVEOUT *LPHWAVEOUT;
       
   952 typedef DRVCALLBACK WAVECALLBACK;
       
   953 typedef WAVECALLBACK *LPWAVECALLBACK;
       
   954 typedef struct wavehdr_tag {
       
   955 	LPSTR lpData;
       
   956 	DWORD dwBufferLength;
       
   957 	DWORD dwBytesRecorded;
       
   958 	DWORD dwUser;
       
   959 	DWORD dwFlags;
       
   960 	DWORD dwLoops;
       
   961 	struct wavehdr_tag *lpNext;
       
   962 	DWORD reserved;
       
   963 } WAVEHDR,*PWAVEHDR,*LPWAVEHDR;
       
   964 typedef struct tagWAVEOUTCAPSA {
       
   965 	WORD wMid;
       
   966 	WORD wPid;
       
   967 	MMVERSION vDriverVersion;
       
   968 	CHAR szPname[MAXPNAMELEN];
       
   969 	DWORD dwFormats;
       
   970 	WORD wChannels;
       
   971 	WORD wReserved1;
       
   972 	DWORD dwSupport;
       
   973 } WAVEOUTCAPSA,*PWAVEOUTCAPSA,*LPWAVEOUTCAPSA;
       
   974 typedef struct tagWAVEOUTCAPSW {
       
   975 	WORD wMid;
       
   976 	WORD wPid;
       
   977 	MMVERSION vDriverVersion;
       
   978 	WCHAR szPname[MAXPNAMELEN];
       
   979 	DWORD dwFormats;
       
   980 	WORD wChannels;
       
   981 	WORD wReserved1;
       
   982 	DWORD dwSupport;
       
   983 } WAVEOUTCAPSW,*PWAVEOUTCAPSW,*LPWAVEOUTCAPSW;
       
   984 typedef struct tagWAVEINCAPSA {
       
   985 	WORD wMid;
       
   986 	WORD wPid;
       
   987 	MMVERSION vDriverVersion;
       
   988 	CHAR szPname[MAXPNAMELEN];
       
   989 	DWORD dwFormats;
       
   990 	WORD wChannels;
       
   991 	WORD wReserved1;
       
   992 } WAVEINCAPSA,*PWAVEINCAPSA,*LPWAVEINCAPSA;
       
   993 typedef struct tagWAVEINCAPSW {
       
   994 	WORD wMid;
       
   995 	WORD wPid;
       
   996 	MMVERSION vDriverVersion;
       
   997 	WCHAR szPname[MAXPNAMELEN];
       
   998 	DWORD dwFormats;
       
   999 	WORD wChannels;
       
  1000 	WORD wReserved1;
       
  1001 } WAVEINCAPSW,*PWAVEINCAPSW,*LPWAVEINCAPSW;
       
  1002 typedef struct waveformat_tag {
       
  1003 	WORD wFormatTag;
       
  1004 	WORD nChannels;
       
  1005 	DWORD nSamplesPerSec;
       
  1006 	DWORD nAvgBytesPerSec;
       
  1007 	WORD nBlockAlign;
       
  1008 } WAVEFORMAT,*PWAVEFORMAT,*LPWAVEFORMAT;
       
  1009 typedef struct pcmwaveformat_tag {
       
  1010 	WAVEFORMAT wf;
       
  1011 	WORD wBitsPerSample;
       
  1012 } PCMWAVEFORMAT, *PPCMWAVEFORMAT,*LPPCMWAVEFORMAT;
       
  1013 #ifndef _LPCWAVEFORMATEX_DEFINED
       
  1014 #define _LPCWAVEFORMATEX_DEFINED
       
  1015 #define _WAVEFORMATEX_
       
  1016 typedef struct tWAVEFORMATEX {
       
  1017 	WORD wFormatTag;
       
  1018 	WORD nChannels;
       
  1019 	DWORD nSamplesPerSec;
       
  1020 	DWORD nAvgBytesPerSec;
       
  1021 	WORD nBlockAlign;
       
  1022 	WORD wBitsPerSample;
       
  1023 	WORD cbSize;
       
  1024 } WAVEFORMATEX,*PWAVEFORMATEX,*LPWAVEFORMATEX;
       
  1025 typedef const WAVEFORMATEX *LPCWAVEFORMATEX;
       
  1026 #endif
       
  1027 DECLARE_HANDLE(HMIDI);
       
  1028 DECLARE_HANDLE(HMIDIIN);
       
  1029 DECLARE_HANDLE(HMIDIOUT);
       
  1030 DECLARE_HANDLE(HMIDISTRM);
       
  1031 typedef HMIDI *LPHMIDI;
       
  1032 typedef HMIDIIN *LPHMIDIIN;
       
  1033 typedef HMIDIOUT *LPHMIDIOUT;
       
  1034 typedef HMIDISTRM *LPHMIDISTRM;
       
  1035 typedef DRVCALLBACK MIDICALLBACK;
       
  1036 typedef MIDICALLBACK *LPMIDICALLBACK;
       
  1037 typedef WORD PATCHARRAY[MIDIPATCHSIZE];
       
  1038 typedef WORD *LPPATCHARRAY;
       
  1039 typedef WORD KEYARRAY[MIDIPATCHSIZE];
       
  1040 typedef WORD *LPKEYARRAY;
       
  1041 typedef struct tagMIDIOUTCAPSA {
       
  1042 	WORD wMid;
       
  1043 	WORD wPid;
       
  1044 	MMVERSION vDriverVersion;
       
  1045 	CHAR szPname[MAXPNAMELEN];
       
  1046 	WORD wTechnology;
       
  1047 	WORD wVoices;
       
  1048 	WORD wNotes;
       
  1049 	WORD wChannelMask;
       
  1050 	DWORD dwSupport;
       
  1051 } MIDIOUTCAPSA,*PMIDIOUTCAPSA,*LPMIDIOUTCAPSA;
       
  1052 typedef struct tagMIDIOUTCAPSW {
       
  1053 	WORD wMid;
       
  1054 	WORD wPid;
       
  1055 	MMVERSION vDriverVersion;
       
  1056 	WCHAR szPname[MAXPNAMELEN];
       
  1057 	WORD wTechnology;
       
  1058 	WORD wVoices;
       
  1059 	WORD wNotes;
       
  1060 	WORD wChannelMask;
       
  1061 	DWORD dwSupport;
       
  1062 } MIDIOUTCAPSW,*PMIDIOUTCAPSW,*LPMIDIOUTCAPSW;
       
  1063 typedef struct tagMIDIINCAPSA {
       
  1064 	WORD wMid;
       
  1065 	WORD wPid;
       
  1066 	MMVERSION vDriverVersion;
       
  1067 	CHAR szPname[MAXPNAMELEN];
       
  1068 	DWORD dwSupport;
       
  1069 } MIDIINCAPSA,*PMIDIINCAPSA,*LPMIDIINCAPSA;
       
  1070 typedef struct tagMIDIINCAPSW {
       
  1071 	WORD wMid;
       
  1072 	WORD wPid;
       
  1073 	MMVERSION vDriverVersion;
       
  1074 	WCHAR szPname[MAXPNAMELEN];
       
  1075 	DWORD dwSupport;
       
  1076 } MIDIINCAPSW,*PMIDIINCAPSW,*NPMIDIINCAPSW,*LPMIDIINCAPSW;
       
  1077 typedef struct midihdr_tag {
       
  1078 	LPSTR lpData;
       
  1079 	DWORD dwBufferLength;
       
  1080 	DWORD dwBytesRecorded;
       
  1081 	DWORD dwUser;
       
  1082 	DWORD dwFlags;
       
  1083 	struct midihdr_tag *lpNext;
       
  1084 	DWORD reserved;
       
  1085 	DWORD dwOffset;
       
  1086 	DWORD dwReserved[8];
       
  1087 } MIDIHDR,*PMIDIHDR,*LPMIDIHDR;
       
  1088 typedef struct midievent_tag {
       
  1089 	DWORD dwDeltaTime;
       
  1090 	DWORD dwStreamID;
       
  1091 	DWORD dwEvent;
       
  1092 	DWORD dwParms[1];
       
  1093 } MIDIEVENT;
       
  1094 typedef struct midistrmbuffver_tag {
       
  1095 	DWORD dwVersion;
       
  1096 	DWORD dwMid;
       
  1097 	DWORD dwOEMVersion;
       
  1098 } MIDISTRMBUFFVER;
       
  1099 typedef struct midiproptimediv_tag {
       
  1100 	DWORD cbStruct;
       
  1101 	DWORD dwTimeDiv;
       
  1102 } MIDIPROPTIMEDIV,*LPMIDIPROPTIMEDIV;
       
  1103 typedef struct midiproptempo_tag {
       
  1104 	DWORD cbStruct;
       
  1105 	DWORD dwTempo;
       
  1106 } MIDIPROPTEMPO,*LPMIDIPROPTEMPO;
       
  1107 typedef struct tagAUXCAPSA {
       
  1108 	WORD wMid;
       
  1109 	WORD wPid;
       
  1110 	MMVERSION vDriverVersion;
       
  1111 	CHAR szPname[MAXPNAMELEN];
       
  1112 	WORD wTechnology;
       
  1113 	WORD wReserved1;
       
  1114 	DWORD dwSupport;
       
  1115 } AUXCAPSA,*PAUXCAPSA,*LPAUXCAPSA;
       
  1116 typedef struct tagAUXCAPSW {
       
  1117 	WORD wMid;
       
  1118 	WORD wPid;
       
  1119 	MMVERSION vDriverVersion;
       
  1120 	WCHAR szPname[MAXPNAMELEN];
       
  1121 	WORD wTechnology;
       
  1122 	WORD wReserved1;
       
  1123 	DWORD dwSupport;
       
  1124 } AUXCAPSW,*PAUXCAPSW,*LPAUXCAPSW;
       
  1125 DECLARE_HANDLE(HMIXEROBJ);
       
  1126 typedef HMIXEROBJ *LPHMIXEROBJ;
       
  1127 DECLARE_HANDLE(HMIXER);
       
  1128 typedef HMIXER *LPHMIXER;
       
  1129 typedef struct tagMIXERCAPSA {
       
  1130 	WORD wMid;
       
  1131 	WORD wPid;
       
  1132 	MMVERSION vDriverVersion;
       
  1133 	CHAR szPname[MAXPNAMELEN];
       
  1134 	DWORD fdwSupport;
       
  1135 	DWORD cDestinations;
       
  1136 } MIXERCAPSA,*PMIXERCAPSA,*LPMIXERCAPSA;
       
  1137 typedef struct tagMIXERCAPSW {
       
  1138 	WORD wMid;
       
  1139 	WORD wPid;
       
  1140 	MMVERSION vDriverVersion;
       
  1141 	WCHAR szPname[MAXPNAMELEN];
       
  1142 	DWORD fdwSupport;
       
  1143 	DWORD cDestinations;
       
  1144 } MIXERCAPSW,*PMIXERCAPSW,*LPMIXERCAPSW;
       
  1145 typedef struct tagMIXERLINEA {
       
  1146 	DWORD cbStruct;
       
  1147 	DWORD dwDestination;
       
  1148 	DWORD dwSource;
       
  1149 	DWORD dwLineID;
       
  1150 	DWORD fdwLine;
       
  1151 	DWORD dwUser;
       
  1152 	DWORD dwComponentType;
       
  1153 	DWORD cChannels;
       
  1154 	DWORD cConnections;
       
  1155 	DWORD cControls;
       
  1156 	CHAR szShortName[MIXER_SHORT_NAME_CHARS];
       
  1157 	CHAR szName[MIXER_LONG_NAME_CHARS];
       
  1158 	struct {
       
  1159 		DWORD dwType;
       
  1160 		DWORD dwDeviceID;
       
  1161 		WORD wMid;
       
  1162 		WORD wPid;
       
  1163 		MMVERSION vDriverVersion;
       
  1164 		CHAR szPname[MAXPNAMELEN];
       
  1165 	} Target;
       
  1166 } MIXERLINEA,*PMIXERLINEA,*LPMIXERLINEA;
       
  1167 typedef struct tagMIXERLINEW {
       
  1168 	DWORD cbStruct;
       
  1169 	DWORD dwDestination;
       
  1170 	DWORD dwSource;
       
  1171 	DWORD dwLineID;
       
  1172 	DWORD fdwLine;
       
  1173 	DWORD dwUser;
       
  1174 	DWORD dwComponentType;
       
  1175 	DWORD cChannels;
       
  1176 	DWORD cConnections;
       
  1177 	DWORD cControls;
       
  1178 	WCHAR szShortName[MIXER_SHORT_NAME_CHARS];
       
  1179 	WCHAR szName[MIXER_LONG_NAME_CHARS];
       
  1180 	struct {
       
  1181 		DWORD dwType;
       
  1182 		DWORD dwDeviceID;
       
  1183 		WORD wMid;
       
  1184 		WORD wPid;
       
  1185 		MMVERSION vDriverVersion;
       
  1186 		WCHAR szPname[MAXPNAMELEN];
       
  1187 	} Target;
       
  1188 } MIXERLINEW,*PMIXERLINEW,*LPMIXERLINEW;
       
  1189 typedef struct tagMIXERCONTROLA {
       
  1190 	DWORD cbStruct;
       
  1191 	DWORD dwControlID;
       
  1192 	DWORD dwControlType;
       
  1193 	DWORD fdwControl;
       
  1194 	DWORD cMultipleItems;
       
  1195 	CHAR szShortName[MIXER_SHORT_NAME_CHARS];
       
  1196 	CHAR szName[MIXER_LONG_NAME_CHARS];
       
  1197 	union {
       
  1198 		_ANONYMOUS_STRUCT struct {
       
  1199 			LONG lMinimum;
       
  1200 			LONG lMaximum;
       
  1201 		}_STRUCT_NAME(s);
       
  1202 		_ANONYMOUS_STRUCT struct {
       
  1203 			DWORD dwMinimum;
       
  1204 			DWORD dwMaximum;
       
  1205 		}_STRUCT_NAME(s1);
       
  1206 		DWORD dwReserved[6];
       
  1207 	} Bounds;
       
  1208 	union {
       
  1209 		DWORD cSteps;
       
  1210 		DWORD cbCustomData;
       
  1211 		DWORD dwReserved[6];
       
  1212 	} Metrics;
       
  1213 } MIXERCONTROLA,*PMIXERCONTROLA,*LPMIXERCONTROLA;
       
  1214 typedef struct tagMIXERCONTROLW {
       
  1215 	DWORD cbStruct;
       
  1216 	DWORD dwControlID;
       
  1217 	DWORD dwControlType;
       
  1218 	DWORD fdwControl;
       
  1219 	DWORD cMultipleItems;
       
  1220 	WCHAR szShortName[MIXER_SHORT_NAME_CHARS];
       
  1221 	WCHAR szName[MIXER_LONG_NAME_CHARS];
       
  1222 	union {
       
  1223 		_ANONYMOUS_STRUCT struct {
       
  1224 			LONG lMinimum;
       
  1225 			LONG lMaximum;
       
  1226 		}_STRUCT_NAME(s);
       
  1227 		_ANONYMOUS_STRUCT struct {
       
  1228 			DWORD dwMinimum;
       
  1229 			DWORD dwMaximum;
       
  1230 		}_STRUCT_NAME(s1);
       
  1231 		DWORD dwReserved[6];
       
  1232 	} Bounds;
       
  1233 	union {
       
  1234 		DWORD cSteps;
       
  1235 		DWORD cbCustomData;
       
  1236 		DWORD dwReserved[6];
       
  1237 	} Metrics;
       
  1238 } MIXERCONTROLW,*PMIXERCONTROLW,*LPMIXERCONTROLW;
       
  1239 typedef struct tagMIXERLINECONTROLSA {
       
  1240 	DWORD cbStruct;
       
  1241 	DWORD dwLineID;
       
  1242 	_ANONYMOUS_UNION union {
       
  1243 		DWORD dwControlID;
       
  1244 		DWORD dwControlType;
       
  1245 	} DUMMYUNIONNAME;
       
  1246 	DWORD cControls;
       
  1247 	DWORD cbmxctrl;
       
  1248 	LPMIXERCONTROLA pamxctrl;
       
  1249 } MIXERLINECONTROLSA,*PMIXERLINECONTROLSA,*LPMIXERLINECONTROLSA;
       
  1250 typedef struct tagMIXERLINECONTROLSW {
       
  1251 	DWORD cbStruct;
       
  1252 	DWORD dwLineID;
       
  1253 	_ANONYMOUS_UNION union {
       
  1254 		DWORD dwControlID;
       
  1255 		DWORD dwControlType;
       
  1256 	} DUMMYUNIONNAME;
       
  1257 	DWORD cControls;
       
  1258 	DWORD cbmxctrl;
       
  1259 	LPMIXERCONTROLW pamxctrl;
       
  1260 } MIXERLINECONTROLSW,*PMIXERLINECONTROLSW,*LPMIXERLINECONTROLSW;
       
  1261 typedef struct tMIXERCONTROLDETAILS {
       
  1262 	DWORD cbStruct;
       
  1263 	DWORD dwControlID;
       
  1264 	DWORD cChannels;
       
  1265 	_ANONYMOUS_UNION union {
       
  1266 		HWND hwndOwner;
       
  1267 		DWORD cMultipleItems;
       
  1268 	} DUMMYUNIONNAME;
       
  1269 	DWORD cbDetails;
       
  1270 	PVOID paDetails;
       
  1271 } MIXERCONTROLDETAILS,*PMIXERCONTROLDETAILS,*LPMIXERCONTROLDETAILS;
       
  1272 typedef struct tagMIXERCONTROLDETAILS_LISTTEXTA {
       
  1273 	DWORD dwParam1;
       
  1274 	DWORD dwParam2;
       
  1275 	CHAR szName[MIXER_LONG_NAME_CHARS];
       
  1276 } MIXERCONTROLDETAILS_LISTTEXTA,*PMIXERCONTROLDETAILS_LISTTEXTA,*LPMIXERCONTROLDETAILS_LISTTEXTA;
       
  1277 typedef struct tagMIXERCONTROLDETAILS_LISTTEXTW {
       
  1278 	DWORD dwParam1;
       
  1279 	DWORD dwParam2;
       
  1280 	WCHAR szName[MIXER_LONG_NAME_CHARS];
       
  1281 } MIXERCONTROLDETAILS_LISTTEXTW,*PMIXERCONTROLDETAILS_LISTTEXTW,*LPMIXERCONTROLDETAILS_LISTTEXTW;
       
  1282 typedef struct tMIXERCONTROLDETAILS_BOOLEAN {
       
  1283 	LONG fValue;
       
  1284 } MIXERCONTROLDETAILS_BOOLEAN,*PMIXERCONTROLDETAILS_BOOLEAN,*LPMIXERCONTROLDETAILS_BOOLEAN;
       
  1285 typedef struct tMIXERCONTROLDETAILS_SIGNED {
       
  1286 	LONG lValue;
       
  1287 } MIXERCONTROLDETAILS_SIGNED,*PMIXERCONTROLDETAILS_SIGNED,*LPMIXERCONTROLDETAILS_SIGNED;
       
  1288 typedef struct tMIXERCONTROLDETAILS_UNSIGNED {
       
  1289 	DWORD dwValue;
       
  1290 } MIXERCONTROLDETAILS_UNSIGNED,*PMIXERCONTROLDETAILS_UNSIGNED,*LPMIXERCONTROLDETAILS_UNSIGNED;
       
  1291 typedef void(CALLBACK TIMECALLBACK)(UINT,UINT,DWORD,DWORD,DWORD);
       
  1292 typedef TIMECALLBACK *LPTIMECALLBACK;
       
  1293 typedef struct timecaps_tag {
       
  1294 	UINT wPeriodMin;
       
  1295 	UINT wPeriodMax;
       
  1296 } TIMECAPS,*PTIMECAPS,*LPTIMECAPS;
       
  1297 typedef struct tagJOYCAPSA {
       
  1298 	WORD wMid;
       
  1299 	WORD wPid;
       
  1300 	CHAR szPname[MAXPNAMELEN];
       
  1301 	UINT wXmin;
       
  1302 	UINT wXmax;
       
  1303 	UINT wYmin;
       
  1304 	UINT wYmax;
       
  1305 	UINT wZmin;
       
  1306 	UINT wZmax;
       
  1307 	UINT wNumButtons;
       
  1308 	UINT wPeriodMin;
       
  1309 	UINT wPeriodMax;
       
  1310 	UINT wRmin;
       
  1311 	UINT wRmax;
       
  1312 	UINT wUmin;
       
  1313 	UINT wUmax;
       
  1314 	UINT wVmin;
       
  1315 	UINT wVmax;
       
  1316 	UINT wCaps;
       
  1317 	UINT wMaxAxes;
       
  1318 	UINT wNumAxes;
       
  1319 	UINT wMaxButtons;
       
  1320 	CHAR szRegKey[MAXPNAMELEN];
       
  1321 	CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
       
  1322 } JOYCAPSA,*PJOYCAPSA,*LPJOYCAPSA;
       
  1323 typedef struct tagJOYCAPSW {
       
  1324 	WORD wMid;
       
  1325 	WORD wPid;
       
  1326 	WCHAR szPname[MAXPNAMELEN];
       
  1327 	UINT wXmin;
       
  1328 	UINT wXmax;
       
  1329 	UINT wYmin;
       
  1330 	UINT wYmax;
       
  1331 	UINT wZmin;
       
  1332 	UINT wZmax;
       
  1333 	UINT wNumButtons;
       
  1334 	UINT wPeriodMin;
       
  1335 	UINT wPeriodMax;
       
  1336 	UINT wRmin;
       
  1337 	UINT wRmax;
       
  1338 	UINT wUmin;
       
  1339 	UINT wUmax;
       
  1340 	UINT wVmin;
       
  1341 	UINT wVmax;
       
  1342 	UINT wCaps;
       
  1343 	UINT wMaxAxes;
       
  1344 	UINT wNumAxes;
       
  1345 	UINT wMaxButtons;
       
  1346 	WCHAR szRegKey[MAXPNAMELEN];
       
  1347 	WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME];
       
  1348 } JOYCAPSW,*PJOYCAPSW,*LPJOYCAPSW;
       
  1349 typedef struct joyinfo_tag {
       
  1350 	UINT wXpos;
       
  1351 	UINT wYpos;
       
  1352 	UINT wZpos;
       
  1353 	UINT wButtons;
       
  1354 } JOYINFO,*PJOYINFO,*LPJOYINFO;
       
  1355 typedef struct joyinfoex_tag {
       
  1356 	DWORD dwSize;
       
  1357 	DWORD dwFlags;
       
  1358 	DWORD dwXpos;
       
  1359 	DWORD dwYpos;
       
  1360 	DWORD dwZpos;
       
  1361 	DWORD dwRpos;
       
  1362 	DWORD dwUpos;
       
  1363 	DWORD dwVpos;
       
  1364 	DWORD dwButtons;
       
  1365 	DWORD dwButtonNumber;
       
  1366 	DWORD dwPOV;
       
  1367 	DWORD dwReserved1;
       
  1368 	DWORD dwReserved2;
       
  1369 } JOYINFOEX,*PJOYINFOEX,*LPJOYINFOEX;
       
  1370 typedef DWORD FOURCC;
       
  1371 typedef char *HPSTR;
       
  1372 DECLARE_HANDLE(HMMIO);
       
  1373 typedef LRESULT (CALLBACK MMIOPROC)(LPSTR,UINT,LPARAM,LPARAM);
       
  1374 typedef MMIOPROC *LPMMIOPROC;
       
  1375 typedef struct _MMIOINFO {
       
  1376 	DWORD dwFlags;
       
  1377 	FOURCC fccIOProc;
       
  1378 	LPMMIOPROC pIOProc;
       
  1379 	UINT wErrorRet;
       
  1380 	HTASK htask;
       
  1381 	LONG cchBuffer;
       
  1382 	HPSTR pchBuffer;
       
  1383 	HPSTR pchNext;
       
  1384 	HPSTR pchEndRead;
       
  1385 	HPSTR pchEndWrite;
       
  1386 	LONG lBufOffset;
       
  1387 	LONG lDiskOffset;
       
  1388 	DWORD adwInfo[3];
       
  1389 	DWORD dwReserved1;
       
  1390 	DWORD dwReserved2;
       
  1391 	HMMIO hmmio;
       
  1392 } MMIOINFO,*PMMIOINFO,*LPMMIOINFO;
       
  1393 typedef const MMIOINFO *LPCMMIOINFO;
       
  1394 typedef struct _MMCKINFO {
       
  1395 	FOURCC ckid;
       
  1396 	DWORD cksize;
       
  1397 	FOURCC fccType;
       
  1398 	DWORD dwDataOffset;
       
  1399 	DWORD dwFlags;
       
  1400 } MMCKINFO,*PMMCKINFO,*LPMMCKINFO;
       
  1401 typedef const MMCKINFO *LPCMMCKINFO;
       
  1402 typedef struct tagMCI_GENERIC_PARMS {
       
  1403 	DWORD dwCallback;
       
  1404 } MCI_GENERIC_PARMS,*PMCI_GENERIC_PARMS,*LPMCI_GENERIC_PARMS;
       
  1405 typedef struct tagMCI_OPEN_PARMSA {
       
  1406 	DWORD dwCallback;
       
  1407 	MCIDEVICEID wDeviceID;
       
  1408 	LPCSTR lpstrDeviceType;
       
  1409 	LPCSTR lpstrElementName;
       
  1410 	LPCSTR lpstrAlias;
       
  1411 } MCI_OPEN_PARMSA,*PMCI_OPEN_PARMSA,*LPMCI_OPEN_PARMSA;
       
  1412 typedef struct tagMCI_OPEN_PARMSW {
       
  1413 	DWORD dwCallback;
       
  1414 	MCIDEVICEID wDeviceID;
       
  1415 	LPCWSTR lpstrDeviceType;
       
  1416 	LPCWSTR lpstrElementName;
       
  1417 	LPCWSTR lpstrAlias;
       
  1418 } MCI_OPEN_PARMSW,*PMCI_OPEN_PARMSW,*LPMCI_OPEN_PARMSW;
       
  1419 typedef struct tagMCI_PLAY_PARMS {
       
  1420 	DWORD dwCallback;
       
  1421 	DWORD dwFrom;
       
  1422 	DWORD dwTo;
       
  1423 } MCI_PLAY_PARMS,*PMCI_PLAY_PARMS,*LPMCI_PLAY_PARMS;
       
  1424 typedef struct tagMCI_SEEK_PARMS {
       
  1425 	DWORD dwCallback;
       
  1426 	DWORD dwTo;
       
  1427 } MCI_SEEK_PARMS, *PMCI_SEEK_PARMS,*LPMCI_SEEK_PARMS;
       
  1428 typedef struct tagMCI_STATUS_PARMS {
       
  1429 	DWORD dwCallback;
       
  1430 	DWORD dwReturn;
       
  1431 	DWORD dwItem;
       
  1432 	DWORD dwTrack;
       
  1433 } MCI_STATUS_PARMS,*PMCI_STATUS_PARMS,*LPMCI_STATUS_PARMS;
       
  1434 typedef struct tagMCI_INFO_PARMSA {
       
  1435 	DWORD dwCallback;
       
  1436 	LPSTR lpstrReturn;
       
  1437 	DWORD dwRetSize;
       
  1438 } MCI_INFO_PARMSA,*LPMCI_INFO_PARMSA;
       
  1439 typedef struct tagMCI_INFO_PARMSW {
       
  1440 	DWORD dwCallback;
       
  1441 	LPWSTR lpstrReturn;
       
  1442 	DWORD dwRetSize;
       
  1443 } MCI_INFO_PARMSW,*LPMCI_INFO_PARMSW;
       
  1444 typedef struct tagMCI_GETDEVCAPS_PARMS {
       
  1445 	DWORD dwCallback;
       
  1446 	DWORD dwReturn;
       
  1447 	DWORD dwItem;
       
  1448 } MCI_GETDEVCAPS_PARMS,*PMCI_GETDEVCAPS_PARMS,*LPMCI_GETDEVCAPS_PARMS;
       
  1449 typedef struct tagMCI_SYSINFO_PARMSA {
       
  1450 	DWORD dwCallback;
       
  1451 	LPSTR lpstrReturn;
       
  1452 	DWORD dwRetSize;
       
  1453 	DWORD dwNumber;
       
  1454 	UINT wDeviceType;
       
  1455 } MCI_SYSINFO_PARMSA,*PMCI_SYSINFO_PARMSA,*LPMCI_SYSINFO_PARMSA;
       
  1456 typedef struct tagMCI_SYSINFO_PARMSW {
       
  1457 	DWORD dwCallback;
       
  1458 	LPWSTR lpstrReturn;
       
  1459 	DWORD dwRetSize;
       
  1460 	DWORD dwNumber;
       
  1461 	UINT wDeviceType;
       
  1462 } MCI_SYSINFO_PARMSW,*PMCI_SYSINFO_PARMSW,*LPMCI_SYSINFO_PARMSW;
       
  1463 typedef struct tagMCI_SET_PARMS {
       
  1464 	DWORD dwCallback;
       
  1465 	DWORD dwTimeFormat;
       
  1466 	DWORD dwAudio;
       
  1467 } MCI_SET_PARMS,*PMCI_SET_PARMS,*LPMCI_SET_PARMS;
       
  1468 typedef struct tagMCI_BREAK_PARMS {
       
  1469 	DWORD dwCallback;
       
  1470 	int nVirtKey;
       
  1471 	HWND hwndBreak;
       
  1472 } MCI_BREAK_PARMS,*PMCI_BREAK_PARMS,*LPMCI_BREAK_PARMS;
       
  1473 typedef struct tagMCI_SAVE_PARMSA {
       
  1474 	DWORD dwCallback;
       
  1475 	LPCSTR lpfilename;
       
  1476 } MCI_SAVE_PARMSA,*PMCI_SAVE_PARMSA,*LPMCI_SAVE_PARMSA;
       
  1477 typedef struct tagMCI_SAVE_PARMSW {
       
  1478 	DWORD dwCallback;
       
  1479 	LPCWSTR lpfilename;
       
  1480 } MCI_SAVE_PARMSW,*PMCI_SAVE_PARMSW,*LPMCI_SAVE_PARMSW;
       
  1481 typedef struct tagMCI_LOAD_PARMSA {
       
  1482 	DWORD dwCallback;
       
  1483 	LPCSTR lpfilename;
       
  1484 } MCI_LOAD_PARMSA,*PMCI_LOAD_PARMSA,*LPMCI_LOAD_PARMSA;
       
  1485 typedef struct tagMCI_LOAD_PARMSW {
       
  1486 	DWORD dwCallback;
       
  1487 	LPCWSTR lpfilename;
       
  1488 } MCI_LOAD_PARMSW,*PMCI_LOAD_PARMSW,*LPMCI_LOAD_PARMSW;
       
  1489 typedef struct tagMCI_RECORD_PARMS {
       
  1490 	DWORD dwCallback;
       
  1491 	DWORD dwFrom;
       
  1492 	DWORD dwTo;
       
  1493 } MCI_RECORD_PARMS,*LPMCI_RECORD_PARMS;
       
  1494 typedef struct tagMCI_VD_PLAY_PARMS {
       
  1495 	DWORD dwCallback;
       
  1496 	DWORD dwFrom;
       
  1497 	DWORD dwTo;
       
  1498 	DWORD dwSpeed;
       
  1499 } MCI_VD_PLAY_PARMS,*PMCI_VD_PLAY_PARMS,*LPMCI_VD_PLAY_PARMS;
       
  1500 typedef struct tagMCI_VD_STEP_PARMS {
       
  1501 	DWORD dwCallback;
       
  1502 	DWORD dwFrames;
       
  1503 } MCI_VD_STEP_PARMS,*PMCI_VD_STEP_PARMS,*LPMCI_VD_STEP_PARMS;
       
  1504 typedef struct tagMCI_VD_ESCAPE_PARMSA {
       
  1505 	DWORD dwCallback;
       
  1506 	LPCSTR lpstrCommand;
       
  1507 } MCI_VD_ESCAPE_PARMSA,*PMCI_VD_ESCAPE_PARMSA,*LPMCI_VD_ESCAPE_PARMSA;
       
  1508 typedef struct tagMCI_VD_ESCAPE_PARMSW {
       
  1509 	DWORD dwCallback;
       
  1510 	LPCWSTR lpstrCommand;
       
  1511 } MCI_VD_ESCAPE_PARMSW,*PMCI_VD_ESCAPE_PARMSW,*LPMCI_VD_ESCAPE_PARMSW;
       
  1512 typedef struct tagMCI_WAVE_OPEN_PARMSA {
       
  1513 	DWORD dwCallback;
       
  1514 	MCIDEVICEID wDeviceID;
       
  1515 	LPCSTR lpstrDeviceType;
       
  1516 	LPCSTR lpstrElementName;
       
  1517 	LPCSTR lpstrAlias;
       
  1518 	DWORD dwBufferSeconds;
       
  1519 } MCI_WAVE_OPEN_PARMSA,*PMCI_WAVE_OPEN_PARMSA,*LPMCI_WAVE_OPEN_PARMSA;
       
  1520 typedef struct tagMCI_WAVE_OPEN_PARMSW {
       
  1521 	DWORD dwCallback;
       
  1522 	MCIDEVICEID wDeviceID;
       
  1523 	LPCWSTR lpstrDeviceType;
       
  1524 	LPCWSTR lpstrElementName;
       
  1525 	LPCWSTR lpstrAlias;
       
  1526 	DWORD dwBufferSeconds;
       
  1527 } MCI_WAVE_OPEN_PARMSW,*PMCI_WAVE_OPEN_PARMSW,*LPMCI_WAVE_OPEN_PARMSW;
       
  1528 typedef struct tagMCI_WAVE_DELETE_PARMS {
       
  1529 	DWORD dwCallback;
       
  1530 	DWORD dwFrom;
       
  1531 	DWORD dwTo;
       
  1532 } MCI_WAVE_DELETE_PARMS, *PMCI_WAVE_DELETE_PARMS,*LPMCI_WAVE_DELETE_PARMS;
       
  1533 typedef struct tagMCI_WAVE_SET_PARMS {
       
  1534 	DWORD dwCallback;
       
  1535 	DWORD dwTimeFormat;
       
  1536 	DWORD dwAudio;
       
  1537 	UINT wInput;
       
  1538 	UINT wOutput;
       
  1539 	WORD wFormatTag;
       
  1540 	WORD wReserved2;
       
  1541 	WORD nChannels;
       
  1542 	WORD wReserved3;
       
  1543 	DWORD nSamplesPerSec;
       
  1544 	DWORD nAvgBytesPerSec;
       
  1545 	WORD nBlockAlign;
       
  1546 	WORD wReserved4;
       
  1547 	WORD wBitsPerSample;
       
  1548 	WORD wReserved5;
       
  1549 } MCI_WAVE_SET_PARMS,*PMCI_WAVE_SET_PARMS,*LPMCI_WAVE_SET_PARMS;
       
  1550 
       
  1551 LRESULT WINAPI CloseDriver(HDRVR,LONG,LONG);
       
  1552 HDRVR WINAPI OpenDriver(LPCWSTR,LPCWSTR,LONG);
       
  1553 LRESULT WINAPI SendDriverMessage(HDRVR,UINT,LONG,LONG);
       
  1554 HMODULE WINAPI DrvGetModuleHandle(HDRVR);
       
  1555 HMODULE WINAPI GetDriverModuleHandle(HDRVR);
       
  1556 LRESULT WINAPI DefDriverProc(DWORD,HDRVR,UINT,LPARAM,LPARAM);
       
  1557 UINT WINAPI mmsystemGetVersion(void);
       
  1558 #define OutputDebugStr OutputDebugString
       
  1559 BOOL WINAPI sndPlaySoundA(LPCSTR,UINT);
       
  1560 BOOL WINAPI sndPlaySoundW(LPCWSTR,UINT);
       
  1561 BOOL WINAPI PlaySoundA(LPCSTR,HMODULE,DWORD);
       
  1562 BOOL WINAPI PlaySoundW(LPCWSTR,HMODULE,DWORD);
       
  1563 UINT WINAPI waveOutGetNumDevs(void);
       
  1564 MMRESULT WINAPI waveOutGetDevCapsA(UINT,LPWAVEOUTCAPSA,UINT);
       
  1565 MMRESULT WINAPI waveOutGetDevCapsW(UINT,LPWAVEOUTCAPSW,UINT);
       
  1566 MMRESULT WINAPI waveOutGetVolume(HWAVEOUT,PDWORD);
       
  1567 MMRESULT WINAPI waveOutSetVolume(HWAVEOUT,DWORD);
       
  1568 MMRESULT WINAPI waveOutGetErrorTextA(MMRESULT,LPSTR,UINT);
       
  1569 MMRESULT WINAPI waveOutGetErrorTextW(MMRESULT,LPWSTR,UINT);
       
  1570 MMRESULT WINAPI waveOutOpen(LPHWAVEOUT,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD);
       
  1571 MMRESULT WINAPI waveOutClose(HWAVEOUT);
       
  1572 MMRESULT WINAPI waveOutPrepareHeader(HWAVEOUT,LPWAVEHDR,UINT);
       
  1573 MMRESULT WINAPI waveOutUnprepareHeader(HWAVEOUT,LPWAVEHDR,UINT);
       
  1574 MMRESULT WINAPI waveOutWrite(HWAVEOUT,LPWAVEHDR,UINT);
       
  1575 MMRESULT WINAPI waveOutPause(HWAVEOUT);
       
  1576 MMRESULT WINAPI waveOutRestart(HWAVEOUT);
       
  1577 MMRESULT WINAPI waveOutReset(HWAVEOUT);
       
  1578 MMRESULT WINAPI waveOutBreakLoop(HWAVEOUT);
       
  1579 MMRESULT WINAPI waveOutGetPosition(HWAVEOUT,LPMMTIME,UINT);
       
  1580 MMRESULT WINAPI waveOutGetPitch(HWAVEOUT,PDWORD);
       
  1581 MMRESULT WINAPI waveOutSetPitch(HWAVEOUT,DWORD);
       
  1582 MMRESULT WINAPI waveOutGetPlaybackRate(HWAVEOUT,PDWORD);
       
  1583 MMRESULT WINAPI waveOutSetPlaybackRate(HWAVEOUT,DWORD);
       
  1584 MMRESULT WINAPI waveOutGetID(HWAVEOUT,LPUINT);
       
  1585 MMRESULT WINAPI waveOutMessage(HWAVEOUT,UINT,DWORD,DWORD);
       
  1586 UINT WINAPI waveInGetNumDevs(void);
       
  1587 MMRESULT WINAPI waveInGetDevCapsA(UINT,LPWAVEINCAPSA,UINT);
       
  1588 MMRESULT WINAPI waveInGetDevCapsW(UINT,LPWAVEINCAPSW,UINT);
       
  1589 MMRESULT WINAPI waveInGetErrorTextA(MMRESULT,LPSTR,UINT);
       
  1590 MMRESULT WINAPI waveInGetErrorTextW(MMRESULT,LPWSTR,UINT);
       
  1591 MMRESULT WINAPI waveInOpen(LPHWAVEIN,UINT,LPCWAVEFORMATEX,DWORD,DWORD,DWORD);
       
  1592 MMRESULT WINAPI waveInClose(HWAVEIN);
       
  1593 MMRESULT WINAPI waveInPrepareHeader(HWAVEIN,LPWAVEHDR,UINT);
       
  1594 MMRESULT WINAPI waveInUnprepareHeader(HWAVEIN,LPWAVEHDR,UINT);
       
  1595 MMRESULT WINAPI waveInAddBuffer(HWAVEIN,LPWAVEHDR,UINT);
       
  1596 MMRESULT WINAPI waveInStart(HWAVEIN);
       
  1597 MMRESULT WINAPI waveInStop(HWAVEIN);
       
  1598 MMRESULT WINAPI waveInReset(HWAVEIN);
       
  1599 MMRESULT WINAPI waveInGetPosition(HWAVEIN,LPMMTIME,UINT);
       
  1600 MMRESULT WINAPI waveInGetID(HWAVEIN,LPUINT);
       
  1601 MMRESULT WINAPI waveInMessage(HWAVEIN,UINT,DWORD,DWORD);
       
  1602 UINT WINAPI midiOutGetNumDevs(void);
       
  1603 MMRESULT WINAPI midiStreamOpen(LPHMIDISTRM,LPUINT,DWORD,DWORD,DWORD,DWORD);
       
  1604 MMRESULT WINAPI midiStreamClose(HMIDISTRM);
       
  1605 MMRESULT WINAPI midiStreamProperty(HMIDISTRM,LPBYTE,DWORD);
       
  1606 MMRESULT WINAPI midiStreamPosition(HMIDISTRM,LPMMTIME,UINT);
       
  1607 MMRESULT WINAPI midiStreamOut(HMIDISTRM,LPMIDIHDR,UINT);
       
  1608 MMRESULT WINAPI midiStreamPause(HMIDISTRM);
       
  1609 MMRESULT WINAPI midiStreamRestart(HMIDISTRM);
       
  1610 MMRESULT WINAPI midiStreamStop(HMIDISTRM);
       
  1611 MMRESULT WINAPI midiConnect(HMIDI,HMIDIOUT,PVOID);
       
  1612 MMRESULT WINAPI midiDisconnect(HMIDI,HMIDIOUT,PVOID);
       
  1613 MMRESULT WINAPI midiOutGetDevCapsA(UINT,LPMIDIOUTCAPSA,UINT);
       
  1614 MMRESULT WINAPI midiOutGetDevCapsW(UINT,LPMIDIOUTCAPSW,UINT);
       
  1615 MMRESULT WINAPI midiOutGetVolume(HMIDIOUT,PDWORD);
       
  1616 MMRESULT WINAPI midiOutSetVolume(HMIDIOUT,DWORD);
       
  1617 MMRESULT WINAPI midiOutGetErrorTextA(MMRESULT,LPSTR,UINT);
       
  1618 MMRESULT WINAPI midiOutGetErrorTextW(MMRESULT,LPWSTR,UINT);
       
  1619 MMRESULT WINAPI midiOutOpen(LPHMIDIOUT,UINT,DWORD,DWORD,DWORD);
       
  1620 MMRESULT WINAPI midiOutClose(HMIDIOUT);
       
  1621 MMRESULT WINAPI midiOutPrepareHeader(HMIDIOUT,LPMIDIHDR,UINT);
       
  1622 MMRESULT WINAPI midiOutUnprepareHeader(HMIDIOUT,LPMIDIHDR,UINT);
       
  1623 MMRESULT WINAPI midiOutShortMsg(HMIDIOUT,DWORD);
       
  1624 MMRESULT WINAPI midiOutLongMsg(HMIDIOUT,LPMIDIHDR,UINT);
       
  1625 MMRESULT WINAPI midiOutReset(HMIDIOUT);
       
  1626 MMRESULT WINAPI midiOutCachePatches(HMIDIOUT,UINT,LPWORD,UINT);
       
  1627 MMRESULT WINAPI midiOutCacheDrumPatches(HMIDIOUT,UINT,LPWORD,UINT);
       
  1628 MMRESULT WINAPI midiOutGetID(HMIDIOUT,LPUINT);
       
  1629 MMRESULT WINAPI midiOutMessage(HMIDIOUT,UINT,DWORD,DWORD);
       
  1630 UINT WINAPI midiInGetNumDevs(void);
       
  1631 MMRESULT WINAPI midiInGetDevCapsA(UINT,LPMIDIINCAPSA,UINT);
       
  1632 MMRESULT WINAPI midiInGetDevCapsW(UINT,LPMIDIINCAPSW,UINT);
       
  1633 MMRESULT WINAPI midiInGetErrorTextA(MMRESULT,LPSTR,UINT);
       
  1634 MMRESULT WINAPI midiInGetErrorTextW(MMRESULT,LPWSTR,UINT);
       
  1635 MMRESULT WINAPI midiInOpen(LPHMIDIIN,UINT,DWORD,DWORD,DWORD);
       
  1636 MMRESULT WINAPI midiInClose(HMIDIIN);
       
  1637 MMRESULT WINAPI midiInPrepareHeader(HMIDIIN,LPMIDIHDR,UINT);
       
  1638 MMRESULT WINAPI midiInUnprepareHeader(HMIDIIN,LPMIDIHDR,UINT);
       
  1639 MMRESULT WINAPI midiInAddBuffer(HMIDIIN,LPMIDIHDR,UINT);
       
  1640 MMRESULT WINAPI midiInStart(HMIDIIN);
       
  1641 MMRESULT WINAPI midiInStop(HMIDIIN);
       
  1642 MMRESULT WINAPI midiInReset(HMIDIIN);
       
  1643 MMRESULT WINAPI midiInGetID(HMIDIIN,LPUINT);
       
  1644 MMRESULT WINAPI midiInMessage(HMIDIIN,UINT,DWORD,DWORD);
       
  1645 UINT WINAPI auxGetNumDevs(void);
       
  1646 MMRESULT WINAPI auxGetDevCapsA(UINT,LPAUXCAPSA,UINT);
       
  1647 MMRESULT WINAPI auxGetDevCapsW(UINT,LPAUXCAPSW,UINT);
       
  1648 MMRESULT WINAPI auxSetVolume(UINT,DWORD);
       
  1649 MMRESULT WINAPI auxGetVolume(UINT,PDWORD);
       
  1650 MMRESULT WINAPI auxOutMessage(UINT,UINT,DWORD,DWORD);
       
  1651 UINT WINAPI mixerGetNumDevs(void);
       
  1652 MMRESULT WINAPI mixerGetDevCapsA(UINT,LPMIXERCAPSA,UINT);
       
  1653 MMRESULT WINAPI mixerGetDevCapsW(UINT,LPMIXERCAPSW,UINT);
       
  1654 MMRESULT WINAPI mixerOpen(LPHMIXER,UINT,DWORD,DWORD,DWORD);
       
  1655 MMRESULT WINAPI mixerClose(HMIXER);
       
  1656 DWORD WINAPI mixerMessage(HMIXER,UINT,DWORD,DWORD);
       
  1657 MMRESULT WINAPI mixerGetLineInfoA(HMIXEROBJ,LPMIXERLINEA,DWORD);
       
  1658 MMRESULT WINAPI mixerGetLineInfoW(HMIXEROBJ,LPMIXERLINEW,DWORD);
       
  1659 MMRESULT WINAPI mixerGetID(HMIXEROBJ,PUINT,DWORD);
       
  1660 MMRESULT WINAPI mixerGetLineControlsA(HMIXEROBJ,LPMIXERLINECONTROLSA,DWORD);
       
  1661 MMRESULT WINAPI mixerGetLineControlsW(HMIXEROBJ,LPMIXERLINECONTROLSW,DWORD);
       
  1662 MMRESULT WINAPI mixerGetControlDetailsA(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD);
       
  1663 MMRESULT WINAPI mixerGetControlDetailsW(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD);
       
  1664 MMRESULT WINAPI mixerSetControlDetails(HMIXEROBJ,LPMIXERCONTROLDETAILS,DWORD);
       
  1665 MMRESULT WINAPI timeGetSystemTime(LPMMTIME,UINT);
       
  1666 DWORD WINAPI timeGetTime(void);
       
  1667 MMRESULT WINAPI timeSetEvent(UINT,UINT,LPTIMECALLBACK,DWORD,UINT);
       
  1668 MMRESULT WINAPI timeKillEvent(UINT);
       
  1669 MMRESULT WINAPI timeGetDevCaps(LPTIMECAPS,UINT);
       
  1670 MMRESULT WINAPI timeBeginPeriod(UINT);
       
  1671 MMRESULT WINAPI timeEndPeriod(UINT);
       
  1672 UINT WINAPI joyGetNumDevs(void);
       
  1673 MMRESULT WINAPI joyGetDevCapsA(UINT,LPJOYCAPSA,UINT);
       
  1674 MMRESULT WINAPI joyGetDevCapsW(UINT,LPJOYCAPSW,UINT);
       
  1675 MMRESULT WINAPI joyGetPos(UINT,LPJOYINFO);
       
  1676 MMRESULT WINAPI joyGetPosEx(UINT,LPJOYINFOEX);
       
  1677 MMRESULT WINAPI joyGetThreshold(UINT,LPUINT);
       
  1678 MMRESULT WINAPI joyReleaseCapture(UINT);
       
  1679 MMRESULT WINAPI joySetCapture(HWND,UINT,UINT,BOOL);
       
  1680 MMRESULT WINAPI joySetThreshold(UINT,UINT);
       
  1681 FOURCC WINAPI mmioStringToFOURCCA(LPCSTR,UINT);
       
  1682 FOURCC WINAPI mmioStringToFOURCCW(LPCWSTR,UINT);
       
  1683 LPMMIOPROC WINAPI mmioInstallIOProcA(FOURCC,LPMMIOPROC,DWORD);
       
  1684 LPMMIOPROC WINAPI mmioInstallIOProcW(FOURCC,LPMMIOPROC,DWORD);
       
  1685 HMMIO WINAPI mmioOpenA(LPSTR,LPMMIOINFO,DWORD);
       
  1686 HMMIO WINAPI mmioOpenW(LPWSTR,LPMMIOINFO,DWORD);
       
  1687 MMRESULT WINAPI mmioRenameA(LPCSTR,LPCSTR,LPCMMIOINFO,DWORD);
       
  1688 MMRESULT WINAPI mmioRenameW(LPCWSTR,LPCWSTR,LPCMMIOINFO,DWORD);
       
  1689 MMRESULT WINAPI mmioClose(HMMIO,UINT);
       
  1690 LONG WINAPI mmioRead(HMMIO,HPSTR,LONG);
       
  1691 LONG WINAPI mmioWrite(HMMIO,LPCSTR,LONG);
       
  1692 LONG WINAPI mmioSeek(HMMIO,LONG,int);
       
  1693 MMRESULT WINAPI mmioGetInfo(HMMIO,LPMMIOINFO,UINT);
       
  1694 MMRESULT WINAPI mmioSetInfo(HMMIO,LPCMMIOINFO,UINT);
       
  1695 MMRESULT WINAPI mmioSetBuffer(HMMIO,LPSTR,LONG,UINT);
       
  1696 MMRESULT WINAPI mmioFlush(HMMIO,UINT);
       
  1697 MMRESULT WINAPI mmioAdvance(HMMIO,LPMMIOINFO,UINT);
       
  1698 LRESULT WINAPI mmioSendMessage(HMMIO,UINT,LPARAM,LPARAM);
       
  1699 MMRESULT WINAPI mmioDescend(HMMIO,LPMMCKINFO,const MMCKINFO*,UINT);
       
  1700 MMRESULT WINAPI mmioAscend(HMMIO,LPMMCKINFO,UINT);
       
  1701 MMRESULT WINAPI mmioCreateChunk(HMMIO,LPMMCKINFO,UINT);
       
  1702 MCIERROR WINAPI mciSendCommandA(MCIDEVICEID,UINT,DWORD,DWORD);
       
  1703 MCIERROR WINAPI mciSendCommandW(MCIDEVICEID,UINT,DWORD,DWORD);
       
  1704 MCIERROR WINAPI mciSendStringA(LPCSTR,LPSTR,UINT,HWND);
       
  1705 MCIERROR WINAPI mciSendStringW(LPCWSTR,LPWSTR,UINT,HWND);
       
  1706 MCIDEVICEID WINAPI mciGetDeviceIDA(LPCSTR);
       
  1707 MCIDEVICEID WINAPI mciGetDeviceIDW(LPCWSTR);
       
  1708 MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDA(DWORD,LPCSTR);
       
  1709 MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDW(DWORD,LPCWSTR);
       
  1710 BOOL WINAPI mciGetErrorStringA(MCIERROR,LPSTR,UINT);
       
  1711 BOOL WINAPI mciGetErrorStringW(MCIERROR,LPWSTR,UINT);
       
  1712 BOOL WINAPI mciSetYieldProc(MCIDEVICEID,YIELDPROC,DWORD);
       
  1713 HTASK WINAPI mciGetCreatorTask(MCIDEVICEID);
       
  1714 YIELDPROC WINAPI mciGetYieldProc(MCIDEVICEID,PDWORD);
       
  1715 
       
  1716 typedef struct tagMCI_SEQ_SET_PARMS {
       
  1717 	DWORD dwCallback;
       
  1718 	DWORD dwTimeFormat;
       
  1719 	DWORD dwAudio;
       
  1720 	DWORD dwTempo;
       
  1721 	DWORD dwPort;
       
  1722 	DWORD dwSlave;
       
  1723 	DWORD dwMaster;
       
  1724 	DWORD dwOffset;
       
  1725 } MCI_SEQ_SET_PARMS,*PMCI_SEQ_SET_PARMS,*LPMCI_SEQ_SET_PARMS;
       
  1726 typedef struct tagMCI_ANIM_OPEN_PARMSA {
       
  1727 	DWORD dwCallback;
       
  1728 	MCIDEVICEID wDeviceID;
       
  1729 	LPCSTR lpstrDeviceType;
       
  1730 	LPCSTR lpstrElementName;
       
  1731 	LPCSTR lpstrAlias;
       
  1732 	DWORD dwStyle;
       
  1733 	HWND hWndParent;
       
  1734 } MCI_ANIM_OPEN_PARMSA,*PMCI_ANIM_OPEN_PARMSA,*LPMCI_ANIM_OPEN_PARMSA;
       
  1735 typedef struct tagMCI_ANIM_OPEN_PARMSW {
       
  1736 	DWORD dwCallback;
       
  1737 	MCIDEVICEID wDeviceID;
       
  1738 	LPCWSTR lpstrDeviceType;
       
  1739 	LPCWSTR lpstrElementName;
       
  1740 	LPCWSTR lpstrAlias;
       
  1741 	DWORD dwStyle;
       
  1742 	HWND hWndParent;
       
  1743 } MCI_ANIM_OPEN_PARMSW,*PMCI_ANIM_OPEN_PARMSW,*LPMCI_ANIM_OPEN_PARMSW;
       
  1744 typedef struct tagMCI_ANIM_PLAY_PARMS {
       
  1745 	DWORD dwCallback;
       
  1746 	DWORD dwFrom;
       
  1747 	DWORD dwTo;
       
  1748 	DWORD dwSpeed;
       
  1749 } MCI_ANIM_PLAY_PARMS,*PMCI_ANIM_PLAY_PARMS,*LPMCI_ANIM_PLAY_PARMS;
       
  1750 typedef struct tagMCI_ANIM_STEP_PARMS {
       
  1751 	DWORD dwCallback;
       
  1752 	DWORD dwFrames;
       
  1753 } MCI_ANIM_STEP_PARMS,*PMCI_ANIM_STEP_PARMS,*LPMCI_ANIM_STEP_PARMS;
       
  1754 typedef struct tagMCI_ANIM_WINDOW_PARMSA {
       
  1755 	DWORD dwCallback;
       
  1756 	HWND hWnd;
       
  1757 	UINT nCmdShow;
       
  1758 	LPCSTR lpstrText;
       
  1759 } MCI_ANIM_WINDOW_PARMSA,*PMCI_ANIM_WINDOW_PARMSA,*LPMCI_ANIM_WINDOW_PARMSA;
       
  1760 typedef struct tagMCI_ANIM_WINDOW_PARMSW {
       
  1761 	DWORD dwCallback;
       
  1762 	HWND hWnd;
       
  1763 	UINT nCmdShow;
       
  1764 	LPCWSTR lpstrText;
       
  1765 } MCI_ANIM_WINDOW_PARMSW,*PMCI_ANIM_WINDOW_PARMSW,*LPMCI_ANIM_WINDOW_PARMSW;
       
  1766 typedef struct tagMCI_ANIM_RECT_PARMS {
       
  1767 	DWORD dwCallback;
       
  1768 #ifdef MCI_USE_OFFEXT
       
  1769 	POINT ptOffset;
       
  1770 	POINT ptExtent;
       
  1771 #else
       
  1772 	RECT rc;
       
  1773 #endif
       
  1774 } MCI_ANIM_RECT_PARMS,*PMCI_ANIM_RECT_PARMS,*LPMCI_ANIM_RECT_PARMS;
       
  1775 typedef struct tagMCI_ANIM_UPDATE_PARMS {
       
  1776 	DWORD dwCallback;
       
  1777 	RECT rc;
       
  1778 	HDC hDC;
       
  1779 } MCI_ANIM_UPDATE_PARMS,*PMCI_ANIM_UPDATE_PARMS,*LPMCI_ANIM_UPDATE_PARMS;
       
  1780 typedef struct tagMCI_OVLY_OPEN_PARMSA {
       
  1781 	DWORD dwCallback;
       
  1782 	MCIDEVICEID wDeviceID;
       
  1783 	LPCSTR lpstrDeviceType;
       
  1784 	LPCSTR lpstrElementName;
       
  1785 	LPCSTR lpstrAlias;
       
  1786 	DWORD dwStyle;
       
  1787 	HWND hWndParent;
       
  1788 } MCI_OVLY_OPEN_PARMSA,*PMCI_OVLY_OPEN_PARMSA,*LPMCI_OVLY_OPEN_PARMSA;
       
  1789 typedef struct tagMCI_OVLY_OPEN_PARMSW {
       
  1790 	DWORD dwCallback;
       
  1791 	MCIDEVICEID wDeviceID;
       
  1792 	LPCWSTR lpstrDeviceType;
       
  1793 	LPCWSTR lpstrElementName;
       
  1794 	LPCWSTR lpstrAlias;
       
  1795 	DWORD dwStyle;
       
  1796 	HWND hWndParent;
       
  1797 } MCI_OVLY_OPEN_PARMSW,*PMCI_OVLY_OPEN_PARMSW,*LPMCI_OVLY_OPEN_PARMSW;
       
  1798 typedef struct tagMCI_OVLY_WINDOW_PARMSA {
       
  1799 	DWORD dwCallback;
       
  1800 	HWND hWnd;
       
  1801 	UINT nCmdShow;
       
  1802 	LPCSTR lpstrText;
       
  1803 } MCI_OVLY_WINDOW_PARMSA,*PMCI_OVLY_WINDOW_PARMSA,*LPMCI_OVLY_WINDOW_PARMSA;
       
  1804 typedef struct tagMCI_OVLY_WINDOW_PARMSW {
       
  1805 	DWORD dwCallback;
       
  1806 	HWND hWnd;
       
  1807 	UINT nCmdShow;
       
  1808 	LPCWSTR lpstrText;
       
  1809 } MCI_OVLY_WINDOW_PARMSW,*PMCI_OVLY_WINDOW_PARMSW,*LPMCI_OVLY_WINDOW_PARMSW;
       
  1810 typedef struct tagMCI_OVLY_RECT_PARMS {
       
  1811 	DWORD dwCallback;
       
  1812 #ifdef MCI_USE_OFFEXT
       
  1813 	POINT ptOffset;
       
  1814 	POINT ptExtent;
       
  1815 #else
       
  1816 	RECT rc;
       
  1817 #endif
       
  1818 } MCI_OVLY_RECT_PARMS,*PMCI_OVLY_RECT_PARMS,*LPMCI_OVLY_RECT_PARMS;
       
  1819 typedef struct tagMCI_OVLY_SAVE_PARMSA {
       
  1820 	DWORD dwCallback;
       
  1821 	LPCSTR lpfilename;
       
  1822 	RECT rc;
       
  1823 } MCI_OVLY_SAVE_PARMSA,*PMCI_OVLY_SAVE_PARMSA,*LPMCI_OVLY_SAVE_PARMSA;
       
  1824 typedef struct tagMCI_OVLY_SAVE_PARMSW {
       
  1825 	DWORD dwCallback;
       
  1826 	LPCWSTR lpfilename;
       
  1827 	RECT rc;
       
  1828 } MCI_OVLY_SAVE_PARMSW,*PMCI_OVLY_SAVE_PARMSW,*LPMCI_OVLY_SAVE_PARMSW;
       
  1829 typedef struct tagMCI_OVLY_LOAD_PARMSA {
       
  1830 	DWORD dwCallback;
       
  1831 	LPCSTR lpfilename;
       
  1832 	RECT rc;
       
  1833 } MCI_OVLY_LOAD_PARMSA,*PMCI_OVLY_LOAD_PARMSA,*LPMCI_OVLY_LOAD_PARMSA;
       
  1834 typedef struct tagMCI_OVLY_LOAD_PARMSW {
       
  1835 	DWORD dwCallback;
       
  1836 	LPCWSTR lpfilename;
       
  1837 	RECT rc;
       
  1838 } MCI_OVLY_LOAD_PARMSW,*PMCI_OVLY_LOAD_PARMSW,*LPMCI_OVLY_LOAD_PARMSW;
       
  1839 
       
  1840 #ifdef UNICODE
       
  1841 typedef WAVEOUTCAPSW WAVEOUTCAPS,*PWAVEOUTCAPS,*LPWAVEOUTCAPS;
       
  1842 typedef WAVEINCAPSW WAVEINCAPS,*PWAVEINCAPS,*LPWAVEINCAPS;
       
  1843 typedef MIDIOUTCAPSW MIDIOUTCAPS,*PMIDIOUTCAPS,*LPMIDIOUTCAPS;
       
  1844 typedef MIDIINCAPSW MIDIINCAPS,*PMIDIINCAPS,*LPMIDIINCAPS;
       
  1845 typedef AUXCAPSW AUXCAPS,*PAUXCAPS,*LPAUXCAPS;
       
  1846 typedef MIXERCAPSW MIXERCAPS,*PMIXERCAPS,*LPMIXERCAPS;
       
  1847 typedef MIXERLINEW MIXERLINE,*PMIXERLINE,*LPMIXERLINE;
       
  1848 typedef MIXERCONTROLW MIXERCONTROL,*PMIXERCONTROL,*LPMIXERCONTROL;
       
  1849 typedef MIXERLINECONTROLSW MIXERLINECONTROLS,*PMIXERLINECONTROLS,*LPMIXERLINECONTROLS;
       
  1850 typedef MIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXT,*PMIXERCONTROLDETAILS_LISTTEXT,*LPMIXERCONTROLDETAILS_LISTTEXT;
       
  1851 typedef JOYCAPSW JOYCAPS,*PJOYCAPS,*LPJOYCAPS;
       
  1852 typedef MCI_OPEN_PARMSW MCI_OPEN_PARMS,*PMCI_OPEN_PARMS,*LPMCI_OPEN_PARMS;
       
  1853 typedef MCI_INFO_PARMSW MCI_INFO_PARMS,*LPMCI_INFO_PARMS;
       
  1854 typedef MCI_SYSINFO_PARMSW MCI_SYSINFO_PARMS,*PMCI_SYSINFO_PARMS,*LPMCI_SYSINFO_PARMS;
       
  1855 typedef MCI_SAVE_PARMSW MCI_SAVE_PARMS,*PMCI_SAVE_PARMS,*LPMCI_SAVE_PARMS;
       
  1856 typedef MCI_LOAD_PARMSW MCI_LOAD_PARMS,*PMCI_LOAD_PARMS,*LPMCI_LOAD_PARMS;
       
  1857 typedef MCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMS,*PMCI_VD_ESCAPE_PARMS,*LPMCI_VD_ESCAPE_PARMS;
       
  1858 typedef MCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMS,*PMCI_WAVE_OPEN_PARMS,*LPMCI_WAVE_OPEN_PARMS;
       
  1859 typedef MCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMS,*PMCI_ANIM_OPEN_PARMS,*LPMCI_ANIM_OPEN_PARMS;
       
  1860 typedef MCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMS,*PMCI_ANIM_WINDOW_PARMS,*LPMCI_ANIM_WINDOW_PARMS;
       
  1861 typedef MCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMS,*PMCI_OVLY_OPEN_PARMS,*LPMCI_OVLY_OPEN_PARMS;
       
  1862 typedef MCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMS,*PMCI_OVLY_WINDOW_PARMS,*LPMCI_OVLY_WINDOW_PARMS;
       
  1863 typedef MCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMS,*PMCI_OVLY_SAVE_PARMS,*LPMCI_OVLY_SAVE_PARMS;
       
  1864 #define sndPlaySound sndPlaySoundW
       
  1865 #define PlaySound PlaySoundW
       
  1866 #define waveOutGetDevCaps waveOutGetDevCapsW
       
  1867 #define waveOutGetErrorText waveOutGetErrorTextW
       
  1868 #define waveInGetDevCaps waveInGetDevCapsW
       
  1869 #define waveInGetErrorText waveInGetErrorTextW
       
  1870 #define midiOutGetDevCaps midiOutGetDevCapsW
       
  1871 #define midiOutGetErrorText midiOutGetErrorTextW
       
  1872 #define midiInGetDevCaps midiInGetDevCapsW
       
  1873 #define midiInGetErrorText midiInGetErrorTextW
       
  1874 #define auxGetDevCaps auxGetDevCapsW
       
  1875 #define mixerGetDevCaps mixerGetDevCapsW
       
  1876 #define mixerGetLineInfo mixerGetLineInfoW
       
  1877 #define mixerGetLineControls mixerGetLineControlsW
       
  1878 #define mixerGetControlDetails mixerGetControlDetailsW
       
  1879 #define joyGetDevCaps joyGetDevCapsW
       
  1880 #define mmioInstallIOProc mmioInstallIOProcW
       
  1881 #define mmioStringToFOURCC mmioStringToFOURCCW
       
  1882 #define mmioOpen mmioOpenW
       
  1883 #define mmioRename mmioRenameW
       
  1884 #define mciSendCommand mciSendCommandW
       
  1885 #define mciSendString mciSendStringW
       
  1886 #define mciGetDeviceID mciGetDeviceIDW
       
  1887 #define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDW
       
  1888 #define mciGetErrorString mciGetErrorStringW
       
  1889 #else
       
  1890 typedef WAVEOUTCAPSA WAVEOUTCAPS,*PWAVEOUTCAPS,*LPWAVEOUTCAPS;
       
  1891 typedef WAVEINCAPSA WAVEINCAPS,*PWAVEINCAPS,*LPWAVEINCAPS;
       
  1892 typedef MIDIOUTCAPSA MIDIOUTCAPS,*PMIDIOUTCAPS,*LPMIDIOUTCAPS;
       
  1893 typedef MIDIINCAPSA MIDIINCAPS,*PMIDIINCAPS,*LPMIDIINCAPS;
       
  1894 typedef AUXCAPSA AUXCAPS,*PAUXCAPS,*LPAUXCAPS;
       
  1895 typedef MIXERCAPSA MIXERCAPS,*PMIXERCAPS,*LPMIXERCAPS;
       
  1896 typedef MIXERLINEA MIXERLINE,*PMIXERLINE,*LPMIXERLINE;
       
  1897 typedef MIXERCONTROLA MIXERCONTROL,*PMIXERCONTROL,*LPMIXERCONTROL;
       
  1898 typedef MIXERLINECONTROLSA MIXERLINECONTROLS,*PMIXERLINECONTROLS,*LPMIXERLINECONTROLS;
       
  1899 typedef MIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXT,*PMIXERCONTROLDETAILS_LISTTEXT,*LPMIXERCONTROLDETAILS_LISTTEXT;
       
  1900 typedef JOYCAPSA JOYCAPS,*PJOYCAPS,*LPJOYCAPS;
       
  1901 typedef MCI_OPEN_PARMSA MCI_OPEN_PARMS,*PMCI_OPEN_PARMS,*LPMCI_OPEN_PARMS;
       
  1902 typedef MCI_INFO_PARMSA MCI_INFO_PARMS,*LPMCI_INFO_PARMS;
       
  1903 typedef MCI_SYSINFO_PARMSA MCI_SYSINFO_PARMS,*PMCI_SYSINFO_PARMS,*LPMCI_SYSINFO_PARMS;
       
  1904 typedef MCI_SAVE_PARMSA MCI_SAVE_PARMS,*PMCI_SAVE_PARMS,*LPMCI_SAVE_PARMS;
       
  1905 typedef MCI_LOAD_PARMSA MCI_LOAD_PARMS,*PMCI_LOAD_PARMS,*LPMCI_LOAD_PARMS;
       
  1906 typedef MCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMS,*PMCI_VD_ESCAPE_PARMS,*LPMCI_VD_ESCAPE_PARMS;
       
  1907 typedef MCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMS,*PMCI_WAVE_OPEN_PARMS,*LPMCI_WAVE_OPEN_PARMS;
       
  1908 typedef MCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMS,*PMCI_ANIM_OPEN_PARMS,*LPMCI_ANIM_OPEN_PARMS;
       
  1909 typedef MCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMS,*PMCI_ANIM_WINDOW_PARMS,*LPMCI_ANIM_WINDOW_PARMS;
       
  1910 typedef MCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMS,*PMCI_OVLY_OPEN_PARMS,*LPMCI_OVLY_OPEN_PARMS;
       
  1911 typedef MCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMS,*PMCI_OVLY_WINDOW_PARMS,*LPMCI_OVLY_WINDOW_PARMS;
       
  1912 typedef MCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMS,*PMCI_OVLY_SAVE_PARMS,*LPMCI_OVLY_SAVE_PARMS;
       
  1913 #define sndPlaySound sndPlaySoundA
       
  1914 #define PlaySound PlaySoundA
       
  1915 #define waveOutGetDevCaps waveOutGetDevCapsA
       
  1916 #define waveOutGetErrorText waveOutGetErrorTextA
       
  1917 #define waveInGetDevCaps waveInGetDevCapsA
       
  1918 #define waveInGetErrorText waveInGetErrorTextA
       
  1919 #define midiOutGetDevCaps midiOutGetDevCapsA
       
  1920 #define midiOutGetErrorText midiOutGetErrorTextA
       
  1921 #define midiInGetDevCaps midiInGetDevCapsA
       
  1922 #define midiInGetErrorText midiInGetErrorTextA
       
  1923 #define auxGetDevCaps auxGetDevCapsA
       
  1924 #define mixerGetDevCaps mixerGetDevCapsA
       
  1925 #define mixerGetLineInfo mixerGetLineInfoA
       
  1926 #define mixerGetLineControls mixerGetLineControlsA
       
  1927 #define mixerGetControlDetails mixerGetControlDetailsA
       
  1928 #define joyGetDevCaps joyGetDevCapsA
       
  1929 #define mmioInstallIOProc mmioInstallIOProcA
       
  1930 #define mmioStringToFOURCC mmioStringToFOURCCA
       
  1931 #define mmioOpen mmioOpenA
       
  1932 #define mmioRename mmioRenameA
       
  1933 #define mciSendCommand mciSendCommandA
       
  1934 #define mciSendString mciSendStringA
       
  1935 #define mciGetDeviceID mciGetDeviceIDA
       
  1936 #define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDA
       
  1937 #define mciGetErrorString mciGetErrorStringA
       
  1938 #endif
       
  1939 #ifdef __cplusplus
       
  1940 }
       
  1941 #endif
       
  1942 #pragma pack(pop)
       
  1943 #endif