Unit Wave_System_Control

*****************************************************} { } { Delphi Runtime Library } { Windows 32bit API Interface Unit } { Multimedia Interface unit } { } { Copyright (c) 1992,97 Borland International } { } {

Classes

Functions

auxGetDevCaps -
auxGetDevCapsA -
auxGetDevCapsW -
auxGetNumDevs - separate left-right volume control } { auxiliary audio function prototypes
auxGetVolume -
auxOutMessage -
auxSetVolume -
CloseDriver -
DefDriverProc -
DIBIndex - DIB.
DrvGetModuleHandle -
GetDriverModuleHandle -
joyGetDevCaps -
joyGetDevCapsA -
joyGetDevCapsW -
joyGetNumDevs - joystick function prototypes
joyGetPos -
joyGetPosEx -
joyGetThreshold -
joyReleaseCapture -
joySetCapture -
joySetThreshold -
mciExecute -
mciGetCreatorTask -
mciGetDeviceID -
mciGetDeviceIDA -
mciGetDeviceIDFromElementID -
mciGetDeviceIDFromElementIDA -
mciGetDeviceIDFromElementIDW -
mciGetDeviceIDW -
mciGetErrorString -
mciGetErrorStringA -
mciGetErrorStringW -
mciGetYieldProc -
mciSendCommand -
mciSendCommandA - MCI function prototypes
mciSendCommandW -
mciSendString -
mciSendStringA -
mciSendStringW -
mciSetYieldProc -
mci_HMS_Hour -
mci_HMS_Minute -
mci_HMS_Second -
mci_Make_HMS -
mci_Make_MSF -
mci_Make_TMSF -
mci_MSF_Frame -
mci_MSF_Minute - MCI time format conversion macros
mci_MSF_Second -
mci_TMSF_Frame -
mci_TMSF_Minute -
mci_TMSF_Second -
mci_TMSF_Track -
midiConnect -
midiDisconnect -
midiInAddBuffer -
midiInClose -
midiInGetDevCaps -
midiInGetDevCapsA -
midiInGetDevCapsW -
midiInGetErrorText -
midiInGetErrorTextA -
midiInGetErrorTextW -
midiInGetID -
midiInGetNumDevs -
midiInMessage -
midiInOpen -
midiInPrepareHeader -
midiInReset -
midiInStart -
midiInStop -
midiInUnprepareHeader -
midiOutCacheDrumPatches -
midiOutCachePatches -
midiOutClose -
midiOutGetDevCaps -
midiOutGetDevCapsA -
midiOutGetDevCapsW -
midiOutGetErrorText -
midiOutGetErrorTextA -
midiOutGetErrorTextW -
midiOutGetID -
midiOutGetNumDevs - MIDI function prototypes
midiOutGetVolume -
midiOutLongMsg -
midiOutMessage -
midiOutOpen -
midiOutPrepareHeader -
midiOutReset -
midiOutSetVolume -
midiOutShortMsg -
midiOutUnprepareHeader -
midiStreamClose -
midiStreamOpen -
midiStreamOut -
midiStreamPause -
midiStreamPosition -
midiStreamProperty -
midiStreamRestart -
midiStreamStop -
mixerClose -
mixerGetControlDetails -
mixerGetControlDetailsA -
mixerGetControlDetailsW -
mixerGetDevCaps -
mixerGetDevCapsA -
mixerGetDevCapsW -
mixerGetID -
mixerGetLineControls -
mixerGetLineControlsA -
mixerGetLineControlsW -
mixerGetLineInfo -
mixerGetLineInfoA -
mixerGetLineInfoW -
mixerGetNumDevs -
mixerMessage -
mixerOpen -
mixerSetControlDetails -
mmioAdvance -
mmioAscend -
mmioClose -
mmioCreateChunk -
mmioDescend -
mmioFlush -
mmioGetInfo -
mmioInstallIOProc -
mmioInstallIOProcA -
mmioInstallIOProcW -
mmioOpen -
mmioOpenA -
mmioOpenW -
mmioRead -
mmioRename -
mmioRenameA -
mmioRenameW -
mmioSeek -
mmioSendMessage -
mmioSetBuffer -
mmioSetInfo -
mmioStringToFOURCC -
mmioStringToFOURCCA - default buffer size } { MMIO function prototypes
mmioStringToFOURCCW -
mmioWrite -
mmsystemGetVersion - ************************************************************************* General MMSYSTEM support
OpenDriver -
PlaySound -
PlaySoundA -
PlaySoundW -
SendDriverMessage -
sndPlaySound -
sndPlaySoundA - ************************************************************************* Sound support
sndPlaySoundW -
timeBeginPeriod -
timeEndPeriod -
timeGetDevCaps -
timeGetSystemTime - timer function prototypes
timeGetTime -
timeKillEvent -
timeSetEvent -
waveInAddBuffer -
waveInClose -
waveInGetDevCaps -
waveInGetDevCapsA -
waveInGetDevCapsW -
waveInGetErrorText -
waveInGetErrorTextA -
waveInGetErrorTextW -
waveInGetID -
waveInGetNumDevs -
waveInGetPosition -
waveInMessage -
waveInOpen -
waveInPrepareHeader -
waveInReset -
waveInStart -
waveInStop -
waveInUnprepareHeader -
waveOutBreakLoop -
waveOutClose -
waveOutGetDevCaps -
waveOutGetDevCapsA -
waveOutGetDevCapsW -
waveOutGetErrorText -
waveOutGetErrorTextA -
waveOutGetErrorTextW -
waveOutGetID -
waveOutGetNumDevs - waveform audio function prototypes
waveOutGetPitch -
waveOutGetPlaybackRate -
waveOutGetPosition -
waveOutGetVolume -
waveOutMessage -
waveOutOpen -
waveOutPause -
waveOutPrepareHeader -
waveOutReset -
waveOutRestart -
waveOutSetPitch -
waveOutSetPlaybackRate -
waveOutSetVolume -
waveOutUnprepareHeader -
waveOutWrite -

Types

FOURCC
HDRVR
HMIDI
HMIDIIN
HMIDIOUT
HMIDISTRM
HMIXER
HMIXEROBJ
HMMIO
HWAVE
HWAVEIN
HWAVEOUT
MCIDEVICEID
MCIERROR
MMRESULT
MMVERSION
PAuxCaps
PAuxCapsA
PAuxCapsW
PDrvConfigInfo
PDrvConfigInfoEx
PHMIDI
PHMIDIIN
PHMIDIOUT
PHMIDISTRM
PHMIXER
PHMIXEROBJ
PHMMIO
PHWAVE
PHWAVEIN
PHWAVEOUT
PJoyCaps
PJoyCapsA
PJoyCapsW
PJoyInfo
PJoyInfoEx
PKeyArray
PMCI_Anim_Open_Parms
PMCI_Anim_Open_ParmsA
PMCI_Anim_Open_ParmsW
PMCI_Anim_Play_Parms
PMCI_Anim_Rect_Parms
PMCI_Anim_Step_Parms
PMCI_Anim_Update_Parms
PMCI_Anim_Window_Parms
PMCI_Anim_Window_ParmsA
PMCI_Anim_Window_ParmsW
PMCI_Break_Parms
PMCI_Generic_Parms
PMCI_GetDevCaps_Parms
PMCI_Info_Parms
PMCI_Info_ParmsA
PMCI_Info_ParmsW
PMCI_Load_Parms
PMCI_Load_ParmsA
PMCI_Load_ParmsW
PMCI_Open_Parms
PMCI_Open_ParmsA
PMCI_Open_ParmsW
PMCI_Ovly_Load_Parms
PMCI_Ovly_Load_ParmsA
PMCI_Ovly_Load_ParmsW
PMCI_Ovly_Open_Parms
PMCI_Ovly_Open_ParmsA
PMCI_Ovly_Open_ParmsW
PMCI_Ovly_Rect_Parms
PMCI_Ovly_Save_Parms
PMCI_Ovly_Save_ParmsA
PMCI_Ovly_Save_ParmsW
PMCI_Ovly_Window_Parms
PMCI_Ovly_Window_ParmsA
PMCI_Ovly_Window_ParmsW
PMCI_Play_Parms
PMCI_Record_Parms
PMCI_Save_Parms
PMCI_Save_ParmsA
PMCI_Save_ParmsW
PMCI_Seek_Parms
PMCI_Seq_Set_Parms
PMCI_Set_Parms
PMCI_Sound_Parms
PMCI_Status_Parms
PMCI_SysInfo_Parms
PMCI_SysInfo_ParmsA
PMCI_SysInfo_ParmsW
PMCI_VD_Escape_Parms
PMCI_VD_Escape_ParmsA
PMCI_VD_Escape_ParmsW
PMCI_VD_Play_Parms
PMCI_VD_Step_Parms
PMCI_Wave_Delete_Parms
PMCI_Wave_Open_Parms
PMCI_Wave_Open_ParmsA
PMCI_Wave_Open_ParmsW
PMCI_Wave_Set_Parms
PMidiEvent
PMidiHdr
PMidiInCaps
PMidiInCapsA
PMidiInCapsW
PMidiOutCaps
PMidiOutCapsA
PMidiOutCapsW
PMidiPropTempo
PMidiPropTimeDiv
PMidiStrmBuffVer
PMixerCaps
PMixerCapsA
PMixerCapsW
PMixerControl
PMixerControlA
PMixerControlDetails
PMixerControlDetailsBoolean
PMixerControlDetailsListText
PMixerControlDetailsListTextA
PMixerControlDetailsListTextW
PMixerControlDetailsSigned
PMixerControlDetailsUnsigned
PMixerControlW
PMixerLine
PMixerLineA
PMixerLineControls
PMixerLineControlsA
PMixerLineControlsW
PMixerLineW
PMMCKInfo
PMMIOInfo
PMMTime
PPatchArray
PPCMWaveFormat
PTimeCaps
PWaveFormat
PWaveFormatEx
PWaveHdr
PWaveInCaps
PWaveInCapsA
PWaveInCapsW
PWaveOutCaps
PWaveOutCapsA
PWaveOutCapsW
TAuxCaps
TAuxCapsA
TAuxCapsW
TDrvConfigInfo
TDrvConfigInfoEx
TFNDriverProc
TFNDrvCallBack
TFNMidiCallBack
TFNMMIOProc
TFNTimeCallBack
TFNWaveCallBack
TFNYieldProc
TJoyCaps
TJoyCapsA
TJoyCapsW
TJoyInfo
TJoyInfoEx
TKeyArray
TMCI_Anim_Open_Parms
TMCI_Anim_Open_ParmsA
TMCI_Anim_Open_ParmsW
TMCI_Anim_Play_Parms
TMCI_Anim_Rect_Parms
TMCI_Anim_Step_Parms
TMCI_Anim_Update_Parms
TMCI_Anim_Window_Parms
TMCI_Anim_Window_ParmsA
TMCI_Anim_Window_ParmsW
TMCI_BReak_Parms
TMCI_Generic_Parms
TMCI_GetDevCaps_Parms
TMCI_Info_Parms
TMCI_Info_ParmsA
TMCI_Info_ParmsW
TMCI_Load_Parms
TMCI_Load_ParmsA
TMCI_Load_ParmsW
TMCI_Open_Parms
TMCI_Open_ParmsA
TMCI_Open_ParmsW
TMCI_Ovly_Load_Parms
TMCI_Ovly_Load_ParmsA
TMCI_Ovly_Load_ParmsW
TMCI_Ovly_Open_Parms
TMCI_Ovly_Open_ParmsA
TMCI_Ovly_Open_ParmsW
TMCI_Ovly_Rect_Parms
TMCI_Ovly_Save_Parms
TMCI_Ovly_Save_ParmsA
TMCI_Ovly_Save_ParmsW
TMCI_Ovly_Window_Parms
TMCI_Ovly_Window_ParmsA
TMCI_Ovly_Window_ParmsW
TMCI_Play_Parms
TMCI_Record_Parms
TMCI_SaveParms
TMCI_SaveParmsA
TMCI_SaveParmsW
TMCI_Seek_Parms
TMCI_Seq_Set_Parms
TMCI_Set_Parms
TMCI_Sound_Parms
TMCI_Status_Parms
TMCI_SysInfo_Parms
TMCI_SysInfo_ParmsA
TMCI_SysInfo_ParmsW
TMCI_VD_Escape_Parms
TMCI_VD_Escape_ParmsA
TMCI_VD_Escape_ParmsW
TMCI_VD_Play_Parms
TMCI_VD_Step_Parms
TMCI_Wave_Delete_Parms
TMCI_Wave_Open_Parms
TMCI_Wave_Open_ParmsA
TMCI_Wave_Open_ParmsW
TMCI_Wave_Set_Parms
TMidiEvent
TMidiHdr
TMidiInCaps
TMidiInCapsA
TMidiInCapsW
TMidiOutCaps
TMidiOutCapsA
TMidiOutCapsW
TMidiPropTempo
TMidiPropTimeDiv
TMidiStrmBuffVer
TMixerCaps
TMixerCapsA
TMixerCapsW
TMixerControl
TMixerControlA
TMixerControlDetails
TMixerControlDetailsBoolean
TMixerControlDetailsListText
TMixerControlDetailsListTextA
TMixerControlDetailsListTextW
TMixerControlDetailsSigned
TMixerControlDetailsUnsigned
TMixerControlW
TMixerLine
TMixerLineA
TMixerLineControls
TMixerLineControlsA
TMixerLineControlsW
TMixerLineW
TMMCKInfo
TMMIOInfo
TMMTime
TPatchArray
TPCMWaveFormat
TTimeCaps
TWaveFormat
TWaveFormatEx
TWaveHdr
TWaveInCaps
TWaveInCapsA
TWaveInCapsW
TWaveOutCaps
TWaveOutCapsA
TWaveOutCapsW
VERSION

Constants

AUXCAPS_AUXIN
AUXCAPS_CDAUDIO
AUXCAPS_LRVOLUME
AUXCAPS_VOLUME
AUX_MAPPER
CALLBACK_EVENT
CALLBACK_FUNCTION
CALLBACK_NULL
CALLBACK_TASK
CALLBACK_THREAD
CALLBACK_TYPEMASK
CALLBACK_WINDOW
CFSEPCHAR
DRVCNF_CANCEL
DRVCNF_OK
DRVCNF_RESTART
DRV_CANCEL
DRV_CLOSE
DRV_CONFIGURE
DRV_DISABLE
DRV_ENABLE
DRV_EXITSESSION
DRV_FREE
DRV_INSTALL
DRV_LOAD
DRV_MCI_FIRST
DRV_MCI_LAST
DRV_OK
DRV_OPEN
DRV_POWER
DRV_QUERYCONFIGURE
DRV_REMOVE
DRV_RESERVED
DRV_RESTART
DRV_USER
FOURCC_DOS
FOURCC_LIST
FOURCC_MEM
FOURCC_RIFF
JOYCAPS_HASPOV
JOYCAPS_HASR
JOYCAPS_HASU
JOYCAPS_HASV
JOYCAPS_HASZ
JOYCAPS_POV4DIR
JOYCAPS_POVCTS
JOYERR_BASE
JOYERR_NOCANDO
JOYERR_NOERROR
JOYERR_PARMS
JOYERR_UNPLUGGED
JOYSTICKID1
JOYSTICKID2
JOY_BUTTON1
JOY_BUTTON10
JOY_BUTTON11
JOY_BUTTON12
JOY_BUTTON13
JOY_BUTTON14
JOY_BUTTON15
JOY_BUTTON16
JOY_BUTTON17
JOY_BUTTON18
JOY_BUTTON19
JOY_BUTTON1CHG
JOY_BUTTON2
JOY_BUTTON20
JOY_BUTTON21
JOY_BUTTON22
JOY_BUTTON23
JOY_BUTTON24
JOY_BUTTON25
JOY_BUTTON26
JOY_BUTTON27
JOY_BUTTON28
JOY_BUTTON29
JOY_BUTTON2CHG
JOY_BUTTON3
JOY_BUTTON30
JOY_BUTTON31
JOY_BUTTON32
JOY_BUTTON3CHG
JOY_BUTTON4
JOY_BUTTON4CHG
JOY_BUTTON5
JOY_BUTTON6
JOY_BUTTON7
JOY_BUTTON8
JOY_BUTTON9
JOY_CAL_READ3
JOY_CAL_READ4
JOY_CAL_READ5
JOY_CAL_READ6
JOY_CAL_READALWAYS
JOY_CAL_READRONLY
JOY_CAL_READUONLY
JOY_CAL_READVONLY
JOY_CAL_READXONLY
JOY_CAL_READXYONLY
JOY_CAL_READYONLY
JOY_CAL_READZONLY
JOY_POVBACKWARD
JOY_POVCENTERED
JOY_POVFORWARD
JOY_POVLEFT
JOY_POVRIGHT
JOY_RETURNALL
JOY_RETURNBUTTONS
JOY_RETURNCENTERED
JOY_RETURNPOV
JOY_RETURNPOVCTS
JOY_RETURNR
JOY_RETURNRAWDATA
JOY_RETURNU
JOY_RETURNV
JOY_RETURNX
JOY_RETURNY
JOY_RETURNZ
JOY_USEDEADZONE
MAXERRORLENGTH
MAXPNAMELEN
MAX_JOYSTICKOEMVXDNAME
MCIERR_BAD_CONSTANT
MCIERR_BAD_INTEGER
MCIERR_BAD_TIME_FORMAT
MCIERR_BASE
MCIERR_CANNOT_LOAD_DRIVER
MCIERR_CANNOT_USE_ALL
MCIERR_CREATEWINDOW
MCIERR_CUSTOM_DRIVER_BASE
MCIERR_DEVICE_LENGTH
MCIERR_DEVICE_LOCKED
MCIERR_DEVICE_NOT_INSTALLED
MCIERR_DEVICE_NOT_READY
MCIERR_DEVICE_OPEN
MCIERR_DEVICE_ORD_LENGTH
MCIERR_DEVICE_TYPE_REQUIRED
MCIERR_DRIVER
MCIERR_DRIVER_INTERNAL
MCIERR_DUPLICATE_ALIAS
MCIERR_DUPLICATE_FLAGS
MCIERR_EXTENSION_NOT_FOUND
MCIERR_EXTRA_CHARACTERS
MCIERR_FILENAME_REQUIRED
MCIERR_FILE_NOT_FOUND
MCIERR_FILE_NOT_SAVED
MCIERR_FILE_READ
MCIERR_FILE_WRITE
MCIERR_FLAGS_NOT_COMPATIBLE
MCIERR_GET_CD
MCIERR_HARDWARE
MCIERR_ILLEGAL_FOR_AUTO_OPEN
MCIERR_INTERNAL
MCIERR_INVALID_DEVICE_ID
MCIERR_INVALID_DEVICE_NAME
MCIERR_INVALID_FILE
MCIERR_MISSING_COMMAND_STRING
MCIERR_MISSING_DEVICE_NAME
MCIERR_MISSING_PARAMETER
MCIERR_MISSING_STRING_ARGUMENT
MCIERR_MULTIPLE
MCIERR_MUST_USE_SHAREABLE
MCIERR_NEW_REQUIRES_ALIAS
MCIERR_NONAPPLICABLE_FUNCTION
MCIERR_NOTIFY_ON_AUTO_OPEN
MCIERR_NO_CLOSING_QUOTE
MCIERR_NO_ELEMENT_ALLOWED
MCIERR_NO_IDENTITY
MCIERR_NO_INTEGER
MCIERR_NO_WINDOW
MCIERR_NULL_PARAMETER_BLOCK
MCIERR_OUTOFRANGE
MCIERR_OUT_OF_MEMORY
MCIERR_PARAM_OVERFLOW
MCIERR_PARSER_INTERNAL
MCIERR_SEQ_DIV_INCOMPATIBLE
MCIERR_SEQ_NOMIDIPRESENT
MCIERR_SEQ_PORTUNSPECIFIED
MCIERR_SEQ_PORT_INUSE
MCIERR_SEQ_PORT_MAPNODEVICE
MCIERR_SEQ_PORT_MISCERROR
MCIERR_SEQ_PORT_NONEXISTENT
MCIERR_SEQ_TIMER
MCIERR_SET_CD
MCIERR_SET_DRIVE
MCIERR_UNNAMED_RESOURCE
MCIERR_UNRECOGNIZED_COMMAND
MCIERR_UNRECOGNIZED_KEYWORD
MCIERR_UNSUPPORTED_FUNCTION
MCIERR_WAVE_INPUTSINUSE
MCIERR_WAVE_INPUTSUNSUITABLE
MCIERR_WAVE_INPUTUNSPECIFIED
MCIERR_WAVE_OUTPUTSINUSE
MCIERR_WAVE_OUTPUTSUNSUITABLE
MCIERR_WAVE_OUTPUTUNSPECIFIED
MCIERR_WAVE_SETINPUTINUSE
MCIERR_WAVE_SETINPUTUNSUITABLE
MCIERR_WAVE_SETOUTPUTINUSE
MCIERR_WAVE_SETOUTPUTUNSUITABLE
MCI_ALL_DEVICE_ID
MCI_ANIM_GETDEVCAPS_CAN_REVERSE
MCI_ANIM_GETDEVCAPS_CAN_STRETCH
MCI_ANIM_GETDEVCAPS_FAST_RATE
MCI_ANIM_GETDEVCAPS_MAX_WINDOWS
MCI_ANIM_GETDEVCAPS_NORMAL_RATE
MCI_ANIM_GETDEVCAPS_PALETTES
MCI_ANIM_GETDEVCAPS_SLOW_RATE
MCI_ANIM_INFO_TEXT
MCI_ANIM_OPEN_NOSTATIC
MCI_ANIM_OPEN_PARENT
MCI_ANIM_OPEN_WS
MCI_ANIM_PLAY_FAST
MCI_ANIM_PLAY_REVERSE
MCI_ANIM_PLAY_SCAN
MCI_ANIM_PLAY_SLOW
MCI_ANIM_PLAY_SPEED
MCI_ANIM_PUT_DESTINATION
MCI_ANIM_PUT_SOURCE
MCI_ANIM_REALIZE_BKGD
MCI_ANIM_REALIZE_NORM
MCI_ANIM_RECT
MCI_ANIM_STATUS_FORWARD
MCI_ANIM_STATUS_HPAL
MCI_ANIM_STATUS_HWND
MCI_ANIM_STATUS_SPEED
MCI_ANIM_STATUS_STRETCH
MCI_ANIM_STEP_FRAMES
MCI_ANIM_STEP_REVERSE
MCI_ANIM_UPDATE_HDC
MCI_ANIM_WHERE_DESTINATION
MCI_ANIM_WHERE_SOURCE
MCI_ANIM_WINDOW_DEFAULT
MCI_ANIM_WINDOW_DISABLE_STRETCH
MCI_ANIM_WINDOW_ENABLE_STRETCH
MCI_ANIM_WINDOW_HWND
MCI_ANIM_WINDOW_STATE
MCI_ANIM_WINDOW_TEXT
MCI_BREAK
MCI_BREAK_HWND
MCI_BREAK_KEY
MCI_BREAK_OFF
MCI_CDA_STATUS_TYPE_TRACK
MCI_CDA_TRACK_AUDIO
MCI_CDA_TRACK_OTHER
MCI_CD_OFFSET
MCI_CLOSE
MCI_COPY
MCI_CUE
MCI_CUT
MCI_DELETE
MCI_DEVTYPE_ANIMATION
MCI_DEVTYPE_CD_AUDIO
MCI_DEVTYPE_DAT
MCI_DEVTYPE_DIGITAL_VIDEO
MCI_DEVTYPE_FIRST
MCI_DEVTYPE_FIRST_USER
MCI_DEVTYPE_LAST
MCI_DEVTYPE_OTHER
MCI_DEVTYPE_OVERLAY
MCI_DEVTYPE_SCANNER
MCI_DEVTYPE_SEQUENCER
MCI_DEVTYPE_VCR
MCI_DEVTYPE_VIDEODISC
MCI_DEVTYPE_WAVEFORM_AUDIO
MCI_ESCAPE
MCI_FORMAT_BYTES
MCI_FORMAT_FRAMES
MCI_FORMAT_HMS
MCI_FORMAT_MILLISECONDS
MCI_FORMAT_MSF
MCI_FORMAT_SAMPLES
MCI_FORMAT_SMPTE_24
MCI_FORMAT_SMPTE_25
MCI_FORMAT_SMPTE_30
MCI_FORMAT_SMPTE_30DROP
MCI_FORMAT_TMSF
MCI_FREEZE
MCI_FROM
MCI_GETDEVCAPs
MCI_GETDEVCAPS_CAN_EJECT
MCI_GETDEVCAPS_CAN_PLAY
MCI_GETDEVCAPS_CAN_RECORD
MCI_GETDEVCAPS_CAN_SAVE
MCI_GETDEVCAPS_COMPOUND_DEVICE
MCI_GETDEVCAPS_DEVICE_TYPE
MCI_GETDEVCAPS_HAS_AUDIO
MCI_GETDEVCAPS_HAS_VIDEO
MCI_GETDEVCAPS_ITEM
MCI_GETDEVCAPS_USES_FILES
MCI_INFO
MCI_INFO_COPYRIGHT
MCI_INFO_FILE
MCI_INFO_MEDIA_IDENTITY
MCI_INFO_MEDIA_UPC
MCI_INFO_NAME
MCI_INFO_PRODUCT
MCI_LAST
MCI_LOAD
MCI_LOAD_FILE
MCI_MODE_NOT_READY
MCI_MODE_OPEN
MCI_MODE_PAUSE
MCI_MODE_PLAY
MCI_MODE_RECORD
MCI_MODE_SEEK
MCI_MODE_STOP
MCI_NOTIFY
MCI_NOTIFY_ABORTED
MCI_NOTIFY_FAILURE
MCI_NOTIFY_SUCCESSFUL
MCI_NOTIFY_SUPERSEDED
MCI_OPEN
MCI_OPEN_ALIAS
MCI_OPEN_ELEMENT
MCI_OPEN_ELEMENT_ID
MCI_OPEN_SHAREABLE
MCI_OPEN_TYPE
MCI_OPEN_TYPE_ID
MCI_OVLY_GETDEVCAPS_CAN_FREEZE
MCI_OVLY_GETDEVCAPS_CAN_STRETCH
MCI_OVLY_GETDEVCAPS_MAX_WINDOWS
MCI_OVLY_INFO_TEXT
MCI_OVLY_OPEN_PARENT
MCI_OVLY_OPEN_WS
MCI_OVLY_PUT_DESTINATION
MCI_OVLY_PUT_FRAME
MCI_OVLY_PUT_SOURCE
MCI_OVLY_PUT_VIDEO
MCI_OVLY_RECT
MCI_OVLY_STATUS_HWND
MCI_OVLY_STATUS_STRETCH
MCI_OVLY_WHERE_DESTINATION
MCI_OVLY_WHERE_FRAME
MCI_OVLY_WHERE_SOURCE
MCI_OVLY_WHERE_VIDEO
MCI_OVLY_WINDOW_DEFAULT
MCI_OVLY_WINDOW_DISABLE_STRETCH
MCI_OVLY_WINDOW_ENABLE_STRETCH
MCI_OVLY_WINDOW_HWND
MCI_OVLY_WINDOW_STATE
MCI_OVLY_WINDOW_TEXT
MCI_PASTE
MCI_PAUSE
MCI_PLAY
MCI_PUT
MCI_REALIZE
MCI_RECORD
MCI_RECORD_INSERT
MCI_RECORD_OVERWRITE
MCI_RESUME
MCI_SAVE
MCI_SAVE_FILE
MCI_SEEK
MCI_SEEK_TO_END
MCI_SEEK_TO_START
MCI_SEQ_DIV_PPQN
MCI_SEQ_DIV_SMPTE_24
MCI_SEQ_DIV_SMPTE_25
MCI_SEQ_DIV_SMPTE_30
MCI_SEQ_DIV_SMPTE_30DROP
MCI_SEQ_FILE
MCI_SEQ_FORMAT_SONGPTR
MCI_SEQ_MAPPER
MCI_SEQ_MIDI
MCI_SEQ_NONE
MCI_SEQ_OFFSET
MCI_SEQ_SET_MASTER
MCI_SEQ_SET_OFFSET
MCI_SEQ_SET_PORT
MCI_SEQ_SET_SLAVE
MCI_SEQ_SET_TEMPO
MCI_SEQ_SMPTE
MCI_SEQ_STATUS_COPYRIGHT
MCI_SEQ_STATUS_DIVTYPE
MCI_SEQ_STATUS_MASTER
MCI_SEQ_STATUS_NAME
MCI_SEQ_STATUS_OFFSET
MCI_SEQ_STATUS_PORT
MCI_SEQ_STATUS_SLAVE
MCI_SEQ_STATUS_TEMPO
MCI_SET
MCI_SET_AUDIO
MCI_SET_AUDIO_ALL
MCI_SET_AUDIO_LEFT
MCI_SET_AUDIO_RIGHT
MCI_SET_DOOR_CLOSED
MCI_SET_DOOR_OPEN
MCI_SET_OFF
MCI_SET_ON
MCI_SET_TIME_FORMAT
MCI_SET_VIDEO
MCI_SOUND
MCI_SOUND_NAME
MCI_SPIN
MCI_STATUS
MCI_STATUS_CURRENT_TRACK
MCI_STATUS_ITEM
MCI_STATUS_LENGTH
MCI_STATUS_MEDIA_PRESENT
MCI_STATUS_MODE
MCI_STATUS_NUMBER_OF_TRACKS
MCI_STATUS_POSITION
MCI_STATUS_READY
MCI_STATUS_START
MCI_STATUS_TIME_FORMAT
MCI_STEP
MCI_STOP
MCI_STRING_OFFSET
MCI_SYSINFO
MCI_SYSINFO_INSTALLNAME
MCI_SYSINFO_NAME
MCI_SYSINFO_OPEN
MCI_SYSINFO_QUANTITY
MCI_TO
MCI_TRACK
MCI_UNFREEZE
MCI_UPDATE
MCI_USER_MESSAGES
MCI_VD_ESCAPE_STRING
MCI_VD_FORMAT_TRACK
MCI_VD_GETDEVCAPS_CAN_REVERSE
MCI_VD_GETDEVCAPS_CAV
MCI_VD_GETDEVCAPS_CLV
MCI_VD_GETDEVCAPS_FAST_RATE
MCI_VD_GETDEVCAPS_NORMAL_RATE
MCI_VD_GETDEVCAPS_SLOW_RATE
MCI_VD_MEDIA_CAV
MCI_VD_MEDIA_CLV
MCI_VD_MEDIA_OTHER
MCI_VD_MODE_PARK
MCI_VD_OFFSET
MCI_VD_PLAY_FAST
MCI_VD_PLAY_REVERSE
MCI_VD_PLAY_SCAN
MCI_VD_PLAY_SLOW
MCI_VD_PLAY_SPEED
MCI_VD_SEEK_REVERSE
MCI_VD_SPIN_DOWN
MCI_VD_SPIN_UP
MCI_VD_STATUS_DISC_SIZE
MCI_VD_STATUS_FORWARD
MCI_VD_STATUS_MEDIA_TYPE
MCI_VD_STATUS_SIDE
MCI_VD_STATUS_SPEED
MCI_VD_STEP_FRAMES
MCI_VD_STEP_REVERSE
MCI_WAIT
MCI_WAVE_GETDEVCAPS_INPUTS
MCI_WAVE_GETDEVCAPS_OUTPUTS
MCI_WAVE_INPUT
MCI_WAVE_MAPPER
MCI_WAVE_OFFSET
MCI_WAVE_OPEN_BUFFER
MCI_WAVE_OUTPUT
MCI_WAVE_PCM
MCI_WAVE_SET_ANYINPUT
MCI_WAVE_SET_ANYOUTPUT
MCI_WAVE_SET_AVGBYTESPERSEC
MCI_WAVE_SET_BITSPERSAMPLE
MCI_WAVE_SET_BLOCKALIGN
MCI_WAVE_SET_CHANNELS
MCI_WAVE_SET_FORMATTAG
MCI_WAVE_SET_SAMPLESPERSEC
MCI_WAVE_STATUS_AVGBYTESPERSEC
MCI_WAVE_STATUS_BITSPERSAMPLE
MCI_WAVE_STATUS_BLOCKALIGN
MCI_WAVE_STATUS_CHANNELS
MCI_WAVE_STATUS_FORMATTAG
MCI_WAVE_STATUS_LEVEL
MCI_WAVE_STATUS_SAMPLESPERSEC
MCI_WHERE
MCI_WINDOW
MEVT_COMMENT
MEVT_F_CALLBACK
MEVT_F_LONG
MEVT_F_SHORT
MEVT_LONGMSG
MEVT_NOP
MEVT_SHORTMSG
MEVT_TEMPO
MEVT_VERSION
MHDR_DONE
MHDR_INQUEUE
MHDR_ISSTRM
MHDR_PREPARED
MIDICAPS_CACHE
MIDICAPS_LRVOLUME
MIDICAPS_STREAM
MIDICAPS_VOLUME
MIDIERR_BADOPENMODE
MIDIERR_BASE
MIDIERR_DONT_CONTINUE
MIDIERR_INVALIDSETUP
MIDIERR_LASTERROR
MIDIERR_NODEVICE
MIDIERR_NOMAP
MIDIERR_NOTREADY
MIDIERR_STILLPLAYING
MIDIERR_UNPREPARED
MIDIMAPPER
MIDIPATCHSIZE
MIDIPROP_GET
MIDIPROP_SET
MIDIPROP_TEMPO
MIDIPROP_TIMEDIV
MIDISTRM_ERROR
MIDI_CACHE_ALL
MIDI_CACHE_BESTFIT
MIDI_CACHE_QUERY
MIDI_IO_STATUS
MIDI_MAPPER
MIDI_UNCACHE
MIM_CLOSE
MIM_DATA
MIM_ERROR
MIM_LONGDATA
MIM_LONGERROR
MIM_MOREDATA
MIM_OPEN
MIXERCONTROL_CONTROLF_DISABLED
MIXERCONTROL_CONTROLF_MULTIPLE
MIXERCONTROL_CONTROLF_UNIFORM
MIXERCONTROL_CONTROLTYPE_BASS
MIXERCONTROL_CONTROLTYPE_BOOLEAN
MIXERCONTROL_CONTROLTYPE_BOOLEANMETER
MIXERCONTROL_CONTROLTYPE_BUTTON
MIXERCONTROL_CONTROLTYPE_CUSTOM
MIXERCONTROL_CONTROLTYPE_DECIBELS
MIXERCONTROL_CONTROLTYPE_EQUALIZER
MIXERCONTROL_CONTROLTYPE_FADER
MIXERCONTROL_CONTROLTYPE_LOUDNESS
MIXERCONTROL_CONTROLTYPE_MICROTIME
MIXERCONTROL_CONTROLTYPE_MILLITIME
MIXERCONTROL_CONTROLTYPE_MIXER
MIXERCONTROL_CONTROLTYPE_MONO
MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT
MIXERCONTROL_CONTROLTYPE_MUTE
MIXERCONTROL_CONTROLTYPE_MUX
MIXERCONTROL_CONTROLTYPE_ONOFF
MIXERCONTROL_CONTROLTYPE_PAN
MIXERCONTROL_CONTROLTYPE_PEAKMETER
MIXERCONTROL_CONTROLTYPE_PERCENT
MIXERCONTROL_CONTROLTYPE_QSOUNDPAN
MIXERCONTROL_CONTROLTYPE_SIGNED
MIXERCONTROL_CONTROLTYPE_SIGNEDMETER
MIXERCONTROL_CONTROLTYPE_SINGLESELECT
MIXERCONTROL_CONTROLTYPE_SLIDER
MIXERCONTROL_CONTROLTYPE_STEREOENH
MIXERCONTROL_CONTROLTYPE_TREBLE
MIXERCONTROL_CONTROLTYPE_UNSIGNED
MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER
MIXERCONTROL_CONTROLTYPE_VOLUME
MIXERCONTROL_CT_CLASS_CUSTOM
MIXERCONTROL_CT_CLASS_FADER
MIXERCONTROL_CT_CLASS_LIST
MIXERCONTROL_CT_CLASS_MASK
MIXERCONTROL_CT_CLASS_METER
MIXERCONTROL_CT_CLASS_NUMBER
MIXERCONTROL_CT_CLASS_SLIDER
MIXERCONTROL_CT_CLASS_SWITCH
MIXERCONTROL_CT_CLASS_TIME
MIXERCONTROL_CT_SC_LIST_MULTIPLE
MIXERCONTROL_CT_SC_LIST_SINGLE
MIXERCONTROL_CT_SC_METER_POLLED
MIXERCONTROL_CT_SC_SWITCH_BOOLEAN
MIXERCONTROL_CT_SC_SWITCH_BUTTON
MIXERCONTROL_CT_SC_TIME_MICROSECS
MIXERCONTROL_CT_SC_TIME_MILLISECS
MIXERCONTROL_CT_SUBCLASS_MASK
MIXERCONTROL_CT_UNITS_BOOLEAN
MIXERCONTROL_CT_UNITS_CUSTOM
MIXERCONTROL_CT_UNITS_DECIBELS
MIXERCONTROL_CT_UNITS_MASK
MIXERCONTROL_CT_UNITS_PERCENT
MIXERCONTROL_CT_UNITS_SIGNED
MIXERCONTROL_CT_UNITS_UNSIGNED
MIXERLINE_COMPONENTTYPE_DST_DIGITAL
MIXERLINE_COMPONENTTYPE_DST_FIRST
MIXERLINE_COMPONENTTYPE_DST_HEADPHONES
MIXERLINE_COMPONENTTYPE_DST_LAST
MIXERLINE_COMPONENTTYPE_DST_LINE
MIXERLINE_COMPONENTTYPE_DST_MONITOR
MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
MIXERLINE_COMPONENTTYPE_DST_TELEPHONE
MIXERLINE_COMPONENTTYPE_DST_UNDEFINED
MIXERLINE_COMPONENTTYPE_DST_VOICEIN
MIXERLINE_COMPONENTTYPE_DST_WAVEIN
MIXERLINE_COMPONENTTYPE_SRC_ANALOG
MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY
MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC
MIXERLINE_COMPONENTTYPE_SRC_DIGITAL
MIXERLINE_COMPONENTTYPE_SRC_FIRST
MIXERLINE_COMPONENTTYPE_SRC_LAST
MIXERLINE_COMPONENTTYPE_SRC_LINE
MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE
MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER
MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER
MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE
MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED
MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT
MIXERLINE_LINEF_ACTIVE
MIXERLINE_LINEF_DISCONNECTED
MIXERLINE_LINEF_SOURCE
MIXERLINE_TARGETTYPE_AUX
MIXERLINE_TARGETTYPE_MIDIIN
MIXERLINE_TARGETTYPE_MIDIOUT
MIXERLINE_TARGETTYPE_UNDEFINED
MIXERLINE_TARGETTYPE_WAVEIN
MIXERLINE_TARGETTYPE_WAVEOUT
MIXERR_BASE
MIXERR_INVALCONTROL
MIXERR_INVALLINE
MIXERR_INVALVALUE
MIXERR_LASTERROR
MIXER_GETCONTROLDETAILSF_LISTTEXT
MIXER_GETCONTROLDETAILSF_QUERYMASK
MIXER_GETCONTROLDETAILSF_VALUE
MIXER_GETLINECONTROLSF_ALL
MIXER_GETLINECONTROLSF_ONEBYID
MIXER_GETLINECONTROLSF_ONEBYTYPE
MIXER_GETLINECONTROLSF_QUERYMASK
MIXER_GETLINEINFOF_COMPONENTTYPE
MIXER_GETLINEINFOF_DESTINATION
MIXER_GETLINEINFOF_LINEID
MIXER_GETLINEINFOF_QUERYMASK
MIXER_GETLINEINFOF_SOURCE
MIXER_GETLINEINFOF_TARGETTYPE
MIXER_LONG_NAME_CHARS
MIXER_OBJECTF_AUX
MIXER_OBJECTF_HANDLE
MIXER_OBJECTF_HMIDIIN
MIXER_OBJECTF_HMIDIOUT
MIXER_OBJECTF_HMIXER
MIXER_OBJECTF_HWAVEIN
MIXER_OBJECTF_HWAVEOUT
MIXER_OBJECTF_MIDIIN
MIXER_OBJECTF_MIDIOUT
MIXER_OBJECTF_MIXER
MIXER_OBJECTF_WAVEIN
MIXER_OBJECTF_WAVEOUT
MIXER_SETCONTROLDETAILSF_CUSTOM
MIXER_SETCONTROLDETAILSF_QUERYMASK
MIXER_SETCONTROLDETAILSF_VALUE
MIXER_SHORT_NAME_CHARS
MMIOERR_ACCESSDENIED
MMIOERR_BASE
MMIOERR_CANNOTCLOSE
MMIOERR_CANNOTEXPAND
MMIOERR_CANNOTOPEN
MMIOERR_CANNOTREAD
MMIOERR_CANNOTSEEK
MMIOERR_CANNOTWRITE
MMIOERR_CHUNKNOTFOUND
MMIOERR_FILENOTFOUND
MMIOERR_INVALIDFILE
MMIOERR_NETWORKERROR
MMIOERR_OUTOFMEMORY
MMIOERR_PATHNOTFOUND
MMIOERR_SHARINGVIOLATION
MMIOERR_TOOMANYOPENFILES
MMIOERR_UNBUFFERED
MMIOM_CLOSE
MMIOM_OPEN
MMIOM_READ
MMIOM_RENAME
MMIOM_SEEK
MMIOM_USER
MMIOM_WRITE
MMIOM_WRITEFLUSH
MMIO_ALLOCBUF
MMIO_COMPAT
MMIO_CREATE
MMIO_CREATELIST
MMIO_CREATERIFF
MMIO_DEFAULTBUFFER
MMIO_DELETE
MMIO_DENYNONE
MMIO_DENYREAD
MMIO_DENYWRITE
MMIO_DIRTY
MMIO_EMPTYBUF
MMIO_EXCLUSIVE
MMIO_EXIST
MMIO_FHOPEN
MMIO_FINDCHUNK
MMIO_FINDLIST
MMIO_FINDPROC
MMIO_FINDRIFF
MMIO_GETTEMP
MMIO_GLOBALPROC
MMIO_INSTALLPROC
MMIO_PARSE
MMIO_READ
MMIO_READWRITE
MMIO_REMOVEPROC
MMIO_RWMODE
MMIO_SHAREMODE
MMIO_TOUPPER
MMIO_UNICODEPROC
MMIO_WRITE
MMSYSERR_ALLOCATED
MMSYSERR_BADDB
MMSYSERR_BADDEVICEID
MMSYSERR_BADERRNUM
MMSYSERR_BASE
MMSYSERR_DELETEERROR
MMSYSERR_ERROR
MMSYSERR_HANDLEBUSY
MMSYSERR_INVALFLAG
MMSYSERR_INVALHANDLE
MMSYSERR_INVALIDALIAS
MMSYSERR_INVALPARAM
MMSYSERR_KEYNOTFOUND
MMSYSERR_LASTERROR
MMSYSERR_NODRIVER
MMSYSERR_NODRIVERCB
MMSYSERR_NOERROR
MMSYSERR_NOMEM
MMSYSERR_NOTENABLED
MMSYSERR_NOTSUPPORTED
MMSYSERR_READERROR
MMSYSERR_VALNOTFOUND
MMSYSERR_WRITEERROR
mmsyst
MM_ADLIB
MM_DRVM_CLOSE
MM_DRVM_DATA
MM_DRVM_ERROR
MM_DRVM_OPEN
MM_JOY1BUTTONDOWN
MM_JOY1BUTTONUP
MM_JOY1MOVE
MM_JOY1ZMOVE
MM_JOY2BUTTONDOWN
MM_JOY2BUTTONUP
MM_JOY2MOVE
MM_JOY2ZMOVE
MM_MCINOTIFY
MM_MCISIGNAL
MM_MICROSOFT
MM_MIDI_MAPPER
MM_MIM_CLOSE
MM_MIM_DATA
MM_MIM_ERROR
MM_MIM_LONGDATA
MM_MIM_LONGERROR
MM_MIM_MOREDATA
MM_MIM_OPEN
MM_MIXM_CONTROL_CHANGE
MM_MIXM_LINE_CHANGE
MM_MOM_CLOSE
MM_MOM_DONE
MM_MOM_OPEN
MM_MOM_POSITIONCB
MM_MPU401_MIDIIN
MM_MPU401_MIDIOUT
MM_PC_JOYSTICK
MM_SNDBLST_MIDIIN
MM_SNDBLST_MIDIOUT
MM_SNDBLST_SYNTH
MM_SNDBLST_WAVEIN
MM_SNDBLST_WAVEOUT
MM_STREAM_CLOSE
MM_STREAM_DONE
MM_STREAM_ERROR
MM_STREAM_OPEN
MM_WAVE_MAPPER
MM_WIM_CLOSE
MM_WIM_DATA
MM_WIM_OPEN
MM_WOM_CLOSE
MM_WOM_DONE
MM_WOM_OPEN
MOD_FMSYNTH
MOD_MAPPER
MOD_MIDIPORT
MOD_SQSYNTH
MOD_SYNTH
MOM_CLOSE
MOM_DONE
MOM_OPEN
MOM_POSITIONCB
NEWTRANSPARENT
QUERYROPSUPPORT
SC_SCREENSAVE
SEEK_CUR
SEEK_END
SEEK_SET
SELECTDIB
SND_ALIAS
SND_ALIAS_ID
SND_ALIAS_START
SND_ALIAS_SYSTEMASTERISK
SND_ALIAS_SYSTEMDEFAULT
SND_ALIAS_SYSTEMEXCLAMATION
SND_ALIAS_SYSTEMEXIT
SND_ALIAS_SYSTEMHAND
SND_ALIAS_SYSTEMQUESTION
SND_ALIAS_SYSTEMSTART
SND_ALIAS_SYSTEMWELCOME
SND_APPLICATION
SND_ASYNC
SND_FILENAME
SND_LOOP
SND_MEMORY
SND_NODEFAULT
SND_NOSTOP
SND_NOWAIT
SND_PURGE
SND_RESOURCE
SND_SYNC
TIMERR_BASE
TIMERR_NOCANDO
TIMERR_NOERROR
TIMERR_STRUCT
TIME_BYTES
TIME_CALLBACK_EVENT_PULSE
TIME_CALLBACK_EVENT_SET
TIME_CALLBACK_FUNCTION
TIME_MIDI
TIME_MS
TIME_ONESHOT
TIME_PERIODIC
TIME_SAMPLES
TIME_SMPTE
TIME_TICKS
WAVECAPS_DIRECTSOUND
WAVECAPS_LRVOLUME
WAVECAPS_PITCH
WAVECAPS_PLAYBACKRATE
WAVECAPS_SAMPLEACCURATE
WAVECAPS_SYNC
WAVECAPS_VOLUME
WAVERR_BADFORMAT
WAVERR_BASE
WAVERR_LASTERROR
WAVERR_STILLPLAYING
WAVERR_SYNC
WAVERR_UNPREPARED
WAVE_ALLOWSYNC
WAVE_FORMAT_1M08
WAVE_FORMAT_1M16
WAVE_FORMAT_1S08
WAVE_FORMAT_1S16
WAVE_FORMAT_2M08
WAVE_FORMAT_2M16
WAVE_FORMAT_2S08
WAVE_FORMAT_2S16
WAVE_FORMAT_4M08
WAVE_FORMAT_4M16
WAVE_FORMAT_4S08
WAVE_FORMAT_4S16
WAVE_FORMAT_PCM
WAVE_FORMAT_QUERY
WAVE_INVALIDFORMAT
WAVE_MAPPED
WAVE_MAPPER
WHDR_BEGINLOOP
WHDR_DONE
WHDR_ENDLOOP
WHDR_INQUEUE
WHDR_PREPARED
WIM_CLOSE
WIM_DATA
WIM_OPEN
WOM_CLOSE
WOM_DONE
WOM_OPEN

Variables


Functions


function auxGetDevCaps(uDeviceID: UINT; lpCaps: PAuxCaps; uSize: UINT): MMRESULT;


function auxGetDevCapsA(uDeviceID: UINT; lpCaps: PAuxCapsA; uSize: UINT): MMRESULT;


function auxGetDevCapsW(uDeviceID: UINT; lpCaps: PAuxCapsW; uSize: UINT): MMRESULT;


function auxGetNumDevs: UINT;

separate left-right volume control } { auxiliary audio function prototypes

function auxGetVolume(uDeviceID: UINT; lpdwVolume: PDWORD): MMRESULT;


function auxOutMessage(uDeviceID, uMessage: UINT; dw1, dw2: DWORD): MMRESULT;


function auxSetVolume(uDeviceID: UINT; dwVolume: DWORD): MMRESULT;


function CloseDriver(hDriver: HDRVR; lParam1, lParam2: Longint): Longint;


function DefDriverProc(dwDriverIdentifier: DWORD; hdrvr: HDRVR; uMsg: UINT; lParam1, lParam2: LPARAM): Longint;


function DIBIndex(N: Integer): Longint;

DIB.DRV select dib escape

function DrvGetModuleHandle(hDriver: HDRVR): HMODULE;


function GetDriverModuleHandle(hDriver: HDRVR): HMODULE;


function joyGetDevCaps(uJoyID: UINT; lpCaps: PJoyCaps; uSize: UINT): MMRESULT;


function joyGetDevCapsA(uJoyID: UINT; lpCaps: PJoyCapsA; uSize: UINT): MMRESULT;


function joyGetDevCapsW(uJoyID: UINT; lpCaps: PJoyCapsW; uSize: UINT): MMRESULT;


function joyGetNumDevs: UINT;

joystick function prototypes

function joyGetPos(uJoyID: UINT; lpInfo: PJoyInfo): MMRESULT;


function joyGetPosEx(uJoyID: UINT; lpInfo: PJoyInfoEx): MMRESULT;


function joyGetThreshold(uJoyID: UINT; lpuThreshold: PUINT): MMRESULT;


function joyReleaseCapture(uJoyID: UINT): MMRESULT;


function joySetCapture(Handle: HWND; uJoyID, uPeriod: UINT; bChanged: BOOL): MMRESULT;


function joySetThreshold(uJoyID, uThreshold: UINT): MMRESULT;


function mciExecute(pszCommand: LPCSTR): BOOL;


function mciGetCreatorTask(mcierr: MCIERROR): HTASK;


function mciGetDeviceID(pszDevice: PChar): MCIDEVICEID;


function mciGetDeviceIDA(pszDevice: PAnsiChar): MCIDEVICEID;


function mciGetDeviceIDFromElementID(dwElementID: DWORD; lpstrType: PChar): MCIDEVICEID;


function mciGetDeviceIDFromElementIDA(dwElementID: DWORD; lpstrType: PAnsiChar): MCIDEVICEID;


function mciGetDeviceIDFromElementIDW(dwElementID: DWORD; lpstrType: PWideChar): MCIDEVICEID;


function mciGetDeviceIDW(pszDevice: PWideChar): MCIDEVICEID;


function mciGetErrorString(mcierr: MCIERROR; pszText: PChar; uLength: UINT): BOOL;


function mciGetErrorStringA(mcierr: MCIERROR; pszText: PAnsiChar; uLength: UINT): BOOL;


function mciGetErrorStringW(mcierr: MCIERROR; pszText: PWideChar; uLength: UINT): BOOL;


function mciGetYieldProc(mcierr: MCIERROR; lpdwYieldData: PDWORD): TFNYieldProc;


function mciSendCommand(mciId: MCIDEVICEID; uMessage: UINT; dwParam1, dwParam2: DWORD): MCIERROR;


function mciSendCommandA(mciId: MCIDEVICEID; uMessage: UINT; dwParam1, dwParam2: DWORD): MCIERROR;

MCI function prototypes

function mciSendCommandW(mciId: MCIDEVICEID; uMessage: UINT; dwParam1, dwParam2: DWORD): MCIERROR;


function mciSendString(lpstrCommand, lpstrReturnString: PChar; uReturnLength: UINT; hWndCallback: HWND): MCIERROR;


function mciSendStringA(lpstrCommand, lpstrReturnString: PAnsiChar; uReturnLength: UINT; hWndCallback: HWND): MCIERROR;


function mciSendStringW(lpstrCommand, lpstrReturnString: PWideChar; uReturnLength: UINT; hWndCallback: HWND): MCIERROR;


function mciSetYieldProc(mcierr: MCIERROR; fpYieldProc: TFNYieldProc; dwYieldData: DWORD): BOOL;


function mci_HMS_Hour(hms: Longint): Byte;


function mci_HMS_Minute(hms: Longint): Byte;


function mci_HMS_Second(hms: Longint): Byte;


function mci_Make_HMS(h, m, s: Byte): Longint;


function mci_Make_MSF(m, s, f: Byte): Longint;


function mci_Make_TMSF(t, m, s, f: Byte): Longint;


function mci_MSF_Frame(msf: Longint): Byte;


function mci_MSF_Minute(msf: Longint): Byte;

MCI time format conversion macros

function mci_MSF_Second(msf: Longint): Byte;


function mci_TMSF_Frame(tmsf: Longint): Byte;


function mci_TMSF_Minute(tmsf: Longint): Byte;


function mci_TMSF_Second(tmsf: Longint): Byte;


function mci_TMSF_Track(tmsf: Longint): Byte;


function midiConnect(hmi: HMIDI; hmo: HMIDIOUT; pReserved: Pointer): MMRESULT;


function midiDisconnect(hmi: HMIDI; hmo: HMIDIOUT; pReserved: Pointer): MMRESULT;


function midiInAddBuffer(hMidiIn: HMIDIIN; lpMidiInHdr: PMidiHdr; uSize: UINT): MMRESULT;


function midiInClose(hMidiIn: HMIDIIN): MMRESULT;


function midiInGetDevCaps(DeviceID: UINT; lpCaps: PMidiInCaps; uSize: UINT): MMRESULT;


function midiInGetDevCapsA(DeviceID: UINT; lpCaps: PMidiInCapsA; uSize: UINT): MMRESULT;


function midiInGetDevCapsW(DeviceID: UINT; lpCaps: PMidiInCapsW; uSize: UINT): MMRESULT;


function midiInGetErrorText(mmrError: MMRESULT; pszText: PChar; uSize: UINT): MMRESULT;


function midiInGetErrorTextA(mmrError: MMRESULT; pszText: PAnsiChar; uSize: UINT): MMRESULT;


function midiInGetErrorTextW(mmrError: MMRESULT; pszText: PWideChar; uSize: UINT): MMRESULT;


function midiInGetID(hMidiIn: HMIDIIN; lpuDeviceID: PUINT): MMRESULT;


function midiInGetNumDevs: UINT;


function midiInMessage(hMidiIn: HMIDIIN; uMessage: UINT; dw1, dw2: DWORD): MMRESULT;


function midiInOpen(lphMidiIn: PHMIDIIN; uDeviceID: UINT; dwCallback, dwInstance, dwFlags: DWORD): MMRESULT;


function midiInPrepareHeader(hMidiIn: HMIDIIN; lpMidiInHdr: PMidiHdr; uSize: UINT): MMRESULT;


function midiInReset(hMidiIn: HMIDIIN): MMRESULT;


function midiInStart(hMidiIn: HMIDIIN): MMRESULT;


function midiInStop(hMidiIn: HMIDIIN): MMRESULT;


function midiInUnprepareHeader(hMidiIn: HMIDIIN; lpMidiInHdr: PMidiHdr; uSize: UINT): MMRESULT;


function midiOutCacheDrumPatches(hMidiOut: HMIDIOUT; uPatch: UINT; lpwKeyArray: PWord; uFlags: UINT): MMRESULT;


function midiOutCachePatches(hMidiOut: HMIDIOUT; uBank: UINT; lpwPatchArray: PWord; uFlags: UINT): MMRESULT;


function midiOutClose(hMidiOut: HMIDIOUT): MMRESULT;


function midiOutGetDevCaps(uDeviceID: UINT; lpCaps: PMidiOutCaps; uSize: UINT): MMRESULT;


function midiOutGetDevCapsA(uDeviceID: UINT; lpCaps: PMidiOutCapsA; uSize: UINT): MMRESULT;


function midiOutGetDevCapsW(uDeviceID: UINT; lpCaps: PMidiOutCapsW; uSize: UINT): MMRESULT;


function midiOutGetErrorText(mmrError: MMRESULT; pszText: PChar; uSize: UINT): MMRESULT;


function midiOutGetErrorTextA(mmrError: MMRESULT; pszText: PAnsiChar; uSize: UINT): MMRESULT;


function midiOutGetErrorTextW(mmrError: MMRESULT; pszText: PWideChar; uSize: UINT): MMRESULT;


function midiOutGetID(hMidiOut: HMIDIOUT; lpuDeviceID: PUINT): MMRESULT;


function midiOutGetNumDevs: UINT;

MIDI function prototypes

function midiOutGetVolume(hmo: HMIDIOUT; lpdwVolume: PDWORD): MMRESULT;


function midiOutLongMsg(hMidiOut: HMIDIOUT; lpMidiOutHdr: PMidiHdr; uSize: UINT): MMRESULT;


function midiOutMessage(hMidiOut: HMIDIOUT; uMessage: UINT; dw1, dw2: DWORD): MMRESULT;


function midiOutOpen(lphMidiOut: PHMIDIOUT; uDeviceID: UINT; dwCallback, dwInstance, dwFlags: DWORD): MMRESULT;


function midiOutPrepareHeader(hMidiOut: HMIDIOUT; lpMidiOutHdr: PMidiHdr; uSize: UINT): MMRESULT;


function midiOutReset(hMidiOut: HMIDIOUT): MMRESULT;


function midiOutSetVolume(hmo: HMIDIOUT; dwVolume: DWORD): MMRESULT;


function midiOutShortMsg(hMidiOut: HMIDIOUT; dwMsg: DWORD): MMRESULT;


function midiOutUnprepareHeader(hMidiOut: HMIDIOUT; lpMidiOutHdr: PMidiHdr; uSize: UINT): MMRESULT;


function midiStreamClose(hms: HMIDISTRM): MMRESULT;


function midiStreamOpen(phms: PHMIDISTRM; puDeviceID: PUINT; cMidi, dwCallback, dwInstance, fdwOpen: DWORD): MMRESULT;


function midiStreamOut(hms: HMIDISTRM; pmh: PMidiHdr; cbmh: UINT): MMRESULT;


function midiStreamPause(hms: HMIDISTRM): MMRESULT;


function midiStreamPosition(hms: HMIDISTRM; lpmmt: PMMTime; cbmmt: UINT): MMRESULT;


function midiStreamProperty(hms: HMIDISTRM; lppropdata: PBYTE; dwProperty: DWORD): MMRESULT;


function midiStreamRestart(hms: HMIDISTRM): MMRESULT;


function midiStreamStop(hms: HMIDISTRM): MMRESULT;


function mixerClose(hmx: HMIXER): MMRESULT;


function mixerGetControlDetails(hmxobj: HMIXEROBJ; pmxcd: PMixerControlDetails; fdwDetails: DWORD): MMRESULT;


function mixerGetControlDetailsA(hmxobj: HMIXEROBJ; pmxcd: PMixerControlDetails; fdwDetails: DWORD): MMRESULT;


function mixerGetControlDetailsW(hmxobj: HMIXEROBJ; pmxcd: PMixerControlDetails; fdwDetails: DWORD): MMRESULT;


function mixerGetDevCaps(uMxId: UINT; pmxcaps: PMixerCaps; cbmxcaps: UINT): MMRESULT;


function mixerGetDevCapsA(uMxId: UINT; pmxcaps: PMixerCapsA; cbmxcaps: UINT): MMRESULT;


function mixerGetDevCapsW(uMxId: UINT; pmxcaps: PMixerCapsW; cbmxcaps: UINT): MMRESULT;


function mixerGetID(hmxobj: HMIXEROBJ; var puMxId: UINT; fdwId: DWORD): MMRESULT;


function mixerGetLineControls(hmxobj: HMIXEROBJ; pmxlc: PMixerLineControls; fdwControls: DWORD): MMRESULT;


function mixerGetLineControlsA(hmxobj: HMIXEROBJ; pmxlc: PMixerLineControlsA; fdwControls: DWORD): MMRESULT;


function mixerGetLineControlsW(hmxobj: HMIXEROBJ; pmxlc: PMixerLineControlsW; fdwControls: DWORD): MMRESULT;


function mixerGetLineInfo(hmxobj: HMIXEROBJ; pmxl: PMixerLine; fdwInfo: DWORD): MMRESULT;


function mixerGetLineInfoA(hmxobj: HMIXEROBJ; pmxl: PMixerLineA; fdwInfo: DWORD): MMRESULT;


function mixerGetLineInfoW(hmxobj: HMIXEROBJ; pmxl: PMixerLineW; fdwInfo: DWORD): MMRESULT;


function mixerGetNumDevs: UINT;


function mixerMessage(hmx: HMIXER; uMsg: UINT; dwParam1, dwParam2: DWORD): DWORD;


function mixerOpen(phmx: PHMIXER; uMxId: UINT; dwCallback, dwInstance, fdwOpen: DWORD): MMRESULT;


function mixerSetControlDetails(hmxobj: HMIXEROBJ; pmxcd: PMixerControlDetails; fdwDetails: DWORD): MMRESULT;


function mmioAdvance(hmmio: HMMIO; lpmmioinfo: PMMIOInfo; uFlags: UINT): MMRESULT;


function mmioAscend(hmmio: HMMIO; lpck: PMMCKInfo; uFlags: UINT): MMRESULT;


function mmioClose(hmmio: HMMIO; uFlags: UINT): MMRESULT;


function mmioCreateChunk(hmmio: HMMIO; lpck: PMMCKInfo; uFlags: UINT): MMRESULT;


function mmioDescend(hmmio: HMMIO; lpck: PMMCKInfo; lpckParent: PMMCKInfo; uFlags: UINT): MMRESULT;


function mmioFlush(hmmio: HMMIO; uFlags: UINT): MMRESULT;


function mmioGetInfo(hmmio: HMMIO; lpmmioinfo: PMMIOInfo; uFlags: UINT): MMRESULT;


function mmioInstallIOProc(fccIOProc: FOURCC; pIOProc: TFNMMIOProc; dwFlags: DWORD): TFNMMIOProc;


function mmioInstallIOProcA(fccIOProc: FOURCC; pIOProc: TFNMMIOProc; dwFlags: DWORD): TFNMMIOProc;


function mmioInstallIOProcW(fccIOProc: FOURCC; pIOProc: TFNMMIOProc; dwFlags: DWORD): TFNMMIOProc;


function mmioOpen(szFileName: PChar; lpmmioinfo: PMMIOInfo; dwOpenFlags: DWORD): HMMIO;


function mmioOpenA(szFileName: PChar; lpmmioinfo: PMMIOInfo; dwOpenFlags: DWORD): HMMIO;


function mmioOpenW(szFileName: PChar; lpmmioinfo: PMMIOInfo; dwOpenFlags: DWORD): HMMIO;


function mmioRead(hmmio: HMMIO; pch: PChar; cch: Longint): Longint;


function mmioRename(szFileName, szNewFileName: PChar; lpmmioinfo: PMMIOInfo; dwRenameFlags: DWORD): MMRESULT;


function mmioRenameA(szFileName, szNewFileName: PAnsiChar; lpmmioinfo: PMMIOInfo; dwRenameFlags: DWORD): MMRESULT;


function mmioRenameW(szFileName, szNewFileName: PWideChar; lpmmioinfo: PMMIOInfo; dwRenameFlags: DWORD): MMRESULT;


function mmioSeek(hmmio: HMMIO; lOffset: Longint; iOrigin: Integer): Longint;


function mmioSendMessage(hmmio: HMMIO; uMessage: UINT; lParam1, lParam2: DWORD): Longint;


function mmioSetBuffer(hmmio: HMMIO; pchBuffer: PChar; cchBuffer: Longint; uFlags: Word): MMRESULT;


function mmioSetInfo(hmmio: HMMIO; lpmmioinfo: PMMIOInfo; uFlags: UINT): MMRESULT;


function mmioStringToFOURCC(sz: PChar; uFlags: UINT): FOURCC;


function mmioStringToFOURCCA(sz: PAnsiChar; uFlags: UINT): FOURCC;

default buffer size } { MMIO function prototypes

function mmioStringToFOURCCW(sz: PWideChar; uFlags: UINT): FOURCC;


function mmioWrite(hmmio: HMMIO; pch: PChar; cch: Longint): Longint;


function mmsystemGetVersion: UINT;

************************************************************************* General MMSYSTEM support

function OpenDriver(szDriverName: PWideChar; szSectionName: PWideChar; lParam2: Longint): HDRVR;


function PlaySound(pszSound: PChar; hmod: HMODULE; fdwSound: DWORD): BOOL;


function PlaySoundA(pszSound: PAnsiChar; hmod: HMODULE; fdwSound: DWORD): BOOL;


function PlaySoundW(pszSound: PWideChar; hmod: HMODULE; fdwSound: DWORD): BOOL;


function SendDriverMessage(hDriver: HDRVR; message: UINT; lParam1, lParam2: Longint): Longint;


function sndPlaySound(lpszSoundName: PChar; uFlags: UINT): BOOL;


function sndPlaySoundA(lpszSoundName: PAnsiChar; uFlags: UINT): BOOL;

************************************************************************* Sound support

function sndPlaySoundW(lpszSoundName: PWideChar; uFlags: UINT): BOOL;


function timeBeginPeriod(uPeriod: UINT): MMRESULT;


function timeEndPeriod(uPeriod: UINT): MMRESULT;


function timeGetDevCaps(lpTimeCaps: PTimeCaps; uSize: UINT): MMRESULT;


function timeGetSystemTime(lpTime: PMMTime; uSize: Word): MMRESULT;

timer function prototypes

function timeGetTime: DWORD;


function timeKillEvent(uTimerID: UINT): MMRESULT;


function timeSetEvent(uDelay, uResolution: UINT; lpFunction: TFNTimeCallBack; dwUser: DWORD; uFlags: UINT): MMRESULT;


function waveInAddBuffer(hWaveIn: HWAVEIN; lpWaveInHdr: PWaveHdr; uSize: UINT): MMRESULT;


function waveInClose(hWaveIn: HWAVEIN): MMRESULT;


function waveInGetDevCaps(hwo: HWAVEOUT; lpCaps: PWaveInCaps; uSize: UINT): MMRESULT;


function waveInGetDevCapsA(hwo: HWAVEOUT; lpCaps: PWaveInCapsA; uSize: UINT): MMRESULT;


function waveInGetDevCapsW(hwo: HWAVEOUT; lpCaps: PWaveInCapsW; uSize: UINT): MMRESULT;


function waveInGetErrorText(mmrError: MMRESULT; lpText: PChar; uSize: UINT): MMRESULT;


function waveInGetErrorTextA(mmrError: MMRESULT; lpText: PAnsiChar; uSize: UINT): MMRESULT;


function waveInGetErrorTextW(mmrError: MMRESULT; lpText: PWideChar; uSize: UINT): MMRESULT;


function waveInGetID(hWaveIn: HWAVEIN; lpuDeviceID: PUINT): MMRESULT;


function waveInGetNumDevs: UINT;


function waveInGetPosition(hWaveIn: HWAVEIN; lpInfo: PMMTime; uSize: UINT): MMRESULT;


function waveInMessage(hWaveIn: HWAVEIN; uMessage: UINT; dw1, dw2: DWORD): MMRESULT;


function waveInOpen(lphWaveIn: PHWAVEIN; uDeviceID: UINT; lpFormatEx: PWaveFormatEx; dwCallback, dwInstance, dwFlags: DWORD): MMRESULT;


function waveInPrepareHeader(hWaveIn: HWAVEIN; lpWaveInHdr: PWaveHdr; uSize: UINT): MMRESULT;


function waveInReset(hWaveIn: HWAVEIN): MMRESULT;


function waveInStart(hWaveIn: HWAVEIN): MMRESULT;


function waveInStop(hWaveIn: HWAVEIN): MMRESULT;


function waveInUnprepareHeader(hWaveIn: HWAVEIN; lpWaveInHdr: PWaveHdr; uSize: UINT): MMRESULT;


function waveOutBreakLoop(hWaveOut: HWAVEOUT): MMRESULT;


function waveOutClose(hWaveOut: HWAVEOUT): MMRESULT;


function waveOutGetDevCaps(uDeviceID: UINT; lpCaps: PWaveOutCaps; uSize: UINT): MMRESULT;


function waveOutGetDevCapsA(uDeviceID: UINT; lpCaps: PWaveOutCapsA; uSize: UINT): MMRESULT;


function waveOutGetDevCapsW(uDeviceID: UINT; lpCaps: PWaveOutCapsW; uSize: UINT): MMRESULT;


function waveOutGetErrorText(mmrError: MMRESULT; lpText: PChar; uSize: UINT): MMRESULT;


function waveOutGetErrorTextA(mmrError: MMRESULT; lpText: PAnsiChar; uSize: UINT): MMRESULT;


function waveOutGetErrorTextW(mmrError: MMRESULT; lpText: PWideChar; uSize: UINT): MMRESULT;


function waveOutGetID(hWaveOut: HWAVEOUT; lpuDeviceID: PUINT): MMRESULT;


function waveOutGetNumDevs: UINT;

waveform audio function prototypes

function waveOutGetPitch(hWaveOut: HWAVEOUT; lpdwPitch: PDWORD): MMRESULT;


function waveOutGetPlaybackRate(hWaveOut: HWAVEOUT; lpdwRate: PDWORD): MMRESULT;


function waveOutGetPosition(hWaveOut: HWAVEOUT; lpInfo: PMMTime; uSize: UINT): MMRESULT;


function waveOutGetVolume(hwo: HWAVEOUT; lpdwVolume: PDWORD): MMRESULT;


function waveOutMessage(hWaveOut: HWAVEOUT; uMessage: UINT; dw1, dw2: DWORD): Longint;


function waveOutOpen(lphWaveOut: PHWaveOut; uDeviceID: UINT; lpFormat: PWaveFormatEx; dwCallback, dwInstance, dwFlags: DWORD): MMRESULT;


function waveOutPause(hWaveOut: HWAVEOUT): MMRESULT;


function waveOutPrepareHeader(hWaveOut: HWAVEOUT; lpWaveOutHdr: PWaveHdr; uSize: UINT): MMRESULT;


function waveOutReset(hWaveOut: HWAVEOUT): MMRESULT;


function waveOutRestart(hWaveOut: HWAVEOUT): MMRESULT;


function waveOutSetPitch(hWaveOut: HWAVEOUT; dwPitch: DWORD): MMRESULT;


function waveOutSetPlaybackRate(hWaveOut: HWAVEOUT; dwRate: DWORD): MMRESULT;


function waveOutSetVolume(hwo: HWAVEOUT; dwVolume: DWORD): MMRESULT;


function waveOutUnprepareHeader(hWaveOut: HWAVEOUT; lpWaveOutHdr: PWaveHdr; uSize: UINT): MMRESULT;


function waveOutWrite(hWaveOut: HWAVEOUT; lpWaveOutHdr: PWaveHdr; uSize: UINT): MMRESULT;


Types


FOURCC = DWORD
MMIO data types
HDRVR = Integer
last error in range
HMIDI = Integer

HMIDIIN = Integer

HMIDIOUT = Integer

HMIDISTRM = Integer

HMIXER = Integer

HMIXEROBJ = Integer

HMMIO = Integer

HWAVE = Integer

HWAVEIN = Integer

HWAVEOUT = Integer

MCIDEVICEID = UINT
error return code, 0 means no error
MCIERROR = DWORD
************************************************************************* MCI support
MMRESULT = UINT
major (high byte), minor (low byte)
MMVERSION = UINT
major (high byte), minor (low byte)
PAuxCaps = PAuxCapsA

PAuxCapsA = ^TAuxCapsA
Auxiliary audio device capabilities structure
PAuxCapsW = ^TAuxCapsW

PDrvConfigInfo = ^TDrvConfigInfo
LPARAM of DRV_CONFIGURE message
PDrvConfigInfoEx = ^TDrvConfigInfoEx
************************************************************************* Installable driver support
PHMIDI = ^HMIDI
last error in range } { MIDI audio data types
PHMIDIIN = ^HMIDIIN

PHMIDIOUT = ^HMIDIOUT

PHMIDISTRM = ^HMIDISTRM

PHMIXER = ^HMIXER

PHMIXEROBJ = ^HMIXEROBJ
************************************************************************** Mixer Support
PHMMIO = ^HMMIO
a four character code
PHWAVE = ^HWAVE
last error in range } { waveform audio data types
PHWAVEIN = ^HWAVEIN

PHWAVEOUT = ^HWAVEOUT

PJoyCaps = PJoyCapsA

PJoyCapsA = ^TJoyCapsA
joystick device capabilities data structure
PJoyCapsW = ^TJoyCapsW

PJoyInfo = ^TJoyInfo
joystick information data structure
PJoyInfoEx = ^TJoyInfoEx
button states
PKeyArray = ^TKeyArray

PMCI_Anim_Open_Parms = PMCI_Anim_Open_ParmsA

PMCI_Anim_Open_ParmsA = ^TMCI_Anim_Open_ParmsA
parameter block for MCI_OPEN command message
PMCI_Anim_Open_ParmsW = ^TMCI_Anim_Open_ParmsW

PMCI_Anim_Play_Parms = ^TMCI_Anim_Play_Parms
parameter block for MCI_PLAY command message
PMCI_Anim_Rect_Parms = ^ TMCI_Anim_Rect_Parms
parameter block for MCI_PUT, MCI_UPDATE, MCI_WHERE command messages
PMCI_Anim_Step_Parms = ^TMCI_Anim_Step_Parms
parameter block for MCI_STEP command message
PMCI_Anim_Update_Parms = ^TMCI_Anim_Update_Parms
parameter block for MCI_UPDATE PARMS
PMCI_Anim_Window_Parms = PMCI_Anim_Window_ParmsA

PMCI_Anim_Window_ParmsA = ^TMCI_Anim_Window_ParmsA
parameter block for MCI_WINDOW command message
PMCI_Anim_Window_ParmsW = ^TMCI_Anim_Window_ParmsW

PMCI_Break_Parms = ^TMCI_BReak_Parms
parameter block for MCI_BREAK command message
PMCI_Generic_Parms = ^TMCI_Generic_Parms
generic parameter block for MCI command messages with no special parameters
PMCI_GetDevCaps_Parms = ^TMCI_GetDevCaps_Parms
parameter block for MCI_GETDEVCAPS command message
PMCI_Info_Parms = PMCI_Info_ParmsA

PMCI_Info_ParmsA = ^TMCI_Info_ParmsA
parameter block for MCI_INFO command message
PMCI_Info_ParmsW = ^TMCI_Info_ParmsW

PMCI_Load_Parms = PMCI_Load_ParmsA

PMCI_Load_ParmsA = ^TMCI_Load_ParmsA
parameter block for MCI_LOAD command message
PMCI_Load_ParmsW = ^TMCI_Load_ParmsW

PMCI_Open_Parms = PMCI_Open_ParmsA

PMCI_Open_ParmsA = ^TMCI_Open_ParmsA
parameter block for MCI_OPEN command message
PMCI_Open_ParmsW = ^TMCI_Open_ParmsW

PMCI_Ovly_Load_Parms = PMCI_Ovly_Load_ParmsA

PMCI_Ovly_Load_ParmsA = ^TMCI_Ovly_Load_ParmsA
parameter block for MCI_LOAD command message
PMCI_Ovly_Load_ParmsW = ^TMCI_Ovly_Load_ParmsW

PMCI_Ovly_Open_Parms = PMCI_Ovly_Open_ParmsA

PMCI_Ovly_Open_ParmsA = ^TMCI_Ovly_Open_ParmsA
parameter block for MCI_OPEN command message
PMCI_Ovly_Open_ParmsW = ^TMCI_Ovly_Open_ParmsW

PMCI_Ovly_Rect_Parms = ^ TMCI_Ovly_Rect_Parms
parameter block for MCI_PUT, MCI_UPDATE, and MCI_WHERE command messages
PMCI_Ovly_Save_Parms = PMCI_Ovly_Save_ParmsA

PMCI_Ovly_Save_ParmsA = ^TMCI_Ovly_Save_ParmsA
parameter block for MCI_SAVE command message
PMCI_Ovly_Save_ParmsW = ^TMCI_Ovly_Save_ParmsW

PMCI_Ovly_Window_Parms = PMCI_Ovly_Window_ParmsA

PMCI_Ovly_Window_ParmsA = ^TMCI_Ovly_Window_ParmsA
parameter block for MCI_WINDOW command message
PMCI_Ovly_Window_ParmsW = ^TMCI_Ovly_Window_ParmsW

PMCI_Play_Parms = ^TMCI_Play_Parms
parameter block for MCI_PLAY command message
PMCI_Record_Parms = ^TMCI_Record_Parms
parameter block for MCI_RECORD command message
PMCI_Save_Parms = PMCI_Save_ParmsA

PMCI_Save_ParmsA = ^TMCI_SaveParmsA
parameter block for MCI_SAVE command message
PMCI_Save_ParmsW = ^TMCI_SaveParmsW

PMCI_Seek_Parms = ^TMCI_Seek_Parms
parameter block for MCI_SEEK command message
PMCI_Seq_Set_Parms = ^TMCI_Seq_Set_Parms
parameter block for MCI_SET command message
PMCI_Set_Parms = ^TMCI_Set_Parms
parameter block for MCI_SET command message
PMCI_Sound_Parms = ^TMCI_Sound_Parms
parameter block for MCI_SOUND command message
PMCI_Status_Parms = ^TMCI_Status_Parms
parameter block for MCI_STATUS command message
PMCI_SysInfo_Parms = PMCI_SysInfo_ParmsA

PMCI_SysInfo_ParmsA = ^TMCI_SysInfo_ParmsA
parameter block for MCI_SYSINFO command message
PMCI_SysInfo_ParmsW = ^TMCI_SysInfo_ParmsW

PMCI_VD_Escape_Parms = PMCI_VD_Escape_ParmsA

PMCI_VD_Escape_ParmsA = ^TMCI_VD_Escape_ParmsA
parameter block for MCI_ESCAPE command message
PMCI_VD_Escape_ParmsW = ^TMCI_VD_Escape_ParmsW

PMCI_VD_Play_Parms = ^TMCI_VD_Play_Parms
parameter block for MCI_PLAY command message
PMCI_VD_Step_Parms = ^TMCI_VD_Step_Parms
parameter block for MCI_STEP command message
PMCI_Wave_Delete_Parms = ^TMCI_Wave_Delete_Parms
parameter block for MCI_DELETE command message
PMCI_Wave_Open_Parms = PMCI_Wave_Open_ParmsA

PMCI_Wave_Open_ParmsA = ^TMCI_Wave_Open_ParmsA
parameter block for MCI_OPEN command message
PMCI_Wave_Open_ParmsW = ^TMCI_Wave_Open_ParmsW

PMCI_Wave_Set_Parms = ^TMCI_Wave_Set_Parms
parameter block for MCI_SET command message
PMidiEvent = ^TMidiEvent
Reserved for MMSYSTEM
PMidiHdr = ^TMidiHdr
MIDI data block header
PMidiInCaps = PMidiInCapsA

PMidiInCapsA = ^TMidiInCapsA
driver supports midiStreamOut directly } { MIDI output device capabilities structure
PMidiInCapsW = ^TMidiInCapsW

PMidiOutCaps = PMidiOutCapsA

PMidiOutCapsA = ^TMidiOutCapsA
MIDI output device capabilities structure
PMidiOutCapsW = ^TMidiOutCapsW

PMidiPropTempo = ^TMidiPropTempo

PMidiPropTimeDiv = ^TMidiPropTimeDiv

PMidiStrmBuffVer = ^TMidiStrmBuffVer
Parameters if this is a long event
PMixerCaps = PMixerCapsA

PMixerCapsA = ^TMixerCapsA

PMixerCapsW = ^TMixerCapsW

PMixerControl = PMixerControlA

PMixerControlA = ^TMixerControlA

PMixerControlDetails = ^TMixerControlDetails

PMixerControlDetailsBoolean = ^TMixerControlDetailsBoolean

PMixerControlDetailsListText = PMixerControlDetailsListTextA

PMixerControlDetailsListTextA = ^TMixerControlDetailsListTextA
pointer to array of details_XX structs
PMixerControlDetailsListTextW = ^TMixerControlDetailsListTextW

PMixerControlDetailsSigned = ^TMixerControlDetailsSigned

PMixerControlDetailsUnsigned = ^TMixerControlDetailsUnsigned

PMixerControlW = ^TMixerControlW

PMixerLine = PMixerLineA

PMixerLineA = ^TMixerLineA

PMixerLineControls = PMixerLineControlsA

PMixerLineControlsA = ^TMixerLineControlsA

PMixerLineControlsW = ^TMixerLineControlsW

PMixerLineW = ^TMixerLineW

PMMCKInfo = ^TMMCKInfo
RIFF chunk information data structure
PMMIOInfo = ^TMMIOInfo
general MMIO information data structure
PMMTime = ^TMMTime
Ticks within MIDI stream } { MMTIME data structure
PPatchArray = ^TPatchArray

PPCMWaveFormat = ^TPCMWaveFormat
specific waveform format structure for PCM data
PTimeCaps = ^TTimeCaps
callback is event - use PulseEvent } { timer device capabilities data structure
PWaveFormat = ^TWaveFormat
44.1 kHz, Stereo, 16-bit } { general waveform format structure (information common to all formats)
PWaveFormatEx = ^TWaveFormatEx
extended waveform format structure used for all non-PCM formats. this structure is common to all non-PCM formats.
PWaveHdr = ^TWaveHdr
wave data block header
PWaveInCaps = PWaveInCapsA

PWaveInCapsA = ^TWaveInCapsA
waveform input device capabilities structure
PWaveInCapsW = ^TWaveInCapsW

PWaveOutCaps = PWaveOutCapsA

PWaveOutCapsA = ^TWaveOutCapsA
reserved for driver } { waveform output device capabilities structure
PWaveOutCapsW = ^TWaveOutCapsW

TAuxCaps = TAuxCapsA
functionality supported by driver
TAuxCapsA = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of AnsiChar;
wTechnology : Word;
dwSupport : DWORD;
end;

TAuxCapsW = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of WideChar;
wTechnology : Word;
dwSupport : DWORD;
end;
functionality supported by driver
TDrvConfigInfo = record
dwDCISize : DWORD;
lpszDCISectionName : PWideChar;
lpszDCIAliasName : PWideChar;
end;

TDrvConfigInfoEx = record
dwDCISize : DWORD;
lpszDCISectionName : PWideChar;
lpszDCIAliasName : PWideChar;
dnDevNode : DWORD;
end;

TFNDriverProc = function(dwDriverId: DWORD; hdrvr: HDRVR; 
    msg: UINT; lparam1, lparam2: LPARAM): Longint stdcall
installable driver function prototypes
TFNDrvCallBack = procedure(hdrvr: HDRVR; uMsg: UINT; dwUser: DWORD;
    dw1, dw2: DWORD) stdcall
dwCallback is an EVENT Handle } { driver callback prototypes
TFNMidiCallBack = TFNDrvCallBack

TFNMMIOProc = function(lpmmioinfo: PChar; uMessage: UINT; lParam1, lParam2: LPARAM): Longint stdcall
a handle to an open file
TFNTimeCallBack = procedure(uTimerID, uMessage: UINT; 
    dwUser, dw1, dw2: DWORD) stdcall
time struct size } { timer data types
TFNWaveCallBack = TFNDrvCallBack

TFNYieldProc = function(mciId: MCIDEVICEID; dwYieldData: DWORD): UINT stdcall
MCI device ID type
TJoyCaps = TJoyCapsA
OEM VxD in use
TJoyCapsA = record
wMid : Word;
wPid : Word;
szPname : array[0..MAXPNAMELEN-1] of AnsiChar;
wXmin : UINT;
wXmax : UINT;
wYmin : UINT;
wYmax : UINT;
wZmin : UINT;
wZmax : UINT;
wNumButtons : UINT;
wPeriodMin : UINT;
wPeriodMax : UINT;
wRmin : UINT;
wRmax : UINT;
wUmin : UINT;
wUmax : UINT;
wVmin : UINT;
wVmax : UINT;
wCaps : UINT;
wMaxAxes : UINT;
wNumAxes : UINT;
wMaxButtons : UINT;
szRegKey : array[0..MAXPNAMELEN - 1] of AnsiChar;
szOEMVxD : array[0..MAX_JOYSTICKOEMVXDNAME - 1] of AnsiChar;
end;

TJoyCapsW = record
wMid : Word;
wPid : Word;
szPname : array[0..MAXPNAMELEN-1] of WideChar;
wXmin : UINT;
wXmax : UINT;
wYmin : UINT;
wYmax : UINT;
wZmin : UINT;
wZmax : UINT;
wNumButtons : UINT;
wPeriodMin : UINT;
wPeriodMax : UINT;
wRmin : UINT;
wRmax : UINT;
wUmin : UINT;
wUmax : UINT;
wVmin : UINT;
wVmax : UINT;
wCaps : UINT;
wMaxAxes : UINT;
wNumAxes : UINT;
wMaxButtons : UINT;
szRegKey : array[0..MAXPNAMELEN - 1] of WideChar;
szOEMVxD : array[0..MAX_JOYSTICKOEMVXDNAME - 1] of WideChar;
end;
OEM VxD in use
TJoyInfo = record
wXpos : UINT;
wYpos : UINT;
wZpos : UINT;
wButtons : UINT;
end;

TJoyInfoEx = record
dwSize : DWORD;
dwFlags : DWORD;
wXpos : UINT;
wYpos : UINT;
wZpos : UINT;
dwRpos : DWORD;
dwUpos : DWORD;
dwVpos : DWORD;
wButtons : UINT;
dwButtonNumber : DWORD;
dwPOV : DWORD;
dwReserved1 : DWORD;
dwReserved2 : DWORD;
end;

TKeyArray = array[0..MIDIPATCHSIZE-1] of Word;

TMCI_Anim_Open_Parms = TMCI_Anim_Open_ParmsA

TMCI_Anim_Open_ParmsA = record
dwCallback : DWORD;
wDeviceID : MCIDEVICEID;
lpstrDeviceType : PAnsiChar;
lpstrElementName : PAnsiChar;
lpstrAlias : PAnsiChar;
dwStyle : DWORD;
hWndParent : HWND;
end;

TMCI_Anim_Open_ParmsW = record
dwCallback : DWORD;
wDeviceID : MCIDEVICEID;
lpstrDeviceType : PWideChar;
lpstrElementName : PWideChar;
lpstrAlias : PWideChar;
dwStyle : DWORD;
hWndParent : HWND;
end;

TMCI_Anim_Play_Parms = record
dwCallback : DWORD;
dwFrom : DWORD;
dwTo : DWORD;
dwSpeed : DWORD;
end;

TMCI_Anim_Rect_Parms = record
dwCallback : DWORD;
rc : TRect;
end;

TMCI_Anim_Step_Parms = record
dwCallback : DWORD;
dwFrames : DWORD;
end;

TMCI_Anim_Update_Parms = record
dwCallback : DWORD;
rc : TRect;
hDC : HDC;
end;

TMCI_Anim_Window_Parms = TMCI_Anim_Window_ParmsA

TMCI_Anim_Window_ParmsA = record
dwCallback : DWORD;
Wnd : HWND;
nCmdShow : UINT;
lpstrText : PAnsiChar;
end;

TMCI_Anim_Window_ParmsW = record
dwCallback : DWORD;
Wnd : HWND;
nCmdShow : UINT;
lpstrText : PWideChar;
end;

TMCI_BReak_Parms = record
dwCallback : DWORD;
nVirtKey : Integer;
hWndBreak : HWND;
end;

TMCI_Generic_Parms = record
dwCallback : DWORD;
end;

TMCI_GetDevCaps_Parms = record
dwCallback : DWORD;
dwReturn : DWORD;
dwItem : DWORD;
end;

TMCI_Info_Parms = TMCI_Info_ParmsA

TMCI_Info_ParmsA = record
dwCallback : DWORD;
lpstrReturn : PAnsiChar;
dwRetSize : DWORD;
end;

TMCI_Info_ParmsW = record
dwCallback : DWORD;
lpstrReturn : PWideChar;
dwRetSize : DWORD;
end;

TMCI_Load_Parms = TMCI_Load_ParmsA

TMCI_Load_ParmsA = record
dwCallback : DWORD;
lpfilename : PAnsiChar;
end;

TMCI_Load_ParmsW = record
dwCallback : DWORD;
lpfilename : PWideChar;
end;

TMCI_Open_Parms = TMCI_Open_ParmsA

TMCI_Open_ParmsA = record
dwCallback : DWORD;
wDeviceID : MCIDEVICEID;
lpstrDeviceType : PAnsiChar;
lpstrElementName : PAnsiChar;
lpstrAlias : PAnsiChar;
end;

TMCI_Open_ParmsW = record
dwCallback : DWORD;
wDeviceID : MCIDEVICEID;
lpstrDeviceType : PWideChar;
lpstrElementName : PWideChar;
lpstrAlias : PWideChar;
end;

TMCI_Ovly_Load_Parms = TMCI_Ovly_Load_ParmsA

TMCI_Ovly_Load_ParmsA = record
dwCallback : DWORD;
lpfilename : PAnsiChar;
rc : TRect;
end;

TMCI_Ovly_Load_ParmsW = record
dwCallback : DWORD;
lpfilename : PWideChar;
rc : TRect;
end;

TMCI_Ovly_Open_Parms = TMCI_Ovly_Open_ParmsA

TMCI_Ovly_Open_ParmsA = record
dwCallback : DWORD;
wDeviceID : MCIDEVICEID;
lpstrDeviceType : PAnsiChar;
lpstrElementName : PAnsiChar;
lpstrAlias : PAnsiChar;
dwStyle : DWORD;
hWndParent : HWND;
end;

TMCI_Ovly_Open_ParmsW = record
dwCallback : DWORD;
wDeviceID : MCIDEVICEID;
lpstrDeviceType : PWideChar;
lpstrElementName : PWideChar;
lpstrAlias : PWideChar;
dwStyle : DWORD;
hWndParent : HWND;
end;

TMCI_Ovly_Rect_Parms = record
dwCallback : DWORD;
rc : TRect;
end;

TMCI_Ovly_Save_Parms = TMCI_Ovly_Save_ParmsA

TMCI_Ovly_Save_ParmsA = record
dwCallback : DWORD;
lpfilename : PAnsiChar;
rc : TRect;
end;

TMCI_Ovly_Save_ParmsW = record
dwCallback : DWORD;
lpfilename : PWideChar;
rc : TRect;
end;

TMCI_Ovly_Window_Parms = TMCI_Ovly_Window_ParmsA

TMCI_Ovly_Window_ParmsA = record
dwCallback : DWORD;
WHandle : HWND;
nCmdShow : UINT;
lpstrText : PAnsiChar;
end;

TMCI_Ovly_Window_ParmsW = record
dwCallback : DWORD;
WHandle : HWND;
nCmdShow : UINT;
lpstrText : PWideChar;
end;

TMCI_Play_Parms = record
dwCallback : DWORD;
dwFrom : DWORD;
dwTo : DWORD;
end;

TMCI_Record_Parms = record
dwCallback : DWORD;
dwFrom : DWORD;
dwTo : DWORD;
end;

TMCI_SaveParms = TMCI_SaveParmsA

TMCI_SaveParmsA = record
dwCallback : DWORD;
lpfilename : PAnsiChar;
end;

TMCI_SaveParmsW = record
dwCallback : DWORD;
lpfilename : PWideChar;
end;

TMCI_Seek_Parms = record
dwCallback : DWORD;
dwTo : DWORD;
end;

TMCI_Seq_Set_Parms = record
dwCallback : DWORD;
dwTimeFormat : DWORD;
dwAudio : DWORD;
dwTempo : DWORD;
dwPort : DWORD;
dwSlave : DWORD;
dwMaster : DWORD;
dwOffset : DWORD;
end;

TMCI_Set_Parms = record
dwCallback : DWORD;
dwTimeFormat : DWORD;
dwAudio : DWORD;
end;

TMCI_Sound_Parms = record
dwCallback : Longint;
lpstrSoundName : PChar;
end;

TMCI_Status_Parms = record
dwCallback : DWORD;
dwReturn : DWORD;
dwItem : DWORD;
dwTrack : DWORD;
end;

TMCI_SysInfo_Parms = TMCI_SysInfo_ParmsA

TMCI_SysInfo_ParmsA = record
dwCallback : DWORD;
lpstrReturn : PAnsiChar;
dwRetSize : DWORD;
dwNumber : DWORD;
wDeviceType : UINT;
end;

TMCI_SysInfo_ParmsW = record
dwCallback : DWORD;
lpstrReturn : PWideChar;
dwRetSize : DWORD;
dwNumber : DWORD;
wDeviceType : UINT;
end;

TMCI_VD_Escape_Parms = TMCI_VD_Escape_ParmsA

TMCI_VD_Escape_ParmsA = record
dwCallback : DWORD;
lpstrCommand : PAnsiChar;
end;

TMCI_VD_Escape_ParmsW = record
dwCallback : DWORD;
lpstrCommand : PWideChar;
end;

TMCI_VD_Play_Parms = record
dwCallback : DWORD;
dwFrom : DWORD;
dwTo : DWORD;
dwSpeed : DWORD;
end;

TMCI_VD_Step_Parms = record
dwCallback : DWORD;
dwFrames : DWORD;
end;

TMCI_Wave_Delete_Parms = record
dwCallback : DWORD;
dwFrom : DWORD;
dwTo : DWORD;
end;

TMCI_Wave_Open_Parms = TMCI_Wave_Open_ParmsA

TMCI_Wave_Open_ParmsA = record
dwCallback : DWORD;
wDeviceID : MCIDEVICEID;
lpstrDeviceType : PAnsiChar;
lpstrElementName : PAnsiChar;
lpstrAlias : PAnsiChar;
dwBufferSeconds : DWORD;
end;

TMCI_Wave_Open_ParmsW = record
dwCallback : DWORD;
wDeviceID : MCIDEVICEID;
lpstrDeviceType : PWideChar;
lpstrElementName : PWideChar;
lpstrAlias : PWideChar;
dwBufferSeconds : DWORD;
end;

TMCI_Wave_Set_Parms = record
dwCallback : DWORD;
dwTimeFormat : DWORD;
dwAudio : DWORD;
wInput : UINT;
wOutput : UINT;
wFormatTag : Word;
wReserved2 : Word;
nChannels : Word;
wReserved3 : Word;
nSamplesPerSec : DWORD;
nAvgBytesPerSec : DWORD;
nBlockAlign : Word;
wReserved4 : Word;
wBitsPerSample : Word;
wReserved5 : Word;
end;

TMidiEvent = record
dwDeltaTime : DWORD;
dwStreamID : DWORD;
dwEvent : DWORD;
dwParms : array[0..0] of DWORD;
end;

TMidiHdr = record
lpData : PChar;
dwBufferLength : DWORD;
dwBytesRecorded : DWORD;
dwUser : DWORD;
dwFlags : DWORD;
lpNext : PMidiHdr;
reserved : DWORD;
dwOffset : DWORD;
dwReserved : array[0..7] of DWORD;
end;

TMidiInCaps = TMidiInCapsA
functionality supported by driver
TMidiInCapsA = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of AnsiChar;
dwSupport : DWORD;
end;

TMidiInCapsW = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of WideChar;
dwSupport : DWORD;
end;
functionality supported by driver
TMidiOutCaps = TMidiOutCapsA
functionality supported by driver
TMidiOutCapsA = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of AnsiChar;
wTechnology : Word;
wVoices : Word;
wNotes : Word;
wChannelMask : Word;
dwSupport : DWORD;
end;

TMidiOutCapsW = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of WideChar;
wTechnology : Word;
wVoices : Word;
wNotes : Word;
wChannelMask : Word;
dwSupport : DWORD;
end;
functionality supported by driver
TMidiPropTempo = record
cbStruct : DWORD;
dwTempo : DWORD;
end;

TMidiPropTimeDiv = record
cbStruct : DWORD;
dwTimeDiv : DWORD;
end;

TMidiStrmBuffVer = record
dwVersion : DWORD;
dwMid : DWORD;
dwOEMVersion : DWORD;
end;

TMixerCaps = TMixerCapsA
count of destinations
TMixerCapsA = record
wMid : WORD;
wPid : WORD;
vDriverVersion : MMVERSION;
szPname : array [0..MAXPNAMELEN - 1] of AnsiChar;
fdwSupport : DWORD;
cDestinations : DWORD;
end;

TMixerCapsW = record
wMid : WORD;
wPid : WORD;
vDriverVersion : MMVERSION;
szPname : array [0..MAXPNAMELEN - 1] of WideChar;
fdwSupport : DWORD;
cDestinations : DWORD;
end;
count of destinations
TMixerControl = TMixerControlA
size in bytes of custom data
TMixerControlA = record
cbStruct : DWORD;
dwControlID : DWORD;
dwControlType : DWORD;
fdwControl : DWORD;
cMultipleItems : DWORD;
szShortName : array[0..MIXER_SHORT_NAME_CHARS - 1] of AnsiChar;
szName : array[0..MIXER_LONG_NAME_CHARS - 1] of AnsiChar;
end;

TMixerControlDetails = record
cbStruct : DWORD;
dwControlID : DWORD;
cChannels : DWORD;
end;

TMixerControlDetailsBoolean = record
fValue : Longint;
end;

TMixerControlDetailsListText = TMixerControlDetailsListTextA

TMixerControlDetailsListTextA = record
dwParam1 : DWORD;
dwParam2 : DWORD;
szName : array[0..MIXER_LONG_NAME_CHARS - 1] of AnsiChar;
end;

TMixerControlDetailsListTextW = record
dwParam1 : DWORD;
dwParam2 : DWORD;
szName : array[0..MIXER_LONG_NAME_CHARS - 1] of WideChar;
end;

TMixerControlDetailsSigned = record
lValue : Longint;
end;

TMixerControlDetailsUnsigned = record
dwValue : DWORD;
end;

TMixerControlW = record
cbStruct : DWORD;
dwControlID : DWORD;
dwControlType : DWORD;
fdwControl : DWORD;
cMultipleItems : DWORD;
szShortName : array[0..MIXER_SHORT_NAME_CHARS - 1] of WideChar;
szName : array[0..MIXER_LONG_NAME_CHARS - 1] of WideChar;
end;
size in bytes of custom data
TMixerLine = TMixerLineA
"
TMixerLineA = record
cbStruct : DWORD;
dwDestination : DWORD;
dwSource : DWORD;
dwLineID : DWORD;
fdwLine : DWORD;
dwUser : DWORD;
dwComponentType : DWORD;
cChannels : DWORD;
cConnections : DWORD;
cControls : DWORD;
szShortName : array[0..MIXER_SHORT_NAME_CHARS - 1] of AnsiChar;
szName : array[0..MIXER_LONG_NAME_CHARS - 1] of AnsiChar;
end;

TMixerLineControls = TMixerLineControlsA
pointer to first MIXERCONTROL array
TMixerLineControlsA = record
cbStruct : DWORD;
dwLineID : DWORD;
end;

TMixerLineControlsW = record
cbStruct : DWORD;
dwLineID : DWORD;
end;
pointer to first MIXERCONTROL array
TMixerLineW = record
cbStruct : DWORD;
dwDestination : DWORD;
dwSource : DWORD;
dwLineID : DWORD;
fdwLine : DWORD;
dwUser : DWORD;
dwComponentType : DWORD;
cChannels : DWORD;
cConnections : DWORD;
cControls : DWORD;
szShortName : array[0..MIXER_SHORT_NAME_CHARS - 1] of WideChar;
szName : array[0..MIXER_LONG_NAME_CHARS - 1] of WideChar;
end;
"
TMMCKInfo = record
ckid : FOURCC;
cksize : DWORD;
fccType : FOURCC;
dwDataOffset : DWORD;
dwFlags : DWORD;
end;

TMMIOInfo = record
dwFlags : DWORD;
fccIOProc : FOURCC;
pIOProc : TFNMMIOProc;
wErrorRet : UINT;
hTask : HTASK;
cchBuffer : Longint;
pchBuffer : PChar;
pchNext : PChar;
pchEndRead : PChar;
pchEndWrite : PChar;
lBufOffset : Longint;
lDiskOffset : Longint;
adwInfo : array[0..2] of DWORD;
dwReserved1 : DWORD;
dwReserved2 : DWORD;
hmmio : HMMIO;
end;

TMMTime = record
end;

TPatchArray = array[0..MIDIPATCHSIZE-1] of Word;

TPCMWaveFormat = record
wf : TWaveFormat;
wBitsPerSample : Word;
end;

TTimeCaps = record
wPeriodMin : UINT;
wPeriodMax : UINT;
end;

TWaveFormat = record
wFormatTag : Word;
nChannels : Word;
nSamplesPerSec : DWORD;
nAvgBytesPerSec : DWORD;
nBlockAlign : Word;
end;

TWaveFormatEx = record
wFormatTag : Word;
nChannels : Word;
nSamplesPerSec : DWORD;
nAvgBytesPerSec : DWORD;
nBlockAlign : Word;
wBitsPerSample : Word;
cbSize : Word;
end;

TWaveHdr = record
lpData : PChar;
dwBufferLength : DWORD;
dwBytesRecorded : DWORD;
dwUser : DWORD;
dwFlags : DWORD;
dwLoops : DWORD;
lpNext : PWaveHdr;
reserved : DWORD;
end;

TWaveInCaps = TWaveInCapsA
structure packing
TWaveInCapsA = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of AnsiChar;
dwFormats : DWORD;
wChannels : Word;
wReserved1 : Word;
end;

TWaveInCapsW = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of WideChar;
dwFormats : DWORD;
wChannels : Word;
wReserved1 : Word;
end;
structure packing
TWaveOutCaps = TWaveOutCapsA
functionality supported by driver
TWaveOutCapsA = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of AnsiChar;
dwFormats : DWORD;
wChannels : Word;
dwSupport : DWORD;
end;

TWaveOutCapsW = record
wMid : Word;
wPid : Word;
vDriverVersion : MMVERSION;
szPname : array[0..MAXPNAMELEN-1] of WideChar;
dwFormats : DWORD;
wChannels : Word;
dwSupport : DWORD;
end;
functionality supported by driver
VERSION = UINT
Joystick adapter } { general data types

Constants

AUXCAPS_AUXIN = 2

audio from internal CD-ROM drive

AUXCAPS_CDAUDIO = 1

flags for wTechnology field in AUXCAPS structure

AUXCAPS_LRVOLUME = $0002

supports volume control

AUXCAPS_VOLUME = $0001

audio from auxiliary input jacks } { flags for dwSupport field in AUXCAPS structure

AUX_MAPPER = UINT(-1)

************************************************************************* Auxiliary audio support ***************************************************************************} { device ID for aux device mapper

CALLBACK_EVENT = $00050000

thread ID replaces 16 bit task

CALLBACK_FUNCTION = $00030000

dwCallback is a HTASK

CALLBACK_NULL = $00000000

callback type mask

CALLBACK_TASK = $00020000

dwCallback is a HWND

CALLBACK_THREAD = CALLBACK_TASK

dwCallback is a FARPROC

CALLBACK_TYPEMASK = $00070000

************************************************************************* Driver callback support ***************************************************************************} { flags used with waveOutOpen(), waveInOpen(), midiInOpen(), and } { midiOutOpen() to specify the type of the dwCallback parameter.

CALLBACK_WINDOW = $00010000

no callback

CFSEPCHAR = '+'

default error file error } { MMIO constants

DRVCNF_CANCEL = $0000

Supported return values for DRV_CONFIGURE message

DRVCNF_OK = $0001

DRVCNF_RESTART = $0002

DRV_CANCEL = DRVCNF_CANCEL

return values from DriverProc() function

DRV_CLOSE = $0004

DRV_CONFIGURE = $0007

DRV_DISABLE = $0005

DRV_ENABLE = $0002

DRV_EXITSESSION = $000B

DRV_FREE = $0006

DRV_INSTALL = $0009

DRV_LOAD = $0001

Driver messages

DRV_MCI_FIRST = DRV_RESERVED

DRV_MCI_LAST = DRV_RESERVED + $FFF

DRV_OK = DRVCNF_OK

DRV_OPEN = $0003

DRV_POWER = $000F

DRV_QUERYCONFIGURE = $0008

DRV_REMOVE = $000A

DRV_RESERVED = $0800

DRV_RESTART = DRVCNF_RESTART

DRV_USER = $4000

FOURCC_DOS = $20532F44

'LIST' } { four character codes used to identify standard built-in I/O procedures

FOURCC_LIST = $5453494C

'RIFF'

FOURCC_MEM = $204D454D

'DOS '

FOURCC_RIFF = $46464952

beginning of user-defined messages } { standard four character codes

JOYCAPS_HASPOV = $0010

JOYCAPS_HASR = $0002

JOYCAPS_HASU = $0004

JOYCAPS_HASV = $0008

JOYCAPS_HASZ = $000

joystick driver capabilites

JOYCAPS_POV4DIR = $0020

JOYCAPS_POVCTS = $0040

JOYERR_BASE = 160

JOYERR_NOCANDO = JOYERR_BASE+6

bad parameters

JOYERR_NOERROR = 0

************************************************************************* Joystick support ***************************************************************************} { joystick error return values

JOYERR_PARMS = JOYERR_BASE+5

no error

JOYERR_UNPLUGGED = JOYERR_BASE+7

request not completed

JOYSTICKID1 = 0

joystick ID constants

JOYSTICKID2 = 1

JOY_BUTTON1 = $0001

joystick is unplugged } { constants used with TJoyInfo and TJoyInfoEx structure and MM_JOY* messages

JOY_BUTTON10 = $00000200

JOY_BUTTON11 = $00000400

JOY_BUTTON12 = $00000800

JOY_BUTTON13 = $00001000

JOY_BUTTON14 = $00002000

JOY_BUTTON15 = $00004000

JOY_BUTTON16 = $00008000

JOY_BUTTON17 = $00010000

JOY_BUTTON18 = $00020000

JOY_BUTTON19 = $00040000

JOY_BUTTON1CHG = $0100

JOY_BUTTON2 = $0002

JOY_BUTTON20 = $00080000

JOY_BUTTON21 = $00100000

JOY_BUTTON22 = $00200000

JOY_BUTTON23 = $00400000

JOY_BUTTON24 = $00800000

JOY_BUTTON25 = $01000000

JOY_BUTTON26 = $02000000

JOY_BUTTON27 = $04000000

JOY_BUTTON28 = $08000000

JOY_BUTTON29 = $10000000

JOY_BUTTON2CHG = $0200

JOY_BUTTON3 = $0004

JOY_BUTTON30 = $20000000

JOY_BUTTON31 = $40000000

JOY_BUTTON32 = $80000000

JOY_BUTTON3CHG = $0400

JOY_BUTTON4 = $0008

JOY_BUTTON4CHG = $0800

JOY_BUTTON5 = $00000010

constants used with TJoyInfoEx

JOY_BUTTON6 = $00000020

JOY_BUTTON7 = $00000040

JOY_BUTTON8 = $00000080

JOY_BUTTON9 = $00000100

JOY_CAL_READ3 = $00040000

JOY_CAL_READ4 = $00080000

JOY_CAL_READ5 = $00400000

JOY_CAL_READ6 = $00800000

JOY_CAL_READALWAYS = $00010000

JOY_CAL_READRONLY = $02000000

JOY_CAL_READUONLY = $04000000

JOY_CAL_READVONLY = $08000000

JOY_CAL_READXONLY = $00100000

JOY_CAL_READXYONLY = $00020000

JOY_CAL_READYONLY = $00200000

JOY_CAL_READZONLY = $01000000

JOY_POVBACKWARD = 18000

JOY_POVCENTERED = -1

constants used with TJoyInfoEx

JOY_POVFORWARD = 0

JOY_POVLEFT = 27000

JOY_POVRIGHT = 9000

JOY_RETURNALL = (JOY_RETURNX or JOY_RETURNY or JOY_RETURNZ or JOY_RETURNR or JOY_RETURNU or JOY_RETURNV or JOY_RETURNPOV or JOY_RETURNBUTTONS)

JOY_RETURNBUTTONS = $00000080

JOY_RETURNCENTERED = $00000400

JOY_RETURNPOV = $00000040

axis 6

JOY_RETURNPOVCTS = $00000200

JOY_RETURNR = $00000008

JOY_RETURNRAWDATA = $00000100

JOY_RETURNU = $00000010

JOY_RETURNV = $00000020

axis 5

JOY_RETURNX = $00000001

JOY_RETURNY = $00000002

JOY_RETURNZ = $00000004

JOY_USEDEADZONE = $00000800

MAXERRORLENGTH = 128

max product name length (including nil)

MAXPNAMELEN = 32

************************************************************************* General constants and data types ***************************************************************************} { general constants

MAX_JOYSTICKOEMVXDNAME = 260

max error text length (including nil)

MCIERR_BAD_CONSTANT = MCIERR_BASE + 34

MCIERR_BAD_INTEGER = MCIERR_BASE + 14

MCIERR_BAD_TIME_FORMAT = MCIERR_BASE + 37

MCIERR_BASE = 256

MCIERR_CANNOT_LOAD_DRIVER = MCIERR_BASE + 10

MCIERR_CANNOT_USE_ALL = MCIERR_BASE + 23

MCIERR_CREATEWINDOW = MCIERR_BASE + 91

MCIERR_CUSTOM_DRIVER_BASE = mcierr_Base + 256

all custom device driver errors must be >= this value

MCIERR_DEVICE_LENGTH = MCIERR_BASE + 54

MCIERR_DEVICE_LOCKED = MCIERR_BASE + 32

MCIERR_DEVICE_NOT_INSTALLED = MCIERR_BASE + 50

MCIERR_DEVICE_NOT_READY = MCIERR_BASE + 20

MCIERR_DEVICE_OPEN = MCIERR_BASE + 9

MCIERR_DEVICE_ORD_LENGTH = MCIERR_BASE + 55

MCIERR_DEVICE_TYPE_REQUIRED = MCIERR_BASE + 31

MCIERR_DRIVER = MCIERR_BASE + 22

MCIERR_DRIVER_INTERNAL = MCIERR_BASE + 16

MCIERR_DUPLICATE_ALIAS = MCIERR_BASE + 33

MCIERR_DUPLICATE_FLAGS = MCIERR_BASE + 39

MCIERR_EXTENSION_NOT_FOUND = MCIERR_BASE + 25

MCIERR_EXTRA_CHARACTERS = MCIERR_BASE + 49

MCIERR_FILENAME_REQUIRED = MCIERR_BASE + 48

MCIERR_FILE_NOT_FOUND = MCIERR_BASE + 19

MCIERR_FILE_NOT_SAVED = MCIERR_BASE + 30

MCIERR_FILE_READ = MCIERR_BASE + 92

MCIERR_FILE_WRITE = MCIERR_BASE + 93

MCIERR_FLAGS_NOT_COMPATIBLE = MCIERR_BASE + 28

MCIERR_GET_CD = MCIERR_BASE + 51

MCIERR_HARDWARE = MCIERR_BASE + 6

MCIERR_ILLEGAL_FOR_AUTO_OPEN = MCIERR_BASE + 47

MCIERR_INTERNAL = MCIERR_BASE + 21

MCIERR_INVALID_DEVICE_ID = MCIERR_BASE + 1

MCI error return values

MCIERR_INVALID_DEVICE_NAME = MCIERR_BASE + 7

MCIERR_INVALID_FILE = MCIERR_BASE + 40

MCIERR_MISSING_COMMAND_STRING = MCIERR_BASE + 11

MCIERR_MISSING_DEVICE_NAME = MCIERR_BASE + 36

MCIERR_MISSING_PARAMETER = MCIERR_BASE + 17

MCIERR_MISSING_STRING_ARGUMENT = MCIERR_BASE + 13

MCIERR_MULTIPLE = MCIERR_BASE + 24

MCIERR_MUST_USE_SHAREABLE = MCIERR_BASE + 35

MCIERR_NEW_REQUIRES_ALIAS = MCIERR_BASE + 43

MCIERR_NONAPPLICABLE_FUNCTION = MCIERR_BASE + 46

MCIERR_NOTIFY_ON_AUTO_OPEN = MCIERR_BASE + 44

MCIERR_NO_CLOSING_QUOTE = MCIERR_BASE + 38

MCIERR_NO_ELEMENT_ALLOWED = MCIERR_BASE + 45

MCIERR_NO_IDENTITY = MCIERR_BASE + 94

MCIERR_NO_INTEGER = MCIERR_BASE + 56

MCIERR_NO_WINDOW = MCIERR_BASE + 90

MCIERR_NULL_PARAMETER_BLOCK = MCIERR_BASE + 41

MCIERR_OUTOFRANGE = MCIERR_BASE + 26

MCIERR_OUT_OF_MEMORY = MCIERR_BASE + 8

MCIERR_PARAM_OVERFLOW = MCIERR_BASE + 12

MCIERR_PARSER_INTERNAL = MCIERR_BASE + 15

MCIERR_SEQ_DIV_INCOMPATIBLE = MCIERR_BASE + 80

MCIERR_SEQ_NOMIDIPRESENT = MCIERR_BASE + 87

MCIERR_SEQ_PORTUNSPECIFIED = MCIERR_BASE + 86

MCIERR_SEQ_PORT_INUSE = MCIERR_BASE + 81

MCIERR_SEQ_PORT_MAPNODEVICE = MCIERR_BASE + 83

MCIERR_SEQ_PORT_MISCERROR = MCIERR_BASE + 84

MCIERR_SEQ_PORT_NONEXISTENT = MCIERR_BASE + 82

MCIERR_SEQ_TIMER = MCIERR_BASE + 85

MCIERR_SET_CD = MCIERR_BASE + 52

MCIERR_SET_DRIVE = MCIERR_BASE + 53

MCIERR_UNNAMED_RESOURCE = MCIERR_BASE + 42

MCIERR_UNRECOGNIZED_COMMAND = MCIERR_BASE + 5

MCIERR_UNRECOGNIZED_KEYWORD = MCIERR_BASE + 3

MCIERR_UNSUPPORTED_FUNCTION = MCIERR_BASE + 18

MCIERR_WAVE_INPUTSINUSE = MCIERR_BASE + 66

MCIERR_WAVE_INPUTSUNSUITABLE = MCIERR_BASE + 72

MCIERR_WAVE_INPUTUNSPECIFIED = MCIERR_BASE + 69

MCIERR_WAVE_OUTPUTSINUSE = MCIERR_BASE + 64

MCIERR_WAVE_OUTPUTSUNSUITABLE = MCIERR_BASE + 70

MCIERR_WAVE_OUTPUTUNSPECIFIED = MCIERR_BASE + 68

MCIERR_WAVE_SETINPUTINUSE = MCIERR_BASE + 67

MCIERR_WAVE_SETINPUTUNSUITABLE = MCIERR_BASE + 73

MCIERR_WAVE_SETOUTPUTINUSE = MCIERR_BASE + 65

MCIERR_WAVE_SETOUTPUTUNSUITABLE = MCIERR_BASE + 71

MCI_ALL_DEVICE_ID = UINT(-1)

device ID for "all devices"

MCI_ANIM_GETDEVCAPS_CAN_REVERSE = $00004001

flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block

MCI_ANIM_GETDEVCAPS_CAN_STRETCH = $00004007

MCI_ANIM_GETDEVCAPS_FAST_RATE = $00004002

MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = $00004008

MCI_ANIM_GETDEVCAPS_NORMAL_RATE = $00004004

MCI_ANIM_GETDEVCAPS_PALETTES = $00004006

MCI_ANIM_GETDEVCAPS_SLOW_RATE = $00004003

MCI_ANIM_INFO_TEXT = $00010000

flags for the dwFlags parameter of MCI_INFO command message

MCI_ANIM_OPEN_NOSTATIC = $00040000

MCI_ANIM_OPEN_PARENT = $00020000

MCI_ANIM_OPEN_WS = $00010000

MCI extensions for animation devices } { flags for dwFlags parameter of MCI_OPEN command message

MCI_ANIM_PLAY_FAST = $00040000

MCI_ANIM_PLAY_REVERSE = $00020000

MCI_ANIM_PLAY_SCAN = $00100000

MCI_ANIM_PLAY_SLOW = $00080000

MCI_ANIM_PLAY_SPEED = $00010000

flags for dwFlags parameter of MCI_PLAY command message

MCI_ANIM_PUT_DESTINATION = $00040000

MCI_ANIM_PUT_SOURCE = $00020000

MCI_ANIM_REALIZE_BKGD = $00020000

MCI_ANIM_REALIZE_NORM = $00010000

flags for the MCI_REALIZE command message

MCI_ANIM_RECT = $00010000

flags for dwFlags parameter of MCI_PUT command message

MCI_ANIM_STATUS_FORWARD = $00004002

MCI_ANIM_STATUS_HPAL = $00004004

MCI_ANIM_STATUS_HWND = $00004003

MCI_ANIM_STATUS_SPEED = $00004001

flags for dwItem field of MCI_STATUS_PARMS parameter block

MCI_ANIM_STATUS_STRETCH = $00004005

MCI_ANIM_STEP_FRAMES = $00020000

MCI_ANIM_STEP_REVERSE = $00010000

flags for dwFlags parameter of MCI_STEP command message

MCI_ANIM_UPDATE_HDC = $00020000

flags for dwFlags parameter of MCI_UPDATE command message

MCI_ANIM_WHERE_DESTINATION = $00040000

MCI_ANIM_WHERE_SOURCE = $00020000

flags for dwFlags parameter of MCI_WHERE command message

MCI_ANIM_WINDOW_DEFAULT = $00000000

flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block } { MCI_WINDOW command message, (dwFlags == MCI_ANIM_WINDOW_HWND)

MCI_ANIM_WINDOW_DISABLE_STRETCH = $00200000

MCI_ANIM_WINDOW_ENABLE_STRETCH = $00100000

MCI_ANIM_WINDOW_HWND = $00010000

flags for dwFlags parameter of MCI_WINDOW command message

MCI_ANIM_WINDOW_STATE = $00040000

MCI_ANIM_WINDOW_TEXT = $00080000

MCI_BREAK = $0811

MCI_BREAK_HWND = $00000200

MCI_BREAK_KEY = $00000100

flags for dwFlags parameter of MCI_BREAK command message

MCI_BREAK_OFF = $00000400

MCI_CDA_STATUS_TYPE_TRACK = 00004001

MCI extensions for CD audio devices } { flags for the dwItem field of the MCI_STATUS_PARMS parameter block

MCI_CDA_TRACK_AUDIO = MCI_CD_OFFSET + 0

flags for the dwReturn field of MCI_STATUS_PARMS parameter block } { MCI_STATUS command, (dwItem == MCI_CDA_STATUS_TYPE_TRACK)

MCI_CDA_TRACK_OTHER = MCI_CD_OFFSET + 1

MCI_CD_OFFSET = 1088

MCI_CLOSE = $0804

MCI_COPY = $0852

MCI_CUE = $0830

MCI_CUT = $0851

MCI_DELETE = $0856

MCI_DEVTYPE_ANIMATION = MCI_STRING_OFFSET + 7

MCI_DEVTYPE_CD_AUDIO = MCI_STRING_OFFSET + 4

MCI_DEVTYPE_DAT = MCI_STRING_OFFSET + 5

MCI_DEVTYPE_DIGITAL_VIDEO = MCI_STRING_OFFSET + 8

MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR

MCI_DEVTYPE_FIRST_USER = 1000

MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER

MCI_DEVTYPE_OTHER = MCI_STRING_OFFSET + 9

MCI_DEVTYPE_OVERLAY = MCI_STRING_OFFSET + 3

MCI_DEVTYPE_SCANNER = MCI_STRING_OFFSET + 6

MCI_DEVTYPE_SEQUENCER = MCI_STRING_OFFSET + 11

MCI_DEVTYPE_VCR = MCI_STRING_OFFSET + 1

constants for predefined MCI device types

MCI_DEVTYPE_VIDEODISC = MCI_STRING_OFFSET + 2

MCI_DEVTYPE_WAVEFORM_AUDIO = MCI_STRING_OFFSET + 10

MCI_ESCAPE = $0805

MCI_FORMAT_BYTES = 8

MCI_FORMAT_FRAMES = 3

MCI_FORMAT_HMS = 1

MCI_FORMAT_MILLISECONDS = 0

constants used in 'set time format' and 'status time format' commands

MCI_FORMAT_MSF = 2

MCI_FORMAT_SAMPLES = 9

MCI_FORMAT_SMPTE_24 = 4

MCI_FORMAT_SMPTE_25 = 5

MCI_FORMAT_SMPTE_30 = 6

MCI_FORMAT_SMPTE_30DROP = 7

MCI_FORMAT_TMSF = 10

MCI_FREEZE = $0844

MCI_FROM = $00000004

MCI_GETDEVCAPs = $080B

MCI_GETDEVCAPS_CAN_EJECT = $00000007

MCI_GETDEVCAPS_CAN_PLAY = $00000008

MCI_GETDEVCAPS_CAN_RECORD = $00000001

flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block

MCI_GETDEVCAPS_CAN_SAVE = $00000009

MCI_GETDEVCAPS_COMPOUND_DEVICE = $00000006

MCI_GETDEVCAPS_DEVICE_TYPE = $00000004

MCI_GETDEVCAPS_HAS_AUDIO = $00000002

MCI_GETDEVCAPS_HAS_VIDEO = $00000003

MCI_GETDEVCAPS_ITEM = $00000100

flags for dwFlags parameter of MCI_GETDEVCAPS command message

MCI_GETDEVCAPS_USES_FILES = $00000005

MCI_INFO = $080A

MCI_INFO_COPYRIGHT = $00002000

MCI_INFO_FILE = $00000200

MCI_INFO_MEDIA_IDENTITY = $00000800

MCI_INFO_MEDIA_UPC = $00000400

MCI_INFO_NAME = $00001000

MCI_INFO_PRODUCT = $00000100

flags for dwFlags parameter of MCI_INFO command message

MCI_LAST = $0FFF

MCI_LOAD = $0850

MCI_LOAD_FILE = $00000100

flags for dwFlags parameter of MCI_LOAD command message

MCI_MODE_NOT_READY = MCI_STRING_OFFSET + 12

return values for 'status mode' command

MCI_MODE_OPEN = MCI_STRING_OFFSET + 18

MCI_MODE_PAUSE = MCI_STRING_OFFSET + 17

MCI_MODE_PLAY = MCI_STRING_OFFSET + 14

MCI_MODE_RECORD = MCI_STRING_OFFSET + 15

MCI_MODE_SEEK = MCI_STRING_OFFSET + 16

MCI_MODE_STOP = MCI_STRING_OFFSET + 13

MCI_NOTIFY = $00000001

common flags for dwFlags parameter of MCI command messages

MCI_NOTIFY_ABORTED = $0004

MCI_NOTIFY_FAILURE = $0008

MCI_NOTIFY_SUCCESSFUL = $0001

flags for wParam of MM_MCINOTIFY message

MCI_NOTIFY_SUPERSEDED = $0002

MCI_OPEN = $0803

MCI command message identifiers

MCI_OPEN_ALIAS = $00000400

MCI_OPEN_ELEMENT = $00000200

MCI_OPEN_ELEMENT_ID = $00000800

MCI_OPEN_SHAREABLE = $00000100

flags for dwFlags parameter of MCI_OPEN command message

MCI_OPEN_TYPE = $00002000

MCI_OPEN_TYPE_ID = $00001000

MCI_OVLY_GETDEVCAPS_CAN_FREEZE = $00004002

MCI_OVLY_GETDEVCAPS_CAN_STRETCH = $00004001

flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block

MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = $00004003

MCI_OVLY_INFO_TEXT = $00010000

flags for dwFlags parameter of MCI_INFO command message

MCI_OVLY_OPEN_PARENT = $00020000

MCI_OVLY_OPEN_WS = $00010000

MCI extensions for video overlay devices } { flags for dwFlags parameter of MCI_OPEN command message

MCI_OVLY_PUT_DESTINATION = $00040000

MCI_OVLY_PUT_FRAME = $00080000

MCI_OVLY_PUT_SOURCE = $00020000

MCI_OVLY_PUT_VIDEO = $00100000

MCI_OVLY_RECT = $00010000

flags for dwFlags parameter of MCI_PUT command message

MCI_OVLY_STATUS_HWND = $00004001

flags for dwFlags parameter of MCI_STATUS command message

MCI_OVLY_STATUS_STRETCH = $00004002

MCI_OVLY_WHERE_DESTINATION = $00040000

MCI_OVLY_WHERE_FRAME = $00080000

MCI_OVLY_WHERE_SOURCE = $00020000

flags for dwFlags parameter of MCI_WHERE command message

MCI_OVLY_WHERE_VIDEO = $00100000

MCI_OVLY_WINDOW_DEFAULT = $00000000

flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block

MCI_OVLY_WINDOW_DISABLE_STRETCH = $00200000

MCI_OVLY_WINDOW_ENABLE_STRETCH = $00100000

MCI_OVLY_WINDOW_HWND = $00010000

flags for dwFlags parameter of MCI_WINDOW command message

MCI_OVLY_WINDOW_STATE = $00040000

MCI_OVLY_WINDOW_TEXT = $00080000

MCI_PASTE = $0853

MCI_PAUSE = $0809

MCI_PLAY = $0806

MCI_PUT = $0842

MCI_REALIZE = $0840

MCI_RECORD = $080F

MCI_RECORD_INSERT = $00000100

flags for dwFlags parameter of MCI_RECORD command message

MCI_RECORD_OVERWRITE = $00000200

MCI_RESUME = $0855

MCI_SAVE = $0813

MCI_SAVE_FILE = $00000100

flags for dwFlags parameter of MCI_SAVE command message

MCI_SEEK = $0807

MCI_SEEK_TO_END = $00000200

MCI_SEEK_TO_START = $00000100

flags for dwFlags parameter of MCI_SEEK command message

MCI_SEQ_DIV_PPQN = 0 + MCI_SEQ_OFFSET

MCI extensions for MIDI sequencer devices } { flags for the dwReturn field of MCI_STATUS_PARMS parameter block } { MCI_STATUS command, (dwItem == MCI_SEQ_STATUS_DIVTYPE)

MCI_SEQ_DIV_SMPTE_24 = 1 + MCI_SEQ_OFFSET

MCI_SEQ_DIV_SMPTE_25 = 2 + MCI_SEQ_OFFSET

MCI_SEQ_DIV_SMPTE_30 = 4 + MCI_SEQ_OFFSET

MCI_SEQ_DIV_SMPTE_30DROP = 3 + MCI_SEQ_OFFSET

MCI_SEQ_FILE = $4002

MCI_SEQ_FORMAT_SONGPTR = $4001

flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block } { MCI_SET command, (dwFlags == MCI_SEQ_SET_MASTER)

MCI_SEQ_MAPPER = 65535

MCI_SEQ_MIDI = $4003

MCI_SEQ_NONE = 65533

MCI_SEQ_OFFSET = 1216

MCI_SEQ_SET_MASTER = $00080000

MCI_SEQ_SET_OFFSET = $01000000

MCI_SEQ_SET_PORT = $00020000

MCI_SEQ_SET_SLAVE = $00040000

MCI_SEQ_SET_TEMPO = $00010000

flags for the dwFlags parameter of MCI_SET command message

MCI_SEQ_SMPTE = $4004

MCI_SEQ_STATUS_COPYRIGHT = $0000400C

MCI_SEQ_STATUS_DIVTYPE = $0000400A

MCI_SEQ_STATUS_MASTER = $00004008

MCI_SEQ_STATUS_NAME = $0000400B

MCI_SEQ_STATUS_OFFSET = $00004009

MCI_SEQ_STATUS_PORT = $00004003

MCI_SEQ_STATUS_SLAVE = $00004007

MCI_SEQ_STATUS_TEMPO = $00004002

flags for the dwItem field of MCI_STATUS_PARMS parameter block

MCI_SET = $080D

MCI_SET_AUDIO = $00000800

MCI_SET_AUDIO_ALL = $00000000

flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS

MCI_SET_AUDIO_LEFT = $00000001

MCI_SET_AUDIO_RIGHT = $00000002

MCI_SET_DOOR_CLOSED = $00000200

MCI_SET_DOOR_OPEN = $00000100

flags for dwFlags parameter of MCI_SET command message

MCI_SET_OFF = $00004000

MCI_SET_ON = $00002000

MCI_SET_TIME_FORMAT = $00000400

MCI_SET_VIDEO = $00001000

MCI_SOUND = $0812

MCI_SOUND_NAME = $00000100

flags for dwFlags parameter of MCI_SOUND command message

MCI_SPIN = $080C

MCI_STATUS = $0814

MCI_STATUS_CURRENT_TRACK = $00000008

MCI_STATUS_ITEM = $00000100

flags for dwFlags parameter of MCI_STATUS command message

MCI_STATUS_LENGTH = $00000001

flags for dwItem field of the MCI_STATUS_PARMS parameter block

MCI_STATUS_MEDIA_PRESENT = $00000005

MCI_STATUS_MODE = $00000004

MCI_STATUS_NUMBER_OF_TRACKS = $00000003

MCI_STATUS_POSITION = $00000002

MCI_STATUS_READY = $00000007

MCI_STATUS_START = $00000200

MCI_STATUS_TIME_FORMAT = $00000006

MCI_STEP = $080E

MCI_STOP = $0808

MCI_STRING_OFFSET = 512

MCI_SYSINFO = $0810

MCI_SYSINFO_INSTALLNAME = $00000800

MCI_SYSINFO_NAME = $00000400

MCI_SYSINFO_OPEN = $00000200

MCI_SYSINFO_QUANTITY = $00000100

flags for dwFlags parameter of MCI_SYSINFO command message

MCI_TO = $00000008

MCI_TRACK = $00000010

MCI_UNFREEZE = $0845

MCI_UPDATE = $0854

MCI_USER_MESSAGES = $400 + drv_MCI_First

all custom MCI command messages must be >= this value

MCI_VD_ESCAPE_STRING = $00000100

flag for the MCI_ESCAPE command message

MCI_VD_FORMAT_TRACK = $4001

MCI_VD_GETDEVCAPS_CAN_REVERSE = $00004002

flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block

MCI_VD_GETDEVCAPS_CAV = $00020000

MCI_VD_GETDEVCAPS_CLV = $00010000

flags for dwFlags parameter of MCI_GETDEVCAPS command message

MCI_VD_GETDEVCAPS_FAST_RATE = $00004003

MCI_VD_GETDEVCAPS_NORMAL_RATE = $00004005

MCI_VD_GETDEVCAPS_SLOW_RATE = $00004004

MCI_VD_MEDIA_CAV = MCI_VD_OFFSET + 3

MCI_VD_MEDIA_CLV = MCI_VD_OFFSET + 2

flag for dwReturn field of MCI_STATUS_PARMS } { MCI_STATUS command, (dwItem == MCI_VD_STATUS_MEDIA_TYPE)

MCI_VD_MEDIA_OTHER = MCI_VD_OFFSET + 4

MCI_VD_MODE_PARK = MCI_VD_OFFSET + 1

MCI extensions for videodisc devices } { flag for dwReturn field of MCI_STATUS_PARMS } { MCI_STATUS command, (dwItem == MCI_STATUS_MODE)

MCI_VD_OFFSET = 1024

MCI_VD_PLAY_FAST = $00020000

MCI_VD_PLAY_REVERSE = $00010000

flags for dwFlags parameter of MCI_PLAY command message

MCI_VD_PLAY_SCAN = $00080000

MCI_VD_PLAY_SLOW = $00100000

MCI_VD_PLAY_SPEED = $00040000

MCI_VD_SEEK_REVERSE = $00010000

flag for dwFlags parameter of MCI_SEEK command message

MCI_VD_SPIN_DOWN = $00020000

MCI_VD_SPIN_UP = $00010000

MCI_VD_STATUS_DISC_SIZE = $00004006

MCI_VD_STATUS_FORWARD = $00004003

MCI_VD_STATUS_MEDIA_TYPE = $00004004

MCI_VD_STATUS_SIDE = $00004005

MCI_VD_STATUS_SPEED = $00004002

flags for dwItem field of MCI_STATUS_PARMS parameter block

MCI_VD_STEP_FRAMES = $00010000

flags for the dwFlags parameter of MCI_STEP command message

MCI_VD_STEP_REVERSE = $00020000

MCI_WAIT = $00000002

MCI_WAVE_GETDEVCAPS_INPUTS = $00004001

flags for the dwFlags parameter of MCI_GETDEVCAPS command message

MCI_WAVE_GETDEVCAPS_OUTPUTS = $00004002

MCI_WAVE_INPUT = $00400000

flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages

MCI_WAVE_MAPPER = MCI_WAVE_OFFSET + 1

MCI_WAVE_OFFSET = 1152

MCI_WAVE_OPEN_BUFFER = $00010000

flags for the dwFlags parameter of MCI_OPEN command message

MCI_WAVE_OUTPUT = $00800000

MCI_WAVE_PCM = MCI_WAVE_OFFSET + 0

MCI extensions for waveform audio devices

MCI_WAVE_SET_ANYINPUT = $04000000

flags for the dwFlags parameter of MCI_SET command message

MCI_WAVE_SET_ANYOUTPUT = $08000000

MCI_WAVE_SET_AVGBYTESPERSEC = $00080000

MCI_WAVE_SET_BITSPERSAMPLE = $00200000

MCI_WAVE_SET_BLOCKALIGN = $00100000

MCI_WAVE_SET_CHANNELS = $00020000

MCI_WAVE_SET_FORMATTAG = $00010000

flags for the dwFlags parameter of MCI_SET command message

MCI_WAVE_SET_SAMPLESPERSEC = $00040000

MCI_WAVE_STATUS_AVGBYTESPERSEC = $00004004

MCI_WAVE_STATUS_BITSPERSAMPLE = $00004006

MCI_WAVE_STATUS_BLOCKALIGN = $00004005

MCI_WAVE_STATUS_CHANNELS = $00004002

MCI_WAVE_STATUS_FORMATTAG = $00004001

flags for the dwItem field of MCI_STATUS_PARMS parameter block

MCI_WAVE_STATUS_LEVEL = $00004007

MCI_WAVE_STATUS_SAMPLESPERSEC = $00004003

MCI_WHERE = $0843

MCI_WINDOW = $0841

MEVT_COMMENT = $82

parm = bytes to send verbatim

MEVT_F_CALLBACK = $40000000

MEVT_F_LONG = $80000000

MEVT_F_SHORT = $00000000

Buffer is stream buffer } (* Type codes which go in the high byte of the event DWORD of a stream buffer Type codes 00-7F contain parameters within the low 24 bits Type codes 80-FF contain a length of their parameter in the low 24 bits, followed by their parameter data in the buffer. The event DWORD contains the exact byte length; the parm data itself must be padded to be an even multiple of 4 bytes long.

MEVT_LONGMSG = $80

parm = unused; does nothing } { 0x04-0x7F reserved

MEVT_NOP = $02

parm = new tempo in microsec/qn

MEVT_SHORTMSG = $00

MEVT_TEMPO = $01

parm = shortmsg for midiOutShortMsg

MEVT_VERSION = $84

parm = comment data

MHDR_DONE = $00000001

flags for dwFlags field of MIDIHDR structure

MHDR_INQUEUE = $00000004

set if header prepared

MHDR_ISSTRM = $00000008

reserved for driver

MHDR_PREPARED = $00000002

done bit

MIDICAPS_CACHE = $0004

separate left-right volume control

MIDICAPS_LRVOLUME = $0002

supports volume control

MIDICAPS_STREAM = $0008

MIDICAPS_VOLUME = $0001

MIDI mapper } { flags for dwSupport field of MIDIOUTCAPS structure

MIDIERR_BADOPENMODE = MIDIERR_BASE + 6

invalid setup

MIDIERR_BASE = 64

MIDIERR_DONT_CONTINUE = MIDIERR_BASE + 7

operation unsupported w/ open mode

MIDIERR_INVALIDSETUP = MIDIERR_BASE + 5

port no longer connected

MIDIERR_LASTERROR = MIDIERR_BASE + 5

thru device 'eating' a message

MIDIERR_NODEVICE = MIDIERR_BASE + 4

hardware is still busy

MIDIERR_NOMAP = MIDIERR_BASE + 2

still something playing

MIDIERR_NOTREADY = MIDIERR_BASE + 3

no current map

MIDIERR_STILLPLAYING = MIDIERR_BASE + 1

header not prepared

MIDIERR_UNPREPARED = MIDIERR_BASE + 0

************************************************************************* MIDI audio support ***************************************************************************} { MIDI error return values

MIDIMAPPER = UINT(-1)

device ID for MIDI mapper

MIDIPATCHSIZE = 128

MIDIPROP_GET = $40000000

MIDIPROP_SET = $80000000

Structures and defines for midiStreamProperty

MIDIPROP_TEMPO = $00000002

MIDIPROP_TIMEDIV = $00000001

These are intentionally both non-zero so the app cannot accidentally leave the operation off and happen to appear to work due to default action.

MIDISTRM_ERROR = -2

parm = MIDISTRMBUFFVER struct } { 0x81-0xFF reserved

MIDI_CACHE_ALL = 1

flags for wFlags parm of midiOutCachePatches(), midiOutCacheDrumPatches()

MIDI_CACHE_BESTFIT = 2

MIDI_CACHE_QUERY = 3

MIDI_IO_STATUS = $00000020

flags for dwFlags parm of midiInOpen()

MIDI_MAPPER = UINT(-1)

MIDI_UNCACHE = 4

MIM_CLOSE = MM_MIM_CLOSE

MIM_DATA = MM_MIM_DATA

MIM_ERROR = MM_MIM_ERROR

MIM_LONGDATA = MM_MIM_LONGDATA

MIM_LONGERROR = MM_MIM_LONGERROR

MIM_MOREDATA = MM_MIM_MOREDATA

MIM_OPEN = MM_MIM_OPEN

MIDI callback messages

MIXERCONTROL_CONTROLF_DISABLED = $80000000

MIXERCONTROL_CONTROLF_MULTIPLE = $00000002

MIXERCONTROL_CONTROLF_UNIFORM = $00000001

TMixerControl.fdwControl

MIXERCONTROL_CONTROLTYPE_BASS = (MIXERCONTROL_CONTROLTYPE_FADER + 2)

MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN or MIXERCONTROL_CT_UNITS_BOOLEAN)

MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER or MIXERCONTROL_CT_SC_METER_POLLED or MIXERCONTROL_CT_UNITS_BOOLEAN)

MIXERCONTROL_CONTROLTYPE_BUTTON = (MIXERCONTROL_CT_CLASS_SWITCH or MIXERCONTROL_CT_SC_SWITCH_BUTTON or MIXERCONTROL_CT_UNITS_BOOLEAN)

MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM or MIXERCONTROL_CT_UNITS_CUSTOM)

in 10ths } { Commonly used control types for specifying TMixerControl.dwControlType

MIXERCONTROL_CONTROLTYPE_DECIBELS = (MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_DECIBELS)

MIXERCONTROL_CONTROLTYPE_EQUALIZER = (MIXERCONTROL_CONTROLTYPE_FADER + 4)

MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER or MIXERCONTROL_CT_UNITS_UNSIGNED)

MIXERCONTROL_CONTROLTYPE_LOUDNESS = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4)

MIXERCONTROL_CONTROLTYPE_MICROTIME = (MIXERCONTROL_CT_CLASS_TIME or MIXERCONTROL_CT_SC_TIME_MICROSECS or MIXERCONTROL_CT_UNITS_UNSIGNED)

MIXERCONTROL_CONTROLTYPE_MILLITIME = (MIXERCONTROL_CT_CLASS_TIME or MIXERCONTROL_CT_SC_TIME_MILLISECS or MIXERCONTROL_CT_UNITS_UNSIGNED)

MIXERCONTROL_CONTROLTYPE_MIXER = (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1)

MIXERCONTROL_CONTROLTYPE_MONO = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3)

MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = (MIXERCONTROL_CT_CLASS_LIST or MIXERCONTROL_CT_SC_LIST_MULTIPLE or MIXERCONTROL_CT_UNITS_BOOLEAN)

MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2)

MIXERCONTROL_CONTROLTYPE_MUX = (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1)

MIXERCONTROL_CONTROLTYPE_ONOFF = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1)

MIXERCONTROL_CONTROLTYPE_PAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 1)

MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1)

MIXERCONTROL_CONTROLTYPE_PERCENT = (MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_PERCENT)

MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 2)

MIXERCONTROL_CONTROLTYPE_SIGNED = (MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_SIGNED)

MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER or MIXERCONTROL_CT_SC_METER_POLLED or MIXERCONTROL_CT_UNITS_SIGNED)

MIXERCONTROL_CONTROLTYPE_SINGLESELECT = (MIXERCONTROL_CT_CLASS_LIST or MIXERCONTROL_CT_SC_LIST_SINGLE or MIXERCONTROL_CT_UNITS_BOOLEAN)

MIXERCONTROL_CONTROLTYPE_SLIDER = (MIXERCONTROL_CT_CLASS_SLIDER or MIXERCONTROL_CT_UNITS_SIGNED)

MIXERCONTROL_CONTROLTYPE_STEREOENH = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5)

MIXERCONTROL_CONTROLTYPE_TREBLE = (MIXERCONTROL_CONTROLTYPE_FADER + 3)

MIXERCONTROL_CONTROLTYPE_UNSIGNED = (MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_UNSIGNED)

MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER or MIXERCONTROL_CT_SC_METER_POLLED or MIXERCONTROL_CT_UNITS_UNSIGNED)

MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1)

MIXERCONTROL_CT_CLASS_CUSTOM = $00000000

MIXERCONTROL_CT_CLASS_FADER = $50000000

MIXERCONTROL_CT_CLASS_LIST = $70000000

MIXERCONTROL_CT_CLASS_MASK = $F0000000

MIXERCONTROL_CONTROLTYPE_xxx building block defines

MIXERCONTROL_CT_CLASS_METER = $10000000

MIXERCONTROL_CT_CLASS_NUMBER = $30000000

MIXERCONTROL_CT_CLASS_SLIDER = $40000000

MIXERCONTROL_CT_CLASS_SWITCH = $20000000

MIXERCONTROL_CT_CLASS_TIME = $60000000

MIXERCONTROL_CT_SC_LIST_MULTIPLE = $01000000

MIXERCONTROL_CT_SC_LIST_SINGLE = $00000000

MIXERCONTROL_CT_SC_METER_POLLED = $00000000

MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = $00000000

MIXERCONTROL_CT_SC_SWITCH_BUTTON = $01000000

MIXERCONTROL_CT_SC_TIME_MICROSECS = $00000000

MIXERCONTROL_CT_SC_TIME_MILLISECS = $01000000

MIXERCONTROL_CT_SUBCLASS_MASK = $0F000000

MIXERCONTROL_CT_UNITS_BOOLEAN = $00010000

MIXERCONTROL_CT_UNITS_CUSTOM = $00000000

MIXERCONTROL_CT_UNITS_DECIBELS = $00040000

MIXERCONTROL_CT_UNITS_MASK = $00FF0000

MIXERCONTROL_CT_UNITS_PERCENT = $00050000

in 10ths

MIXERCONTROL_CT_UNITS_SIGNED = $00020000

MIXERCONTROL_CT_UNITS_UNSIGNED = $00030000

MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1)

MIXERLINE_COMPONENTTYPE_DST_FIRST = $00000000

TMixerLine.dwComponentType component types for destinations and sources

MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5)

MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)

MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2)

MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3)

MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4)

MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6)

MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0)

MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)

MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7)

MIXERLINE_COMPONENTTYPE_SRC_ANALOG = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)

MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9)

MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5)

MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1)

MIXERLINE_COMPONENTTYPE_SRC_FIRST = $00001000

MIXERLINE_COMPONENTTYPE_SRC_LAST = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)

MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2)

MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3)

MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7)

MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4)

MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6)

MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0)

MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8)

MIXERLINE_LINEF_ACTIVE = $00000001

TMixerLine.fdwLine

MIXERLINE_LINEF_DISCONNECTED = $00008000

MIXERLINE_LINEF_SOURCE = $80000000

MIXERLINE_TARGETTYPE_AUX = 5

MIXERLINE_TARGETTYPE_MIDIIN = 4

MIXERLINE_TARGETTYPE_MIDIOUT = 3

MIXERLINE_TARGETTYPE_UNDEFINED = 0

TMixerLine.Target.dwType

MIXERLINE_TARGETTYPE_WAVEIN = 2

MIXERLINE_TARGETTYPE_WAVEOUT = 1

MIXERR_BASE = 1024

MIXERR_INVALCONTROL = (MIXERR_BASE + 1)

MIXERR_INVALLINE = (MIXERR_BASE + 0)

MMRESULT error return values specific to the mixer API

MIXERR_INVALVALUE = (MIXERR_BASE + 2)

MIXERR_LASTERROR = (MIXERR_BASE + 2)

MIXER_GETCONTROLDETAILSF_LISTTEXT = $00000001

MIXER_GETCONTROLDETAILSF_QUERYMASK = $0000000F

MIXER_GETCONTROLDETAILSF_VALUE = $00000000

MIXER_GETLINECONTROLSF_ALL = $00000000

MIXER_GETLINECONTROLSF_ONEBYID = $00000001

MIXER_GETLINECONTROLSF_ONEBYTYPE = $00000002

MIXER_GETLINECONTROLSF_QUERYMASK = $0000000F

MIXER_GETLINEINFOF_COMPONENTTYPE = $00000003

MIXER_GETLINEINFOF_DESTINATION = $00000000

MIXER_GETLINEINFOF_LINEID = $00000002

MIXER_GETLINEINFOF_QUERYMASK = $0000000F

MIXER_GETLINEINFOF_SOURCE = $00000001

MIXER_GETLINEINFOF_TARGETTYPE = $00000004

MIXER_LONG_NAME_CHARS = 64

MIXER_OBJECTF_AUX = $50000000

MIXER_OBJECTF_HANDLE = $80000000

MIXER_OBJECTF_HMIDIIN = (MIXER_OBJECTF_HANDLE or MIXER_OBJECTF_MIDIIN)

MIXER_OBJECTF_HMIDIOUT = (MIXER_OBJECTF_HANDLE or MIXER_OBJECTF_MIDIOUT)

MIXER_OBJECTF_HMIXER = (MIXER_OBJECTF_HANDLE or MIXER_OBJECTF_MIXER)

MIXER_OBJECTF_HWAVEIN = (MIXER_OBJECTF_HANDLE or MIXER_OBJECTF_WAVEIN)

MIXER_OBJECTF_HWAVEOUT = (MIXER_OBJECTF_HANDLE or MIXER_OBJECTF_WAVEOUT)

MIXER_OBJECTF_MIDIIN = $40000000

MIXER_OBJECTF_MIDIOUT = $30000000

MIXER_OBJECTF_MIXER = $00000000

MIXER_OBJECTF_WAVEIN = $20000000

MIXER_OBJECTF_WAVEOUT = $10000000

MIXER_SETCONTROLDETAILSF_CUSTOM = $00000001

MIXER_SETCONTROLDETAILSF_QUERYMASK = $0000000F

MIXER_SETCONTROLDETAILSF_VALUE = $00000000

MIXER_SHORT_NAME_CHARS = 16

MMIOERR_ACCESSDENIED = MMIOERR_BASE + 12

path incorrect

MMIOERR_BASE = 256

************************************************************************* Multimedia File I/O support ***************************************************************************} { MMIO error return values

MMIOERR_CANNOTCLOSE = MMIOERR_BASE + 4

cannot open

MMIOERR_CANNOTEXPAND = MMIOERR_BASE + 8

cannot seek

MMIOERR_CANNOTOPEN = MMIOERR_BASE + 3

out of memory

MMIOERR_CANNOTREAD = MMIOERR_BASE + 5

cannot close

MMIOERR_CANNOTSEEK = MMIOERR_BASE + 7

cannot write

MMIOERR_CANNOTWRITE = MMIOERR_BASE + 6

cannot read

MMIOERR_CHUNKNOTFOUND = MMIOERR_BASE + 9

cannot expand file

MMIOERR_FILENOTFOUND = MMIOERR_BASE + 1

MMIOERR_INVALIDFILE = MMIOERR_BASE + 16

no more file handles

MMIOERR_NETWORKERROR = MMIOERR_BASE + 14

file in use

MMIOERR_OUTOFMEMORY = MMIOERR_BASE + 2

file not found

MMIOERR_PATHNOTFOUND = MMIOERR_BASE + 11

file is unbuffered

MMIOERR_SHARINGVIOLATION = MMIOERR_BASE + 13

file was protected

MMIOERR_TOOMANYOPENFILES = MMIOERR_BASE + 15

network not responding

MMIOERR_UNBUFFERED = MMIOERR_BASE + 10

chunk not found

MMIOM_CLOSE = 4

open file

MMIOM_OPEN = 3

seek to a new position in file

MMIOM_READ = MMIO_READ

mmioCreateChunk: make a RIFF chunk } { message numbers for MMIOPROC I/O procedure functions

MMIOM_RENAME = 6

write and flush

MMIOM_SEEK = 2

write

MMIOM_USER = $8000

rename specified file

MMIOM_WRITE = MMIO_WRITE

read

MMIOM_WRITEFLUSH = 5

close file

MMIO_ALLOCBUF = $00010000

checks for existence of file

MMIO_COMPAT = $00000000

open file for reading and writing } { share mode numbers (bit field MMIO_SHAREMODE)

MMIO_CREATE = $00001000

file sharing mode number } { constants for dwFlags field of MMIOINFO

MMIO_CREATELIST = $0040

mmioCreateChunk: make a LIST chunk

MMIO_CREATERIFF = $0020

mmioDescend: find a RIFF chunk

MMIO_DEFAULTBUFFER = 8192

seek relative to end of file } { other constants

MMIO_DELETE = $00000200

parse new file returning path

MMIO_DENYNONE = $00000040

deny reading to other processes

MMIO_DENYREAD = $00000030

deny writing to other processes

MMIO_DENYWRITE = $00000020

exclusive-access mode

MMIO_DIRTY = $10000000

mmioOpen() should retrieve temp name

MMIO_EMPTYBUF = $0010

mmioClose: keep file handle open

MMIO_EXCLUSIVE = $00000010

compatibility mode

MMIO_EXIST = $00004000

create new file (or truncate file)

MMIO_FHOPEN = $0010

deny nothing to other processes } { various MMIO flags

MMIO_FINDCHUNK = $0010

mmioInstallIOProc: find an MMIOProc

MMIO_FINDLIST = $0040

mmioDescend: find a LIST chunk

MMIO_FINDPROC = $00040000

mmioInstallIOProc: Unicode MMIOProc

MMIO_FINDRIFF = $0020

mmioDescend: find a chunk by ID

MMIO_GETTEMP = $00020000

mmioOpen() should allocate a buffer

MMIO_GLOBALPROC = $10000000

mmioInstallIOProc: install MMIOProc

MMIO_INSTALLPROC = $00010000

mmioStringToFOURCC: to u-case

MMIO_PARSE = $00000100

create new file (or truncate file)

MMIO_READ = $00000000

I/O buffer is dirty } { read/write mode numbers (bit field MMIO_RWMODE)

MMIO_READWRITE = $00000002

open file for writing only

MMIO_REMOVEPROC = $00020000

mmioInstallIOProc: install globally

MMIO_RWMODE = $00000003

bit field masks

MMIO_SHAREMODE = $00000070

open file for reading/writing/both

MMIO_TOUPPER = $0010

mmioFlush: empty the I/O buffer

MMIO_UNICODEPROC = $01000000

mmioInstallIOProc: remove MMIOProc

MMIO_WRITE = $00000001

open file for reading only

MMSYSERR_ALLOCATED = MMSYSERR_BASE + 4

driver failed enable

MMSYSERR_BADDB = MMSYSERR_BASE + 14

specified alias not found

MMSYSERR_BADDEVICEID = MMSYSERR_BASE + 2

unspecified error

MMSYSERR_BADERRNUM = MMSYSERR_BASE + 9

function isn't supported

MMSYSERR_BASE = 0

************************************************************************* String resource number bases (internal use)

MMSYSERR_DELETEERROR = MMSYSERR_BASE + 18

registry write error

MMSYSERR_ERROR = MMSYSERR_BASE + 1

no error

MMSYSERR_HANDLEBUSY = MMSYSERR_BASE + 12

invalid parameter passed

MMSYSERR_INVALFLAG = MMSYSERR_BASE + 10

error value out of range

MMSYSERR_INVALHANDLE = MMSYSERR_BASE + 5

device already allocated

MMSYSERR_INVALIDALIAS = MMSYSERR_BASE + 13

handle being used simultaneously on another thread (eg callback)

MMSYSERR_INVALPARAM = MMSYSERR_BASE + 11

invalid flag passed

MMSYSERR_KEYNOTFOUND = MMSYSERR_BASE + 15

bad registry database

MMSYSERR_LASTERROR = MMSYSERR_BASE + 20

driver does not call DriverCallback

MMSYSERR_NODRIVER = MMSYSERR_BASE + 6

device handle is invalid

MMSYSERR_NODRIVERCB = MMSYSERR_BASE + 20

registry value not found

MMSYSERR_NOERROR = 0

************************************************************************* General error return values ***************************************************************************} { general error return values

MMSYSERR_NOMEM = MMSYSERR_BASE + 7

no device driver present

MMSYSERR_NOTENABLED = MMSYSERR_BASE + 3

device ID out of range

MMSYSERR_NOTSUPPORTED = MMSYSERR_BASE + 8

memory allocation error

MMSYSERR_READERROR = MMSYSERR_BASE + 16

registry key not found

MMSYSERR_VALNOTFOUND = MMSYSERR_BASE + 19

registry delete error

MMSYSERR_WRITEERROR = MMSYSERR_BASE + 17

registry read error

mmsyst = 'winmm.dll'

MM_ADLIB = 9

Sound Blaster waveform input

MM_DRVM_CLOSE = $3D1

MM_DRVM_DATA = $3D2

MM_DRVM_ERROR = $3D3

MM_DRVM_OPEN = $3D0

MM_JOY1BUTTONDOWN = $3B5

MM_JOY1BUTTONUP = $3B7

MM_JOY1MOVE = $3A0

************************************************************************* Multimedia Extensions Window Messages ***************************************************************************} { joystick

MM_JOY1ZMOVE = $3A2

MM_JOY2BUTTONDOWN = $3B6

MM_JOY2BUTTONUP = $3B8

MM_JOY2MOVE = $3A1

MM_JOY2ZMOVE = $3A3

MM_MCINOTIFY = $3B9

MCI

MM_MCISIGNAL = $3CB

MM_MICROSOFT = 1

max oem vxd name length (including nil) } {*************************************************************************** Manufacturer and product IDs Used with wMid and wPid fields in WAVEOUTCAPS, WAVEINCAPS, MIDIOUTCAPS, MIDIINCAPS, AUXCAPS, JOYCAPS structures. ***************************************************************************} { manufacturer IDs

MM_MIDI_MAPPER = 1

Microsoft Corp. } { product IDs

MM_MIM_CLOSE = $3C2

MM_MIM_DATA = $3C3

MM_MIM_ERROR = $3C5

MM_MIM_LONGDATA = $3C4

MM_MIM_LONGERROR = $3C6

MM_MIM_MOREDATA = $3CC

MM_MIM_OPEN = $3C1

MIDI input

MM_MIXM_CONTROL_CHANGE = $3D1

MM_MIXM_LINE_CHANGE = $3D0

MM_MOM_CLOSE = $3C8

MM_MOM_DONE = $3C9

MM_MOM_OPEN = $3C7

MIDI output

MM_MOM_POSITIONCB = $3CA

MM_MPU401_MIDIIN = 11

MPU401-compatible MIDI output port

MM_MPU401_MIDIOUT = 10

Ad Lib-compatible synthesizer

MM_PC_JOYSTICK = 12

MPU401-compatible MIDI input port

MM_SNDBLST_MIDIIN = 4

Sound Blaster MIDI output port

MM_SNDBLST_MIDIOUT = 3

Wave Mapper

MM_SNDBLST_SYNTH = 5

Sound Blaster MIDI input port

MM_SNDBLST_WAVEIN = 7

Sound Blaster waveform output

MM_SNDBLST_WAVEOUT = 6

Sound Blaster internal synthesizer

MM_STREAM_CLOSE = $3D5

MM_STREAM_DONE = $3D6

MM_STREAM_ERROR = $3D7

MM_STREAM_OPEN = $3D4

MM_WAVE_MAPPER = 2

MIDI Mapper

MM_WIM_CLOSE = $3BF

MM_WIM_DATA = $3C0

MM_WIM_OPEN = $3BE

waveform input

MM_WOM_CLOSE = $3BC

MM_WOM_DONE = $3BD

MM_WOM_OPEN = $3BB

waveform output

MOD_FMSYNTH = 4

square wave internal synth

MOD_MAPPER = 5

FM internal synth

MOD_MIDIPORT = 1

flags for wTechnology field of MIDIOUTCAPS structure

MOD_SQSYNTH = 3

generic internal synth

MOD_SYNTH = 2

output port

MOM_CLOSE = MM_MOM_CLOSE

MOM_DONE = MM_MOM_DONE

MOM_OPEN = MM_MOM_OPEN

MOM_POSITIONCB = MM_MOM_POSITIONCB

NEWTRANSPARENT = 3

************************************************************************* DISPLAY Driver extensions

QUERYROPSUPPORT = 40

use with SetBkMode()

SC_SCREENSAVE = $F140

************************************************************************* ScreenSaver support The current application will receive a syscommand of SC_SCREENSAVE just before the screen saver is invoked. If the app wishes to prevent a screen save, return a non-zero value, otherwise call DefWindowProc().

SEEK_CUR = 1

seek to an absolute position

SEEK_END = 2

seek relative to current position

SEEK_SET = 0

'MEM '} { flags for mmioSeek()

SELECTDIB = 41

use to determine ROP support } {*************************************************************************** DIB Driver extensions

SND_ALIAS = $00010000

don't wait if the driver is busy

SND_ALIAS_ID = $00110000

name is a registry alias

SND_ALIAS_START = 0

look for application specific association

SND_ALIAS_SYSTEMASTERISK = SND_ALIAS_START + (Longint(Ord('S')) or (Longint(Ord('*')) shl 8))

alias base

SND_ALIAS_SYSTEMDEFAULT = SND_ALIAS_START + (Longint(Ord('S')) or (Longint(Ord('D')) shl 8))

SND_ALIAS_SYSTEMEXCLAMATION = SND_ALIAS_START + (Longint(Ord('S')) or (Longint(Ord('!')) shl 8))

SND_ALIAS_SYSTEMEXIT = SND_ALIAS_START + (Longint(Ord('S')) or (Longint(Ord('E')) shl 8))

SND_ALIAS_SYSTEMHAND = SND_ALIAS_START + (Longint(Ord('S')) or (Longint(Ord('H')) shl 8))

SND_ALIAS_SYSTEMQUESTION = SND_ALIAS_START + (Longint(Ord('S')) or (Longint(Ord('?')) shl 8))

SND_ALIAS_SYSTEMSTART = SND_ALIAS_START + (Longint(Ord('S')) or (Longint(Ord('S')) shl 8))

SND_ALIAS_SYSTEMWELCOME = SND_ALIAS_START + (Longint(Ord('S')) or (Longint(Ord('W')) shl 8))

SND_APPLICATION = $0080

purge non-static events for task

SND_ASYNC = $0001

play synchronously (default)

SND_FILENAME = $00020000

alias is a predefined ID

SND_LOOP = $0008

lpszSoundName points to a memory file

SND_MEMORY = $0004

don't use default sound

SND_NODEFAULT = $0002

play asynchronously

SND_NOSTOP = $0010

loop the sound until next sndPlaySound

SND_NOWAIT = $00002000

don't stop any currently playing sound

SND_PURGE = $0040

name is resource name or atom

SND_RESOURCE = $00040004

name is file name

SND_SYNC = $0000

flag values for wFlags parameter

TIMERR_BASE = 96

TIMERR_NOCANDO = TIMERR_BASE+1

no error

TIMERR_NOERROR = 0

************************************************************************* Timer support ***************************************************************************} { timer error return values

TIMERR_STRUCT = TIMERR_BASE+33

request not completed

TIME_BYTES = $0004

number of wave samples

TIME_CALLBACK_EVENT_PULSE = $0020

callback is event - use SetEvent

TIME_CALLBACK_EVENT_SET = $0010

callback is function

TIME_CALLBACK_FUNCTION = $0000

program for continuous periodic event

TIME_MIDI = $0010

SMPTE time

TIME_MS = $0001

error return code, 0 means no error } { types for wType field in MMTIME struct

TIME_ONESHOT = 0

flags for wFlags parameter of timeSetEvent() function

TIME_PERIODIC = 1

program timer for single event

TIME_SAMPLES = $0002

time in milliseconds

TIME_SMPTE = $0008

current byte offset

TIME_TICKS = $0020

MIDI time

WAVECAPS_DIRECTSOUND = $0040

WAVECAPS_LRVOLUME = $0008

supports volume control

WAVECAPS_PITCH = $0001

flags for dwSupport field of WAVEOUTCAPS

WAVECAPS_PLAYBACKRATE = $0002

supports pitch control

WAVECAPS_SAMPLEACCURATE = $0020

WAVECAPS_SYNC = $0010

separate left-right volume control

WAVECAPS_VOLUME = $0004

supports playback rate control

WAVERR_BADFORMAT = WAVERR_BASE + 0

************************************************************************* Waveform audio support ***************************************************************************} { waveform audio error return values

WAVERR_BASE = 32

WAVERR_LASTERROR = WAVERR_BASE + 3

device is synchronous

WAVERR_STILLPLAYING = WAVERR_BASE + 1

unsupported wave format

WAVERR_SYNC = WAVERR_BASE + 3

header not prepared

WAVERR_UNPREPARED = WAVERR_BASE + 2

still something playing

WAVE_ALLOWSYNC = $0002

WAVE_FORMAT_1M08 = $00000001

invalid format

WAVE_FORMAT_1M16 = $00000004

11.025 kHz, Stereo, 8-bit

WAVE_FORMAT_1S08 = $00000002

11.025 kHz, Mono, 8-bit

WAVE_FORMAT_1S16 = $00000008

11.025 kHz, Mono, 16-bit

WAVE_FORMAT_2M08 = $00000010

11.025 kHz, Stereo, 16-bit

WAVE_FORMAT_2M16 = $00000040

22.05 kHz, Stereo, 8-bit

WAVE_FORMAT_2S08 = $00000020

22.05 kHz, Mono, 8-bit

WAVE_FORMAT_2S16 = $00000080

22.05 kHz, Mono, 16-bit

WAVE_FORMAT_4M08 = $00000100

22.05 kHz, Stereo, 16-bit

WAVE_FORMAT_4M16 = $00000400

44.1 kHz, Stereo, 8-bit

WAVE_FORMAT_4S08 = $00000200

44.1 kHz, Mono, 8-bit

WAVE_FORMAT_4S16 = $00000800

44.1 kHz, Mono, 16-bit

WAVE_FORMAT_PCM = 1

flags for wFormatTag field of WAVEFORMAT

WAVE_FORMAT_QUERY = $0001

flags for dwFlags parameter in waveOutOpen() and waveInOpen()

WAVE_INVALIDFORMAT = $00000000

defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS

WAVE_MAPPED = $0004

WAVE_MAPPER = UINT(-1)

device ID for wave device mapper

WHDR_BEGINLOOP = $00000004

set if this header has been prepared

WHDR_DONE = $00000001

flags for dwFlags field of WAVEHDR

WHDR_ENDLOOP = $00000008

loop start block

WHDR_INQUEUE = $00000010

loop end block

WHDR_PREPARED = $00000002

done bit

WIM_CLOSE = MM_WIM_CLOSE

WIM_DATA = MM_WIM_DATA

WIM_OPEN = MM_WIM_OPEN

WOM_CLOSE = MM_WOM_CLOSE

WOM_DONE = MM_WOM_DONE

WOM_OPEN = MM_WOM_OPEN

wave callback messages

Variables