;--- include file created by h2incx v0.86, copyright 2005 japheth
;--- source file: MMSYSTEM.H, last modified: 4/24/1998 0:0
ifndef _INC_MMSYSTEM
_INC_MMSYSTEM	EQU	<>
ifdef _WIN32 
	include pshpack1.inc
else 
ifndef RC_INVOKED
;#pragma pack ( 1 ) 
endif 
endif 
ifdef __cplusplus 
;extern "C"{ 
endif 
ifdef _WIN32 
ifndef _WINMM_
WINMMAPI	EQU	<DECLSPEC_IMPORT>
else 
WINMMAPI	EQU	<>
endif 
_loadds	EQU	<>
_huge	EQU	<>
else 
WINMMAPI	EQU	<>
endif 
ifdef _WIN32_VXD 
;NEAR	EQU	<>
;FAR	EQU	<>
DECLARE_HANDLE macro x
	exitm <typedef WORD x >
	endm
WINAPI	EQU	<>
LPSTR  typedef DWORD
LPVOID  typedef DWORD
LPCSTR  typedef DWORD
LPCWSTR  typedef DWORD
LRESULT  typedef DWORD
LPARAM  typedef DWORD
WPARAM  typedef DWORD
WCHAR  typedef SWORD
endif 
MAXPNAMELEN	EQU	32
MAXERRORLENGTH	EQU	256
MAX_JOYSTICKOEMVXDNAME	EQU	260
if (WINVER le 030Ah)
ifndef MM_MICROSOFT
MM_MICROSOFT	EQU	1
endif 
ifndef MM_MIDI_MAPPER
MM_MIDI_MAPPER	EQU	1
MM_WAVE_MAPPER	EQU	2
MM_SNDBLST_MIDIOUT	EQU	3
MM_SNDBLST_MIDIIN	EQU	4
MM_SNDBLST_SYNTH	EQU	5
MM_SNDBLST_WAVEOUT	EQU	6
MM_SNDBLST_WAVEIN	EQU	7
MM_ADLIB	EQU	9
MM_MPU401_MIDIOUT	EQU	10
MM_MPU401_MIDIIN	EQU	11
MM_PC_JOYSTICK	EQU	12
endif 
endif 
ifdef _WIN32 
MMVERSION  typedef DWORD
else 
VERSION  typedef DWORD
endif 
MMRESULT  typedef DWORD
_MMRESULT_	EQU	<>
LPUINT  typedef ptr DWORD
MMTIME	struct
wType	DWORD	?
union u
ms	DWORD	?
sample	DWORD	?
cb	DWORD	?
ticks	DWORD	?
struct smpte
hour	BYTE	?
min	BYTE	?
sec	BYTE	?
frame	BYTE	?
fps	BYTE	?
dummy	BYTE	?
ifdef _WIN32 
pad	BYTE 2 dup (?)
endif 
ends
struct midi
songptrpos	DWORD	?
ends
ends
MMTIME	ends

PMMTIME typedef ptr MMTIME
NPMMTIME typedef ptr MMTIME
LPMMTIME typedef ptr MMTIME

TIME_MS	EQU	0001h
TIME_SAMPLES	EQU	0002h
TIME_BYTES	EQU	0004h
TIME_SMPTE	EQU	0008h
TIME_MIDI	EQU	0010h
TIME_TICKS	EQU	0020h
MAKEFOURCC macro ch0,ch1,ch2,ch3
	exitm <( ( ch0 )  or  ( ( ch1 )  shl  8 )  or  ( ( ch2 )  shl  16 )  or  ( ( ch3 )  shl  24 ) ) >
	endm
MM_JOY1MOVE	EQU	3A0h
MM_JOY2MOVE	EQU	3A1h
MM_JOY1ZMOVE	EQU	3A2h
MM_JOY2ZMOVE	EQU	3A3h
MM_JOY1BUTTONDOWN	EQU	3B5h
MM_JOY2BUTTONDOWN	EQU	3B6h
MM_JOY1BUTTONUP	EQU	3B7h
MM_JOY2BUTTONUP	EQU	3B8h
MM_MCINOTIFY	EQU	3B9h
MM_WOM_OPEN	EQU	3BBh
MM_WOM_CLOSE	EQU	3BCh
MM_WOM_DONE	EQU	3BDh
MM_WIM_OPEN	EQU	3BEh
MM_WIM_CLOSE	EQU	3BFh
MM_WIM_DATA	EQU	3C0h
MM_MIM_OPEN	EQU	3C1h
MM_MIM_CLOSE	EQU	3C2h
MM_MIM_DATA	EQU	3C3h
MM_MIM_LONGDATA	EQU	3C4h
MM_MIM_ERROR	EQU	3C5h
MM_MIM_LONGERROR	EQU	3C6h
MM_MOM_OPEN	EQU	3C7h
MM_MOM_CLOSE	EQU	3C8h
MM_MOM_DONE	EQU	3C9h
ifndef MM_DRVM_OPEN
MM_DRVM_OPEN	EQU	3D0h
MM_DRVM_CLOSE	EQU	3D1h
MM_DRVM_DATA	EQU	3D2h
MM_DRVM_ERROR	EQU	3D3h
endif 
MM_STREAM_OPEN	EQU	3D4h
MM_STREAM_CLOSE	EQU	3D5h
MM_STREAM_DONE	EQU	3D6h
MM_STREAM_ERROR	EQU	3D7h
if (WINVER ge 0400h)
MM_MOM_POSITIONCB	EQU	3CAh
ifndef MM_MCISIGNAL
MM_MCISIGNAL	EQU	3CBh
endif 
MM_MIM_MOREDATA	EQU	3CCh
endif 
MM_MIXM_LINE_CHANGE	EQU	3D0h
MM_MIXM_CONTROL_CHANGE	EQU	3D1h
MMSYSERR_BASE	EQU	0
WAVERR_BASE	EQU	32
MIDIERR_BASE	EQU	64
TIMERR_BASE	EQU	96
JOYERR_BASE	EQU	160
MCIERR_BASE	EQU	256
MIXERR_BASE	EQU	1024
MCI_STRING_OFFSET	EQU	512
MCI_VD_OFFSET	EQU	1024
MCI_CD_OFFSET	EQU	1088
MCI_WAVE_OFFSET	EQU	1152
MCI_SEQ_OFFSET	EQU	1216
MMSYSERR_NOERROR	EQU	0
MMSYSERR_ERROR	EQU	( MMSYSERR_BASE + 1 )
MMSYSERR_BADDEVICEID	EQU	( MMSYSERR_BASE + 2 )
MMSYSERR_NOTENABLED	EQU	( MMSYSERR_BASE + 3 )
MMSYSERR_ALLOCATED	EQU	( MMSYSERR_BASE + 4 )
MMSYSERR_INVALHANDLE	EQU	( MMSYSERR_BASE + 5 )
MMSYSERR_NODRIVER	EQU	( MMSYSERR_BASE + 6 )
MMSYSERR_NOMEM	EQU	( MMSYSERR_BASE + 7 )
MMSYSERR_NOTSUPPORTED	EQU	( MMSYSERR_BASE + 8 )
MMSYSERR_BADERRNUM	EQU	( MMSYSERR_BASE + 9 )
MMSYSERR_INVALFLAG	EQU	( MMSYSERR_BASE + 10 )
MMSYSERR_INVALPARAM	EQU	( MMSYSERR_BASE + 11 )
MMSYSERR_HANDLEBUSY	EQU	( MMSYSERR_BASE + 12 )
MMSYSERR_INVALIDALIAS	EQU	( MMSYSERR_BASE + 13 )
MMSYSERR_BADDB	EQU	( MMSYSERR_BASE + 14 )
MMSYSERR_KEYNOTFOUND	EQU	( MMSYSERR_BASE + 15 )
MMSYSERR_READERROR	EQU	( MMSYSERR_BASE + 16 )
MMSYSERR_WRITEERROR	EQU	( MMSYSERR_BASE + 17 )
MMSYSERR_DELETEERROR	EQU	( MMSYSERR_BASE + 18 )
MMSYSERR_VALNOTFOUND	EQU	( MMSYSERR_BASE + 19 )
MMSYSERR_NODRIVERCB	EQU	( MMSYSERR_BASE + 20 )
MMSYSERR_LASTERROR	EQU	( MMSYSERR_BASE + 20 )
if (WINVER lt 030ah) OR defined(_WIN32)
DECLARE_HANDLE(HDRVR)
endif 
ifndef MMNODRV
ifdef _WIN32 
DRVCONFIGINFOEX	struct
dwDCISize	DWORD	?
lpszDCISectionName	LPWSTR	?
lpszDCIAliasName	LPWSTR	?
dnDevNode	DWORD	?
DRVCONFIGINFOEX	ends

PDRVCONFIGINFOEX typedef ptr DRVCONFIGINFOEX
NPDRVCONFIGINFOEX typedef ptr DRVCONFIGINFOEX
LPDRVCONFIGINFOEX typedef ptr DRVCONFIGINFOEX

else 
DRVCONFIGINFOEX	struct
dwDCISize	DWORD	?
lpszDCISectionName	LPSTR	?
lpszDCIAliasName	LPSTR	?
dnDevNode	DWORD	?
DRVCONFIGINFOEX	ends

PDRVCONFIGINFOEX typedef ptr DRVCONFIGINFOEX
NPDRVCONFIGINFOEX typedef ptr DRVCONFIGINFOEX
LPDRVCONFIGINFOEX typedef ptr DRVCONFIGINFOEX

endif 
if (WINVER lt 030ah) OR defined(_WIN32)
ifndef DRV_LOAD
DRV_LOAD	EQU	0001h
DRV_ENABLE	EQU	0002h
DRV_OPEN	EQU	0003h
DRV_CLOSE	EQU	0004h
DRV_DISABLE	EQU	0005h
DRV_FREE	EQU	0006h
DRV_CONFIGURE	EQU	0007h
DRV_QUERYCONFIGURE	EQU	0008h
DRV_INSTALL	EQU	0009h
DRV_REMOVE	EQU	000Ah
DRV_EXITSESSION	EQU	000Bh
DRV_POWER	EQU	000Fh
DRV_RESERVED	EQU	0800h
DRV_USER	EQU	4000h
ifdef _WIN32 
DRVCONFIGINFO	struct
dwDCISize	DWORD	?
lpszDCISectionName	LPWSTR	?
lpszDCIAliasName	LPWSTR	?
DRVCONFIGINFO	ends

PDRVCONFIGINFO typedef ptr DRVCONFIGINFO
NPDRVCONFIGINFO typedef ptr DRVCONFIGINFO
LPDRVCONFIGINFO typedef ptr DRVCONFIGINFO

else 
DRVCONFIGINFO	struct
dwDCISize	DWORD	?
lpszDCISectionName	LPSTR	?
lpszDCIAliasName	LPSTR	?
DRVCONFIGINFO	ends

PDRVCONFIGINFO typedef ptr DRVCONFIGINFO
NPDRVCONFIGINFO typedef ptr DRVCONFIGINFO
LPDRVCONFIGINFO typedef ptr DRVCONFIGINFO

endif 
DRVCNF_CANCEL	EQU	0000h
DRVCNF_OK	EQU	0001h
DRVCNF_RESTART	EQU	0002h
ifdef _WIN32 
ifndef _WIN32_VXD
proto_DRIVERPROC typedef proto stdcall :DWORD,:HDRVR,:DWORD,:LPARAM,:LPARAM
DRIVERPROC typedef ptr proto_DRIVERPROC
proto_CloseDriver typedef proto stdcall  :HDRVR, :SDWORD, :SDWORD
externdef stdcall _imp__CloseDriver@12: ptr proto_CloseDriver
CloseDriver equ <_imp__CloseDriver@12>
proto_OpenDriver typedef proto stdcall  :LPWSTR, :LPWSTR, :SDWORD
externdef stdcall _imp__OpenDriver@12: ptr proto_OpenDriver
OpenDriver equ <_imp__OpenDriver@12>
proto_SendDriverMessage typedef proto stdcall  :HDRVR, :DWORD, :SDWORD, :SDWORD
externdef stdcall _imp__SendDriverMessage@16: ptr proto_SendDriverMessage
SendDriverMessage equ <_imp__SendDriverMessage@16>
proto_DrvGetModuleHandle typedef proto stdcall  :HDRVR
externdef stdcall _imp__DrvGetModuleHandle@4: ptr proto_DrvGetModuleHandle
DrvGetModuleHandle equ <_imp__DrvGetModuleHandle@4>
proto_GetDriverModuleHandle typedef proto stdcall  :HDRVR
externdef stdcall _imp__GetDriverModuleHandle@4: ptr proto_GetDriverModuleHandle
GetDriverModuleHandle equ <_imp__GetDriverModuleHandle@4>
proto_DefDriverProc typedef proto stdcall  :DWORD, :HDRVR, :DWORD, :LPARAM, :LPARAM
externdef stdcall _imp__DefDriverProc@20: ptr proto_DefDriverProc
DefDriverProc equ <_imp__DefDriverProc@20>
endif 
else 
DrvClose proto stdcall  :HDRVR, :LPARAM, :LPARAM
DrvOpen proto stdcall  :LPSTR, :LPSTR, :LPARAM
DrvSendMessage proto stdcall  :HDRVR, :DWORD, :LPARAM, :LPARAM
DrvGetModuleHandle proto stdcall  :HDRVR
DrvDefDriverProc proto stdcall  :DWORD, :HDRVR, :DWORD, :LPARAM, :LPARAM
DefDriverProc	EQU	<DrvDefDriverProc>
endif 
endif 
endif 
if (WINVER ge 030ah)
DRV_CANCEL	EQU	<DRVCNF_CANCEL>
DRV_OK	EQU	<DRVCNF_OK>
DRV_RESTART	EQU	<DRVCNF_RESTART>
endif 
DRV_MCI_FIRST	EQU	<DRV_RESERVED>
DRV_MCI_LAST	EQU	( DRV_RESERVED + 0FFFh )
endif 
CALLBACK_TYPEMASK	EQU	00070000h
CALLBACK_NULL	EQU	00000000h
CALLBACK_WINDOW	EQU	00010000h
CALLBACK_TASK	EQU	00020000h
CALLBACK_FUNCTION	EQU	00030000h
ifdef _WIN32 
CALLBACK_THREAD	EQU	<( CALLBACK_TASK )>
CALLBACK_EVENT	EQU	00050000h
endif 
ifndef _WIN32_VXD
proto_DRVCALLBACK typedef proto stdcall :HDRVR,:DWORD,:DWORD,:DWORD,:DWORD
DRVCALLBACK typedef ptr proto_DRVCALLBACK
LPDRVCALLBACK  typedef ptr DRVCALLBACK
ifdef _WIN32 
PDRVCALLBACK  typedef ptr DRVCALLBACK
endif 
endif 
ifndef MMNOMMSYSTEM
ifndef _WIN32_VXD
if (WINVER le 030Ah)
proto_mmsystemGetVersion typedef proto stdcall 
externdef stdcall _imp__mmsystemGetVersion@0: ptr proto_mmsystemGetVersion
mmsystemGetVersion equ <_imp__mmsystemGetVersion@0>
endif 
ifdef _WIN32 
OutputDebugStr	EQU	<OutputDebugString>
else 
OutputDebugStr proto stdcall  :LPSTR
endif 
endif 
endif 
ifndef MMNOSOUND
ifndef _WIN32_VXD
ifdef _WIN32 
proto_sndPlaySoundA typedef proto stdcall  :LPSTR, :DWORD
externdef stdcall _imp__sndPlaySoundA@8: ptr proto_sndPlaySoundA
sndPlaySoundA equ <_imp__sndPlaySoundA@8>
proto_sndPlaySoundW typedef proto stdcall  :LPWSTR, :DWORD
externdef stdcall _imp__sndPlaySoundW@8: ptr proto_sndPlaySoundW
sndPlaySoundW equ <_imp__sndPlaySoundW@8>
ifdef UNICODE 
sndPlaySound	EQU	<sndPlaySoundW>
else 
sndPlaySound	EQU	<sndPlaySoundA>
endif 
else 
sndPlaySound proto stdcall  :LPSTR, :DWORD
endif 
SND_SYNC	EQU	0000h
SND_ASYNC	EQU	0001h
SND_NODEFAULT	EQU	0002h
SND_MEMORY	EQU	0004h
SND_LOOP	EQU	0008h
SND_NOSTOP	EQU	0010h
SND_NOWAIT	EQU	00002000h
SND_ALIAS	EQU	00010000h
SND_ALIAS_ID	EQU	00110000h
SND_FILENAME	EQU	00020000h
SND_RESOURCE	EQU	00040004h
if (WINVER ge 0400h)
SND_PURGE	EQU	0040h
SND_APPLICATION	EQU	0080h
endif 
SND_ALIAS_START	EQU	0
ifdef _WIN32 
sndAlias macro ch0,ch1
	exitm <( SND_ALIAS_START + ( ch0 )  or  ( ( ch1 )  shl  8 ) ) >
	endm
SND_ALIAS_SYSTEMASTERISK	EQU	sndAlias ( 'S' , ' * ' )
SND_ALIAS_SYSTEMQUESTION	EQU	<sndAlias ( 'S' , '?' )>
SND_ALIAS_SYSTEMHAND	EQU	<sndAlias ( 'S' , 'H' )>
SND_ALIAS_SYSTEMEXIT	EQU	<sndAlias ( 'S' , 'E' )>
SND_ALIAS_SYSTEMSTART	EQU	<sndAlias ( 'S' , 'S' )>
SND_ALIAS_SYSTEMWELCOME	EQU	<sndAlias ( 'S' , 'W' )>
SND_ALIAS_SYSTEMEXCLAMATION	EQU	<sndAlias ( 'S' , ' ! ' )>
SND_ALIAS_SYSTEMDEFAULT	EQU	<sndAlias ( 'S' , 'D' )>
proto_PlaySoundA typedef proto stdcall  :LPSTR, :HMODULE, :DWORD
externdef stdcall _imp__PlaySoundA@12: ptr proto_PlaySoundA
PlaySoundA equ <_imp__PlaySoundA@12>
proto_PlaySoundW typedef proto stdcall  :LPWSTR, :HMODULE, :DWORD
externdef stdcall _imp__PlaySoundW@12: ptr proto_PlaySoundW
PlaySoundW equ <_imp__PlaySoundW@12>
ifdef UNICODE 
PlaySound	EQU	<PlaySoundW>
else 
PlaySound	EQU	<PlaySoundA>
endif 
else 
PlaySound proto stdcall  :LPSTR, :HMODULE, :DWORD
endif 
endif 
endif 
ifndef MMNOWAVE
WAVERR_BADFORMAT	EQU	( WAVERR_BASE + 0 )
WAVERR_STILLPLAYING	EQU	( WAVERR_BASE + 1 )
WAVERR_UNPREPARED	EQU	( WAVERR_BASE + 2 )
WAVERR_SYNC	EQU	( WAVERR_BASE + 3 )
WAVERR_LASTERROR	EQU	( WAVERR_BASE + 3 )
DECLARE_HANDLE(HWAVE)
DECLARE_HANDLE(HWAVEIN)
DECLARE_HANDLE(HWAVEOUT)
ifndef _WIN32_VXD
LPHWAVEIN  typedef ptr HWAVEIN
LPHWAVEOUT  typedef ptr HWAVEOUT
WAVECALLBACK  typedef DRVCALLBACK
LPWAVECALLBACK  typedef ptr WAVECALLBACK
endif 
WOM_OPEN	EQU	<MM_WOM_OPEN>
WOM_CLOSE	EQU	<MM_WOM_CLOSE>
WOM_DONE	EQU	<MM_WOM_DONE>
WIM_OPEN	EQU	<MM_WIM_OPEN>
WIM_CLOSE	EQU	<MM_WIM_CLOSE>
WIM_DATA	EQU	<MM_WIM_DATA>
WAVE_MAPPER	EQU	- 1
WAVE_FORMAT_QUERY	EQU	0001h
WAVE_ALLOWSYNC	EQU	0002h
if (WINVER ge 0400h)
WAVE_MAPPED	EQU	0004h
WAVE_FORMAT_DIRECT	EQU	0008h
WAVE_FORMAT_DIRECT_QUERY	EQU	( WAVE_FORMAT_QUERY  or  WAVE_FORMAT_DIRECT )
endif 
WAVEHDR	struct
lpData	LPSTR	?
dwBufferLength	DWORD	?
dwBytesRecorded	DWORD	?
dwUser	DWORD	?
dwFlags	DWORD	?
dwLoops	DWORD	?
lpNext DWORD ?
reserved	DWORD	?
WAVEHDR	ends

PWAVEHDR typedef ptr WAVEHDR
NPWAVEHDR typedef ptr WAVEHDR
LPWAVEHDR typedef ptr WAVEHDR

WHDR_DONE	EQU	00000001h
WHDR_PREPARED	EQU	00000002h
WHDR_BEGINLOOP	EQU	00000004h
WHDR_ENDLOOP	EQU	00000008h
WHDR_INQUEUE	EQU	00000010h
ifdef _WIN32 
WAVEOUTCAPSA	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	CHAR MAXPNAMELEN dup (?)
dwFormats	DWORD	?
wChannels	WORD	?
wReserved1	WORD	?
dwSupport	DWORD	?
WAVEOUTCAPSA	ends

PWAVEOUTCAPSA typedef ptr WAVEOUTCAPSA
NPWAVEOUTCAPSA typedef ptr WAVEOUTCAPSA
LPWAVEOUTCAPSA typedef ptr WAVEOUTCAPSA

WAVEOUTCAPSW	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	WCHAR MAXPNAMELEN dup (?)
dwFormats	DWORD	?
wChannels	WORD	?
wReserved1	WORD	?
dwSupport	DWORD	?
WAVEOUTCAPSW	ends

PWAVEOUTCAPSW typedef ptr WAVEOUTCAPSW
NPWAVEOUTCAPSW typedef ptr WAVEOUTCAPSW
LPWAVEOUTCAPSW typedef ptr WAVEOUTCAPSW

ifdef UNICODE 
WAVEOUTCAPS  typedef WAVEOUTCAPSW
PWAVEOUTCAPS  typedef PWAVEOUTCAPSW
NPWAVEOUTCAPS  typedef NPWAVEOUTCAPSW
LPWAVEOUTCAPS  typedef LPWAVEOUTCAPSW
else 
WAVEOUTCAPS  typedef WAVEOUTCAPSA
PWAVEOUTCAPS  typedef PWAVEOUTCAPSA
NPWAVEOUTCAPS  typedef NPWAVEOUTCAPSA
LPWAVEOUTCAPS  typedef LPWAVEOUTCAPSA
endif 
else 
WAVEOUTCAPS	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	VERSION	?
szPname	SBYTE MAXPNAMELEN dup (?)
dwFormats	DWORD	?
wChannels	WORD	?
dwSupport	DWORD	?
WAVEOUTCAPS	ends

PWAVEOUTCAPS typedef ptr WAVEOUTCAPS
NPWAVEOUTCAPS typedef ptr WAVEOUTCAPS
LPWAVEOUTCAPS typedef ptr WAVEOUTCAPS

endif 
WAVECAPS_PITCH	EQU	0001h
WAVECAPS_PLAYBACKRATE	EQU	0002h
WAVECAPS_VOLUME	EQU	0004h
WAVECAPS_LRVOLUME	EQU	0008h
WAVECAPS_SYNC	EQU	0010h
WAVECAPS_SAMPLEACCURATE	EQU	0020h
WAVECAPS_DIRECTSOUND	EQU	0040h
ifdef _WIN32 
WAVEINCAPSA	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	CHAR MAXPNAMELEN dup (?)
dwFormats	DWORD	?
wChannels	WORD	?
wReserved1	WORD	?
WAVEINCAPSA	ends

PWAVEINCAPSA typedef ptr WAVEINCAPSA
NPWAVEINCAPSA typedef ptr WAVEINCAPSA
LPWAVEINCAPSA typedef ptr WAVEINCAPSA

WAVEINCAPSW	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	WCHAR MAXPNAMELEN dup (?)
dwFormats	DWORD	?
wChannels	WORD	?
wReserved1	WORD	?
WAVEINCAPSW	ends

PWAVEINCAPSW typedef ptr WAVEINCAPSW
NPWAVEINCAPSW typedef ptr WAVEINCAPSW
LPWAVEINCAPSW typedef ptr WAVEINCAPSW

ifdef UNICODE 
WAVEINCAPS  typedef WAVEINCAPSW
PWAVEINCAPS  typedef PWAVEINCAPSW
NPWAVEINCAPS  typedef NPWAVEINCAPSW
LPWAVEINCAPS  typedef LPWAVEINCAPSW
else 
WAVEINCAPS  typedef WAVEINCAPSA
PWAVEINCAPS  typedef PWAVEINCAPSA
NPWAVEINCAPS  typedef NPWAVEINCAPSA
LPWAVEINCAPS  typedef LPWAVEINCAPSA
endif 
else 
WAVEINCAPS	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	VERSION	?
szPname	SBYTE MAXPNAMELEN dup (?)
dwFormats	DWORD	?
wChannels	WORD	?
WAVEINCAPS	ends

PWAVEINCAPS typedef ptr WAVEINCAPS
NPWAVEINCAPS typedef ptr WAVEINCAPS
LPWAVEINCAPS typedef ptr WAVEINCAPS

endif 
WAVE_INVALIDFORMAT	EQU	00000000h
WAVE_FORMAT_1M08	EQU	00000001h
WAVE_FORMAT_1S08	EQU	00000002h
WAVE_FORMAT_1M16	EQU	00000004h
WAVE_FORMAT_1S16	EQU	00000008h
WAVE_FORMAT_2M08	EQU	00000010h
WAVE_FORMAT_2S08	EQU	00000020h
WAVE_FORMAT_2M16	EQU	00000040h
WAVE_FORMAT_2S16	EQU	00000080h
WAVE_FORMAT_4M08	EQU	00000100h
WAVE_FORMAT_4S08	EQU	00000200h
WAVE_FORMAT_4M16	EQU	00000400h
WAVE_FORMAT_4S16	EQU	00000800h
WAVEFORMAT	struct
wFormatTag	WORD	?
nChannels	WORD	?
nSamplesPerSec	DWORD	?
nAvgBytesPerSec	DWORD	?
nBlockAlign	WORD	?
WAVEFORMAT	ends

PWAVEFORMAT typedef ptr WAVEFORMAT
NPWAVEFORMAT typedef ptr WAVEFORMAT
LPWAVEFORMAT typedef ptr WAVEFORMAT

WAVE_FORMAT_PCM	EQU	1
PCMWAVEFORMAT	struct
wf	WAVEFORMAT	<>
wBitsPerSample	WORD	?
PCMWAVEFORMAT	ends

PPCMWAVEFORMAT typedef ptr PCMWAVEFORMAT
NPPCMWAVEFORMAT typedef ptr PCMWAVEFORMAT
LPPCMWAVEFORMAT typedef ptr PCMWAVEFORMAT

ifndef _WAVEFORMATEX_
_WAVEFORMATEX_	EQU	<>
WAVEFORMATEX	struct
wFormatTag	WORD	?
nChannels	WORD	?
nSamplesPerSec	DWORD	?
nAvgBytesPerSec	DWORD	?
nBlockAlign	WORD	?
wBitsPerSample	WORD	?
cbSize	WORD	?
WAVEFORMATEX	ends

PWAVEFORMATEX typedef ptr WAVEFORMATEX
NPWAVEFORMATEX typedef ptr WAVEFORMATEX
LPWAVEFORMATEX typedef ptr WAVEFORMATEX

LPCWAVEFORMATEX  typedef ptr WAVEFORMATEX
endif 
ifndef _WIN32_VXD
proto_waveOutGetNumDevs typedef proto stdcall 
externdef stdcall _imp__waveOutGetNumDevs@0: ptr proto_waveOutGetNumDevs
waveOutGetNumDevs equ <_imp__waveOutGetNumDevs@0>
ifdef _WIN32 
proto_waveOutGetDevCapsA typedef proto stdcall  :DWORD, :LPWAVEOUTCAPSA, :DWORD
externdef stdcall _imp__waveOutGetDevCapsA@12: ptr proto_waveOutGetDevCapsA
waveOutGetDevCapsA equ <_imp__waveOutGetDevCapsA@12>
proto_waveOutGetDevCapsW typedef proto stdcall  :DWORD, :LPWAVEOUTCAPSW, :DWORD
externdef stdcall _imp__waveOutGetDevCapsW@12: ptr proto_waveOutGetDevCapsW
waveOutGetDevCapsW equ <_imp__waveOutGetDevCapsW@12>
ifdef UNICODE 
waveOutGetDevCaps	EQU	<waveOutGetDevCapsW>
else 
waveOutGetDevCaps	EQU	<waveOutGetDevCapsA>
endif 
else 
proto_waveOutGetDevCaps typedef proto stdcall  :DWORD, :LPWAVEOUTCAPS, :DWORD
externdef stdcall _imp__waveOutGetDevCaps@12: ptr proto_waveOutGetDevCaps
waveOutGetDevCaps equ <_imp__waveOutGetDevCaps@12>
endif 
if (WINVER ge 0400h)
proto_waveOutGetVolume typedef proto stdcall  :HWAVEOUT, :LPDWORD
externdef stdcall _imp__waveOutGetVolume@8: ptr proto_waveOutGetVolume
waveOutGetVolume equ <_imp__waveOutGetVolume@8>
proto_waveOutSetVolume typedef proto stdcall  :HWAVEOUT, :DWORD
externdef stdcall _imp__waveOutSetVolume@8: ptr proto_waveOutSetVolume
waveOutSetVolume equ <_imp__waveOutSetVolume@8>
else 
proto_waveOutGetVolume typedef proto stdcall  :DWORD, :LPDWORD
externdef stdcall _imp__waveOutGetVolume@8: ptr proto_waveOutGetVolume
waveOutGetVolume equ <_imp__waveOutGetVolume@8>
proto_waveOutSetVolume typedef proto stdcall  :DWORD, :DWORD
externdef stdcall _imp__waveOutSetVolume@8: ptr proto_waveOutSetVolume
waveOutSetVolume equ <_imp__waveOutSetVolume@8>
endif 
ifdef _WIN32 
proto_waveOutGetErrorTextA typedef proto stdcall  :MMRESULT, :LPSTR, :DWORD
externdef stdcall _imp__waveOutGetErrorTextA@12: ptr proto_waveOutGetErrorTextA
waveOutGetErrorTextA equ <_imp__waveOutGetErrorTextA@12>
proto_waveOutGetErrorTextW typedef proto stdcall  :MMRESULT, :LPWSTR, :DWORD
externdef stdcall _imp__waveOutGetErrorTextW@12: ptr proto_waveOutGetErrorTextW
waveOutGetErrorTextW equ <_imp__waveOutGetErrorTextW@12>
ifdef UNICODE 
waveOutGetErrorText	EQU	<waveOutGetErrorTextW>
else 
waveOutGetErrorText	EQU	<waveOutGetErrorTextA>
endif 
else 
waveOutGetErrorText proto stdcall  :MMRESULT, :LPSTR, :DWORD
endif 
proto_waveOutOpen typedef proto stdcall  :LPHWAVEOUT, :DWORD, :LPCWAVEFORMATEX, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__waveOutOpen@24: ptr proto_waveOutOpen
waveOutOpen equ <_imp__waveOutOpen@24>
proto_waveOutClose typedef proto stdcall  :HWAVEOUT
externdef stdcall _imp__waveOutClose@4: ptr proto_waveOutClose
waveOutClose equ <_imp__waveOutClose@4>
proto_waveOutPrepareHeader typedef proto stdcall  :HWAVEOUT, :LPWAVEHDR, :DWORD
externdef stdcall _imp__waveOutPrepareHeader@12: ptr proto_waveOutPrepareHeader
waveOutPrepareHeader equ <_imp__waveOutPrepareHeader@12>
proto_waveOutUnprepareHeader typedef proto stdcall  :HWAVEOUT, :LPWAVEHDR, :DWORD
externdef stdcall _imp__waveOutUnprepareHeader@12: ptr proto_waveOutUnprepareHeader
waveOutUnprepareHeader equ <_imp__waveOutUnprepareHeader@12>
proto_waveOutWrite typedef proto stdcall  :HWAVEOUT, :LPWAVEHDR, :DWORD
externdef stdcall _imp__waveOutWrite@12: ptr proto_waveOutWrite
waveOutWrite equ <_imp__waveOutWrite@12>
proto_waveOutPause typedef proto stdcall  :HWAVEOUT
externdef stdcall _imp__waveOutPause@4: ptr proto_waveOutPause
waveOutPause equ <_imp__waveOutPause@4>
proto_waveOutRestart typedef proto stdcall  :HWAVEOUT
externdef stdcall _imp__waveOutRestart@4: ptr proto_waveOutRestart
waveOutRestart equ <_imp__waveOutRestart@4>
proto_waveOutReset typedef proto stdcall  :HWAVEOUT
externdef stdcall _imp__waveOutReset@4: ptr proto_waveOutReset
waveOutReset equ <_imp__waveOutReset@4>
proto_waveOutBreakLoop typedef proto stdcall  :HWAVEOUT
externdef stdcall _imp__waveOutBreakLoop@4: ptr proto_waveOutBreakLoop
waveOutBreakLoop equ <_imp__waveOutBreakLoop@4>
proto_waveOutGetPosition typedef proto stdcall  :HWAVEOUT, :LPMMTIME, :DWORD
externdef stdcall _imp__waveOutGetPosition@12: ptr proto_waveOutGetPosition
waveOutGetPosition equ <_imp__waveOutGetPosition@12>
proto_waveOutGetPitch typedef proto stdcall  :HWAVEOUT, :LPDWORD
externdef stdcall _imp__waveOutGetPitch@8: ptr proto_waveOutGetPitch
waveOutGetPitch equ <_imp__waveOutGetPitch@8>
proto_waveOutSetPitch typedef proto stdcall  :HWAVEOUT, :DWORD
externdef stdcall _imp__waveOutSetPitch@8: ptr proto_waveOutSetPitch
waveOutSetPitch equ <_imp__waveOutSetPitch@8>
proto_waveOutGetPlaybackRate typedef proto stdcall  :HWAVEOUT, :LPDWORD
externdef stdcall _imp__waveOutGetPlaybackRate@8: ptr proto_waveOutGetPlaybackRate
waveOutGetPlaybackRate equ <_imp__waveOutGetPlaybackRate@8>
proto_waveOutSetPlaybackRate typedef proto stdcall  :HWAVEOUT, :DWORD
externdef stdcall _imp__waveOutSetPlaybackRate@8: ptr proto_waveOutSetPlaybackRate
waveOutSetPlaybackRate equ <_imp__waveOutSetPlaybackRate@8>
proto_waveOutGetID typedef proto stdcall  :HWAVEOUT, :LPUINT
externdef stdcall _imp__waveOutGetID@8: ptr proto_waveOutGetID
waveOutGetID equ <_imp__waveOutGetID@8>
if (WINVER ge 030ah)
ifdef _WIN32 
proto_waveOutMessage typedef proto stdcall  :HWAVEOUT, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__waveOutMessage@16: ptr proto_waveOutMessage
waveOutMessage equ <_imp__waveOutMessage@16>
else 
waveOutMessage proto stdcall  :HWAVEOUT, :DWORD, :DWORD, :DWORD
endif 
endif 
proto_waveInGetNumDevs typedef proto stdcall 
externdef stdcall _imp__waveInGetNumDevs@0: ptr proto_waveInGetNumDevs
waveInGetNumDevs equ <_imp__waveInGetNumDevs@0>
ifdef _WIN32 
proto_waveInGetDevCapsA typedef proto stdcall  :DWORD, :LPWAVEINCAPSA, :DWORD
externdef stdcall _imp__waveInGetDevCapsA@12: ptr proto_waveInGetDevCapsA
waveInGetDevCapsA equ <_imp__waveInGetDevCapsA@12>
proto_waveInGetDevCapsW typedef proto stdcall  :DWORD, :LPWAVEINCAPSW, :DWORD
externdef stdcall _imp__waveInGetDevCapsW@12: ptr proto_waveInGetDevCapsW
waveInGetDevCapsW equ <_imp__waveInGetDevCapsW@12>
ifdef UNICODE 
waveInGetDevCaps	EQU	<waveInGetDevCapsW>
else 
waveInGetDevCaps	EQU	<waveInGetDevCapsA>
endif 
else 
waveInGetDevCaps proto stdcall  :DWORD, :LPWAVEINCAPS, :DWORD
endif 
ifdef _WIN32 
proto_waveInGetErrorTextA typedef proto stdcall  :MMRESULT, :LPSTR, :DWORD
externdef stdcall _imp__waveInGetErrorTextA@12: ptr proto_waveInGetErrorTextA
waveInGetErrorTextA equ <_imp__waveInGetErrorTextA@12>
proto_waveInGetErrorTextW typedef proto stdcall  :MMRESULT, :LPWSTR, :DWORD
externdef stdcall _imp__waveInGetErrorTextW@12: ptr proto_waveInGetErrorTextW
waveInGetErrorTextW equ <_imp__waveInGetErrorTextW@12>
ifdef UNICODE 
waveInGetErrorText	EQU	<waveInGetErrorTextW>
else 
waveInGetErrorText	EQU	<waveInGetErrorTextA>
endif 
else 
waveInGetErrorText proto stdcall  :MMRESULT, :LPSTR, :DWORD
endif 
proto_waveInOpen typedef proto stdcall  :LPHWAVEIN, :DWORD, :LPCWAVEFORMATEX, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__waveInOpen@24: ptr proto_waveInOpen
waveInOpen equ <_imp__waveInOpen@24>
proto_waveInClose typedef proto stdcall  :HWAVEIN
externdef stdcall _imp__waveInClose@4: ptr proto_waveInClose
waveInClose equ <_imp__waveInClose@4>
proto_waveInPrepareHeader typedef proto stdcall  :HWAVEIN, :LPWAVEHDR, :DWORD
externdef stdcall _imp__waveInPrepareHeader@12: ptr proto_waveInPrepareHeader
waveInPrepareHeader equ <_imp__waveInPrepareHeader@12>
proto_waveInUnprepareHeader typedef proto stdcall  :HWAVEIN, :LPWAVEHDR, :DWORD
externdef stdcall _imp__waveInUnprepareHeader@12: ptr proto_waveInUnprepareHeader
waveInUnprepareHeader equ <_imp__waveInUnprepareHeader@12>
proto_waveInAddBuffer typedef proto stdcall  :HWAVEIN, :LPWAVEHDR, :DWORD
externdef stdcall _imp__waveInAddBuffer@12: ptr proto_waveInAddBuffer
waveInAddBuffer equ <_imp__waveInAddBuffer@12>
proto_waveInStart typedef proto stdcall  :HWAVEIN
externdef stdcall _imp__waveInStart@4: ptr proto_waveInStart
waveInStart equ <_imp__waveInStart@4>
proto_waveInStop typedef proto stdcall  :HWAVEIN
externdef stdcall _imp__waveInStop@4: ptr proto_waveInStop
waveInStop equ <_imp__waveInStop@4>
proto_waveInReset typedef proto stdcall  :HWAVEIN
externdef stdcall _imp__waveInReset@4: ptr proto_waveInReset
waveInReset equ <_imp__waveInReset@4>
proto_waveInGetPosition typedef proto stdcall  :HWAVEIN, :LPMMTIME, :DWORD
externdef stdcall _imp__waveInGetPosition@12: ptr proto_waveInGetPosition
waveInGetPosition equ <_imp__waveInGetPosition@12>
proto_waveInGetID typedef proto stdcall  :HWAVEIN, :LPUINT
externdef stdcall _imp__waveInGetID@8: ptr proto_waveInGetID
waveInGetID equ <_imp__waveInGetID@8>
if (WINVER ge 030ah)
ifdef _WIN32 
proto_waveInMessage typedef proto stdcall  :HWAVEIN, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__waveInMessage@16: ptr proto_waveInMessage
waveInMessage equ <_imp__waveInMessage@16>
else 
waveInMessage proto stdcall  :HWAVEIN, :DWORD, :DWORD, :DWORD
endif 
endif 
endif 
endif 
ifndef MMNOMIDI
MIDIERR_UNPREPARED	EQU	( MIDIERR_BASE + 0 )
MIDIERR_STILLPLAYING	EQU	( MIDIERR_BASE + 1 )
MIDIERR_NOMAP	EQU	( MIDIERR_BASE + 2 )
MIDIERR_NOTREADY	EQU	( MIDIERR_BASE + 3 )
MIDIERR_NODEVICE	EQU	( MIDIERR_BASE + 4 )
MIDIERR_INVALIDSETUP	EQU	( MIDIERR_BASE + 5 )
MIDIERR_BADOPENMODE	EQU	( MIDIERR_BASE + 6 )
MIDIERR_DONT_CONTINUE	EQU	( MIDIERR_BASE + 7 )
MIDIERR_LASTERROR	EQU	( MIDIERR_BASE + 7 )
DECLARE_HANDLE(HMIDI)
DECLARE_HANDLE(HMIDIIN)
DECLARE_HANDLE(HMIDIOUT)
DECLARE_HANDLE(HMIDISTRM)
ifndef _WIN32_VXD
LPHMIDI  typedef ptr HMIDI
LPHMIDIIN  typedef ptr HMIDIIN
LPHMIDIOUT  typedef ptr HMIDIOUT
LPHMIDISTRM  typedef ptr HMIDISTRM
MIDICALLBACK  typedef DRVCALLBACK
LPMIDICALLBACK  typedef ptr MIDICALLBACK
MIDIPATCHSIZE	EQU	128
PATCHARRAY  typedef WORD
LPPATCHARRAY  typedef ptr WORD
KEYARRAY  typedef WORD
LPKEYARRAY  typedef ptr WORD
endif 
MIM_OPEN	EQU	<MM_MIM_OPEN>
MIM_CLOSE	EQU	<MM_MIM_CLOSE>
MIM_DATA	EQU	<MM_MIM_DATA>
MIM_LONGDATA	EQU	<MM_MIM_LONGDATA>
MIM_ERROR	EQU	<MM_MIM_ERROR>
MIM_LONGERROR	EQU	<MM_MIM_LONGERROR>
MOM_OPEN	EQU	<MM_MOM_OPEN>
MOM_CLOSE	EQU	<MM_MOM_CLOSE>
MOM_DONE	EQU	<MM_MOM_DONE>
if (WINVER ge 0400h)
MIM_MOREDATA	EQU	<MM_MIM_MOREDATA>
MOM_POSITIONCB	EQU	<MM_MOM_POSITIONCB>
endif 
MIDIMAPPER	EQU	- 1
MIDI_MAPPER	EQU	- 1
if (WINVER ge 0400h)
MIDI_IO_STATUS	EQU	00000020h
endif 
MIDI_CACHE_ALL	EQU	1
MIDI_CACHE_BESTFIT	EQU	2
MIDI_CACHE_QUERY	EQU	3
MIDI_UNCACHE	EQU	4
ifdef _WIN32 
MIDIOUTCAPSA	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	CHAR MAXPNAMELEN dup (?)
wTechnology	WORD	?
wVoices	WORD	?
wNotes	WORD	?
wChannelMask	WORD	?
dwSupport	DWORD	?
MIDIOUTCAPSA	ends

PMIDIOUTCAPSA typedef ptr MIDIOUTCAPSA
NPMIDIOUTCAPSA typedef ptr MIDIOUTCAPSA
LPMIDIOUTCAPSA typedef ptr MIDIOUTCAPSA

MIDIOUTCAPSW	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	WCHAR MAXPNAMELEN dup (?)
wTechnology	WORD	?
wVoices	WORD	?
wNotes	WORD	?
wChannelMask	WORD	?
dwSupport	DWORD	?
MIDIOUTCAPSW	ends

PMIDIOUTCAPSW typedef ptr MIDIOUTCAPSW
NPMIDIOUTCAPSW typedef ptr MIDIOUTCAPSW
LPMIDIOUTCAPSW typedef ptr MIDIOUTCAPSW

ifdef UNICODE 
MIDIOUTCAPS  typedef MIDIOUTCAPSW
PMIDIOUTCAPS  typedef PMIDIOUTCAPSW
NPMIDIOUTCAPS  typedef NPMIDIOUTCAPSW
LPMIDIOUTCAPS  typedef LPMIDIOUTCAPSW
else 
MIDIOUTCAPS  typedef MIDIOUTCAPSA
PMIDIOUTCAPS  typedef PMIDIOUTCAPSA
NPMIDIOUTCAPS  typedef NPMIDIOUTCAPSA
LPMIDIOUTCAPS  typedef LPMIDIOUTCAPSA
endif 
else 
MIDIOUTCAPS	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	VERSION	?
szPname	SBYTE MAXPNAMELEN dup (?)
wTechnology	WORD	?
wVoices	WORD	?
wNotes	WORD	?
wChannelMask	WORD	?
dwSupport	DWORD	?
MIDIOUTCAPS	ends

PMIDIOUTCAPS typedef ptr MIDIOUTCAPS
NPMIDIOUTCAPS typedef ptr MIDIOUTCAPS
LPMIDIOUTCAPS typedef ptr MIDIOUTCAPS

endif 
MOD_MIDIPORT	EQU	1
MOD_SYNTH	EQU	2
MOD_SQSYNTH	EQU	3
MOD_FMSYNTH	EQU	4
MOD_MAPPER	EQU	5
MIDICAPS_VOLUME	EQU	0001h
MIDICAPS_LRVOLUME	EQU	0002h
MIDICAPS_CACHE	EQU	0004h
if (WINVER ge 0400h)
MIDICAPS_STREAM	EQU	0008h
endif 
ifdef _WIN32 
MIDIINCAPSA	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	CHAR MAXPNAMELEN dup (?)
if (WINVER ge 0400h)
dwSupport	DWORD	?
endif 
MIDIINCAPSA	ends

PMIDIINCAPSA typedef ptr MIDIINCAPSA
NPMIDIINCAPSA typedef ptr MIDIINCAPSA
LPMIDIINCAPSA typedef ptr MIDIINCAPSA

MIDIINCAPSW	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	WCHAR MAXPNAMELEN dup (?)
if (WINVER ge 0400h)
dwSupport	DWORD	?
endif 
MIDIINCAPSW	ends

PMIDIINCAPSW typedef ptr MIDIINCAPSW
NPMIDIINCAPSW typedef ptr MIDIINCAPSW
LPMIDIINCAPSW typedef ptr MIDIINCAPSW

ifdef UNICODE 
MIDIINCAPS  typedef MIDIINCAPSW
PMIDIINCAPS  typedef PMIDIINCAPSW
NPMIDIINCAPS  typedef NPMIDIINCAPSW
LPMIDIINCAPS  typedef LPMIDIINCAPSW
else 
MIDIINCAPS  typedef MIDIINCAPSA
PMIDIINCAPS  typedef PMIDIINCAPSA
NPMIDIINCAPS  typedef NPMIDIINCAPSA
LPMIDIINCAPS  typedef LPMIDIINCAPSA
endif 
else 
MIDIINCAPS	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	VERSION	?
szPname	SBYTE MAXPNAMELEN dup (?)
if (WINVER ge 0400h)
dwSupport	DWORD	?
endif 
MIDIINCAPS	ends

PMIDIINCAPS typedef ptr MIDIINCAPS
NPMIDIINCAPS typedef ptr MIDIINCAPS
LPMIDIINCAPS typedef ptr MIDIINCAPS

endif 
MIDIHDR	struct
lpData	LPSTR	?
dwBufferLength	DWORD	?
dwBytesRecorded	DWORD	?
dwUser	DWORD	?
dwFlags	DWORD	?
lpNext DWORD ?
reserved	DWORD	?
if (WINVER ge 0400h)
dwOffset	DWORD	?
dwReserved	DWORD 8 dup (?)
endif 
MIDIHDR	ends

PMIDIHDR typedef ptr MIDIHDR
NPMIDIHDR typedef ptr MIDIHDR
LPMIDIHDR typedef ptr MIDIHDR

if (WINVER ge 0400h)
MIDIEVENT	struct
dwDeltaTime	DWORD	?
dwStreamID	DWORD	?
dwEvent	DWORD	?
dwParms	DWORD 1 dup (?)
MIDIEVENT	ends

MIDISTRMBUFFVER	struct
dwVersion	DWORD	?
dwMid	DWORD	?
dwOEMVersion	DWORD	?
MIDISTRMBUFFVER	ends

endif 
MHDR_DONE	EQU	00000001h
MHDR_PREPARED	EQU	00000002h
MHDR_INQUEUE	EQU	00000004h
MHDR_ISSTRM	EQU	00000008h
if (WINVER ge 0400h)
MEVT_F_SHORT	EQU	00000000h
MEVT_F_LONG	EQU	80000000h
MEVT_F_CALLBACK	EQU	40000000h
MEVT_EVENTTYPE macro x
	exitm <( ( ( x  shr 24 ) and 0FFh ) ) >
	endm
MEVT_EVENTPARM macro x
	exitm <( ( x and 0FFFFFFh ) ) >
	endm
MEVT_SHORTMSG	EQU	00h
MEVT_TEMPO	EQU	01h
MEVT_NOP	EQU	02h
MEVT_LONGMSG	EQU	80h
MEVT_COMMENT	EQU	82h
MEVT_VERSION	EQU	84h
MIDISTRM_ERROR	EQU	- 2
MIDIPROP_SET	EQU	80000000h
MIDIPROP_GET	EQU	40000000h
MIDIPROP_TIMEDIV	EQU	00000001h
MIDIPROP_TEMPO	EQU	00000002h
MIDIPROPTIMEDIV	struct
cbStruct	DWORD	?
dwTimeDiv	DWORD	?
MIDIPROPTIMEDIV	ends

LPMIDIPROPTIMEDIV typedef ptr MIDIPROPTIMEDIV

MIDIPROPTEMPO	struct
cbStruct	DWORD	?
dwTempo	DWORD	?
MIDIPROPTEMPO	ends

LPMIDIPROPTEMPO typedef ptr MIDIPROPTEMPO

endif 
ifndef _WIN32_VXD
proto_midiOutGetNumDevs typedef proto stdcall 
externdef stdcall _imp__midiOutGetNumDevs@0: ptr proto_midiOutGetNumDevs
midiOutGetNumDevs equ <_imp__midiOutGetNumDevs@0>
if (WINVER ge 0400h)
proto_midiStreamOpen typedef proto stdcall  :LPHMIDISTRM, :LPUINT, :DWORD, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__midiStreamOpen@24: ptr proto_midiStreamOpen
midiStreamOpen equ <_imp__midiStreamOpen@24>
proto_midiStreamClose typedef proto stdcall  :HMIDISTRM
externdef stdcall _imp__midiStreamClose@4: ptr proto_midiStreamClose
midiStreamClose equ <_imp__midiStreamClose@4>
proto_midiStreamProperty typedef proto stdcall  :HMIDISTRM, :LPBYTE, :DWORD
externdef stdcall _imp__midiStreamProperty@12: ptr proto_midiStreamProperty
midiStreamProperty equ <_imp__midiStreamProperty@12>
proto_midiStreamPosition typedef proto stdcall  :HMIDISTRM, :LPMMTIME, :DWORD
externdef stdcall _imp__midiStreamPosition@12: ptr proto_midiStreamPosition
midiStreamPosition equ <_imp__midiStreamPosition@12>
proto_midiStreamOut typedef proto stdcall  :HMIDISTRM, :LPMIDIHDR, :DWORD
externdef stdcall _imp__midiStreamOut@12: ptr proto_midiStreamOut
midiStreamOut equ <_imp__midiStreamOut@12>
proto_midiStreamPause typedef proto stdcall  :HMIDISTRM
externdef stdcall _imp__midiStreamPause@4: ptr proto_midiStreamPause
midiStreamPause equ <_imp__midiStreamPause@4>
proto_midiStreamRestart typedef proto stdcall  :HMIDISTRM
externdef stdcall _imp__midiStreamRestart@4: ptr proto_midiStreamRestart
midiStreamRestart equ <_imp__midiStreamRestart@4>
proto_midiStreamStop typedef proto stdcall  :HMIDISTRM
externdef stdcall _imp__midiStreamStop@4: ptr proto_midiStreamStop
midiStreamStop equ <_imp__midiStreamStop@4>
ifdef _WIN32 
proto_midiConnect typedef proto stdcall  :HMIDI, :HMIDIOUT, :LPVOID
externdef stdcall _imp__midiConnect@12: ptr proto_midiConnect
midiConnect equ <_imp__midiConnect@12>
proto_midiDisconnect typedef proto stdcall  :HMIDI, :HMIDIOUT, :LPVOID
externdef stdcall _imp__midiDisconnect@12: ptr proto_midiDisconnect
midiDisconnect equ <_imp__midiDisconnect@12>
endif 
endif 
ifdef _WIN32 
proto_midiOutGetDevCapsA typedef proto stdcall  :DWORD, :LPMIDIOUTCAPSA, :DWORD
externdef stdcall _imp__midiOutGetDevCapsA@12: ptr proto_midiOutGetDevCapsA
midiOutGetDevCapsA equ <_imp__midiOutGetDevCapsA@12>
proto_midiOutGetDevCapsW typedef proto stdcall  :DWORD, :LPMIDIOUTCAPSW, :DWORD
externdef stdcall _imp__midiOutGetDevCapsW@12: ptr proto_midiOutGetDevCapsW
midiOutGetDevCapsW equ <_imp__midiOutGetDevCapsW@12>
ifdef UNICODE 
midiOutGetDevCaps	EQU	<midiOutGetDevCapsW>
else 
midiOutGetDevCaps	EQU	<midiOutGetDevCapsA>
endif 
else 
midiOutGetDevCaps proto stdcall  :DWORD, :LPMIDIOUTCAPS, :DWORD
endif 
if (WINVER ge 0400h)
proto_midiOutGetVolume typedef proto stdcall  :HMIDIOUT, :LPDWORD
externdef stdcall _imp__midiOutGetVolume@8: ptr proto_midiOutGetVolume
midiOutGetVolume equ <_imp__midiOutGetVolume@8>
proto_midiOutSetVolume typedef proto stdcall  :HMIDIOUT, :DWORD
externdef stdcall _imp__midiOutSetVolume@8: ptr proto_midiOutSetVolume
midiOutSetVolume equ <_imp__midiOutSetVolume@8>
else 
proto_midiOutGetVolume typedef proto stdcall  :DWORD, :LPDWORD
externdef stdcall _imp__midiOutGetVolume@8: ptr proto_midiOutGetVolume
midiOutGetVolume equ <_imp__midiOutGetVolume@8>
proto_midiOutSetVolume typedef proto stdcall  :DWORD, :DWORD
externdef stdcall _imp__midiOutSetVolume@8: ptr proto_midiOutSetVolume
midiOutSetVolume equ <_imp__midiOutSetVolume@8>
endif 
ifdef _WIN32 
proto_midiOutGetErrorTextA typedef proto stdcall  :MMRESULT, :LPSTR, :DWORD
externdef stdcall _imp__midiOutGetErrorTextA@12: ptr proto_midiOutGetErrorTextA
midiOutGetErrorTextA equ <_imp__midiOutGetErrorTextA@12>
proto_midiOutGetErrorTextW typedef proto stdcall  :MMRESULT, :LPWSTR, :DWORD
externdef stdcall _imp__midiOutGetErrorTextW@12: ptr proto_midiOutGetErrorTextW
midiOutGetErrorTextW equ <_imp__midiOutGetErrorTextW@12>
ifdef UNICODE 
midiOutGetErrorText	EQU	<midiOutGetErrorTextW>
else 
midiOutGetErrorText	EQU	<midiOutGetErrorTextA>
endif 
else 
proto_midiOutGetErrorText typedef proto stdcall  :MMRESULT, :LPSTR, :DWORD
externdef stdcall _imp__midiOutGetErrorText@12: ptr proto_midiOutGetErrorText
midiOutGetErrorText equ <_imp__midiOutGetErrorText@12>
endif 
proto_midiOutOpen typedef proto stdcall  :LPHMIDIOUT, :DWORD, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__midiOutOpen@20: ptr proto_midiOutOpen
midiOutOpen equ <_imp__midiOutOpen@20>
proto_midiOutClose typedef proto stdcall  :HMIDIOUT
externdef stdcall _imp__midiOutClose@4: ptr proto_midiOutClose
midiOutClose equ <_imp__midiOutClose@4>
proto_midiOutPrepareHeader typedef proto stdcall  :HMIDIOUT, :LPMIDIHDR, :DWORD
externdef stdcall _imp__midiOutPrepareHeader@12: ptr proto_midiOutPrepareHeader
midiOutPrepareHeader equ <_imp__midiOutPrepareHeader@12>
proto_midiOutUnprepareHeader typedef proto stdcall  :HMIDIOUT, :LPMIDIHDR, :DWORD
externdef stdcall _imp__midiOutUnprepareHeader@12: ptr proto_midiOutUnprepareHeader
midiOutUnprepareHeader equ <_imp__midiOutUnprepareHeader@12>
proto_midiOutShortMsg typedef proto stdcall  :HMIDIOUT, :DWORD
externdef stdcall _imp__midiOutShortMsg@8: ptr proto_midiOutShortMsg
midiOutShortMsg equ <_imp__midiOutShortMsg@8>
proto_midiOutLongMsg typedef proto stdcall  :HMIDIOUT, :LPMIDIHDR, :DWORD
externdef stdcall _imp__midiOutLongMsg@12: ptr proto_midiOutLongMsg
midiOutLongMsg equ <_imp__midiOutLongMsg@12>
proto_midiOutReset typedef proto stdcall  :HMIDIOUT
externdef stdcall _imp__midiOutReset@4: ptr proto_midiOutReset
midiOutReset equ <_imp__midiOutReset@4>
proto_midiOutCachePatches typedef proto stdcall  :HMIDIOUT, :DWORD, :LPWORD, :DWORD
externdef stdcall _imp__midiOutCachePatches@16: ptr proto_midiOutCachePatches
midiOutCachePatches equ <_imp__midiOutCachePatches@16>
proto_midiOutCacheDrumPatches typedef proto stdcall  :HMIDIOUT, :DWORD, :LPWORD, :DWORD
externdef stdcall _imp__midiOutCacheDrumPatches@16: ptr proto_midiOutCacheDrumPatches
midiOutCacheDrumPatches equ <_imp__midiOutCacheDrumPatches@16>
proto_midiOutGetID typedef proto stdcall  :HMIDIOUT, :LPUINT
externdef stdcall _imp__midiOutGetID@8: ptr proto_midiOutGetID
midiOutGetID equ <_imp__midiOutGetID@8>
if (WINVER ge 030ah)
ifdef _WIN32 
proto_midiOutMessage typedef proto stdcall  :HMIDIOUT, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__midiOutMessage@16: ptr proto_midiOutMessage
midiOutMessage equ <_imp__midiOutMessage@16>
else 
midiOutMessage proto stdcall  :HMIDIOUT, :DWORD, :DWORD, :DWORD
endif 
endif 
proto_midiInGetNumDevs typedef proto stdcall 
externdef stdcall _imp__midiInGetNumDevs@0: ptr proto_midiInGetNumDevs
midiInGetNumDevs equ <_imp__midiInGetNumDevs@0>
ifdef _WIN32 
proto_midiInGetDevCapsA typedef proto stdcall  :DWORD, :LPMIDIINCAPSA, :DWORD
externdef stdcall _imp__midiInGetDevCapsA@12: ptr proto_midiInGetDevCapsA
midiInGetDevCapsA equ <_imp__midiInGetDevCapsA@12>
proto_midiInGetDevCapsW typedef proto stdcall  :DWORD, :LPMIDIINCAPSW, :DWORD
externdef stdcall _imp__midiInGetDevCapsW@12: ptr proto_midiInGetDevCapsW
midiInGetDevCapsW equ <_imp__midiInGetDevCapsW@12>
ifdef UNICODE 
midiInGetDevCaps	EQU	<midiInGetDevCapsW>
else 
midiInGetDevCaps	EQU	<midiInGetDevCapsA>
endif 
proto_midiInGetErrorTextA typedef proto stdcall  :MMRESULT, :LPSTR, :DWORD
externdef stdcall _imp__midiInGetErrorTextA@12: ptr proto_midiInGetErrorTextA
midiInGetErrorTextA equ <_imp__midiInGetErrorTextA@12>
proto_midiInGetErrorTextW typedef proto stdcall  :MMRESULT, :LPWSTR, :DWORD
externdef stdcall _imp__midiInGetErrorTextW@12: ptr proto_midiInGetErrorTextW
midiInGetErrorTextW equ <_imp__midiInGetErrorTextW@12>
ifdef UNICODE 
midiInGetErrorText	EQU	<midiInGetErrorTextW>
else 
midiInGetErrorText	EQU	<midiInGetErrorTextA>
endif 
else 
midiInGetDevCaps proto stdcall  :DWORD, :LPMIDIINCAPS, :DWORD
proto_midiInGetErrorText typedef proto stdcall  :MMRESULT, :LPSTR, :DWORD
externdef stdcall _imp__midiInGetErrorText@12: ptr proto_midiInGetErrorText
midiInGetErrorText equ <_imp__midiInGetErrorText@12>
endif 
proto_midiInOpen typedef proto stdcall  :LPHMIDIIN, :DWORD, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__midiInOpen@20: ptr proto_midiInOpen
midiInOpen equ <_imp__midiInOpen@20>
proto_midiInClose typedef proto stdcall  :HMIDIIN
externdef stdcall _imp__midiInClose@4: ptr proto_midiInClose
midiInClose equ <_imp__midiInClose@4>
proto_midiInPrepareHeader typedef proto stdcall  :HMIDIIN, :LPMIDIHDR, :DWORD
externdef stdcall _imp__midiInPrepareHeader@12: ptr proto_midiInPrepareHeader
midiInPrepareHeader equ <_imp__midiInPrepareHeader@12>
proto_midiInUnprepareHeader typedef proto stdcall  :HMIDIIN, :LPMIDIHDR, :DWORD
externdef stdcall _imp__midiInUnprepareHeader@12: ptr proto_midiInUnprepareHeader
midiInUnprepareHeader equ <_imp__midiInUnprepareHeader@12>
proto_midiInAddBuffer typedef proto stdcall  :HMIDIIN, :LPMIDIHDR, :DWORD
externdef stdcall _imp__midiInAddBuffer@12: ptr proto_midiInAddBuffer
midiInAddBuffer equ <_imp__midiInAddBuffer@12>
proto_midiInStart typedef proto stdcall  :HMIDIIN
externdef stdcall _imp__midiInStart@4: ptr proto_midiInStart
midiInStart equ <_imp__midiInStart@4>
proto_midiInStop typedef proto stdcall  :HMIDIIN
externdef stdcall _imp__midiInStop@4: ptr proto_midiInStop
midiInStop equ <_imp__midiInStop@4>
proto_midiInReset typedef proto stdcall  :HMIDIIN
externdef stdcall _imp__midiInReset@4: ptr proto_midiInReset
midiInReset equ <_imp__midiInReset@4>
proto_midiInGetID typedef proto stdcall  :HMIDIIN, :LPUINT
externdef stdcall _imp__midiInGetID@8: ptr proto_midiInGetID
midiInGetID equ <_imp__midiInGetID@8>
if (WINVER ge 030ah)
ifdef _WIN32 
proto_midiInMessage typedef proto stdcall  :HMIDIIN, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__midiInMessage@16: ptr proto_midiInMessage
midiInMessage equ <_imp__midiInMessage@16>
else 
midiInMessage proto stdcall  :HMIDIIN, :DWORD, :DWORD, :DWORD
endif 
endif 
endif 
endif 
ifndef MMNOAUX
AUX_MAPPER	EQU	- 1
ifdef _WIN32 
AUXCAPSA	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	CHAR MAXPNAMELEN dup (?)
wTechnology	WORD	?
wReserved1	WORD	?
dwSupport	DWORD	?
AUXCAPSA	ends

PAUXCAPSA typedef ptr AUXCAPSA
NPAUXCAPSA typedef ptr AUXCAPSA
LPAUXCAPSA typedef ptr AUXCAPSA

AUXCAPSW	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	WCHAR MAXPNAMELEN dup (?)
wTechnology	WORD	?
wReserved1	WORD	?
dwSupport	DWORD	?
AUXCAPSW	ends

PAUXCAPSW typedef ptr AUXCAPSW
NPAUXCAPSW typedef ptr AUXCAPSW
LPAUXCAPSW typedef ptr AUXCAPSW

ifdef UNICODE 
AUXCAPS  typedef AUXCAPSW
PAUXCAPS  typedef PAUXCAPSW
NPAUXCAPS  typedef NPAUXCAPSW
LPAUXCAPS  typedef LPAUXCAPSW
else 
AUXCAPS  typedef AUXCAPSA
PAUXCAPS  typedef PAUXCAPSA
NPAUXCAPS  typedef NPAUXCAPSA
LPAUXCAPS  typedef LPAUXCAPSA
endif 
else 
AUXCAPS	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	VERSION	?
szPname	SBYTE MAXPNAMELEN dup (?)
wTechnology	WORD	?
dwSupport	DWORD	?
AUXCAPS	ends

PAUXCAPS typedef ptr AUXCAPS
NPAUXCAPS typedef ptr AUXCAPS
LPAUXCAPS typedef ptr AUXCAPS

endif 
AUXCAPS_CDAUDIO	EQU	1
AUXCAPS_AUXIN	EQU	2
AUXCAPS_VOLUME	EQU	0001h
AUXCAPS_LRVOLUME	EQU	0002h
ifndef _WIN32_VXD
proto_auxGetNumDevs typedef proto stdcall 
externdef stdcall _imp__auxGetNumDevs@0: ptr proto_auxGetNumDevs
auxGetNumDevs equ <_imp__auxGetNumDevs@0>
ifdef _WIN32 
proto_auxGetDevCapsA typedef proto stdcall  :DWORD, :LPAUXCAPSA, :DWORD
externdef stdcall _imp__auxGetDevCapsA@12: ptr proto_auxGetDevCapsA
auxGetDevCapsA equ <_imp__auxGetDevCapsA@12>
proto_auxGetDevCapsW typedef proto stdcall  :DWORD, :LPAUXCAPSW, :DWORD
externdef stdcall _imp__auxGetDevCapsW@12: ptr proto_auxGetDevCapsW
auxGetDevCapsW equ <_imp__auxGetDevCapsW@12>
ifdef UNICODE 
auxGetDevCaps	EQU	<auxGetDevCapsW>
else 
auxGetDevCaps	EQU	<auxGetDevCapsA>
endif 
else 
auxGetDevCaps proto stdcall  :DWORD, :LPAUXCAPS, :DWORD
endif 
proto_auxSetVolume typedef proto stdcall  :DWORD, :DWORD
externdef stdcall _imp__auxSetVolume@8: ptr proto_auxSetVolume
auxSetVolume equ <_imp__auxSetVolume@8>
proto_auxGetVolume typedef proto stdcall  :DWORD, :LPDWORD
externdef stdcall _imp__auxGetVolume@8: ptr proto_auxGetVolume
auxGetVolume equ <_imp__auxGetVolume@8>
if (WINVER ge 030ah)
ifdef _WIN32 
proto_auxOutMessage typedef proto stdcall  :DWORD, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__auxOutMessage@16: ptr proto_auxOutMessage
auxOutMessage equ <_imp__auxOutMessage@16>
else 
auxOutMessage proto stdcall  :DWORD, :DWORD, :DWORD, :DWORD
endif 
endif 
endif 
endif 
ifndef MMNOMIXER
ifndef _WIN32_VXD
DECLARE_HANDLE(HMIXEROBJ)
LPHMIXEROBJ  typedef ptr HMIXEROBJ
DECLARE_HANDLE(HMIXER)
LPHMIXER  typedef ptr HMIXER
MIXER_SHORT_NAME_CHARS	EQU	16
MIXER_LONG_NAME_CHARS	EQU	64
MIXERR_INVALLINE	EQU	( MIXERR_BASE + 0 )
MIXERR_INVALCONTROL	EQU	( MIXERR_BASE + 1 )
MIXERR_INVALVALUE	EQU	( MIXERR_BASE + 2 )
MIXERR_LASTERROR	EQU	( MIXERR_BASE + 2 )
MIXER_OBJECTF_HANDLE	EQU	80000000h
MIXER_OBJECTF_MIXER	EQU	00000000h
MIXER_OBJECTF_HMIXER	EQU	( MIXER_OBJECTF_HANDLE  or  MIXER_OBJECTF_MIXER )
MIXER_OBJECTF_WAVEOUT	EQU	10000000h
MIXER_OBJECTF_HWAVEOUT	EQU	( MIXER_OBJECTF_HANDLE  or  MIXER_OBJECTF_WAVEOUT )
MIXER_OBJECTF_WAVEIN	EQU	20000000h
MIXER_OBJECTF_HWAVEIN	EQU	( MIXER_OBJECTF_HANDLE  or  MIXER_OBJECTF_WAVEIN )
MIXER_OBJECTF_MIDIOUT	EQU	30000000h
MIXER_OBJECTF_HMIDIOUT	EQU	( MIXER_OBJECTF_HANDLE  or  MIXER_OBJECTF_MIDIOUT )
MIXER_OBJECTF_MIDIIN	EQU	40000000h
MIXER_OBJECTF_HMIDIIN	EQU	( MIXER_OBJECTF_HANDLE  or  MIXER_OBJECTF_MIDIIN )
MIXER_OBJECTF_AUX	EQU	50000000h
proto_mixerGetNumDevs typedef proto stdcall 
externdef stdcall _imp__mixerGetNumDevs@0: ptr proto_mixerGetNumDevs
mixerGetNumDevs equ <_imp__mixerGetNumDevs@0>
ifdef _WIN32 
MIXERCAPSA	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	CHAR MAXPNAMELEN dup (?)
fdwSupport	DWORD	?
cDestinations	DWORD	?
MIXERCAPSA	ends

PMIXERCAPSA typedef ptr MIXERCAPSA
LPMIXERCAPSA typedef ptr MIXERCAPSA

MIXERCAPSW	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	WCHAR MAXPNAMELEN dup (?)
fdwSupport	DWORD	?
cDestinations	DWORD	?
MIXERCAPSW	ends

PMIXERCAPSW typedef ptr MIXERCAPSW
LPMIXERCAPSW typedef ptr MIXERCAPSW

ifdef UNICODE 
MIXERCAPS  typedef MIXERCAPSW
PMIXERCAPS  typedef PMIXERCAPSW
LPMIXERCAPS  typedef LPMIXERCAPSW
else 
MIXERCAPS  typedef MIXERCAPSA
PMIXERCAPS  typedef PMIXERCAPSA
LPMIXERCAPS  typedef LPMIXERCAPSA
endif 
else 
MIXERCAPS	struct
wMid	WORD	?
wPid	WORD	?
vDriverVersion	VERSION	?
szPname	SBYTE MAXPNAMELEN dup (?)
fdwSupport	DWORD	?
cDestinations	DWORD	?
MIXERCAPS	ends

PMIXERCAPS typedef ptr MIXERCAPS
LPMIXERCAPS typedef ptr MIXERCAPS

endif 
ifdef _WIN32 
proto_mixerGetDevCapsA typedef proto stdcall  :DWORD, :LPMIXERCAPSA, :DWORD
externdef stdcall _imp__mixerGetDevCapsA@12: ptr proto_mixerGetDevCapsA
mixerGetDevCapsA equ <_imp__mixerGetDevCapsA@12>
proto_mixerGetDevCapsW typedef proto stdcall  :DWORD, :LPMIXERCAPSW, :DWORD
externdef stdcall _imp__mixerGetDevCapsW@12: ptr proto_mixerGetDevCapsW
mixerGetDevCapsW equ <_imp__mixerGetDevCapsW@12>
ifdef UNICODE 
mixerGetDevCaps	EQU	<mixerGetDevCapsW>
else 
mixerGetDevCaps	EQU	<mixerGetDevCapsA>
endif 
else 
mixerGetDevCaps proto stdcall  :DWORD, :LPMIXERCAPS, :DWORD
endif 
proto_mixerOpen typedef proto stdcall  :LPHMIXER, :DWORD, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__mixerOpen@20: ptr proto_mixerOpen
mixerOpen equ <_imp__mixerOpen@20>
proto_mixerClose typedef proto stdcall  :HMIXER
externdef stdcall _imp__mixerClose@4: ptr proto_mixerClose
mixerClose equ <_imp__mixerClose@4>
proto_mixerMessage typedef proto stdcall  :HMIXER, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__mixerMessage@16: ptr proto_mixerMessage
mixerMessage equ <_imp__mixerMessage@16>
ifdef _WIN32 
MIXERLINEA	struct
cbStruct	DWORD	?
dwDestination	DWORD	?
dwSource	DWORD	?
dwLineID	DWORD	?
fdwLine	DWORD	?
dwUser	DWORD	?
dwComponentType	DWORD	?
cChannels	DWORD	?
cConnections	DWORD	?
cControls	DWORD	?
szShortName	CHAR MIXER_SHORT_NAME_CHARS dup (?)
szName	CHAR MIXER_LONG_NAME_CHARS dup (?)
struct Target
dwType	DWORD	?
dwDeviceID	DWORD	?
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	CHAR MAXPNAMELEN dup (?)
ends
MIXERLINEA	ends

PMIXERLINEA typedef ptr MIXERLINEA
LPMIXERLINEA typedef ptr MIXERLINEA

MIXERLINEW	struct
cbStruct	DWORD	?
dwDestination	DWORD	?
dwSource	DWORD	?
dwLineID	DWORD	?
fdwLine	DWORD	?
dwUser	DWORD	?
dwComponentType	DWORD	?
cChannels	DWORD	?
cConnections	DWORD	?
cControls	DWORD	?
szShortName	WCHAR MIXER_SHORT_NAME_CHARS dup (?)
szName	WCHAR MIXER_LONG_NAME_CHARS dup (?)
struct Target
dwType	DWORD	?
dwDeviceID	DWORD	?
wMid	WORD	?
wPid	WORD	?
vDriverVersion	MMVERSION	?
szPname	WCHAR MAXPNAMELEN dup (?)
ends
MIXERLINEW	ends

PMIXERLINEW typedef ptr MIXERLINEW
LPMIXERLINEW typedef ptr MIXERLINEW

ifdef UNICODE 
MIXERLINE  typedef MIXERLINEW
PMIXERLINE  typedef PMIXERLINEW
LPMIXERLINE  typedef LPMIXERLINEW
else 
MIXERLINE  typedef MIXERLINEA
PMIXERLINE  typedef PMIXERLINEA
LPMIXERLINE  typedef LPMIXERLINEA
endif 
else 
MIXERLINE	struct
cbStruct	DWORD	?
dwDestination	DWORD	?
dwSource	DWORD	?
dwLineID	DWORD	?
fdwLine	DWORD	?
dwUser	DWORD	?
dwComponentType	DWORD	?
cChannels	DWORD	?
cConnections	DWORD	?
cControls	DWORD	?
szShortName	SBYTE MIXER_SHORT_NAME_CHARS dup (?)
szName	SBYTE MIXER_LONG_NAME_CHARS dup (?)
struct Target
dwType	DWORD	?
dwDeviceID	DWORD	?
wMid	WORD	?
wPid	WORD	?
vDriverVersion	VERSION	?
szPname	SBYTE MAXPNAMELEN dup (?)
ends
MIXERLINE	ends

PMIXERLINE typedef ptr MIXERLINE
LPMIXERLINE typedef ptr MIXERLINE

endif 
MIXERLINE_LINEF_ACTIVE	EQU	00000001h
MIXERLINE_LINEF_DISCONNECTED	EQU	00008000h
MIXERLINE_LINEF_SOURCE	EQU	80000000h
MIXERLINE_COMPONENTTYPE_DST_FIRST	EQU	00000000h
MIXERLINE_COMPONENTTYPE_DST_UNDEFINED	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 0 )
MIXERLINE_COMPONENTTYPE_DST_DIGITAL	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 1 )
MIXERLINE_COMPONENTTYPE_DST_LINE	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 2 )
MIXERLINE_COMPONENTTYPE_DST_MONITOR	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 3 )
MIXERLINE_COMPONENTTYPE_DST_SPEAKERS	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 4 )
MIXERLINE_COMPONENTTYPE_DST_HEADPHONES	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 5 )
MIXERLINE_COMPONENTTYPE_DST_TELEPHONE	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 6 )
MIXERLINE_COMPONENTTYPE_DST_WAVEIN	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 7 )
MIXERLINE_COMPONENTTYPE_DST_VOICEIN	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 )
MIXERLINE_COMPONENTTYPE_DST_LAST	EQU	( MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 )
MIXERLINE_COMPONENTTYPE_SRC_FIRST	EQU	00001000h
MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0 )
MIXERLINE_COMPONENTTYPE_SRC_DIGITAL	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1 )
MIXERLINE_COMPONENTTYPE_SRC_LINE	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2 )
MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3 )
MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4 )
MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5 )
MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6 )
MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7 )
MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8 )
MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9 )
MIXERLINE_COMPONENTTYPE_SRC_ANALOG	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 )
MIXERLINE_COMPONENTTYPE_SRC_LAST	EQU	( MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 )
MIXERLINE_TARGETTYPE_UNDEFINED	EQU	0
MIXERLINE_TARGETTYPE_WAVEOUT	EQU	1
MIXERLINE_TARGETTYPE_WAVEIN	EQU	2
MIXERLINE_TARGETTYPE_MIDIOUT	EQU	3
MIXERLINE_TARGETTYPE_MIDIIN	EQU	4
MIXERLINE_TARGETTYPE_AUX	EQU	5
ifdef _WIN32 
proto_mixerGetLineInfoA typedef proto stdcall  :HMIXEROBJ, :LPMIXERLINEA, :DWORD
externdef stdcall _imp__mixerGetLineInfoA@12: ptr proto_mixerGetLineInfoA
mixerGetLineInfoA equ <_imp__mixerGetLineInfoA@12>
proto_mixerGetLineInfoW typedef proto stdcall  :HMIXEROBJ, :LPMIXERLINEW, :DWORD
externdef stdcall _imp__mixerGetLineInfoW@12: ptr proto_mixerGetLineInfoW
mixerGetLineInfoW equ <_imp__mixerGetLineInfoW@12>
ifdef UNICODE 
mixerGetLineInfo	EQU	<mixerGetLineInfoW>
else 
mixerGetLineInfo	EQU	<mixerGetLineInfoA>
endif 
else 
mixerGetLineInfo proto stdcall  :HMIXEROBJ, :LPMIXERLINE, :DWORD
endif 
MIXER_GETLINEINFOF_DESTINATION	EQU	00000000h
MIXER_GETLINEINFOF_SOURCE	EQU	00000001h
MIXER_GETLINEINFOF_LINEID	EQU	00000002h
MIXER_GETLINEINFOF_COMPONENTTYPE	EQU	00000003h
MIXER_GETLINEINFOF_TARGETTYPE	EQU	00000004h
MIXER_GETLINEINFOF_QUERYMASK	EQU	0000000Fh
proto_mixerGetID typedef proto stdcall  :HMIXEROBJ, :ptr DWORD, :DWORD
externdef stdcall _imp__mixerGetID@12: ptr proto_mixerGetID
mixerGetID equ <_imp__mixerGetID@12>
ifdef _WIN32 
MIXERCONTROLA	struct
cbStruct	DWORD	?
dwControlID	DWORD	?
dwControlType	DWORD	?
fdwControl	DWORD	?
cMultipleItems	DWORD	?
szShortName	CHAR MIXER_SHORT_NAME_CHARS dup (?)
szName	CHAR MIXER_LONG_NAME_CHARS dup (?)
union Bounds
struct
lMinimum	SDWORD	?
lMaximum	SDWORD	?
ends
struct
dwMinimum	DWORD	?
dwMaximum	DWORD	?
ends
dwReserved	DWORD 6 dup (?)
ends
union Metrics
cSteps	DWORD	?
cbCustomData	DWORD	?
dwReserved	DWORD 6 dup (?)
ends
MIXERCONTROLA	ends

PMIXERCONTROLA typedef ptr MIXERCONTROLA
LPMIXERCONTROLA typedef ptr MIXERCONTROLA

MIXERCONTROLW	struct
cbStruct	DWORD	?
dwControlID	DWORD	?
dwControlType	DWORD	?
fdwControl	DWORD	?
cMultipleItems	DWORD	?
szShortName	WCHAR MIXER_SHORT_NAME_CHARS dup (?)
szName	WCHAR MIXER_LONG_NAME_CHARS dup (?)
union Bounds
struct
lMinimum	SDWORD	?
lMaximum	SDWORD	?
ends
struct
dwMinimum	DWORD	?
dwMaximum	DWORD	?
ends
dwReserved	DWORD 6 dup (?)
ends
union Metrics
cSteps	DWORD	?
cbCustomData	DWORD	?
dwReserved	DWORD 6 dup (?)
ends
MIXERCONTROLW	ends

PMIXERCONTROLW typedef ptr MIXERCONTROLW
LPMIXERCONTROLW typedef ptr MIXERCONTROLW

ifdef UNICODE 
MIXERCONTROL  typedef MIXERCONTROLW
PMIXERCONTROL  typedef PMIXERCONTROLW
LPMIXERCONTROL  typedef LPMIXERCONTROLW
else 
MIXERCONTROL  typedef MIXERCONTROLA
PMIXERCONTROL  typedef PMIXERCONTROLA
LPMIXERCONTROL  typedef LPMIXERCONTROLA
endif 
else 
MIXERCONTROL	struct
cbStruct	DWORD	?
dwControlID	DWORD	?
dwControlType	DWORD	?
fdwControl	DWORD	?
cMultipleItems	DWORD	?
szShortName	SBYTE MIXER_SHORT_NAME_CHARS dup (?)
szName	SBYTE MIXER_LONG_NAME_CHARS dup (?)
union Bounds
struct
lMinimum	SDWORD	?
lMaximum	SDWORD	?
ends
struct
dwMinimum	DWORD	?
dwMaximum	DWORD	?
ends
dwReserved	DWORD 6 dup (?)
ends
union Metrics
cSteps	DWORD	?
cbCustomData	DWORD	?
dwReserved	DWORD 6 dup (?)
ends
MIXERCONTROL	ends

PMIXERCONTROL typedef ptr MIXERCONTROL
LPMIXERCONTROL typedef ptr MIXERCONTROL

endif 
MIXERCONTROL_CONTROLF_UNIFORM	EQU	00000001h
MIXERCONTROL_CONTROLF_MULTIPLE	EQU	00000002h
MIXERCONTROL_CONTROLF_DISABLED	EQU	80000000h
MIXERCONTROL_CT_CLASS_MASK	EQU	0F0000000h
MIXERCONTROL_CT_CLASS_CUSTOM	EQU	00000000h
MIXERCONTROL_CT_CLASS_METER	EQU	10000000h
MIXERCONTROL_CT_CLASS_SWITCH	EQU	20000000h
MIXERCONTROL_CT_CLASS_NUMBER	EQU	30000000h
MIXERCONTROL_CT_CLASS_SLIDER	EQU	40000000h
MIXERCONTROL_CT_CLASS_FADER	EQU	50000000h
MIXERCONTROL_CT_CLASS_TIME	EQU	60000000h
MIXERCONTROL_CT_CLASS_LIST	EQU	70000000h
MIXERCONTROL_CT_SUBCLASS_MASK	EQU	0F000000h
MIXERCONTROL_CT_SC_SWITCH_BOOLEAN	EQU	00000000h
MIXERCONTROL_CT_SC_SWITCH_BUTTON	EQU	01000000h
MIXERCONTROL_CT_SC_METER_POLLED	EQU	00000000h
MIXERCONTROL_CT_SC_TIME_MICROSECS	EQU	00000000h
MIXERCONTROL_CT_SC_TIME_MILLISECS	EQU	01000000h
MIXERCONTROL_CT_SC_LIST_SINGLE	EQU	00000000h
MIXERCONTROL_CT_SC_LIST_MULTIPLE	EQU	01000000h
MIXERCONTROL_CT_UNITS_MASK	EQU	00FF0000h
MIXERCONTROL_CT_UNITS_CUSTOM	EQU	00000000h
MIXERCONTROL_CT_UNITS_BOOLEAN	EQU	00010000h
MIXERCONTROL_CT_UNITS_SIGNED	EQU	00020000h
MIXERCONTROL_CT_UNITS_UNSIGNED	EQU	00030000h
MIXERCONTROL_CT_UNITS_DECIBELS	EQU	00040000h
MIXERCONTROL_CT_UNITS_PERCENT	EQU	00050000h
MIXERCONTROL_CONTROLTYPE_CUSTOM	EQU	( MIXERCONTROL_CT_CLASS_CUSTOM  or  MIXERCONTROL_CT_UNITS_CUSTOM )
MIXERCONTROL_CONTROLTYPE_BOOLEANMETER	EQU	( MIXERCONTROL_CT_CLASS_METER  or  MIXERCONTROL_CT_SC_METER_POLLED  or  MIXERCONTROL_CT_UNITS_BOOLEAN )
MIXERCONTROL_CONTROLTYPE_SIGNEDMETER	EQU	( MIXERCONTROL_CT_CLASS_METER  or  MIXERCONTROL_CT_SC_METER_POLLED  or  MIXERCONTROL_CT_UNITS_SIGNED )
MIXERCONTROL_CONTROLTYPE_PEAKMETER	EQU	( MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1 )
MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER	EQU	( MIXERCONTROL_CT_CLASS_METER  or  MIXERCONTROL_CT_SC_METER_POLLED  or  MIXERCONTROL_CT_UNITS_UNSIGNED )
MIXERCONTROL_CONTROLTYPE_BOOLEAN	EQU	( MIXERCONTROL_CT_CLASS_SWITCH  or  MIXERCONTROL_CT_SC_SWITCH_BOOLEAN  or  MIXERCONTROL_CT_UNITS_BOOLEAN )
MIXERCONTROL_CONTROLTYPE_ONOFF	EQU	( MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1 )
MIXERCONTROL_CONTROLTYPE_MUTE	EQU	( MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2 )
MIXERCONTROL_CONTROLTYPE_MONO	EQU	( MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3 )
MIXERCONTROL_CONTROLTYPE_LOUDNESS	EQU	( MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4 )
MIXERCONTROL_CONTROLTYPE_STEREOENH	EQU	( MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5 )
MIXERCONTROL_CONTROLTYPE_BUTTON	EQU	( MIXERCONTROL_CT_CLASS_SWITCH  or  MIXERCONTROL_CT_SC_SWITCH_BUTTON  or  MIXERCONTROL_CT_UNITS_BOOLEAN )
MIXERCONTROL_CONTROLTYPE_DECIBELS	EQU	( MIXERCONTROL_CT_CLASS_NUMBER  or  MIXERCONTROL_CT_UNITS_DECIBELS )
MIXERCONTROL_CONTROLTYPE_SIGNED	EQU	( MIXERCONTROL_CT_CLASS_NUMBER  or  MIXERCONTROL_CT_UNITS_SIGNED )
MIXERCONTROL_CONTROLTYPE_UNSIGNED	EQU	( MIXERCONTROL_CT_CLASS_NUMBER  or  MIXERCONTROL_CT_UNITS_UNSIGNED )
MIXERCONTROL_CONTROLTYPE_PERCENT	EQU	( MIXERCONTROL_CT_CLASS_NUMBER  or  MIXERCONTROL_CT_UNITS_PERCENT )
MIXERCONTROL_CONTROLTYPE_SLIDER	EQU	( MIXERCONTROL_CT_CLASS_SLIDER  or  MIXERCONTROL_CT_UNITS_SIGNED )
MIXERCONTROL_CONTROLTYPE_PAN	EQU	( MIXERCONTROL_CONTROLTYPE_SLIDER + 1 )
MIXERCONTROL_CONTROLTYPE_QSOUNDPAN	EQU	( MIXERCONTROL_CONTROLTYPE_SLIDER + 2 )
MIXERCONTROL_CONTROLTYPE_FADER	EQU	( MIXERCONTROL_CT_CLASS_FADER  or  MIXERCONTROL_CT_UNITS_UNSIGNED )
MIXERCONTROL_CONTROLTYPE_VOLUME	EQU	( MIXERCONTROL_CONTROLTYPE_FADER + 1 )
MIXERCONTROL_CONTROLTYPE_BASS	EQU	( MIXERCONTROL_CONTROLTYPE_FADER + 2 )
MIXERCONTROL_CONTROLTYPE_TREBLE	EQU	( MIXERCONTROL_CONTROLTYPE_FADER + 3 )
MIXERCONTROL_CONTROLTYPE_EQUALIZER	EQU	( MIXERCONTROL_CONTROLTYPE_FADER + 4 )
MIXERCONTROL_CONTROLTYPE_SINGLESELECT	EQU	( MIXERCONTROL_CT_CLASS_LIST  or  MIXERCONTROL_CT_SC_LIST_SINGLE  or  MIXERCONTROL_CT_UNITS_BOOLEAN )
MIXERCONTROL_CONTROLTYPE_MUX	EQU	( MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1 )
MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT	EQU	( MIXERCONTROL_CT_CLASS_LIST  or  MIXERCONTROL_CT_SC_LIST_MULTIPLE  or  MIXERCONTROL_CT_UNITS_BOOLEAN )
MIXERCONTROL_CONTROLTYPE_MIXER	EQU	( MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1 )
MIXERCONTROL_CONTROLTYPE_MICROTIME	EQU	( MIXERCONTROL_CT_CLASS_TIME  or  MIXERCONTROL_CT_SC_TIME_MICROSECS  or  MIXERCONTROL_CT_UNITS_UNSIGNED )
MIXERCONTROL_CONTROLTYPE_MILLITIME	EQU	( MIXERCONTROL_CT_CLASS_TIME  or  MIXERCONTROL_CT_SC_TIME_MILLISECS  or  MIXERCONTROL_CT_UNITS_UNSIGNED )
ifdef _WIN32 
MIXERLINECONTROLSA	struct
cbStruct	DWORD	?
dwLineID	DWORD	?
union
dwControlID	DWORD	?
dwControlType	DWORD	?
ends
cControls	DWORD	?
cbmxctrl	DWORD	?
pamxctrl	LPMIXERCONTROLA	?
MIXERLINECONTROLSA	ends

PMIXERLINECONTROLSA typedef ptr MIXERLINECONTROLSA
LPMIXERLINECONTROLSA typedef ptr MIXERLINECONTROLSA

MIXERLINECONTROLSW	struct
cbStruct	DWORD	?
dwLineID	DWORD	?
union
dwControlID	DWORD	?
dwControlType	DWORD	?
ends
cControls	DWORD	?
cbmxctrl	DWORD	?
pamxctrl	LPMIXERCONTROLW	?
MIXERLINECONTROLSW	ends

PMIXERLINECONTROLSW typedef ptr MIXERLINECONTROLSW
LPMIXERLINECONTROLSW typedef ptr MIXERLINECONTROLSW

ifdef UNICODE 
MIXERLINECONTROLS  typedef MIXERLINECONTROLSW
PMIXERLINECONTROLS  typedef PMIXERLINECONTROLSW
LPMIXERLINECONTROLS  typedef LPMIXERLINECONTROLSW
else 
MIXERLINECONTROLS  typedef MIXERLINECONTROLSA
PMIXERLINECONTROLS  typedef PMIXERLINECONTROLSA
LPMIXERLINECONTROLS  typedef LPMIXERLINECONTROLSA
endif 
else 
MIXERLINECONTROLS	struct
cbStruct	DWORD	?
dwLineID	DWORD	?
union
dwControlID	DWORD	?
dwControlType	DWORD	?
ends
cControls	DWORD	?
cbmxctrl	DWORD	?
pamxctrl	LPMIXERCONTROL	?
MIXERLINECONTROLS	ends

PMIXERLINECONTROLS typedef ptr MIXERLINECONTROLS
LPMIXERLINECONTROLS typedef ptr MIXERLINECONTROLS

endif 
ifdef _WIN32 
proto_mixerGetLineControlsA typedef proto stdcall  :HMIXEROBJ, :LPMIXERLINECONTROLSA, :DWORD
externdef stdcall _imp__mixerGetLineControlsA@12: ptr proto_mixerGetLineControlsA
mixerGetLineControlsA equ <_imp__mixerGetLineControlsA@12>
proto_mixerGetLineControlsW typedef proto stdcall  :HMIXEROBJ, :LPMIXERLINECONTROLSW, :DWORD
externdef stdcall _imp__mixerGetLineControlsW@12: ptr proto_mixerGetLineControlsW
mixerGetLineControlsW equ <_imp__mixerGetLineControlsW@12>
ifdef UNICODE 
mixerGetLineControls	EQU	<mixerGetLineControlsW>
else 
mixerGetLineControls	EQU	<mixerGetLineControlsA>
endif 
else 
mixerGetLineControls proto stdcall  :HMIXEROBJ, :LPMIXERLINECONTROLS, :DWORD
endif 
MIXER_GETLINECONTROLSF_ALL	EQU	00000000h
MIXER_GETLINECONTROLSF_ONEBYID	EQU	00000001h
MIXER_GETLINECONTROLSF_ONEBYTYPE	EQU	00000002h
MIXER_GETLINECONTROLSF_QUERYMASK	EQU	0000000Fh
MIXERCONTROLDETAILS	struct
cbStruct	DWORD	?
dwControlID	DWORD	?
cChannels	DWORD	?
union
hwndOwner	HWND	?
cMultipleItems	DWORD	?
ends
cbDetails	DWORD	?
paDetails	LPVOID	?
MIXERCONTROLDETAILS	ends

PMIXERCONTROLDETAILS typedef ptr MIXERCONTROLDETAILS
LPMIXERCONTROLDETAILS typedef ptr MIXERCONTROLDETAILS

ifdef _WIN32 
MIXERCONTROLDETAILS_LISTTEXTA	struct
dwParam1	DWORD	?
dwParam2	DWORD	?
szName	CHAR MIXER_LONG_NAME_CHARS dup (?)
MIXERCONTROLDETAILS_LISTTEXTA	ends

PMIXERCONTROLDETAILS_LISTTEXTA typedef ptr MIXERCONTROLDETAILS_LISTTEXTA
LPMIXERCONTROLDETAILS_LISTTEXTA typedef ptr MIXERCONTROLDETAILS_LISTTEXTA

MIXERCONTROLDETAILS_LISTTEXTW	struct
dwParam1	DWORD	?
dwParam2	DWORD	?
szName	WCHAR MIXER_LONG_NAME_CHARS dup (?)
MIXERCONTROLDETAILS_LISTTEXTW	ends

PMIXERCONTROLDETAILS_LISTTEXTW typedef ptr MIXERCONTROLDETAILS_LISTTEXTW
LPMIXERCONTROLDETAILS_LISTTEXTW typedef ptr MIXERCONTROLDETAILS_LISTTEXTW

ifdef UNICODE 
MIXERCONTROLDETAILS_LISTTEXT  typedef MIXERCONTROLDETAILS_LISTTEXTW
PMIXERCONTROLDETAILS_LISTTEXT  typedef PMIXERCONTROLDETAILS_LISTTEXTW
LPMIXERCONTROLDETAILS_LISTTEXT  typedef LPMIXERCONTROLDETAILS_LISTTEXTW
else 
MIXERCONTROLDETAILS_LISTTEXT  typedef MIXERCONTROLDETAILS_LISTTEXTA
PMIXERCONTROLDETAILS_LISTTEXT  typedef PMIXERCONTROLDETAILS_LISTTEXTA
LPMIXERCONTROLDETAILS_LISTTEXT  typedef LPMIXERCONTROLDETAILS_LISTTEXTA
endif 
else 
MIXERCONTROLDETAILS_LISTTEXT	struct
dwParam1	DWORD	?
dwParam2	DWORD	?
szName	SBYTE MIXER_LONG_NAME_CHARS dup (?)
MIXERCONTROLDETAILS_LISTTEXT	ends

PMIXERCONTROLDETAILS_LISTTEXT typedef ptr MIXERCONTROLDETAILS_LISTTEXT
LPMIXERCONTROLDETAILS_LISTTEXT typedef ptr MIXERCONTROLDETAILS_LISTTEXT

endif 
MIXERCONTROLDETAILS_BOOLEAN	struct
fValue	SDWORD	?
MIXERCONTROLDETAILS_BOOLEAN	ends

PMIXERCONTROLDETAILS_BOOLEAN typedef ptr MIXERCONTROLDETAILS_BOOLEAN
LPMIXERCONTROLDETAILS_BOOLEAN typedef ptr MIXERCONTROLDETAILS_BOOLEAN

MIXERCONTROLDETAILS_SIGNED	struct
lValue	SDWORD	?
MIXERCONTROLDETAILS_SIGNED	ends

PMIXERCONTROLDETAILS_SIGNED typedef ptr MIXERCONTROLDETAILS_SIGNED
LPMIXERCONTROLDETAILS_SIGNED typedef ptr MIXERCONTROLDETAILS_SIGNED

MIXERCONTROLDETAILS_UNSIGNED	struct
dwValue	DWORD	?
MIXERCONTROLDETAILS_UNSIGNED	ends

PMIXERCONTROLDETAILS_UNSIGNED typedef ptr MIXERCONTROLDETAILS_UNSIGNED
LPMIXERCONTROLDETAILS_UNSIGNED typedef ptr MIXERCONTROLDETAILS_UNSIGNED

ifdef _WIN32 
proto_mixerGetControlDetailsA typedef proto stdcall  :HMIXEROBJ, :LPMIXERCONTROLDETAILS, :DWORD
externdef stdcall _imp__mixerGetControlDetailsA@12: ptr proto_mixerGetControlDetailsA
mixerGetControlDetailsA equ <_imp__mixerGetControlDetailsA@12>
proto_mixerGetControlDetailsW typedef proto stdcall  :HMIXEROBJ, :LPMIXERCONTROLDETAILS, :DWORD
externdef stdcall _imp__mixerGetControlDetailsW@12: ptr proto_mixerGetControlDetailsW
mixerGetControlDetailsW equ <_imp__mixerGetControlDetailsW@12>
ifdef UNICODE 
mixerGetControlDetails	EQU	<mixerGetControlDetailsW>
else 
mixerGetControlDetails	EQU	<mixerGetControlDetailsA>
endif 
else 
mixerGetControlDetails proto stdcall  :HMIXEROBJ, :LPMIXERCONTROLDETAILS, :DWORD
endif 
MIXER_GETCONTROLDETAILSF_VALUE	EQU	00000000h
MIXER_GETCONTROLDETAILSF_LISTTEXT	EQU	00000001h
MIXER_GETCONTROLDETAILSF_QUERYMASK	EQU	0000000Fh
proto_mixerSetControlDetails typedef proto stdcall  :HMIXEROBJ, :LPMIXERCONTROLDETAILS, :DWORD
externdef stdcall _imp__mixerSetControlDetails@12: ptr proto_mixerSetControlDetails
mixerSetControlDetails equ <_imp__mixerSetControlDetails@12>
MIXER_SETCONTROLDETAILSF_VALUE	EQU	00000000h
MIXER_SETCONTROLDETAILSF_CUSTOM	EQU	00000001h
MIXER_SETCONTROLDETAILSF_QUERYMASK	EQU	0000000Fh
endif 
endif 
ifndef MMNOTIMER
ifndef _WIN32_VXD
TIMERR_NOERROR	EQU	0
TIMERR_NOCANDO	EQU	<( TIMERR_BASE+1 )>
TIMERR_STRUCT	EQU	<( TIMERR_BASE+33 )>
proto_TIMECALLBACK typedef proto stdcall :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
TIMECALLBACK typedef ptr proto_TIMECALLBACK
LPTIMECALLBACK  typedef ptr TIMECALLBACK
TIME_ONESHOT	EQU	0000h
TIME_PERIODIC	EQU	0001h
ifdef _WIN32 
TIME_CALLBACK_FUNCTION	EQU	0000h
TIME_CALLBACK_EVENT_SET	EQU	0010h
TIME_CALLBACK_EVENT_PULSE	EQU	0020h
endif 
TIMECAPS	struct
wPeriodMin	DWORD	?
wPeriodMax	DWORD	?
TIMECAPS	ends

PTIMECAPS typedef ptr TIMECAPS
NPTIMECAPS typedef ptr TIMECAPS
LPTIMECAPS typedef ptr TIMECAPS

proto_timeGetSystemTime typedef proto stdcall  :LPMMTIME, :DWORD
externdef stdcall _imp__timeGetSystemTime@8: ptr proto_timeGetSystemTime
timeGetSystemTime equ <_imp__timeGetSystemTime@8>
proto_timeGetTime typedef proto stdcall 
externdef stdcall _imp__timeGetTime@0: ptr proto_timeGetTime
timeGetTime equ <_imp__timeGetTime@0>
proto_timeSetEvent typedef proto stdcall  :DWORD, :DWORD, :LPTIMECALLBACK, :DWORD, :DWORD
externdef stdcall _imp__timeSetEvent@20: ptr proto_timeSetEvent
timeSetEvent equ <_imp__timeSetEvent@20>
proto_timeKillEvent typedef proto stdcall  :DWORD
externdef stdcall _imp__timeKillEvent@4: ptr proto_timeKillEvent
timeKillEvent equ <_imp__timeKillEvent@4>
proto_timeGetDevCaps typedef proto stdcall  :LPTIMECAPS, :DWORD
externdef stdcall _imp__timeGetDevCaps@8: ptr proto_timeGetDevCaps
timeGetDevCaps equ <_imp__timeGetDevCaps@8>
proto_timeBeginPeriod typedef proto stdcall  :DWORD
externdef stdcall _imp__timeBeginPeriod@4: ptr proto_timeBeginPeriod
timeBeginPeriod equ <_imp__timeBeginPeriod@4>
proto_timeEndPeriod typedef proto stdcall  :DWORD
externdef stdcall _imp__timeEndPeriod@4: ptr proto_timeEndPeriod
timeEndPeriod equ <_imp__timeEndPeriod@4>
endif 
endif 
ifndef MMNOJOY
JOYERR_NOERROR	EQU	0
JOYERR_PARMS	EQU	<( JOYERR_BASE+5 )>
JOYERR_NOCANDO	EQU	<( JOYERR_BASE+6 )>
JOYERR_UNPLUGGED	EQU	<( JOYERR_BASE+7 )>
JOY_BUTTON1	EQU	0001h
JOY_BUTTON2	EQU	0002h
JOY_BUTTON3	EQU	0004h
JOY_BUTTON4	EQU	0008h
JOY_BUTTON1CHG	EQU	0100h
JOY_BUTTON2CHG	EQU	0200h
JOY_BUTTON3CHG	EQU	0400h
JOY_BUTTON4CHG	EQU	0800h
JOY_BUTTON5	EQU	00000010h
JOY_BUTTON6	EQU	00000020h
JOY_BUTTON7	EQU	00000040h
JOY_BUTTON8	EQU	00000080h
JOY_BUTTON9	EQU	00000100h
JOY_BUTTON10	EQU	00000200h
JOY_BUTTON11	EQU	00000400h
JOY_BUTTON12	EQU	00000800h
JOY_BUTTON13	EQU	00001000h
JOY_BUTTON14	EQU	00002000h
JOY_BUTTON15	EQU	00004000h
JOY_BUTTON16	EQU	00008000h
JOY_BUTTON17	EQU	00010000h
JOY_BUTTON18	EQU	00020000h
JOY_BUTTON19	EQU	00040000h
JOY_BUTTON20	EQU	00080000h
JOY_BUTTON21	EQU	00100000h
JOY_BUTTON22	EQU	00200000h
JOY_BUTTON23	EQU	00400000h
JOY_BUTTON24	EQU	00800000h
JOY_BUTTON25	EQU	01000000h
JOY_BUTTON26	EQU	02000000h
JOY_BUTTON27	EQU	04000000h
JOY_BUTTON28	EQU	08000000h
JOY_BUTTON29	EQU	10000000h
JOY_BUTTON30	EQU	20000000h
JOY_BUTTON31	EQU	40000000h
JOY_BUTTON32	EQU	80000000h
JOY_POVCENTERED	EQU	- 1
JOY_POVFORWARD	EQU	0
JOY_POVRIGHT	EQU	9000
JOY_POVBACKWARD	EQU	18000
JOY_POVLEFT	EQU	27000
JOY_RETURNX	EQU	00000001h
JOY_RETURNY	EQU	00000002h
JOY_RETURNZ	EQU	00000004h
JOY_RETURNR	EQU	00000008h
JOY_RETURNU	EQU	00000010h
JOY_RETURNV	EQU	00000020h
JOY_RETURNPOV	EQU	00000040h
JOY_RETURNBUTTONS	EQU	00000080h
JOY_RETURNRAWDATA	EQU	00000100h
JOY_RETURNPOVCTS	EQU	00000200h
JOY_RETURNCENTERED	EQU	00000400h
JOY_USEDEADZONE	EQU	00000800h
JOY_RETURNALL	EQU	( JOY_RETURNX  or  JOY_RETURNY  or  JOY_RETURNZ  or  JOY_RETURNR  or  JOY_RETURNU  or  JOY_RETURNV  or  JOY_RETURNPOV  or  JOY_RETURNBUTTONS )
JOY_CAL_READALWAYS	EQU	00010000h
JOY_CAL_READXYONLY	EQU	00020000h
JOY_CAL_READ3	EQU	00040000h
JOY_CAL_READ4	EQU	00080000h
JOY_CAL_READXONLY	EQU	00100000h
JOY_CAL_READYONLY	EQU	00200000h
JOY_CAL_READ5	EQU	00400000h
JOY_CAL_READ6	EQU	00800000h
JOY_CAL_READZONLY	EQU	01000000h
JOY_CAL_READRONLY	EQU	02000000h
JOY_CAL_READUONLY	EQU	04000000h
JOY_CAL_READVONLY	EQU	08000000h
JOYSTICKID1	EQU	0
JOYSTICKID2	EQU	1
JOYCAPS_HASZ	EQU	0001h
JOYCAPS_HASR	EQU	0002h
JOYCAPS_HASU	EQU	0004h
JOYCAPS_HASV	EQU	0008h
JOYCAPS_HASPOV	EQU	0010h
JOYCAPS_POV4DIR	EQU	0020h
JOYCAPS_POVCTS	EQU	0040h
ifdef _WIN32 
JOYCAPSA	struct
wMid	WORD	?
wPid	WORD	?
szPname	CHAR MAXPNAMELEN dup (?)
wXmin	DWORD	?
wXmax	DWORD	?
wYmin	DWORD	?
wYmax	DWORD	?
wZmin	DWORD	?
wZmax	DWORD	?
wNumButtons	DWORD	?
wPeriodMin	DWORD	?
wPeriodMax	DWORD	?
if (WINVER ge 0400h)
wRmin	DWORD	?
wRmax	DWORD	?
wUmin	DWORD	?
wUmax	DWORD	?
wVmin	DWORD	?
wVmax	DWORD	?
wCaps	DWORD	?
wMaxAxes	DWORD	?
wNumAxes	DWORD	?
wMaxButtons	DWORD	?
szRegKey	CHAR MAXPNAMELEN dup (?)
szOEMVxD	CHAR MAX_JOYSTICKOEMVXDNAME dup (?)
endif 
JOYCAPSA	ends

PJOYCAPSA typedef ptr JOYCAPSA
NPJOYCAPSA typedef ptr JOYCAPSA
LPJOYCAPSA typedef ptr JOYCAPSA

JOYCAPSW	struct
wMid	WORD	?
wPid	WORD	?
szPname	WCHAR MAXPNAMELEN dup (?)
wXmin	DWORD	?
wXmax	DWORD	?
wYmin	DWORD	?
wYmax	DWORD	?
wZmin	DWORD	?
wZmax	DWORD	?
wNumButtons	DWORD	?
wPeriodMin	DWORD	?
wPeriodMax	DWORD	?
if (WINVER ge 0400h)
wRmin	DWORD	?
wRmax	DWORD	?
wUmin	DWORD	?
wUmax	DWORD	?
wVmin	DWORD	?
wVmax	DWORD	?
wCaps	DWORD	?
wMaxAxes	DWORD	?
wNumAxes	DWORD	?
wMaxButtons	DWORD	?
szRegKey	WCHAR MAXPNAMELEN dup (?)
szOEMVxD	WCHAR MAX_JOYSTICKOEMVXDNAME dup (?)
endif 
JOYCAPSW	ends

PJOYCAPSW typedef ptr JOYCAPSW
NPJOYCAPSW typedef ptr JOYCAPSW
LPJOYCAPSW typedef ptr JOYCAPSW

ifdef UNICODE 
JOYCAPS  typedef JOYCAPSW
PJOYCAPS  typedef PJOYCAPSW
NPJOYCAPS  typedef NPJOYCAPSW
LPJOYCAPS  typedef LPJOYCAPSW
else 
JOYCAPS  typedef JOYCAPSA
PJOYCAPS  typedef PJOYCAPSA
NPJOYCAPS  typedef NPJOYCAPSA
LPJOYCAPS  typedef LPJOYCAPSA
endif 
else 
JOYCAPS	struct
wMid	WORD	?
wPid	WORD	?
szPname	SBYTE MAXPNAMELEN dup (?)
wXmin	DWORD	?
wXmax	DWORD	?
wYmin	DWORD	?
wYmax	DWORD	?
wZmin	DWORD	?
wZmax	DWORD	?
wNumButtons	DWORD	?
wPeriodMin	DWORD	?
wPeriodMax	DWORD	?
if (WINVER ge 0400h)
wRmin	DWORD	?
wRmax	DWORD	?
wUmin	DWORD	?
wUmax	DWORD	?
wVmin	DWORD	?
wVmax	DWORD	?
wCaps	DWORD	?
wMaxAxes	DWORD	?
wNumAxes	DWORD	?
wMaxButtons	DWORD	?
szRegKey	SBYTE MAXPNAMELEN dup (?)
szOEMVxD	SBYTE MAX_JOYSTICKOEMVXDNAME dup (?)
endif 
JOYCAPS	ends

PJOYCAPS typedef ptr JOYCAPS
NPJOYCAPS typedef ptr JOYCAPS
LPJOYCAPS typedef ptr JOYCAPS

endif 
JOYINFO	struct
wXpos	DWORD	?
wYpos	DWORD	?
wZpos	DWORD	?
wButtons	DWORD	?
JOYINFO	ends

PJOYINFO typedef ptr JOYINFO
NPJOYINFO typedef ptr JOYINFO
LPJOYINFO typedef ptr JOYINFO

if (WINVER ge 0400h)
JOYINFOEX	struct
dwSize	DWORD	?
dwFlags	DWORD	?
dwXpos	DWORD	?
dwYpos	DWORD	?
dwZpos	DWORD	?
dwRpos	DWORD	?
dwUpos	DWORD	?
dwVpos	DWORD	?
dwButtons	DWORD	?
dwButtonNumber	DWORD	?
dwPOV	DWORD	?
dwReserved1	DWORD	?
dwReserved2	DWORD	?
JOYINFOEX	ends

PJOYINFOEX typedef ptr JOYINFOEX
NPJOYINFOEX typedef ptr JOYINFOEX
LPJOYINFOEX typedef ptr JOYINFOEX

endif 
ifndef _WIN32_VXD
proto_joyGetNumDevs typedef proto stdcall 
externdef stdcall _imp__joyGetNumDevs@0: ptr proto_joyGetNumDevs
joyGetNumDevs equ <_imp__joyGetNumDevs@0>
ifdef _WIN32 
proto_joyGetDevCapsA typedef proto stdcall  :DWORD, :LPJOYCAPSA, :DWORD
externdef stdcall _imp__joyGetDevCapsA@12: ptr proto_joyGetDevCapsA
joyGetDevCapsA equ <_imp__joyGetDevCapsA@12>
proto_joyGetDevCapsW typedef proto stdcall  :DWORD, :LPJOYCAPSW, :DWORD
externdef stdcall _imp__joyGetDevCapsW@12: ptr proto_joyGetDevCapsW
joyGetDevCapsW equ <_imp__joyGetDevCapsW@12>
ifdef UNICODE 
joyGetDevCaps	EQU	<joyGetDevCapsW>
else 
joyGetDevCaps	EQU	<joyGetDevCapsA>
endif 
else 
joyGetDevCaps proto stdcall  :DWORD, :LPJOYCAPS, :DWORD
endif 
proto_joyGetPos typedef proto stdcall  :DWORD, :LPJOYINFO
externdef stdcall _imp__joyGetPos@8: ptr proto_joyGetPos
joyGetPos equ <_imp__joyGetPos@8>
if (WINVER ge 0400h)
proto_joyGetPosEx typedef proto stdcall  :DWORD, :LPJOYINFOEX
externdef stdcall _imp__joyGetPosEx@8: ptr proto_joyGetPosEx
joyGetPosEx equ <_imp__joyGetPosEx@8>
endif 
proto_joyGetThreshold typedef proto stdcall  :DWORD, :LPUINT
externdef stdcall _imp__joyGetThreshold@8: ptr proto_joyGetThreshold
joyGetThreshold equ <_imp__joyGetThreshold@8>
proto_joyReleaseCapture typedef proto stdcall  :DWORD
externdef stdcall _imp__joyReleaseCapture@4: ptr proto_joyReleaseCapture
joyReleaseCapture equ <_imp__joyReleaseCapture@4>
proto_joySetCapture typedef proto stdcall  :HWND, :DWORD, :DWORD, :BOOL
externdef stdcall _imp__joySetCapture@16: ptr proto_joySetCapture
joySetCapture equ <_imp__joySetCapture@16>
proto_joySetThreshold typedef proto stdcall  :DWORD, :DWORD
externdef stdcall _imp__joySetThreshold@8: ptr proto_joySetThreshold
joySetThreshold equ <_imp__joySetThreshold@8>
endif 
endif 
ifndef MMNOMMIO
ifndef _WIN32_VXD
MMIOERR_BASE	EQU	256
MMIOERR_FILENOTFOUND	EQU	( MMIOERR_BASE + 1 )
MMIOERR_OUTOFMEMORY	EQU	( MMIOERR_BASE + 2 )
MMIOERR_CANNOTOPEN	EQU	( MMIOERR_BASE + 3 )
MMIOERR_CANNOTCLOSE	EQU	( MMIOERR_BASE + 4 )
MMIOERR_CANNOTREAD	EQU	( MMIOERR_BASE + 5 )
MMIOERR_CANNOTWRITE	EQU	( MMIOERR_BASE + 6 )
MMIOERR_CANNOTSEEK	EQU	( MMIOERR_BASE + 7 )
MMIOERR_CANNOTEXPAND	EQU	( MMIOERR_BASE + 8 )
MMIOERR_CHUNKNOTFOUND	EQU	( MMIOERR_BASE + 9 )
MMIOERR_UNBUFFERED	EQU	( MMIOERR_BASE + 10 )
MMIOERR_PATHNOTFOUND	EQU	( MMIOERR_BASE + 11 )
MMIOERR_ACCESSDENIED	EQU	( MMIOERR_BASE + 12 )
MMIOERR_SHARINGVIOLATION	EQU	( MMIOERR_BASE + 13 )
MMIOERR_NETWORKERROR	EQU	( MMIOERR_BASE + 14 )
MMIOERR_TOOMANYOPENFILES	EQU	( MMIOERR_BASE + 15 )
MMIOERR_INVALIDFILE	EQU	( MMIOERR_BASE + 16 )
CFSEPCHAR	EQU	<'+'>
FOURCC  typedef DWORD
HPSTR  typedef ptr SBYTE
DECLARE_HANDLE(HMMIO)
proto_MMIOPROC typedef proto stdcall :LPSTR,:DWORD,:LPARAM,:LPARAM
MMIOPROC typedef ptr proto_MMIOPROC
LPMMIOPROC  typedef ptr MMIOPROC
MMIOINFO	struct
dwFlags	DWORD	?
fccIOProc	FOURCC	?
pIOProc	LPMMIOPROC	?
wErrorRet	DWORD	?
htask	HTASK	?
cchBuffer	SDWORD	?
pchBuffer	HPSTR	?
pchNext	HPSTR	?
pchEndRead	HPSTR	?
pchEndWrite	HPSTR	?
lBufOffset	SDWORD	?
lDiskOffset	SDWORD	?
adwInfo	DWORD 3 dup (?)
dwReserved1	DWORD	?
dwReserved2	DWORD	?
hmmio	HMMIO	?
MMIOINFO	ends

PMMIOINFO typedef ptr MMIOINFO
NPMMIOINFO typedef ptr MMIOINFO
LPMMIOINFO typedef ptr MMIOINFO

LPCMMIOINFO  typedef ptr MMIOINFO
MMCKINFO	struct
ckid	FOURCC	?
cksize	DWORD	?
fccType	FOURCC	?
dwDataOffset	DWORD	?
dwFlags	DWORD	?
MMCKINFO	ends

PMMCKINFO typedef ptr MMCKINFO
NPMMCKINFO typedef ptr MMCKINFO
LPMMCKINFO typedef ptr MMCKINFO

LPCMMCKINFO  typedef ptr MMCKINFO
MMIO_RWMODE	EQU	00000003h
MMIO_SHAREMODE	EQU	00000070h
MMIO_CREATE	EQU	00001000h
MMIO_PARSE	EQU	00000100h
MMIO_DELETE	EQU	00000200h
MMIO_EXIST	EQU	00004000h
MMIO_ALLOCBUF	EQU	00010000h
MMIO_GETTEMP	EQU	00020000h
MMIO_DIRTY	EQU	10000000h
MMIO_READ	EQU	00000000h
MMIO_WRITE	EQU	00000001h
MMIO_READWRITE	EQU	00000002h
MMIO_COMPAT	EQU	00000000h
MMIO_EXCLUSIVE	EQU	00000010h
MMIO_DENYWRITE	EQU	00000020h
MMIO_DENYREAD	EQU	00000030h
MMIO_DENYNONE	EQU	00000040h
MMIO_FHOPEN	EQU	0010h
MMIO_EMPTYBUF	EQU	0010h
MMIO_TOUPPER	EQU	0010h
MMIO_INSTALLPROC	EQU	00010000h
MMIO_GLOBALPROC	EQU	10000000h
MMIO_REMOVEPROC	EQU	00020000h
MMIO_UNICODEPROC	EQU	01000000h
MMIO_FINDPROC	EQU	00040000h
MMIO_FINDCHUNK	EQU	0010h
MMIO_FINDRIFF	EQU	0020h
MMIO_FINDLIST	EQU	0040h
MMIO_CREATERIFF	EQU	0020h
MMIO_CREATELIST	EQU	0040h
MMIOM_READ	EQU	<MMIO_READ>
MMIOM_WRITE	EQU	<MMIO_WRITE>
MMIOM_SEEK	EQU	2
MMIOM_OPEN	EQU	3
MMIOM_CLOSE	EQU	4
MMIOM_WRITEFLUSH	EQU	5
if (WINVER ge 030ah)
MMIOM_RENAME	EQU	6
endif 
MMIOM_USER	EQU	8000h
FOURCC_RIFF	EQU	<mmioFOURCC ( 'R' , 'I' , 'F' , 'F' )>
FOURCC_LIST	EQU	<mmioFOURCC ( 'L' , 'I' , 'S' , 'T' )>
FOURCC_DOS	EQU	<mmioFOURCC ( 'D' , 'O' , 'S' , ' ' )>
FOURCC_MEM	EQU	<mmioFOURCC ( 'M' , 'E' , 'M' , ' ' )>
ifndef SEEK_SET
SEEK_SET	EQU	0
SEEK_CUR	EQU	1
SEEK_END	EQU	2
endif 
MMIO_DEFAULTBUFFER	EQU	8192
mmioFOURCC macro ch0,ch1,ch2,ch3
	exitm <MAKEFOURCC ( ch0 , ch1 , ch2 , ch3 ) >
	endm
ifdef _WIN32 
proto_mmioStringToFOURCCA typedef proto stdcall  :LPSTR, :DWORD
externdef stdcall _imp__mmioStringToFOURCCA@8: ptr proto_mmioStringToFOURCCA
mmioStringToFOURCCA equ <_imp__mmioStringToFOURCCA@8>
proto_mmioStringToFOURCCW typedef proto stdcall  :LPWSTR, :DWORD
externdef stdcall _imp__mmioStringToFOURCCW@8: ptr proto_mmioStringToFOURCCW
mmioStringToFOURCCW equ <_imp__mmioStringToFOURCCW@8>
ifdef UNICODE 
mmioStringToFOURCC	EQU	<mmioStringToFOURCCW>
else 
mmioStringToFOURCC	EQU	<mmioStringToFOURCCA>
endif 
proto_mmioInstallIOProcA typedef proto stdcall  :FOURCC, :LPMMIOPROC, :DWORD
externdef stdcall _imp__mmioInstallIOProcA@12: ptr proto_mmioInstallIOProcA
mmioInstallIOProcA equ <_imp__mmioInstallIOProcA@12>
proto_mmioInstallIOProcW typedef proto stdcall  :FOURCC, :LPMMIOPROC, :DWORD
externdef stdcall _imp__mmioInstallIOProcW@12: ptr proto_mmioInstallIOProcW
mmioInstallIOProcW equ <_imp__mmioInstallIOProcW@12>
ifdef UNICODE 
mmioInstallIOProc	EQU	<mmioInstallIOProcW>
else 
mmioInstallIOProc	EQU	<mmioInstallIOProcA>
endif 
proto_mmioOpenA typedef proto stdcall  :LPSTR, :LPMMIOINFO, :DWORD
externdef stdcall _imp__mmioOpenA@12: ptr proto_mmioOpenA
mmioOpenA equ <_imp__mmioOpenA@12>
proto_mmioOpenW typedef proto stdcall  :LPWSTR, :LPMMIOINFO, :DWORD
externdef stdcall _imp__mmioOpenW@12: ptr proto_mmioOpenW
mmioOpenW equ <_imp__mmioOpenW@12>
ifdef UNICODE 
mmioOpen	EQU	<mmioOpenW>
else 
mmioOpen	EQU	<mmioOpenA>
endif 
proto_mmioRenameA typedef proto stdcall  :LPSTR, :LPSTR, :LPCMMIOINFO, :DWORD
externdef stdcall _imp__mmioRenameA@16: ptr proto_mmioRenameA
mmioRenameA equ <_imp__mmioRenameA@16>
proto_mmioRenameW typedef proto stdcall  :LPWSTR, :LPWSTR, :LPCMMIOINFO, :DWORD
externdef stdcall _imp__mmioRenameW@16: ptr proto_mmioRenameW
mmioRenameW equ <_imp__mmioRenameW@16>
ifdef UNICODE 
mmioRename	EQU	<mmioRenameW>
else 
mmioRename	EQU	<mmioRenameA>
endif 
else 
mmioStringToFOURCC proto stdcall  :LPSTR, :DWORD
mmioInstallIOProc proto stdcall  :FOURCC, :LPMMIOPROC, :DWORD
mmioOpen proto stdcall  :LPSTR, :LPMMIOINFO, :DWORD
if (WINVER ge 030ah)
mmioRename proto stdcall  :LPSTR, :LPSTR, :ptr MMIOINFO, :DWORD
endif 
endif 
proto_mmioClose typedef proto stdcall  :HMMIO, :DWORD
externdef stdcall _imp__mmioClose@8: ptr proto_mmioClose
mmioClose equ <_imp__mmioClose@8>
proto_mmioRead typedef proto stdcall  :HMMIO, :HPSTR, :SDWORD
externdef stdcall _imp__mmioRead@12: ptr proto_mmioRead
mmioRead equ <_imp__mmioRead@12>
proto_mmioWrite typedef proto stdcall  :HMMIO, :ptr SBYTE, :SDWORD
externdef stdcall _imp__mmioWrite@12: ptr proto_mmioWrite
mmioWrite equ <_imp__mmioWrite@12>
proto_mmioSeek typedef proto stdcall  :HMMIO, :SDWORD, :DWORD
externdef stdcall _imp__mmioSeek@12: ptr proto_mmioSeek
mmioSeek equ <_imp__mmioSeek@12>
proto_mmioGetInfo typedef proto stdcall  :HMMIO, :LPMMIOINFO, :DWORD
externdef stdcall _imp__mmioGetInfo@12: ptr proto_mmioGetInfo
mmioGetInfo equ <_imp__mmioGetInfo@12>
proto_mmioSetInfo typedef proto stdcall  :HMMIO, :LPCMMIOINFO, :DWORD
externdef stdcall _imp__mmioSetInfo@12: ptr proto_mmioSetInfo
mmioSetInfo equ <_imp__mmioSetInfo@12>
proto_mmioSetBuffer typedef proto stdcall  :HMMIO, :LPSTR, :SDWORD, :DWORD
externdef stdcall _imp__mmioSetBuffer@16: ptr proto_mmioSetBuffer
mmioSetBuffer equ <_imp__mmioSetBuffer@16>
proto_mmioFlush typedef proto stdcall  :HMMIO, :DWORD
externdef stdcall _imp__mmioFlush@8: ptr proto_mmioFlush
mmioFlush equ <_imp__mmioFlush@8>
proto_mmioAdvance typedef proto stdcall  :HMMIO, :LPMMIOINFO, :DWORD
externdef stdcall _imp__mmioAdvance@12: ptr proto_mmioAdvance
mmioAdvance equ <_imp__mmioAdvance@12>
proto_mmioSendMessage typedef proto stdcall  :HMMIO, :DWORD, :LPARAM, :LPARAM
externdef stdcall _imp__mmioSendMessage@16: ptr proto_mmioSendMessage
mmioSendMessage equ <_imp__mmioSendMessage@16>
proto_mmioDescend typedef proto stdcall  :HMMIO, :LPMMCKINFO, :ptr MMCKINFO, :DWORD
externdef stdcall _imp__mmioDescend@16: ptr proto_mmioDescend
mmioDescend equ <_imp__mmioDescend@16>
proto_mmioAscend typedef proto stdcall  :HMMIO, :LPMMCKINFO, :DWORD
externdef stdcall _imp__mmioAscend@12: ptr proto_mmioAscend
mmioAscend equ <_imp__mmioAscend@12>
proto_mmioCreateChunk typedef proto stdcall  :HMMIO, :LPMMCKINFO, :DWORD
externdef stdcall _imp__mmioCreateChunk@12: ptr proto_mmioCreateChunk
mmioCreateChunk equ <_imp__mmioCreateChunk@12>
endif 
endif 
ifndef MMNOMCI
ifndef _WIN32_VXD
ifndef _MCIERROR_
_MCIERROR_	EQU	<>
MCIERROR  typedef DWORD
endif 
ifndef _MCIDEVICEID_
_MCIDEVICEID_	EQU	<>
MCIDEVICEID  typedef DWORD
endif 
proto_YIELDPROC typedef proto stdcall :MCIDEVICEID,:DWORD
YIELDPROC typedef ptr proto_YIELDPROC
ifdef _WIN32 
proto_mciSendCommandA typedef proto stdcall  :MCIDEVICEID, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__mciSendCommandA@16: ptr proto_mciSendCommandA
mciSendCommandA equ <_imp__mciSendCommandA@16>
proto_mciSendCommandW typedef proto stdcall  :MCIDEVICEID, :DWORD, :DWORD, :DWORD
externdef stdcall _imp__mciSendCommandW@16: ptr proto_mciSendCommandW
mciSendCommandW equ <_imp__mciSendCommandW@16>
ifdef UNICODE 
mciSendCommand	EQU	<mciSendCommandW>
else 
mciSendCommand	EQU	<mciSendCommandA>
endif 
proto_mciSendStringA typedef proto stdcall  :LPSTR, :LPSTR, :DWORD, :HWND
externdef stdcall _imp__mciSendStringA@16: ptr proto_mciSendStringA
mciSendStringA equ <_imp__mciSendStringA@16>
proto_mciSendStringW typedef proto stdcall  :LPWSTR, :LPWSTR, :DWORD, :HWND
externdef stdcall _imp__mciSendStringW@16: ptr proto_mciSendStringW
mciSendStringW equ <_imp__mciSendStringW@16>
ifdef UNICODE 
mciSendString	EQU	<mciSendStringW>
else 
mciSendString	EQU	<mciSendStringA>
endif 
proto_mciGetDeviceIDA typedef proto stdcall  :LPSTR
externdef stdcall _imp__mciGetDeviceIDA@4: ptr proto_mciGetDeviceIDA
mciGetDeviceIDA equ <_imp__mciGetDeviceIDA@4>
proto_mciGetDeviceIDW typedef proto stdcall  :LPWSTR
externdef stdcall _imp__mciGetDeviceIDW@4: ptr proto_mciGetDeviceIDW
mciGetDeviceIDW equ <_imp__mciGetDeviceIDW@4>
ifdef UNICODE 
mciGetDeviceID	EQU	<mciGetDeviceIDW>
else 
mciGetDeviceID	EQU	<mciGetDeviceIDA>
endif 
proto_mciGetDeviceIDFromElementIDA typedef proto stdcall  :DWORD, :LPSTR
externdef stdcall _imp__mciGetDeviceIDFromElementIDA@8: ptr proto_mciGetDeviceIDFromElementIDA
mciGetDeviceIDFromElementIDA equ <_imp__mciGetDeviceIDFromElementIDA@8>
proto_mciGetDeviceIDFromElementIDW typedef proto stdcall  :DWORD, :LPWSTR
externdef stdcall _imp__mciGetDeviceIDFromElementIDW@8: ptr proto_mciGetDeviceIDFromElementIDW
mciGetDeviceIDFromElementIDW equ <_imp__mciGetDeviceIDFromElementIDW@8>
ifdef UNICODE 
mciGetDeviceIDFromElementID	EQU	<mciGetDeviceIDFromElementIDW>
else 
mciGetDeviceIDFromElementID	EQU	<mciGetDeviceIDFromElementIDA>
endif 
proto_mciGetErrorStringA typedef proto stdcall  :MCIERROR, :LPSTR, :DWORD
externdef stdcall _imp__mciGetErrorStringA@12: ptr proto_mciGetErrorStringA
mciGetErrorStringA equ <_imp__mciGetErrorStringA@12>
proto_mciGetErrorStringW typedef proto stdcall  :MCIERROR, :LPWSTR, :DWORD
externdef stdcall _imp__mciGetErrorStringW@12: ptr proto_mciGetErrorStringW
mciGetErrorStringW equ <_imp__mciGetErrorStringW@12>
ifdef UNICODE 
mciGetErrorString	EQU	<mciGetErrorStringW>
else 
mciGetErrorString	EQU	<mciGetErrorStringA>
endif 
else 
mciSendCommand proto stdcall  :MCIDEVICEID, :DWORD, :DWORD, :DWORD
mciSendString proto stdcall  :LPSTR, :LPSTR, :DWORD, :HWND
mciGetDeviceID proto stdcall  :LPSTR
mciGetErrorString proto stdcall  :MCIERROR, :LPSTR, :DWORD
endif 
proto_mciSetYieldProc typedef proto stdcall  :MCIDEVICEID, :YIELDPROC, :DWORD
externdef stdcall _imp__mciSetYieldProc@12: ptr proto_mciSetYieldProc
mciSetYieldProc equ <_imp__mciSetYieldProc@12>
if (WINVER ge 030ah)
proto_mciGetCreatorTask typedef proto stdcall  :MCIDEVICEID
externdef stdcall _imp__mciGetCreatorTask@4: ptr proto_mciGetCreatorTask
mciGetCreatorTask equ <_imp__mciGetCreatorTask@4>
proto_mciGetYieldProc typedef proto stdcall  :MCIDEVICEID, :LPDWORD
externdef stdcall _imp__mciGetYieldProc@8: ptr proto_mciGetYieldProc
mciGetYieldProc equ <_imp__mciGetYieldProc@8>
endif 
if (WINVER lt 030ah)
proto_mciExecute typedef proto stdcall  :LPSTR
externdef stdcall _imp__mciExecute@4: ptr proto_mciExecute
mciExecute equ <_imp__mciExecute@4>
endif 
MCIERR_INVALID_DEVICE_ID	EQU	( MCIERR_BASE + 1 )
MCIERR_UNRECOGNIZED_KEYWORD	EQU	( MCIERR_BASE + 3 )
MCIERR_UNRECOGNIZED_COMMAND	EQU	( MCIERR_BASE + 5 )
MCIERR_HARDWARE	EQU	( MCIERR_BASE + 6 )
MCIERR_INVALID_DEVICE_NAME	EQU	( MCIERR_BASE + 7 )
MCIERR_OUT_OF_MEMORY	EQU	( MCIERR_BASE + 8 )
MCIERR_DEVICE_OPEN	EQU	( MCIERR_BASE + 9 )
MCIERR_CANNOT_LOAD_DRIVER	EQU	( MCIERR_BASE + 10 )
MCIERR_MISSING_COMMAND_STRING	EQU	( MCIERR_BASE + 11 )
MCIERR_PARAM_OVERFLOW	EQU	( MCIERR_BASE + 12 )
MCIERR_MISSING_STRING_ARGUMENT	EQU	( MCIERR_BASE + 13 )
MCIERR_BAD_INTEGER	EQU	( MCIERR_BASE + 14 )
MCIERR_PARSER_INTERNAL	EQU	( MCIERR_BASE + 15 )
MCIERR_DRIVER_INTERNAL	EQU	( MCIERR_BASE + 16 )
MCIERR_MISSING_PARAMETER	EQU	( MCIERR_BASE + 17 )
MCIERR_UNSUPPORTED_FUNCTION	EQU	( MCIERR_BASE + 18 )
MCIERR_FILE_NOT_FOUND	EQU	( MCIERR_BASE + 19 )
MCIERR_DEVICE_NOT_READY	EQU	( MCIERR_BASE + 20 )
MCIERR_INTERNAL	EQU	( MCIERR_BASE + 21 )
MCIERR_DRIVER	EQU	( MCIERR_BASE + 22 )
MCIERR_CANNOT_USE_ALL	EQU	( MCIERR_BASE + 23 )
MCIERR_MULTIPLE	EQU	( MCIERR_BASE + 24 )
MCIERR_EXTENSION_NOT_FOUND	EQU	( MCIERR_BASE + 25 )
MCIERR_OUTOFRANGE	EQU	( MCIERR_BASE + 26 )
MCIERR_FLAGS_NOT_COMPATIBLE	EQU	( MCIERR_BASE + 28 )
MCIERR_FILE_NOT_SAVED	EQU	( MCIERR_BASE + 30 )
MCIERR_DEVICE_TYPE_REQUIRED	EQU	( MCIERR_BASE + 31 )
MCIERR_DEVICE_LOCKED	EQU	( MCIERR_BASE + 32 )
MCIERR_DUPLICATE_ALIAS	EQU	( MCIERR_BASE + 33 )
MCIERR_BAD_CONSTANT	EQU	( MCIERR_BASE + 34 )
MCIERR_MUST_USE_SHAREABLE	EQU	( MCIERR_BASE + 35 )
MCIERR_MISSING_DEVICE_NAME	EQU	( MCIERR_BASE + 36 )
MCIERR_BAD_TIME_FORMAT	EQU	( MCIERR_BASE + 37 )
MCIERR_NO_CLOSING_QUOTE	EQU	( MCIERR_BASE + 38 )
MCIERR_DUPLICATE_FLAGS	EQU	( MCIERR_BASE + 39 )
MCIERR_INVALID_FILE	EQU	( MCIERR_BASE + 40 )
MCIERR_NULL_PARAMETER_BLOCK	EQU	( MCIERR_BASE + 41 )
MCIERR_UNNAMED_RESOURCE	EQU	( MCIERR_BASE + 42 )
MCIERR_NEW_REQUIRES_ALIAS	EQU	( MCIERR_BASE + 43 )
MCIERR_NOTIFY_ON_AUTO_OPEN	EQU	( MCIERR_BASE + 44 )
MCIERR_NO_ELEMENT_ALLOWED	EQU	( MCIERR_BASE + 45 )
MCIERR_NONAPPLICABLE_FUNCTION	EQU	( MCIERR_BASE + 46 )
MCIERR_ILLEGAL_FOR_AUTO_OPEN	EQU	( MCIERR_BASE + 47 )
MCIERR_FILENAME_REQUIRED	EQU	( MCIERR_BASE + 48 )
MCIERR_EXTRA_CHARACTERS	EQU	( MCIERR_BASE + 49 )
MCIERR_DEVICE_NOT_INSTALLED	EQU	( MCIERR_BASE + 50 )
MCIERR_GET_CD	EQU	( MCIERR_BASE + 51 )
MCIERR_SET_CD	EQU	( MCIERR_BASE + 52 )
MCIERR_SET_DRIVE	EQU	( MCIERR_BASE + 53 )
MCIERR_DEVICE_LENGTH	EQU	( MCIERR_BASE + 54 )
MCIERR_DEVICE_ORD_LENGTH	EQU	( MCIERR_BASE + 55 )
MCIERR_NO_INTEGER	EQU	( MCIERR_BASE + 56 )
MCIERR_WAVE_OUTPUTSINUSE	EQU	( MCIERR_BASE + 64 )
MCIERR_WAVE_SETOUTPUTINUSE	EQU	( MCIERR_BASE + 65 )
MCIERR_WAVE_INPUTSINUSE	EQU	( MCIERR_BASE + 66 )
MCIERR_WAVE_SETINPUTINUSE	EQU	( MCIERR_BASE + 67 )
MCIERR_WAVE_OUTPUTUNSPECIFIED	EQU	( MCIERR_BASE + 68 )
MCIERR_WAVE_INPUTUNSPECIFIED	EQU	( MCIERR_BASE + 69 )
MCIERR_WAVE_OUTPUTSUNSUITABLE	EQU	( MCIERR_BASE + 70 )
MCIERR_WAVE_SETOUTPUTUNSUITABLE	EQU	( MCIERR_BASE + 71 )
MCIERR_WAVE_INPUTSUNSUITABLE	EQU	( MCIERR_BASE + 72 )
MCIERR_WAVE_SETINPUTUNSUITABLE	EQU	( MCIERR_BASE + 73 )
MCIERR_SEQ_DIV_INCOMPATIBLE	EQU	( MCIERR_BASE + 80 )
MCIERR_SEQ_PORT_INUSE	EQU	( MCIERR_BASE + 81 )
MCIERR_SEQ_PORT_NONEXISTENT	EQU	( MCIERR_BASE + 82 )
MCIERR_SEQ_PORT_MAPNODEVICE	EQU	( MCIERR_BASE + 83 )
MCIERR_SEQ_PORT_MISCERROR	EQU	( MCIERR_BASE + 84 )
MCIERR_SEQ_TIMER	EQU	( MCIERR_BASE + 85 )
MCIERR_SEQ_PORTUNSPECIFIED	EQU	( MCIERR_BASE + 86 )
MCIERR_SEQ_NOMIDIPRESENT	EQU	( MCIERR_BASE + 87 )
MCIERR_NO_WINDOW	EQU	( MCIERR_BASE + 90 )
MCIERR_CREATEWINDOW	EQU	( MCIERR_BASE + 91 )
MCIERR_FILE_READ	EQU	( MCIERR_BASE + 92 )
MCIERR_FILE_WRITE	EQU	( MCIERR_BASE + 93 )
MCIERR_NO_IDENTITY	EQU	( MCIERR_BASE + 94 )
MCIERR_CUSTOM_DRIVER_BASE	EQU	( MCIERR_BASE + 256 )
MCI_FIRST	EQU	<DRV_MCI_FIRST>
MCI_OPEN	EQU	0803h
MCI_CLOSE	EQU	0804h
MCI_ESCAPE	EQU	0805h
MCI_PLAY	EQU	0806h
MCI_SEEK	EQU	0807h
MCI_STOP	EQU	0808h
MCI_PAUSE	EQU	0809h
MCI_INFO	EQU	080Ah
MCI_GETDEVCAPS	EQU	080Bh
MCI_SPIN	EQU	080Ch
MCI_SET	EQU	080Dh
MCI_STEP	EQU	080Eh
MCI_RECORD	EQU	080Fh
MCI_SYSINFO	EQU	0810h
MCI_BREAK	EQU	0811h
MCI_SAVE	EQU	0813h
MCI_STATUS	EQU	0814h
MCI_CUE	EQU	0830h
MCI_REALIZE	EQU	0840h
MCI_WINDOW	EQU	0841h
MCI_PUT	EQU	0842h
MCI_WHERE	EQU	0843h
MCI_FREEZE	EQU	0844h
MCI_UNFREEZE	EQU	0845h
MCI_LOAD	EQU	0850h
MCI_CUT	EQU	0851h
MCI_COPY	EQU	0852h
MCI_PASTE	EQU	0853h
MCI_UPDATE	EQU	0854h
MCI_RESUME	EQU	0855h
MCI_DELETE	EQU	0856h
MCI_USER_MESSAGES	EQU	( DRV_MCI_FIRST + 400h )
MCI_LAST	EQU	0FFFh
MCI_ALL_DEVICE_ID	EQU	( ( MCIDEVICEID ) - 1 )
MCI_DEVTYPE_VCR	EQU	513
MCI_DEVTYPE_VIDEODISC	EQU	514
MCI_DEVTYPE_OVERLAY	EQU	515
MCI_DEVTYPE_CD_AUDIO	EQU	516
MCI_DEVTYPE_DAT	EQU	517
MCI_DEVTYPE_SCANNER	EQU	518
MCI_DEVTYPE_ANIMATION	EQU	519
MCI_DEVTYPE_DIGITAL_VIDEO	EQU	520
MCI_DEVTYPE_OTHER	EQU	521
MCI_DEVTYPE_WAVEFORM_AUDIO	EQU	522
MCI_DEVTYPE_SEQUENCER	EQU	523
MCI_DEVTYPE_FIRST	EQU	<MCI_DEVTYPE_VCR>
MCI_DEVTYPE_LAST	EQU	<MCI_DEVTYPE_SEQUENCER>
MCI_DEVTYPE_FIRST_USER	EQU	1000h
MCI_MODE_NOT_READY	EQU	( MCI_STRING_OFFSET + 12 )
MCI_MODE_STOP	EQU	( MCI_STRING_OFFSET + 13 )
MCI_MODE_PLAY	EQU	( MCI_STRING_OFFSET + 14 )
MCI_MODE_RECORD	EQU	( MCI_STRING_OFFSET + 15 )
MCI_MODE_SEEK	EQU	( MCI_STRING_OFFSET + 16 )
MCI_MODE_PAUSE	EQU	( MCI_STRING_OFFSET + 17 )
MCI_MODE_OPEN	EQU	( MCI_STRING_OFFSET + 18 )
MCI_FORMAT_MILLISECONDS	EQU	0
MCI_FORMAT_HMS	EQU	1
MCI_FORMAT_MSF	EQU	2
MCI_FORMAT_FRAMES	EQU	3
MCI_FORMAT_SMPTE_24	EQU	4
MCI_FORMAT_SMPTE_25	EQU	5
MCI_FORMAT_SMPTE_30	EQU	6
MCI_FORMAT_SMPTE_30DROP	EQU	7
MCI_FORMAT_BYTES	EQU	8
MCI_FORMAT_SAMPLES	EQU	9
MCI_FORMAT_TMSF	EQU	10
MCI_MSF_MINUTE macro msf
	exitm <( ( msf ) ) >
	endm
MCI_MSF_SECOND macro msf
	exitm <( ( ( ( msf ) )  shr  8 ) ) >
	endm
MCI_MSF_FRAME macro msf
	exitm <( ( ( msf )  shr  16 ) ) >
	endm
MCI_MAKE_MSF macro m,s,f
	exitm <( ( ( ( m )  or  ( ( s )  shl  8 ) )  or  ( ( ( f ) )  shl  16 ) ) ) >
	endm
MCI_TMSF_TRACK macro tmsf
	exitm <( ( tmsf ) ) >
	endm
MCI_TMSF_MINUTE macro tmsf
	exitm <( ( ( ( tmsf ) )  shr  8 ) ) >
	endm
MCI_TMSF_SECOND macro tmsf
	exitm <( ( ( tmsf )  shr  16 ) ) >
	endm
MCI_TMSF_FRAME macro tmsf
	exitm <( ( ( tmsf )  shr  24 ) ) >
	endm
MCI_MAKE_TMSF macro t,m,s,f
	exitm <( ( ( ( t )  or  ( ( m )  shl  8 ) )  or  ( ( ( s )  or  ( ( f )  shl  8 ) )  shl  16 ) ) ) >
	endm
MCI_HMS_HOUR macro hms
	exitm <( ( hms ) ) >
	endm
MCI_HMS_MINUTE macro hms
	exitm <( ( ( ( hms ) )  shr  8 ) ) >
	endm
MCI_HMS_SECOND macro hms
	exitm <( ( ( hms )  shr  16 ) ) >
	endm
MCI_MAKE_HMS macro h,m,s
	exitm <( ( ( ( h )  or  ( ( m )  shl  8 ) )  or  ( ( ( s ) )  shl  16 ) ) ) >
	endm
MCI_NOTIFY_SUCCESSFUL	EQU	0001h
MCI_NOTIFY_SUPERSEDED	EQU	0002h
MCI_NOTIFY_ABORTED	EQU	0004h
MCI_NOTIFY_FAILURE	EQU	0008h
MCI_NOTIFY	EQU	00000001h
MCI_WAIT	EQU	00000002h
MCI_FROM	EQU	00000004h
MCI_TO	EQU	00000008h
MCI_TRACK	EQU	00000010h
MCI_OPEN_SHAREABLE	EQU	00000100h
MCI_OPEN_ELEMENT	EQU	00000200h
MCI_OPEN_ALIAS	EQU	00000400h
MCI_OPEN_ELEMENT_ID	EQU	00000800h
MCI_OPEN_TYPE_ID	EQU	00001000h
MCI_OPEN_TYPE	EQU	00002000h
MCI_SEEK_TO_START	EQU	00000100h
MCI_SEEK_TO_END	EQU	00000200h
MCI_STATUS_ITEM	EQU	00000100h
MCI_STATUS_START	EQU	00000200h
MCI_STATUS_LENGTH	EQU	00000001h
MCI_STATUS_POSITION	EQU	00000002h
MCI_STATUS_NUMBER_OF_TRACKS	EQU	00000003h
MCI_STATUS_MODE	EQU	00000004h
MCI_STATUS_MEDIA_PRESENT	EQU	00000005h
MCI_STATUS_TIME_FORMAT	EQU	00000006h
MCI_STATUS_READY	EQU	00000007h
MCI_STATUS_CURRENT_TRACK	EQU	00000008h
MCI_INFO_PRODUCT	EQU	00000100h
MCI_INFO_FILE	EQU	00000200h
MCI_INFO_MEDIA_UPC	EQU	00000400h
MCI_INFO_MEDIA_IDENTITY	EQU	00000800h
MCI_INFO_NAME	EQU	00001000h
MCI_INFO_COPYRIGHT	EQU	00002000h
MCI_GETDEVCAPS_ITEM	EQU	00000100h
MCI_GETDEVCAPS_CAN_RECORD	EQU	00000001h
MCI_GETDEVCAPS_HAS_AUDIO	EQU	00000002h
MCI_GETDEVCAPS_HAS_VIDEO	EQU	00000003h
MCI_GETDEVCAPS_DEVICE_TYPE	EQU	00000004h
MCI_GETDEVCAPS_USES_FILES	EQU	00000005h
MCI_GETDEVCAPS_COMPOUND_DEVICE	EQU	00000006h
MCI_GETDEVCAPS_CAN_EJECT	EQU	00000007h
MCI_GETDEVCAPS_CAN_PLAY	EQU	00000008h
MCI_GETDEVCAPS_CAN_SAVE	EQU	00000009h
MCI_SYSINFO_QUANTITY	EQU	00000100h
MCI_SYSINFO_OPEN	EQU	00000200h
MCI_SYSINFO_NAME	EQU	00000400h
MCI_SYSINFO_INSTALLNAME	EQU	00000800h
MCI_SET_DOOR_OPEN	EQU	00000100h
MCI_SET_DOOR_CLOSED	EQU	00000200h
MCI_SET_TIME_FORMAT	EQU	00000400h
MCI_SET_AUDIO	EQU	00000800h
MCI_SET_VIDEO	EQU	00001000h
MCI_SET_ON	EQU	00002000h
MCI_SET_OFF	EQU	00004000h
MCI_SET_AUDIO_ALL	EQU	00000000h
MCI_SET_AUDIO_LEFT	EQU	00000001h
MCI_SET_AUDIO_RIGHT	EQU	00000002h
MCI_BREAK_KEY	EQU	00000100h
MCI_BREAK_HWND	EQU	00000200h
MCI_BREAK_OFF	EQU	00000400h
MCI_RECORD_INSERT	EQU	00000100h
MCI_RECORD_OVERWRITE	EQU	00000200h
MCI_SAVE_FILE	EQU	00000100h
MCI_LOAD_FILE	EQU	00000100h
MCI_GENERIC_PARMS	struct
dwCallback	DWORD	?
MCI_GENERIC_PARMS	ends

PMCI_GENERIC_PARMS typedef ptr MCI_GENERIC_PARMS
LPMCI_GENERIC_PARMS typedef ptr MCI_GENERIC_PARMS

ifdef _WIN32 
MCI_OPEN_PARMSA	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
lpstrDeviceType	LPSTR	?
lpstrElementName	LPSTR	?
lpstrAlias	LPSTR	?
MCI_OPEN_PARMSA	ends

PMCI_OPEN_PARMSA typedef ptr MCI_OPEN_PARMSA
LPMCI_OPEN_PARMSA typedef ptr MCI_OPEN_PARMSA

MCI_OPEN_PARMSW	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
lpstrDeviceType	LPWSTR	?
lpstrElementName	LPWSTR	?
lpstrAlias	LPWSTR	?
MCI_OPEN_PARMSW	ends

PMCI_OPEN_PARMSW typedef ptr MCI_OPEN_PARMSW
LPMCI_OPEN_PARMSW typedef ptr MCI_OPEN_PARMSW

ifdef UNICODE 
MCI_OPEN_PARMS  typedef MCI_OPEN_PARMSW
PMCI_OPEN_PARMS  typedef PMCI_OPEN_PARMSW
LPMCI_OPEN_PARMS  typedef LPMCI_OPEN_PARMSW
else 
MCI_OPEN_PARMS  typedef MCI_OPEN_PARMSA
PMCI_OPEN_PARMS  typedef PMCI_OPEN_PARMSA
LPMCI_OPEN_PARMS  typedef LPMCI_OPEN_PARMSA
endif 
else 
MCI_OPEN_PARMS	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
wReserved0	WORD	?
lpstrDeviceType	LPSTR	?
lpstrElementName	LPSTR	?
lpstrAlias	LPSTR	?
MCI_OPEN_PARMS	ends

LPMCI_OPEN_PARMS typedef ptr MCI_OPEN_PARMS

endif 
MCI_PLAY_PARMS	struct
dwCallback	DWORD	?
dwFrom	DWORD	?
dwTo	DWORD	?
MCI_PLAY_PARMS	ends

PMCI_PLAY_PARMS typedef ptr MCI_PLAY_PARMS
LPMCI_PLAY_PARMS typedef ptr MCI_PLAY_PARMS

MCI_SEEK_PARMS	struct
dwCallback	DWORD	?
dwTo	DWORD	?
MCI_SEEK_PARMS	ends

PMCI_SEEK_PARMS typedef ptr MCI_SEEK_PARMS
LPMCI_SEEK_PARMS typedef ptr MCI_SEEK_PARMS

MCI_STATUS_PARMS	struct
dwCallback	DWORD	?
dwReturn	DWORD	?
dwItem	DWORD	?
dwTrack	DWORD	?
MCI_STATUS_PARMS	ends

PMCI_STATUS_PARMS typedef ptr MCI_STATUS_PARMS
LPMCI_STATUS_PARMS typedef ptr MCI_STATUS_PARMS

ifdef _WIN32 
MCI_INFO_PARMSA	struct
dwCallback	DWORD	?
lpstrReturn	LPSTR	?
dwRetSize	DWORD	?
MCI_INFO_PARMSA	ends

LPMCI_INFO_PARMSA typedef ptr MCI_INFO_PARMSA

MCI_INFO_PARMSW	struct
dwCallback	DWORD	?
lpstrReturn	LPWSTR	?
dwRetSize	DWORD	?
MCI_INFO_PARMSW	ends

LPMCI_INFO_PARMSW typedef ptr MCI_INFO_PARMSW

ifdef UNICODE 
MCI_INFO_PARMS  typedef MCI_INFO_PARMSW
LPMCI_INFO_PARMS  typedef LPMCI_INFO_PARMSW
else 
MCI_INFO_PARMS  typedef MCI_INFO_PARMSA
LPMCI_INFO_PARMS  typedef LPMCI_INFO_PARMSA
endif 
else 
MCI_INFO_PARMS	struct
dwCallback	DWORD	?
lpstrReturn	LPSTR	?
dwRetSize	DWORD	?
MCI_INFO_PARMS	ends

LPMCI_INFO_PARMS typedef ptr MCI_INFO_PARMS

endif 
MCI_GETDEVCAPS_PARMS	struct
dwCallback	DWORD	?
dwReturn	DWORD	?
dwItem	DWORD	?
MCI_GETDEVCAPS_PARMS	ends

PMCI_GETDEVCAPS_PARMS typedef ptr MCI_GETDEVCAPS_PARMS
LPMCI_GETDEVCAPS_PARMS typedef ptr MCI_GETDEVCAPS_PARMS

ifdef _WIN32 
MCI_SYSINFO_PARMSA	struct
dwCallback	DWORD	?
lpstrReturn	LPSTR	?
dwRetSize	DWORD	?
dwNumber	DWORD	?
wDeviceType	DWORD	?
MCI_SYSINFO_PARMSA	ends

PMCI_SYSINFO_PARMSA typedef ptr MCI_SYSINFO_PARMSA
LPMCI_SYSINFO_PARMSA typedef ptr MCI_SYSINFO_PARMSA

MCI_SYSINFO_PARMSW	struct
dwCallback	DWORD	?
lpstrReturn	LPWSTR	?
dwRetSize	DWORD	?
dwNumber	DWORD	?
wDeviceType	DWORD	?
MCI_SYSINFO_PARMSW	ends

PMCI_SYSINFO_PARMSW typedef ptr MCI_SYSINFO_PARMSW
LPMCI_SYSINFO_PARMSW typedef ptr MCI_SYSINFO_PARMSW

ifdef UNICODE 
MCI_SYSINFO_PARMS  typedef MCI_SYSINFO_PARMSW
PMCI_SYSINFO_PARMS  typedef PMCI_SYSINFO_PARMSW
LPMCI_SYSINFO_PARMS  typedef LPMCI_SYSINFO_PARMSW
else 
MCI_SYSINFO_PARMS  typedef MCI_SYSINFO_PARMSA
PMCI_SYSINFO_PARMS  typedef PMCI_SYSINFO_PARMSA
LPMCI_SYSINFO_PARMS  typedef LPMCI_SYSINFO_PARMSA
endif 
else 
MCI_SYSINFO_PARMS	struct
dwCallback	DWORD	?
lpstrReturn	LPSTR	?
dwRetSize	DWORD	?
dwNumber	DWORD	?
wDeviceType	WORD	?
wReserved0	WORD	?
MCI_SYSINFO_PARMS	ends

LPMCI_SYSINFO_PARMS typedef ptr MCI_SYSINFO_PARMS

endif 
MCI_SET_PARMS	struct
dwCallback	DWORD	?
dwTimeFormat	DWORD	?
dwAudio	DWORD	?
MCI_SET_PARMS	ends

PMCI_SET_PARMS typedef ptr MCI_SET_PARMS
LPMCI_SET_PARMS typedef ptr MCI_SET_PARMS

MCI_BREAK_PARMS	struct
dwCallback	DWORD	?
ifdef _WIN32 
nVirtKey	DWORD	?
hwndBreak	HWND	?
else 
nVirtKey	SWORD	?
wReserved0	WORD	?
hwndBreak	HWND	?
wReserved1	WORD	?
endif 
MCI_BREAK_PARMS	ends

PMCI_BREAK_PARMS typedef ptr MCI_BREAK_PARMS
LPMCI_BREAK_PARMS typedef ptr MCI_BREAK_PARMS

ifdef _WIN32 
MCI_SAVE_PARMSA	struct
dwCallback	DWORD	?
lpfilename	LPSTR	?
MCI_SAVE_PARMSA	ends

PMCI_SAVE_PARMSA typedef ptr MCI_SAVE_PARMSA
LPMCI_SAVE_PARMSA typedef ptr MCI_SAVE_PARMSA

MCI_SAVE_PARMSW	struct
dwCallback	DWORD	?
lpfilename	LPWSTR	?
MCI_SAVE_PARMSW	ends

PMCI_SAVE_PARMSW typedef ptr MCI_SAVE_PARMSW
LPMCI_SAVE_PARMSW typedef ptr MCI_SAVE_PARMSW

ifdef UNICODE 
MCI_SAVE_PARMS  typedef MCI_SAVE_PARMSW
PMCI_SAVE_PARMS  typedef PMCI_SAVE_PARMSW
LPMCI_SAVE_PARMS  typedef LPMCI_SAVE_PARMSW
else 
MCI_SAVE_PARMS  typedef MCI_SAVE_PARMSA
PMCI_SAVE_PARMS  typedef PMCI_SAVE_PARMSA
LPMCI_SAVE_PARMS  typedef LPMCI_SAVE_PARMSA
endif 
else 
MCI_SAVE_PARMS	struct
dwCallback	DWORD	?
lpfilename	LPSTR	?
MCI_SAVE_PARMS	ends

LPMCI_SAVE_PARMS typedef ptr MCI_SAVE_PARMS

endif 
ifdef _WIN32 
MCI_LOAD_PARMSA	struct
dwCallback	DWORD	?
lpfilename	LPSTR	?
MCI_LOAD_PARMSA	ends

PMCI_LOAD_PARMSA typedef ptr MCI_LOAD_PARMSA
LPMCI_LOAD_PARMSA typedef ptr MCI_LOAD_PARMSA

MCI_LOAD_PARMSW	struct
dwCallback	DWORD	?
lpfilename	LPWSTR	?
MCI_LOAD_PARMSW	ends

PMCI_LOAD_PARMSW typedef ptr MCI_LOAD_PARMSW
LPMCI_LOAD_PARMSW typedef ptr MCI_LOAD_PARMSW

ifdef UNICODE 
MCI_LOAD_PARMS  typedef MCI_LOAD_PARMSW
PMCI_LOAD_PARMS  typedef PMCI_LOAD_PARMSW
LPMCI_LOAD_PARMS  typedef LPMCI_LOAD_PARMSW
else 
MCI_LOAD_PARMS  typedef MCI_LOAD_PARMSA
PMCI_LOAD_PARMS  typedef PMCI_LOAD_PARMSA
LPMCI_LOAD_PARMS  typedef LPMCI_LOAD_PARMSA
endif 
else 
MCI_LOAD_PARMS	struct
dwCallback	DWORD	?
lpfilename	LPSTR	?
MCI_LOAD_PARMS	ends

LPMCI_LOAD_PARMS typedef ptr MCI_LOAD_PARMS

endif 
MCI_RECORD_PARMS	struct
dwCallback	DWORD	?
dwFrom	DWORD	?
dwTo	DWORD	?
MCI_RECORD_PARMS	ends

LPMCI_RECORD_PARMS typedef ptr MCI_RECORD_PARMS

MCI_VD_MODE_PARK	EQU	( MCI_VD_OFFSET + 1 )
MCI_VD_MEDIA_CLV	EQU	( MCI_VD_OFFSET + 2 )
MCI_VD_MEDIA_CAV	EQU	( MCI_VD_OFFSET + 3 )
MCI_VD_MEDIA_OTHER	EQU	( MCI_VD_OFFSET + 4 )
MCI_VD_FORMAT_TRACK	EQU	4001h
MCI_VD_PLAY_REVERSE	EQU	00010000h
MCI_VD_PLAY_FAST	EQU	00020000h
MCI_VD_PLAY_SPEED	EQU	00040000h
MCI_VD_PLAY_SCAN	EQU	00080000h
MCI_VD_PLAY_SLOW	EQU	00100000h
MCI_VD_SEEK_REVERSE	EQU	00010000h
MCI_VD_STATUS_SPEED	EQU	00004002h
MCI_VD_STATUS_FORWARD	EQU	00004003h
MCI_VD_STATUS_MEDIA_TYPE	EQU	00004004h
MCI_VD_STATUS_SIDE	EQU	00004005h
MCI_VD_STATUS_DISC_SIZE	EQU	00004006h
MCI_VD_GETDEVCAPS_CLV	EQU	00010000h
MCI_VD_GETDEVCAPS_CAV	EQU	00020000h
MCI_VD_SPIN_UP	EQU	00010000h
MCI_VD_SPIN_DOWN	EQU	00020000h
MCI_VD_GETDEVCAPS_CAN_REVERSE	EQU	00004002h
MCI_VD_GETDEVCAPS_FAST_RATE	EQU	00004003h
MCI_VD_GETDEVCAPS_SLOW_RATE	EQU	00004004h
MCI_VD_GETDEVCAPS_NORMAL_RATE	EQU	00004005h
MCI_VD_STEP_FRAMES	EQU	00010000h
MCI_VD_STEP_REVERSE	EQU	00020000h
MCI_VD_ESCAPE_STRING	EQU	00000100h
MCI_VD_PLAY_PARMS	struct
dwCallback	DWORD	?
dwFrom	DWORD	?
dwTo	DWORD	?
dwSpeed	DWORD	?
MCI_VD_PLAY_PARMS	ends

PMCI_VD_PLAY_PARMS typedef ptr MCI_VD_PLAY_PARMS
LPMCI_VD_PLAY_PARMS typedef ptr MCI_VD_PLAY_PARMS

MCI_VD_STEP_PARMS	struct
dwCallback	DWORD	?
dwFrames	DWORD	?
MCI_VD_STEP_PARMS	ends

PMCI_VD_STEP_PARMS typedef ptr MCI_VD_STEP_PARMS
LPMCI_VD_STEP_PARMS typedef ptr MCI_VD_STEP_PARMS

ifdef _WIN32 
MCI_VD_ESCAPE_PARMSA	struct
dwCallback	DWORD	?
lpstrCommand	LPSTR	?
MCI_VD_ESCAPE_PARMSA	ends

PMCI_VD_ESCAPE_PARMSA typedef ptr MCI_VD_ESCAPE_PARMSA
LPMCI_VD_ESCAPE_PARMSA typedef ptr MCI_VD_ESCAPE_PARMSA

MCI_VD_ESCAPE_PARMSW	struct
dwCallback	DWORD	?
lpstrCommand	LPWSTR	?
MCI_VD_ESCAPE_PARMSW	ends

PMCI_VD_ESCAPE_PARMSW typedef ptr MCI_VD_ESCAPE_PARMSW
LPMCI_VD_ESCAPE_PARMSW typedef ptr MCI_VD_ESCAPE_PARMSW

ifdef UNICODE 
MCI_VD_ESCAPE_PARMS  typedef MCI_VD_ESCAPE_PARMSW
PMCI_VD_ESCAPE_PARMS  typedef PMCI_VD_ESCAPE_PARMSW
LPMCI_VD_ESCAPE_PARMS  typedef LPMCI_VD_ESCAPE_PARMSW
else 
MCI_VD_ESCAPE_PARMS  typedef MCI_VD_ESCAPE_PARMSA
PMCI_VD_ESCAPE_PARMS  typedef PMCI_VD_ESCAPE_PARMSA
LPMCI_VD_ESCAPE_PARMS  typedef LPMCI_VD_ESCAPE_PARMSA
endif 
else 
MCI_VD_ESCAPE_PARMS	struct
dwCallback	DWORD	?
lpstrCommand	LPSTR	?
MCI_VD_ESCAPE_PARMS	ends

LPMCI_VD_ESCAPE_PARMS typedef ptr MCI_VD_ESCAPE_PARMS

endif 
MCI_CDA_STATUS_TYPE_TRACK	EQU	00004001h
MCI_CDA_TRACK_AUDIO	EQU	( MCI_CD_OFFSET + 0 )
MCI_CDA_TRACK_OTHER	EQU	( MCI_CD_OFFSET + 1 )
MCI_WAVE_PCM	EQU	( MCI_WAVE_OFFSET + 0 )
MCI_WAVE_MAPPER	EQU	( MCI_WAVE_OFFSET + 1 )
MCI_WAVE_OPEN_BUFFER	EQU	00010000h
MCI_WAVE_SET_FORMATTAG	EQU	00010000h
MCI_WAVE_SET_CHANNELS	EQU	00020000h
MCI_WAVE_SET_SAMPLESPERSEC	EQU	00040000h
MCI_WAVE_SET_AVGBYTESPERSEC	EQU	00080000h
MCI_WAVE_SET_BLOCKALIGN	EQU	00100000h
MCI_WAVE_SET_BITSPERSAMPLE	EQU	00200000h
MCI_WAVE_INPUT	EQU	00400000h
MCI_WAVE_OUTPUT	EQU	00800000h
MCI_WAVE_STATUS_FORMATTAG	EQU	00004001h
MCI_WAVE_STATUS_CHANNELS	EQU	00004002h
MCI_WAVE_STATUS_SAMPLESPERSEC	EQU	00004003h
MCI_WAVE_STATUS_AVGBYTESPERSEC	EQU	00004004h
MCI_WAVE_STATUS_BLOCKALIGN	EQU	00004005h
MCI_WAVE_STATUS_BITSPERSAMPLE	EQU	00004006h
MCI_WAVE_STATUS_LEVEL	EQU	00004007h
MCI_WAVE_SET_ANYINPUT	EQU	04000000h
MCI_WAVE_SET_ANYOUTPUT	EQU	08000000h
MCI_WAVE_GETDEVCAPS_INPUTS	EQU	00004001h
MCI_WAVE_GETDEVCAPS_OUTPUTS	EQU	00004002h
ifdef _WIN32 
MCI_WAVE_OPEN_PARMSA	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
lpstrDeviceType	LPSTR	?
lpstrElementName	LPSTR	?
lpstrAlias	LPSTR	?
dwBufferSeconds	DWORD	?
MCI_WAVE_OPEN_PARMSA	ends

PMCI_WAVE_OPEN_PARMSA typedef ptr MCI_WAVE_OPEN_PARMSA
LPMCI_WAVE_OPEN_PARMSA typedef ptr MCI_WAVE_OPEN_PARMSA

MCI_WAVE_OPEN_PARMSW	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
lpstrDeviceType	LPWSTR	?
lpstrElementName	LPWSTR	?
lpstrAlias	LPWSTR	?
dwBufferSeconds	DWORD	?
MCI_WAVE_OPEN_PARMSW	ends

PMCI_WAVE_OPEN_PARMSW typedef ptr MCI_WAVE_OPEN_PARMSW
LPMCI_WAVE_OPEN_PARMSW typedef ptr MCI_WAVE_OPEN_PARMSW

ifdef UNICODE 
MCI_WAVE_OPEN_PARMS  typedef MCI_WAVE_OPEN_PARMSW
PMCI_WAVE_OPEN_PARMS  typedef PMCI_WAVE_OPEN_PARMSW
LPMCI_WAVE_OPEN_PARMS  typedef LPMCI_WAVE_OPEN_PARMSW
else 
MCI_WAVE_OPEN_PARMS  typedef MCI_WAVE_OPEN_PARMSA
PMCI_WAVE_OPEN_PARMS  typedef PMCI_WAVE_OPEN_PARMSA
LPMCI_WAVE_OPEN_PARMS  typedef LPMCI_WAVE_OPEN_PARMSA
endif 
else 
MCI_WAVE_OPEN_PARMS	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
wReserved0	WORD	?
lpstrDeviceType	LPSTR	?
lpstrElementName	LPSTR	?
lpstrAlias	LPSTR	?
dwBufferSeconds	DWORD	?
MCI_WAVE_OPEN_PARMS	ends

LPMCI_WAVE_OPEN_PARMS typedef ptr MCI_WAVE_OPEN_PARMS

endif 
MCI_WAVE_DELETE_PARMS	struct
dwCallback	DWORD	?
dwFrom	DWORD	?
dwTo	DWORD	?
MCI_WAVE_DELETE_PARMS	ends

PMCI_WAVE_DELETE_PARMS typedef ptr MCI_WAVE_DELETE_PARMS
LPMCI_WAVE_DELETE_PARMS typedef ptr MCI_WAVE_DELETE_PARMS

MCI_WAVE_SET_PARMS	struct
dwCallback	DWORD	?
dwTimeFormat	DWORD	?
dwAudio	DWORD	?
ifdef _WIN32 
wInput	DWORD	?
wOutput	DWORD	?
else 
wInput	WORD	?
wReserved0	WORD	?
wOutput	WORD	?
wReserved1	WORD	?
endif 
wFormatTag	WORD	?
wReserved2	WORD	?
nChannels	WORD	?
wReserved3	WORD	?
nSamplesPerSec	DWORD	?
nAvgBytesPerSec	DWORD	?
nBlockAlign	WORD	?
wReserved4	WORD	?
wBitsPerSample	WORD	?
wReserved5	WORD	?
MCI_WAVE_SET_PARMS	ends

PMCI_WAVE_SET_PARMS typedef ptr MCI_WAVE_SET_PARMS
LPMCI_WAVE_SET_PARMS typedef ptr MCI_WAVE_SET_PARMS

MCI_SEQ_DIV_PPQN	EQU	( 0 + MCI_SEQ_OFFSET )
MCI_SEQ_DIV_SMPTE_24	EQU	( 1 + MCI_SEQ_OFFSET )
MCI_SEQ_DIV_SMPTE_25	EQU	( 2 + MCI_SEQ_OFFSET )
MCI_SEQ_DIV_SMPTE_30DROP	EQU	( 3 + MCI_SEQ_OFFSET )
MCI_SEQ_DIV_SMPTE_30	EQU	( 4 + MCI_SEQ_OFFSET )
MCI_SEQ_FORMAT_SONGPTR	EQU	4001h
MCI_SEQ_FILE	EQU	4002h
MCI_SEQ_MIDI	EQU	4003h
MCI_SEQ_SMPTE	EQU	4004h
MCI_SEQ_NONE	EQU	65533
MCI_SEQ_MAPPER	EQU	65535
MCI_SEQ_STATUS_TEMPO	EQU	00004002h
MCI_SEQ_STATUS_PORT	EQU	00004003h
MCI_SEQ_STATUS_SLAVE	EQU	00004007h
MCI_SEQ_STATUS_MASTER	EQU	00004008h
MCI_SEQ_STATUS_OFFSET	EQU	00004009h
MCI_SEQ_STATUS_DIVTYPE	EQU	0000400Ah
MCI_SEQ_STATUS_NAME	EQU	0000400Bh
MCI_SEQ_STATUS_COPYRIGHT	EQU	0000400Ch
MCI_SEQ_SET_TEMPO	EQU	00010000h
MCI_SEQ_SET_PORT	EQU	00020000h
MCI_SEQ_SET_SLAVE	EQU	00040000h
MCI_SEQ_SET_MASTER	EQU	00080000h
MCI_SEQ_SET_OFFSET	EQU	01000000h
MCI_SEQ_SET_PARMS	struct
dwCallback	DWORD	?
dwTimeFormat	DWORD	?
dwAudio	DWORD	?
dwTempo	DWORD	?
dwPort	DWORD	?
dwSlave	DWORD	?
dwMaster	DWORD	?
dwOffset	DWORD	?
MCI_SEQ_SET_PARMS	ends

PMCI_SEQ_SET_PARMS typedef ptr MCI_SEQ_SET_PARMS
LPMCI_SEQ_SET_PARMS typedef ptr MCI_SEQ_SET_PARMS

MCI_ANIM_OPEN_WS	EQU	00010000h
MCI_ANIM_OPEN_PARENT	EQU	00020000h
MCI_ANIM_OPEN_NOSTATIC	EQU	00040000h
MCI_ANIM_PLAY_SPEED	EQU	00010000h
MCI_ANIM_PLAY_REVERSE	EQU	00020000h
MCI_ANIM_PLAY_FAST	EQU	00040000h
MCI_ANIM_PLAY_SLOW	EQU	00080000h
MCI_ANIM_PLAY_SCAN	EQU	00100000h
MCI_ANIM_STEP_REVERSE	EQU	00010000h
MCI_ANIM_STEP_FRAMES	EQU	00020000h
MCI_ANIM_STATUS_SPEED	EQU	00004001h
MCI_ANIM_STATUS_FORWARD	EQU	00004002h
MCI_ANIM_STATUS_HWND	EQU	00004003h
MCI_ANIM_STATUS_HPAL	EQU	00004004h
MCI_ANIM_STATUS_STRETCH	EQU	00004005h
MCI_ANIM_INFO_TEXT	EQU	00010000h
MCI_ANIM_GETDEVCAPS_CAN_REVERSE	EQU	00004001h
MCI_ANIM_GETDEVCAPS_FAST_RATE	EQU	00004002h
MCI_ANIM_GETDEVCAPS_SLOW_RATE	EQU	00004003h
MCI_ANIM_GETDEVCAPS_NORMAL_RATE	EQU	00004004h
MCI_ANIM_GETDEVCAPS_PALETTES	EQU	00004006h
MCI_ANIM_GETDEVCAPS_CAN_STRETCH	EQU	00004007h
MCI_ANIM_GETDEVCAPS_MAX_WINDOWS	EQU	00004008h
MCI_ANIM_REALIZE_NORM	EQU	00010000h
MCI_ANIM_REALIZE_BKGD	EQU	00020000h
MCI_ANIM_WINDOW_HWND	EQU	00010000h
MCI_ANIM_WINDOW_STATE	EQU	00040000h
MCI_ANIM_WINDOW_TEXT	EQU	00080000h
MCI_ANIM_WINDOW_ENABLE_STRETCH	EQU	00100000h
MCI_ANIM_WINDOW_DISABLE_STRETCH	EQU	00200000h
MCI_ANIM_WINDOW_DEFAULT	EQU	00000000h
MCI_ANIM_RECT	EQU	00010000h
MCI_ANIM_PUT_SOURCE	EQU	00020000h
MCI_ANIM_PUT_DESTINATION	EQU	00040000h
MCI_ANIM_WHERE_SOURCE	EQU	00020000h
MCI_ANIM_WHERE_DESTINATION	EQU	00040000h
MCI_ANIM_UPDATE_HDC	EQU	00020000h
ifdef _WIN32 
MCI_ANIM_OPEN_PARMSA	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
lpstrDeviceType	LPSTR	?
lpstrElementName	LPSTR	?
lpstrAlias	LPSTR	?
dwStyle	DWORD	?
hWndParent	HWND	?
MCI_ANIM_OPEN_PARMSA	ends

PMCI_ANIM_OPEN_PARMSA typedef ptr MCI_ANIM_OPEN_PARMSA
LPMCI_ANIM_OPEN_PARMSA typedef ptr MCI_ANIM_OPEN_PARMSA

MCI_ANIM_OPEN_PARMSW	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
lpstrDeviceType	LPWSTR	?
lpstrElementName	LPWSTR	?
lpstrAlias	LPWSTR	?
dwStyle	DWORD	?
hWndParent	HWND	?
MCI_ANIM_OPEN_PARMSW	ends

PMCI_ANIM_OPEN_PARMSW typedef ptr MCI_ANIM_OPEN_PARMSW
LPMCI_ANIM_OPEN_PARMSW typedef ptr MCI_ANIM_OPEN_PARMSW

ifdef UNICODE 
MCI_ANIM_OPEN_PARMS  typedef MCI_ANIM_OPEN_PARMSW
PMCI_ANIM_OPEN_PARMS  typedef PMCI_ANIM_OPEN_PARMSW
LPMCI_ANIM_OPEN_PARMS  typedef LPMCI_ANIM_OPEN_PARMSW
else 
MCI_ANIM_OPEN_PARMS  typedef MCI_ANIM_OPEN_PARMSA
PMCI_ANIM_OPEN_PARMS  typedef PMCI_ANIM_OPEN_PARMSA
LPMCI_ANIM_OPEN_PARMS  typedef LPMCI_ANIM_OPEN_PARMSA
endif 
else 
MCI_ANIM_OPEN_PARMS	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
wReserved0	WORD	?
lpstrDeviceType	LPSTR	?
lpstrElementName	LPSTR	?
lpstrAlias	LPSTR	?
dwStyle	DWORD	?
hWndParent	HWND	?
wReserved1	WORD	?
MCI_ANIM_OPEN_PARMS	ends

LPMCI_ANIM_OPEN_PARMS typedef ptr MCI_ANIM_OPEN_PARMS

endif 
MCI_ANIM_PLAY_PARMS	struct
dwCallback	DWORD	?
dwFrom	DWORD	?
dwTo	DWORD	?
dwSpeed	DWORD	?
MCI_ANIM_PLAY_PARMS	ends

PMCI_ANIM_PLAY_PARMS typedef ptr MCI_ANIM_PLAY_PARMS
LPMCI_ANIM_PLAY_PARMS typedef ptr MCI_ANIM_PLAY_PARMS

MCI_ANIM_STEP_PARMS	struct
dwCallback	DWORD	?
dwFrames	DWORD	?
MCI_ANIM_STEP_PARMS	ends

PMCI_ANIM_STEP_PARMS typedef ptr MCI_ANIM_STEP_PARMS
LPMCI_ANIM_STEP_PARMS typedef ptr MCI_ANIM_STEP_PARMS

ifdef _WIN32 
MCI_ANIM_WINDOW_PARMSA	struct
dwCallback	DWORD	?
hWnd	HWND	?
nCmdShow	DWORD	?
lpstrText	LPSTR	?
MCI_ANIM_WINDOW_PARMSA	ends

PMCI_ANIM_WINDOW_PARMSA typedef ptr MCI_ANIM_WINDOW_PARMSA
LPMCI_ANIM_WINDOW_PARMSA typedef ptr MCI_ANIM_WINDOW_PARMSA

MCI_ANIM_WINDOW_PARMSW	struct
dwCallback	DWORD	?
hWnd	HWND	?
nCmdShow	DWORD	?
lpstrText	LPWSTR	?
MCI_ANIM_WINDOW_PARMSW	ends

PMCI_ANIM_WINDOW_PARMSW typedef ptr MCI_ANIM_WINDOW_PARMSW
LPMCI_ANIM_WINDOW_PARMSW typedef ptr MCI_ANIM_WINDOW_PARMSW

ifdef UNICODE 
MCI_ANIM_WINDOW_PARMS  typedef MCI_ANIM_WINDOW_PARMSW
PMCI_ANIM_WINDOW_PARMS  typedef PMCI_ANIM_WINDOW_PARMSW
LPMCI_ANIM_WINDOW_PARMS  typedef LPMCI_ANIM_WINDOW_PARMSW
else 
MCI_ANIM_WINDOW_PARMS  typedef MCI_ANIM_WINDOW_PARMSA
PMCI_ANIM_WINDOW_PARMS  typedef PMCI_ANIM_WINDOW_PARMSA
LPMCI_ANIM_WINDOW_PARMS  typedef LPMCI_ANIM_WINDOW_PARMSA
endif 
else 
MCI_ANIM_WINDOW_PARMS	struct
dwCallback	DWORD	?
hWnd	HWND	?
wReserved1	WORD	?
nCmdShow	WORD	?
wReserved2	WORD	?
lpstrText	LPSTR	?
MCI_ANIM_WINDOW_PARMS	ends

LPMCI_ANIM_WINDOW_PARMS typedef ptr MCI_ANIM_WINDOW_PARMS

endif 
MCI_ANIM_RECT_PARMS	struct
dwCallback	DWORD	?
ifdef MCI_USE_OFFEXT 
ptOffset	POINT	<>
ptExtent	POINT	<>
else 
rc	RECT	<>
endif 
MCI_ANIM_RECT_PARMS	ends

PMCI_ANIM_RECT_PARMS  typedef ptr MCI_ANIM_RECT_PARMS
LPMCI_ANIM_RECT_PARMS  typedef ptr MCI_ANIM_RECT_PARMS
MCI_ANIM_UPDATE_PARMS	struct
dwCallback	DWORD	?
rc	RECT	<>
hDC	HDC	?
MCI_ANIM_UPDATE_PARMS	ends

PMCI_ANIM_UPDATE_PARMS typedef ptr MCI_ANIM_UPDATE_PARMS
LPMCI_ANIM_UPDATE_PARMS typedef ptr MCI_ANIM_UPDATE_PARMS

MCI_OVLY_OPEN_WS	EQU	00010000h
MCI_OVLY_OPEN_PARENT	EQU	00020000h
MCI_OVLY_STATUS_HWND	EQU	00004001h
MCI_OVLY_STATUS_STRETCH	EQU	00004002h
MCI_OVLY_INFO_TEXT	EQU	00010000h
MCI_OVLY_GETDEVCAPS_CAN_STRETCH	EQU	00004001h
MCI_OVLY_GETDEVCAPS_CAN_FREEZE	EQU	00004002h
MCI_OVLY_GETDEVCAPS_MAX_WINDOWS	EQU	00004003h
MCI_OVLY_WINDOW_HWND	EQU	00010000h
MCI_OVLY_WINDOW_STATE	EQU	00040000h
MCI_OVLY_WINDOW_TEXT	EQU	00080000h
MCI_OVLY_WINDOW_ENABLE_STRETCH	EQU	00100000h
MCI_OVLY_WINDOW_DISABLE_STRETCH	EQU	00200000h
MCI_OVLY_WINDOW_DEFAULT	EQU	00000000h
MCI_OVLY_RECT	EQU	00010000h
MCI_OVLY_PUT_SOURCE	EQU	00020000h
MCI_OVLY_PUT_DESTINATION	EQU	00040000h
MCI_OVLY_PUT_FRAME	EQU	00080000h
MCI_OVLY_PUT_VIDEO	EQU	00100000h
MCI_OVLY_WHERE_SOURCE	EQU	00020000h
MCI_OVLY_WHERE_DESTINATION	EQU	00040000h
MCI_OVLY_WHERE_FRAME	EQU	00080000h
MCI_OVLY_WHERE_VIDEO	EQU	00100000h
ifdef _WIN32 
MCI_OVLY_OPEN_PARMSA	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
lpstrDeviceType	LPSTR	?
lpstrElementName	LPSTR	?
lpstrAlias	LPSTR	?
dwStyle	DWORD	?
hWndParent	HWND	?
MCI_OVLY_OPEN_PARMSA	ends

PMCI_OVLY_OPEN_PARMSA typedef ptr MCI_OVLY_OPEN_PARMSA
LPMCI_OVLY_OPEN_PARMSA typedef ptr MCI_OVLY_OPEN_PARMSA

MCI_OVLY_OPEN_PARMSW	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
lpstrDeviceType	LPWSTR	?
lpstrElementName	LPWSTR	?
lpstrAlias	LPWSTR	?
dwStyle	DWORD	?
hWndParent	HWND	?
MCI_OVLY_OPEN_PARMSW	ends

PMCI_OVLY_OPEN_PARMSW typedef ptr MCI_OVLY_OPEN_PARMSW
LPMCI_OVLY_OPEN_PARMSW typedef ptr MCI_OVLY_OPEN_PARMSW

ifdef UNICODE 
MCI_OVLY_OPEN_PARMS  typedef MCI_OVLY_OPEN_PARMSW
PMCI_OVLY_OPEN_PARMS  typedef PMCI_OVLY_OPEN_PARMSW
LPMCI_OVLY_OPEN_PARMS  typedef LPMCI_OVLY_OPEN_PARMSW
else 
MCI_OVLY_OPEN_PARMS  typedef MCI_OVLY_OPEN_PARMSA
PMCI_OVLY_OPEN_PARMS  typedef PMCI_OVLY_OPEN_PARMSA
LPMCI_OVLY_OPEN_PARMS  typedef LPMCI_OVLY_OPEN_PARMSA
endif 
else 
MCI_OVLY_OPEN_PARMS	struct
dwCallback	DWORD	?
wDeviceID	MCIDEVICEID	?
wReserved0	WORD	?
lpstrDeviceType	LPSTR	?
lpstrElementName	LPSTR	?
lpstrAlias	LPSTR	?
dwStyle	DWORD	?
hWndParent	HWND	?
wReserved1	WORD	?
MCI_OVLY_OPEN_PARMS	ends

LPMCI_OVLY_OPEN_PARMS typedef ptr MCI_OVLY_OPEN_PARMS

endif 
ifdef _WIN32 
MCI_OVLY_WINDOW_PARMSA	struct
dwCallback	DWORD	?
hWnd	HWND	?
nCmdShow	DWORD	?
lpstrText	LPSTR	?
MCI_OVLY_WINDOW_PARMSA	ends

PMCI_OVLY_WINDOW_PARMSA typedef ptr MCI_OVLY_WINDOW_PARMSA
LPMCI_OVLY_WINDOW_PARMSA typedef ptr MCI_OVLY_WINDOW_PARMSA

MCI_OVLY_WINDOW_PARMSW	struct
dwCallback	DWORD	?
hWnd	HWND	?
nCmdShow	DWORD	?
lpstrText	LPWSTR	?
MCI_OVLY_WINDOW_PARMSW	ends

PMCI_OVLY_WINDOW_PARMSW typedef ptr MCI_OVLY_WINDOW_PARMSW
LPMCI_OVLY_WINDOW_PARMSW typedef ptr MCI_OVLY_WINDOW_PARMSW

ifdef UNICODE 
MCI_OVLY_WINDOW_PARMS  typedef MCI_OVLY_WINDOW_PARMSW
PMCI_OVLY_WINDOW_PARMS  typedef PMCI_OVLY_WINDOW_PARMSW
LPMCI_OVLY_WINDOW_PARMS  typedef LPMCI_OVLY_WINDOW_PARMSW
else 
MCI_OVLY_WINDOW_PARMS  typedef MCI_OVLY_WINDOW_PARMSA
PMCI_OVLY_WINDOW_PARMS  typedef PMCI_OVLY_WINDOW_PARMSA
LPMCI_OVLY_WINDOW_PARMS  typedef LPMCI_OVLY_WINDOW_PARMSA
endif 
else 
MCI_OVLY_WINDOW_PARMS	struct
dwCallback	DWORD	?
hWnd	HWND	?
wReserved1	WORD	?
nCmdShow	DWORD	?
wReserved2	WORD	?
lpstrText	LPSTR	?
MCI_OVLY_WINDOW_PARMS	ends

LPMCI_OVLY_WINDOW_PARMS typedef ptr MCI_OVLY_WINDOW_PARMS

endif 
MCI_OVLY_RECT_PARMS	struct
dwCallback	DWORD	?
ifdef MCI_USE_OFFEXT 
ptOffset	POINT	<>
ptExtent	POINT	<>
else 
rc	RECT	<>
endif 
MCI_OVLY_RECT_PARMS	ends

PMCI_OVLY_RECT_PARMS typedef ptr MCI_OVLY_RECT_PARMS
LPMCI_OVLY_RECT_PARMS typedef ptr MCI_OVLY_RECT_PARMS

ifdef _WIN32 
MCI_OVLY_SAVE_PARMSA	struct
dwCallback	DWORD	?
lpfilename	LPSTR	?
rc	RECT	<>
MCI_OVLY_SAVE_PARMSA	ends

PMCI_OVLY_SAVE_PARMSA typedef ptr MCI_OVLY_SAVE_PARMSA
LPMCI_OVLY_SAVE_PARMSA typedef ptr MCI_OVLY_SAVE_PARMSA

MCI_OVLY_SAVE_PARMSW	struct
dwCallback	DWORD	?
lpfilename	LPWSTR	?
rc	RECT	<>
MCI_OVLY_SAVE_PARMSW	ends

PMCI_OVLY_SAVE_PARMSW typedef ptr MCI_OVLY_SAVE_PARMSW
LPMCI_OVLY_SAVE_PARMSW typedef ptr MCI_OVLY_SAVE_PARMSW

ifdef UNICODE 
MCI_OVLY_SAVE_PARMS  typedef MCI_OVLY_SAVE_PARMSW
PMCI_OVLY_SAVE_PARMS  typedef PMCI_OVLY_SAVE_PARMSW
LPMCI_OVLY_SAVE_PARMS  typedef LPMCI_OVLY_SAVE_PARMSW
else 
MCI_OVLY_SAVE_PARMS  typedef MCI_OVLY_SAVE_PARMSA
PMCI_OVLY_SAVE_PARMS  typedef PMCI_OVLY_SAVE_PARMSA
LPMCI_OVLY_SAVE_PARMS  typedef LPMCI_OVLY_SAVE_PARMSA
endif 
else 
MCI_OVLY_SAVE_PARMS	struct
dwCallback	DWORD	?
lpfilename	LPSTR	?
rc	RECT	<>
MCI_OVLY_SAVE_PARMS	ends

LPMCI_OVLY_SAVE_PARMS typedef ptr MCI_OVLY_SAVE_PARMS

endif 
ifdef _WIN32 
MCI_OVLY_LOAD_PARMSA	struct
dwCallback	DWORD	?
lpfilename	LPSTR	?
rc	RECT	<>
MCI_OVLY_LOAD_PARMSA	ends

PMCI_OVLY_LOAD_PARMSA typedef ptr MCI_OVLY_LOAD_PARMSA
LPMCI_OVLY_LOAD_PARMSA typedef ptr MCI_OVLY_LOAD_PARMSA

MCI_OVLY_LOAD_PARMSW	struct
dwCallback	DWORD	?
lpfilename	LPWSTR	?
rc	RECT	<>
MCI_OVLY_LOAD_PARMSW	ends

PMCI_OVLY_LOAD_PARMSW typedef ptr MCI_OVLY_LOAD_PARMSW
LPMCI_OVLY_LOAD_PARMSW typedef ptr MCI_OVLY_LOAD_PARMSW

ifdef UNICODE 
MCI_OVLY_LOAD_PARMS  typedef MCI_OVLY_LOAD_PARMSW
PMCI_OVLY_LOAD_PARMS  typedef PMCI_OVLY_LOAD_PARMSW
LPMCI_OVLY_LOAD_PARMS  typedef LPMCI_OVLY_LOAD_PARMSW
else 
MCI_OVLY_LOAD_PARMS  typedef MCI_OVLY_LOAD_PARMSA
PMCI_OVLY_LOAD_PARMS  typedef PMCI_OVLY_LOAD_PARMSA
LPMCI_OVLY_LOAD_PARMS  typedef LPMCI_OVLY_LOAD_PARMSA
endif 
else 
MCI_OVLY_LOAD_PARMS	struct
dwCallback	DWORD	?
lpfilename	LPSTR	?
rc	RECT	<>
MCI_OVLY_LOAD_PARMS	ends

LPMCI_OVLY_LOAD_PARMS typedef ptr MCI_OVLY_LOAD_PARMS

endif 
endif 
endif 
ifndef NEWTRANSPARENT
NEWTRANSPARENT	EQU	3
QUERYROPSUPPORT	EQU	40
endif 
SELECTDIB	EQU	41
DIBINDEX macro n
	exitm <MAKELONG ( ( n ) , 10FFh ) >
	endm
ifndef SC_SCREENSAVE
SC_SCREENSAVE	EQU	0F140h
endif 
ifdef __cplusplus 
endif 
ifdef _WIN32 
	include poppack.inc
else 
ifndef RC_INVOKED
;#pragma pack ( ) 
endif 
endif 
endif 
