Declare Function DrvClose Lib "MMSYSTEM" (ByVal hDriver As Integer, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long
Declare Function DrvOpen Lib "MMSYSTEM" (ByVal szDriverName As String, ByVal szSectionName As String, ByVal lParam2 As Long) As Integer
Declare Function DrvSendMessage Lib "MMSYSTEM" (ByVal hDriver As Integer, ByVal uMessage As Integer, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long
Declare Function DrvGetModuleHandle Lib "MMSYSTEM" (ByVal hDriver As Integer) As Integer
Declare Function DrvDefDriverProc Lib "MMSYSTEM" (ByVal dwDriverIdentifier As Long, ByVal driverID As Integer, ByVal uMessage As Integer, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long
Global Const WAVERR_BADFORMAT = (WAVERR_BASE + 0) ' unsupported wave format
Global Const WAVERR_STILLPLAYING = (WAVERR_BASE + 1) ' still something playing
Global Const WAVERR_UNPREPARED = (WAVERR_BASE + 2) ' header not prepared
Global Const WAVERR_SYNC = (WAVERR_BASE + 3) ' device is synchronous
Global Const WAVERR_LASTERROR = (WAVERR_BASE + 3) ' last error in range
' waveform audio data types
' wave callback messages
Global Const WOM_OPEN = MM_WOM_OPEN
Global Const WOM_CLOSE = MM_WOM_CLOSE
Global Const WOM_DONE = MM_WOM_DONE
Global Const WIM_OPEN = MM_WIM_OPEN
Global Const WIM_CLOSE = MM_WIM_CLOSE
Global Const WIM_DATA = MM_WIM_DATA
' device ID for wave device mapper
Global Const WAVE_MAPPER = (-1)
' flags for dwFlags parameter in waveOutOpen() and waveInOpen()
Global Const WAVE_FORMAT_QUERY = &H1
Global Const WAVE_ALLOWSYNC = &H2
' wave data block header
Type WAVEHDR
lpData As Long ' pointer to locked data buffer
dwBufferLength As Long ' length of data buffer
dwBytesRecorded As Long ' used for input only
dwUser As Long ' for client's use
dwFlags As Long ' assorted flags (see defines)
dwLoops As Long ' loop control counter
wavehdr_tag As Long ' reserved for driver
reserved As Long ' reserved for driver
End Type
' flags for dwFlags field of WAVEHDR
Global Const WHDR_DONE = &H1 ' done bit
Global Const WHDR_PREPARED = &H2 ' set if this header has been prepared
Global Const WHDR_BEGINLOOP = &H4 ' loop start block
Global Const WHDR_ENDLOOP = &H8 ' loop end block
Global Const WHDR_INQUEUE = &H10 ' reserved for driver
' waveform output device capabilities structure
Type WAVEOUTCAPS
wMid As Integer ' manufacturer ID
wPid As Integer ' product ID
vDriverVersion As Integer ' version of the driver
szPname As String * MAXPNAMELEN ' product name (NULL terminated string)
dwFormats As Long ' formats supported
wChannels As Integer ' number of sources supported
dwSupport As Long ' functionality supported by driver
End Type
' typedef WAVEOUTCAPS *PWAVEOUTCAPS;
' typedef WAVEOUTCAPS NEAR *NPWAVEOUTCAPS;
' typedef WAVEOUTCAPS FAR *LPWAVEOUTCAPS;
' flags for dwSupport field of WAVEOUTCAPS
Global Const WAVECAPS_PITCH = &H1 ' supports pitch control
Global Const WAVECAPS_PLAYBACKRATE = &H2 ' supports playback rate control
Global Const WAVECAPS_VOLUME = &H4 ' supports volume control
Global Const WAVECAPS_LRVOLUME = &H8 ' separate left-right volume control
Global Const WAVECAPS_SYNC = &H10
' waveform input device capabilities structure
Type WAVEINCAPS
wMid As Integer ' manufacturer ID
wPid As Integer ' product ID
vDriverVersion As Integer ' version of the driver
szPname As String * MAXPNAMELEN ' product name (NULL terminated string)
dwFormats As Long ' formats supported
wChannels As Integer ' number of channels supported
End Type
' defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS
Global Const WAVE_INVALIDFORMAT = &H0 ' invalid format
Global Const WAVE_FORMAT_1M08 = &H1 ' 11.025 kHz, Mono, 8-bit
Global Const WAVE_FORMAT_1S08 = &H2 ' 11.025 kHz, Stereo, 8-bit
Global Const WAVE_FORMAT_1M16 = &H4 ' 11.025 kHz, Mono, 16-bit
Global Const WAVE_FORMAT_1S16 = &H8 ' 11.025 kHz, Stereo, 16-bit
Global Const WAVE_FORMAT_2M08 = &H10 ' 22.05 kHz, Mono, 8-bit
Global Const WAVE_FORMAT_2S08 = &H20 ' 22.05 kHz, Stereo, 8-bit
Global Const WAVE_FORMAT_2M16 = &H40 ' 22.05 kHz, Mono, 16-bit
Global Const WAVE_FORMAT_2S16 = &H80 ' 22.05 kHz, Stereo, 16-bit
Global Const WAVE_FORMAT_4M08 = &H100 ' 44.1 kHz, Mono, 8-bit
Global Const WAVE_FORMAT_4S08 = &H200 ' 44.1 kHz, Stereo, 8-bit
Global Const WAVE_FORMAT_4M16 = &H400 ' 44.1 kHz, Mono, 16-bit
Global Const WAVE_FORMAT_4S16 = &H800 ' 44.1 kHz, Stereo, 16-bit
' general waveform format structure (information common to all formats)
Type WAVEFORMAT
wFormatTag As Integer ' format type
nChannels As Integer ' number of channels (i.e. mono, stereo, etc.)
nSamplesPerSec As Long ' sample rate
nAvgBytesPerSec As Long ' for buffer estimation
nBlockAlign As Integer ' block size of data
End Type
' flags for wFormatTag field of WAVEFORMAT
Global Const WAVE_FORMAT_PCM = 1
' specific waveform format structure for PCM data
Type PCMWAVEFORMAT
wf As WAVEFORMAT
wBitsPerSample As Integer
End Type
' waveform audio function prototypes
Declare Function waveOutGetNumDevs Lib "MMSYSTEM" () As Integer
Declare Function waveOutGetDevCaps Lib "MMSYSTEM" (ByVal udeviceid As Integer, lpCaps As WAVEOUTCAPS, uSize As Integer) As Integer
Declare Function waveOutGetVolume Lib "MMSYSTEM" (ByVal udeviceid As Integer, lpdwvolume As Long) As Integer
Declare Function waveOutSetVolume Lib "MMSYSTEM" (ByVal udeviceid As Integer, ByVal dwVolume As Long) As Integer
Declare Function waveOutGetErrorText Lib "MMSYSTEM" (ByVal uError As Integer, ByVal lpText As String, ByVal uSize As Integer) As Integer
Declare Function waveOutOpen Lib "MMSYSTEM" (lpWaveout As Integer, ByVal UINT As Integer, lpformat As Integer, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal flags As Long) As Integer
Declare Function waveOutClose Lib "MMSYSTEM" (ByVal hWaveOut As Integer) As Integer
Declare Function waveOutPrepareHeader Lib "MMSYSTEM" (ByVal hWaveOut As Integer, WH As WAVEHDR, ByVal uSize As Integer) As Integer
Declare Function waveOutUnprepareHeader Lib "MMSYSTEM" (ByVal hWaveOut As Integer, WH As WAVEHDR, ByVal uSize As Integer) As Integer
Declare Function waveOutWrite Lib "MMSYSTEM" (ByVal hWaveOut As Integer, WH1 As WAVEHDR, ByVal uSize As Integer) As Integer
Declare Function waveOutPause Lib "MMSYSTEM" (ByVal hWaveOut As Integer) As Integer
Declare Function waveOutRestart Lib "MMSYSTEM" (ByVal hWaveOut As Integer) As Integer
Declare Function waveOutReset Lib "MMSYSTEM" (ByVal hWaveOut As Integer) As Integer
Declare Function waveOutBreakLoop Lib "MMSYSTEM" (ByVal hWaveOut As Integer) As Integer
Declare Function waveOutGetPosition Lib "MMSYSTEM" (ByVal hWaveOut As Integer, lpinfo As MMTIME, ByVal uSize As Integer) As Integer
Declare Function waveOutGetPitch Lib "MMSYSTEM" (ByVal hWaveOut As Integer, lpdwpitch As Long) As Integer
Declare Function waveOutSetPitch Lib "MMSYSTEM" (ByVal hWaveOut As Integer, ByVal dwPitch As Long) As Integer
Declare Function waveOutGetPlaybackRate Lib "MMSYSTEM" (ByVal hWaveOut As Integer, lpdwrate As Long) As Integer
Declare Function waveOutSetPlaybackRate Lib "MMSYSTEM" (ByVal hWaveOut As Integer, ByVal dwRate As Long) As Integer
Declare Function waveOutGetID Lib "MMSYSTEM" (ByVal hWaveOut As Integer, lpudeviceid As Integer) As Integer
Declare Function waveOutMessage Lib "MMSYSTEM" (ByVal hWaveOut As Integer, ByVal uMessage As Integer, ByVal dw1 As Long, ByVal dw2 As Long) As Long
Declare Function waveInGetNumDevs Lib "MMSYSTEM" () As Integer
Declare Function waveInGetDevCaps Lib "MMSYSTEM" (ByVal udeviceid As Integer, lpCaps As WAVEINCAPS, ByVal uSize As Integer) As Integer
Declare Function waveInGetErrorText Lib "MMSYSTEM" (ByVal uError As Integer, ByVal lpText As String, ByVal uSize As Integer) As Integer
Declare Function waveInOpen Lib "MMSYSTEM" (lphWaveIn As Integer, ByVal udeviceid As Integer, lpformat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Integer
Declare Function waveInClose Lib "MMSYSTEM" (ByVal hWaveIn As Integer) As Integer
Declare Function waveInPrepareHeader Lib "MMSYSTEM" (ByVal hWaveIn As Integer, lpWaveInHdr As WAVEHDR, ByVal uSize As Integer) As Integer
Declare Function waveInUnprepareHeader Lib "MMSYSTEM" (ByVal hWaveIn As Integer, lpWaveInHdr As WAVEHDR, ByVal uSize As Integer) As Integer
Declare Function waveInAddBuffer Lib "MMSYSTEM" (ByVal hWaveIn As Integer, lpWaveInHdr As WAVEHDR, ByVal uSize As Integer) As Integer
Declare Function waveInStart Lib "MMSYSTEM" (ByVal hWaveIn As Integer) As Integer
Declare Function waveInStop Lib "MMSYSTEM" (ByVal hWaveIn As Integer) As Integer
Declare Function waveInReset Lib "MMSYSTEM" (ByVal hWaveIn As Integer) As Integer
Declare Function waveInGetPosition Lib "MMSYSTEM" (ByVal hWaveIn As Integer, lpinfo As MMTIME, ByVal uSize As Integer) As Integer
Declare Function waveInGetID Lib "MMSYSTEM" (ByVal hWaveIn As Integer, lpudeviceid As Integer) As Integer
Declare Function waveInMessage Lib "MMSYSTEM" (ByVal hWaveIn As Integer, ByVal uMessage As Integer, ByVal dw1 As Long, ByVal dw2 As Long) As Long
Global Const MIDIERR_UNPREPARED = (MIDIERR_BASE + 0) ' header not prepared
Global Const MIDIERR_STILLPLAYING = (MIDIERR_BASE + 1) ' still something playing
Global Const MIDIERR_NOMAP = (MIDIERR_BASE + 2) ' no current map
Global Const MIDIERR_NOTREADY = (MIDIERR_BASE + 3) ' hardware is still busy
Global Const MIDIERR_NODEVICE = (MIDIERR_BASE + 4) ' port no longer connected
Global Const MIDIERR_INVALIDSETUP = (MIDIERR_BASE + 5) ' invalid setup
Global Const MIDIERR_LASTERROR = (MIDIERR_BASE + 5) ' last error in range
Global Const MIDIPATCHSIZE = 128
' MIDI callback messages
Global Const MIM_OPEN = MM_MIM_OPEN
Global Const MIM_CLOSE = MM_MIM_CLOSE
Global Const MIM_DATA = MM_MIM_DATA
Global Const MIM_LONGDATA = MM_MIM_LONGDATA
Global Const MIM_ERROR = MM_MIM_ERROR
Global Const MIM_LONGERROR = MM_MIM_LONGERROR
Global Const MOM_OPEN = MM_MOM_OPEN
Global Const MOM_CLOSE = MM_MOM_CLOSE
Global Const MOM_DONE = MM_MOM_DONE
' device ID for MIDI mapper
Global Const MIDIMAPPER = (-1)
Global Const MIDI_MAPPER = (-1)
' flags for wFlags parm of midiOutCachePatches(), midiOutCacheDrumPatches()
Global Const MIDI_CACHE_ALL = 1
Global Const MIDI_CACHE_BESTFIT = 2
Global Const MIDI_CACHE_QUERY = 3
Global Const MIDI_UNCACHE = 4
' MIDI output device capabilities structure
Type MIDIOUTCAPS
wMid As Integer ' manufacturer ID
wPid As Integer ' product ID
vDriverVersion As Integer ' version of the driver
szPname As String * MAXPNAMELEN ' product name (NULL terminated string)
wTechnology As Integer ' type of device
wVoices As Integer ' # of voices (internal synth only)
wNotes As Integer ' max # of notes (internal synth only)
wChannelMask As Integer ' channels used (internal synth only)
dwSupport As Long ' functionality supported by driver
End Type
' flags for wTechnology field of MIDIOUTCAPS structure
Global Const MOD_MIDIPORT = 1 ' output port
Global Const MOD_SYNTH = 2 ' generic internal synth
Global Const MOD_SQSYNTH = 3 ' square wave internal synth
Global Const MOD_FMSYNTH = 4 ' FM internal synth
Global Const MOD_MAPPER = 5 ' MIDI mapper
' flags for dwSupport field of MIDIOUTCAPS structure
Global Const MIDICAPS_VOLUME = &H1 ' supports volume control
Global Const MIDICAPS_LRVOLUME = &H2 ' separate left-right volume control
Global Const MIDICAPS_CACHE = &H4
' MIDI output device capabilities structure
Type MIDIINCAPS
wMid As Integer ' manufacturer ID
wPid As Integer ' product ID
vDriverVersion As Integer ' version of the driver
szPname As String * MAXPNAMELEN ' product name (NULL terminated string)
End Type
' MIDI data block header
Type MIDIHDR
lpData As Long ' pointer to locked data block
dwBufferLength As Long ' length of data in data block
dwBytesRecorded As Long ' used for input only
dwUser As Long ' for client's use
dwFlags As Long ' assorted flags (see defines)
midihdr_tag As Long ' reserved for driver
reserved As Long ' reserved for driver
End Type
' flags for dwFlags field of MIDIHDR structure
Global Const MHDR_DONE = &H1 ' done bit
Global Const MHDR_PREPARED = &H2 ' set if header prepared
Global Const MHDR_INQUEUE = &H4 ' reserved for driver
' MIDI function prototypes
Declare Function midiOutGetNumDevs Lib "MMSYSTEM" () As Integer
Declare Function midiOutGetDevCaps Lib "MMSYSTEM" (ByVal udeviceid As Integer, lpCaps As MIDIOUTCAPS, ByVal uSize As Integer) As Integer
Declare Function midiOutGetVolume Lib "MMSYSTEM" (ByVal udeviceid As Integer, lpdwvolume As Long) As Integer
Declare Function midiOutSetVolume Lib "MMSYSTEM" (ByVal udeviceid As Integer, ByVal dwVolume As Long) As Integer
Declare Function midiOutGetErrorText Lib "MMSYSTEM" (ByVal uError As Integer, ByVal lpText As String, ByVal uSize As Integer) As Integer
Declare Function midiOutOpen Lib "MMSYSTEM" (lphMidiOut As Integer, ByVal udeviceid As Integer, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Integer
Declare Function midiOutClose Lib "MMSYSTEM" (ByVal hMidiOut As Integer) As Integer
Declare Function midiOutPrepareHeader Lib "MMSYSTEM" (ByVal hMidiOut As Integer, lphMidiOut As MIDIHDR, ByVal uSize As Integer) As Integer
Declare Function midiOutUnprepareHeader Lib "MMSYSTEM" (ByVal hMidiOut As Integer, lphMidiOut As MIDIHDR, ByVal uSize As Integer) As Integer
Declare Function midiOutShortMsg Lib "MMSYSTEM" (ByVal hMidiOut As Integer, ByVal dwMsg As Long) As Integer
Declare Function midiOutLongMsg Lib "MMSYSTEM" (ByVal hMidiOut As Integer, lphMidiOut As MIDIHDR, ByVal uSize As Integer) As Integer
Declare Function midiOutReset Lib "MMSYSTEM" (ByVal hMidiOut As Integer) As Integer
Declare Function midiOutCachePatches Lib "MMSYSTEM" (ByVal hMidiOut As Integer, ByVal uBank As Integer, ByVal PatchArray As Long, ByVal uFlags As Integer) As Integer
Declare Function midiOutCacheDrumPatches Lib "MMSYSTEM" (ByVal hMidiOut As Integer, ByVal uPatch As Integer, lpwKeyArray As Integer, ByVal uFlags As Integer) As Integer
Declare Function midiOutGetID Lib "MMSYSTEM" (ByVal hMidiOut As Integer, lpudeviceid As Integer) As Integer
Declare Function midiOutMessage Lib "MMSYSTEM" (ByVal hMidiOut As Integer, ByVal uMessage As Integer, ByVal dw1 As Long, ByVal dw2 As Long) As Long
Declare Function midiInGetNumDevs Lib "MMSYSTEM" () As Integer
Declare Function midiInGetDevCaps Lib "MMSYSTEM" (ByVal udeviceid As Integer, lpCaps As MIDIINCAPS, ByVal uSize As Integer) As Integer
Declare Function midiInGetErrorText Lib "MMSYSTEM" (ByVal uError As Integer, ByVal lpText As String, ByVal uSize As Integer) As Integer
Declare Function midiInOpen Lib "MMSYSTEM" (lphMidiIn As Integer, ByVal udeviceid As Integer, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Integer
Declare Function midiInClose Lib "MMSYSTEM" (ByVal hMidiIn As Integer) As Integer
Declare Function midiInPrepareHeader Lib "MMSYSTEM" (ByVal hMidiIn As Integer, lpMidiInHdr As MIDIHDR, ByVal uSize As Integer) As Integer
Declare Function midiInUnprepareHeader Lib "MMSYSTEM" (ByVal hMidiIn As Integer, lpMidiInHdr As MIDIHDR, ByVal uSize As Integer) As Integer
Declare Function midiInAddBuffer Lib "MMSYSTEM" (ByVal hMidiIn As Integer, lpMidiInHdr As MIDIHDR, ByVal uSize As Integer) As Integer
Declare Function midiInStart Lib "MMSYSTEM" (ByVal hMidiIn As Integer) As Integer
Declare Function midiInStop Lib "MMSYSTEM" (ByVal hMidiIn As Integer) As Integer
Declare Function midiInReset Lib "MMSYSTEM" (ByVal hMidiIn As Integer) As Integer
Declare Function midiInGetID Lib "MMSYSTEM" (ByVal hMidiIn As Integer, lpudeviceid As Integer) As Integer
Declare Function midiInMessage Lib "MMSYSTEM" (ByVal hMidiIn As Integer, ByVal uMessage As Integer, ByVal dw1 As Long, ByVal dw2 As Long) As Long
Global Const JOYERR_PARMS = (JOYERR_BASE + 5) ' bad parameters
Global Const JOYERR_NOCANDO = (JOYERR_BASE + 6) ' request not completed
Global Const JOYERR_UNPLUGGED = (JOYERR_BASE + 7) ' joystick is unplugged
' constants used with JOYINFO structure and MM_JOY* messages
Global Const JOY_BUTTON1 = &H1
Global Const JOY_BUTTON2 = &H2
Global Const JOY_BUTTON3 = &H4
Global Const JOY_BUTTON4 = &H8
Global Const JOY_BUTTON1CHG = &H100
Global Const JOY_BUTTON2CHG = &H200
Global Const JOY_BUTTON3CHG = &H400
Global Const JOY_BUTTON4CHG = &H800
' joystick ID constants
Global Const JOYSTICKID1 = 0
Global Const JOYSTICKID2 = 1
' joystick device capabilities data structure
Type JOYCAPS
wMid As Integer ' manufacturer ID
wPid As Integer ' product ID
szPname As String * MAXPNAMELEN ' product name (NULL terminated string)
wXmin As Integer ' minimum x position value
wXmax As Integer ' maximum x position value
wYmin As Integer ' minimum y position value
wYmax As Integer ' maximum y position value
wZmin As Integer ' minimum z position value
wZmax As Integer ' maximum z position value
wNumButtons As Integer ' number of buttons
wPeriodMin As Integer ' minimum message period when captured
wPeriodMax As Integer ' maximum message period when captured
End Type
' joystick information data structure
Type JOYINFO
wXpos As Integer ' x position
wYpos As Integer ' y position
wZpos As Integer ' z position
wButtons As Integer ' button states
End Type
' joystick function prototypes
Declare Function joyGetDevCaps Lib "MMSYSTEM" (ByVal uJoyID As Integer, lpCaps As JOYCAPS, ByVal uSize As Integer) As Integer
Declare Function joyGetNumDevs Lib "MMSYSTEM" () As Integer
Declare Function joyGetPos Lib "MMSYSTEM" (ByVal uJoyID As Integer, lpCaps As JOYINFO) As Integer
Declare Function joyGetThreshold Lib "MMSYSTEM" (ByVal uJoyID As Integer, lputhreshold As Integer) As Integer
Declare Function joyReleaseCapture Lib "MMSYSTEM" (ByVal uJoyID As Integer) As Integer
Declare Function joySetCapture Lib "MMSYSTEM" (ByVal hWnd As Integer, ByVal uJoyID As Integer, ByVal uPeriod As Integer, ByVal bChanged As Integer) As Integer
Declare Function joySetThreshold Lib "MMSYSTEM" (ByVal uJoyID As Integer, ByVal uThreshold As Integer) As Integer
Global Const MMIOERR_CHUNKNOTFOUND = (MMIOERR_BASE + 9) ' chunk not found
Global Const MMIOERR_UNBUFFERED = (MMIOERR_BASE + 10) ' file is unbuffered
' MMIO constants
Global Const CFSEPCHAR = "+" ' compound file name separator char.
' MMIO data types
' general MMIO information data structure
Type MMIOINFO
' general fields
dwFlags As Long ' general status flags
fccIOProc As Long ' pointer to I/O procedure
pIOProc As Long ' pointer to I/O procedure
wErrorRet As Integer ' place for error to be returned
HTASK As Integer ' alternate local task
' fields maintained by MMIO functions during buffered I/O
cchBuffer As Long ' size of I/O buffer (or 0L)
pchBuffer As String ' start of I/O buffer (or NULL)
pchNext As String ' pointer to next byte to read/write
pchEndRead As String ' pointer to last valid byte to read
pchEndWrite As String ' pointer to last byte to write
lBufOffset As Long ' disk offset of start of buffer
' fields maintained by I/O procedure
lDiskOffset As Long ' disk offset of next read or write
adwInfo(3) As Long ' data specific to type of MMIOPROC
' other fields maintained by MMIO
dwReserved1 As Long ' reserved for MMIO use
dwReserved2 As Long ' reserved for MMIO use
hmmio As Integer ' handle to open file
End Type
' RIFF chunk information data structure
Type MMCKINFO
ckid As Long ' chunk ID
cksize As Long ' chunk size
fccType As Long ' form type or list type
dwDataOffset As Long ' offset of data portion of chunk
dwFlags As Long ' flags used by MMIO functions
End Type
' bit field masks
Global Const MMIO_RWMODE = &H3 ' open file for reading/writing/both
Global Const MMIO_SHAREMODE = &H70 ' file sharing mode number
' constants for dwFlags field of MMIOINFO
Global Const MMIO_CREATE = &H1000 ' create new file (or truncate file)
Global Const MMIO_PARSE = &H100 ' parse new file returning path
Global Const MMIO_DELETE = &H200 ' create new file (or truncate file)
Global Const MMIO_EXIST = &H4000 ' checks for existence of file
Global Const MMIO_ALLOCBUF = &H10000 ' mmioOpen() should allocate a buffer
Global Const MMIO_GETTEMP = &H20000 ' mmioOpen() should retrieve temp name
Global Const MMIO_DIRTY = &H10000000 ' I/O buffer is dirty
' read/write mode numbers (bit field MMIO_RWMODE)
Global Const MMIO_READ = &H0 ' open file for reading only
Global Const MMIO_WRITE = &H1 ' open file for writing only
Global Const MMIO_READWRITE = &H2 ' open file for reading and writing
' share mode numbers (bit field MMIO_SHAREMODE)
Global Const MMIO_COMPAT = &H0 ' compatibility mode
Global Const MMIO_EXCLUSIVE = &H10 ' exclusive-access mode
Global Const MMIO_DENYWRITE = &H20 ' deny writing to other processes
Global Const MMIO_DENYREAD = &H30 ' deny reading to other processes
Global Const MMIO_DENYNONE = &H40 ' deny nothing to other processes
' various MMIO flags
Global Const MMIO_FHOPEN = &H10 ' mmioClose: keep file handle open
Global Const MMIO_EMPTYBUF = &H10 ' mmioFlush: empty the I/O buffer
Global Const MMIO_TOUPPER = &H10 ' mmioStringToFOURCC: to u-case
Global Const MMIO_INSTALLPROC = &H10000 ' mmioInstallIOProc: install MMIOProc
Global Const MMIO_GLOBALPROC = &H10000000 ' mmioInstallIOProc: install globally
Global Const MMIO_REMOVEPROC = &H20000 ' mmioInstallIOProc: remove MMIOProc
Global Const MMIO_FINDPROC = &H40000 ' mmioInstallIOProc: find an MMIOProc
Global Const MMIO_FINDCHUNK = &H10 ' mmioDescend: find a chunk by ID
Global Const MMIO_FINDRIFF = &H20 ' mmioDescend: find a LIST chunk
Global Const MMIO_FINDLIST = &H40 ' mmioDescend: find a RIFF chunk
Global Const MMIO_CREATERIFF = &H20 ' mmioCreateChunk: make a LIST chunk
Global Const MMIO_CREATELIST = &H40 ' mmioCreateChunk: make a RIFF chunk
' message numbers for MMIOPROC I/O procedure functions
Global Const MMIOM_READ = MMIO_READ ' read
Global Const MMIOM_WRITE = MMIO_WRITE ' write
Global Const MMIOM_SEEK = 2 ' seek to a new position in file
Global Const MMIOM_OPEN = 3 ' open file
Global Const MMIOM_CLOSE = 4 ' close file
Global Const MMIOM_WRITEFLUSH = 5 ' write and flush
Global Const MMIOM_RENAME = 6 ' rename specified file
Global Const MMIOM_USER = &H8000 ' beginning of user-defined messages
' standard four character codes
Global Const FOURCC_RIFF = "RIFF"
Global Const FOURCC_LIST = "LIST"
' four character codes used to identify standard built-in I/O procedures
Global Const FOURCC_DOS = "DOS "
Global Const FOURCC_MEM = "MEM "
' flags for mmioSeek()
Global Const SEEK_SET = 0 ' seek to an absolute position
Global Const SEEK_CUR = 1 ' seek relative to current position
Global Const SEEK_END = 2 ' seek relative to end of file
' other constants
Global Const MMIO_DEFAULTBUFFER = 8192 ' default buffer size
' MMIO function prototypes
Declare Function mmioStringToFOURCC Lib "mmsystem" (ByVal sz As String, ByVal uFlags As Integer) As Long
Declare Function mmioOpen Lib "mmsystem" (ByVal szFileName As String, mi As MMIOINFO, lpmmioinfo As MMIOINFO, ByVal dwOpenFlags As Long) As Integer
Declare Function mmioRename Lib "mmsystem" (ByVal szFileName As String, ByVal szNewFileName As String, lpmmioinfo As MMIOINFO, ByVal dwRenameFlags As Long) As Integer
Declare Function mmioClose Lib "mmsystem" (ByVal hmmio As Integer, ByVal uFlags As Integer) As Integer
Declare Function mmioRead Lib "mmsystem" (ByVal hmmio As Integer, ByVal pch As String, ByVal cch As Long) As Long
Declare Function mmioWrite Lib "mmsystem" (ByVal hmmio As Integer, ByVal pch As String, ByVal cch As Long) As Long
Declare Function mmioSeek Lib "mmsystem" (ByVal hmmio As Integer, ByVal lOffset As Long, ByVal iOrigin As Integer) As Long
Declare Function mmioGetInfo Lib "mmsystem" (ByVal hmmio As Integer, lpmmioinfo As MMIOINFO, ByVal uFlags As Integer) As Integer
Declare Function mmioSetInfo Lib "mmsystem" (ByVal hmmio As Integer, lpmmioinfo As MMIOINFO, ByVal uFlags As Integer) As Integer
Declare Function mmioSetBuffer Lib "mmsystem" (ByVal hmmio As Integer, ByVal pchBuffer As String, ByVal cchBuffer As Long, ByVal uFlags As Integer) As Integer
Declare Function mmioFlush Lib "mmsystem" (ByVal hmmio As Integer, ByVal uFlags As Integer) As Integer
Declare Function mmioAdvance Lib "mmsystem" (ByVal hmmio As Integer, lpmmioinfo As MMIOINFO, ByVal uFlags As Integer) As Integer
Declare Function mmioSendMessage Lib "mmsystem" (ByVal hmmio As Integer, ByVal uMessage As Integer, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long
Declare Function mmioDescend Lib "mmsystem" (ByVal hmmio As Integer, lpck As MMCKINFO, lpckParent As MMCKINFO, ByVal uFlags As Integer) As Integer
Declare Function mmioAscend Lib "mmsystem" (ByVal hmmio As Integer, lpck As MMCKINFO, ByVal uFlags As Integer) As Integer
Declare Function mmioCreateChunk Lib "mmsystem" (ByVal hmmio As Integer, lpck As MMCKINFO, ByVal uFlags As Integer) As Integer
Declare Function mciSendCommand Lib "mmsystem" (ByVal udeviceid As Integer, ByVal uMessage As Integer, ByVal dwParam1 As Long, ByVal dwParam2 As Long) As Long
Declare Function mciSendString Lib "mmsystem" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hWndCallback As Integer) As Long
Declare Function mciGetDeviceID Lib "mmsystem" (ByVal lpstrName As String) As Integer
Declare Function mciGetDeviceIDFromElementID Lib "mmsystem" (ByVal dwElementID As Long, ByVal lpstrType As String) As Integer
Declare Function mciGetErrorString Lib "mmsystem" (ByVal wError As Long, ByVal lpstrBuffer As String, ByVal uLength As Integer) As Integer
Declare Function mciGetCreatorTask Lib "mmsystem" (ByVal udeviceid As Integer) As Integer
Declare Function mciExecute Lib "mmsystem" (ByVal lpstrCommand As String) As Integer
' MCI error return values
Global Const MCIERR_INVALID_DEVICE_ID = (MCIERR_BASE + 1)
Global Const MCIERR_UNRECOGNIZED_KEYWORD = (MCIERR_BASE + 3)
Global Const MCIERR_UNRECOGNIZED_COMMAND = (MCIERR_BASE + 5)
Global Const MCIERR_HARDWARE = (MCIERR_BASE + 6)
Global Const MCIERR_INVALID_DEVICE_NAME = (MCIERR_BASE + 7)
Global Const MCIERR_OUT_OF_MEMORY = (MCIERR_BASE + 8)
Global Const MCIERR_DEVICE_OPEN = (MCIERR_BASE + 9)
Global Const MCIERR_CANNOT_LOAD_DRIVER = (MCIERR_BASE + 10)
Global Const MCIERR_MISSING_COMMAND_STRING = (MCIERR_BASE + 11)
Global Const MCIERR_PARAM_OVERFLOW = (MCIERR_BASE + 12)
Global Const MCIERR_MISSING_STRING_ARGUMENT = (MCIERR_BASE + 13)
Global Const MCIERR_BAD_INTEGER = (MCIERR_BASE + 14)
Global Const MCIERR_PARSER_INTERNAL = (MCIERR_BASE + 15)
Global Const MCIERR_DRIVER_INTERNAL = (MCIERR_BASE + 16)
Global Const MCIERR_MISSING_PARAMETER = (MCIERR_BASE + 17)
Global Const MCIERR_UNSUPPORTED_FUNCTION = (MCIERR_BASE + 18)
Global Const MCIERR_FILE_NOT_FOUND = (MCIERR_BASE + 19)
Global Const MCIERR_DEVICE_NOT_READY = (MCIERR_BASE + 20)
Global Const MCIERR_INTERNAL = (MCIERR_BASE + 21)
Global Const MCIERR_DRIVER = (MCIERR_BASE + 22)
Global Const MCIERR_CANNOT_USE_ALL = (MCIERR_BASE + 23)
Global Const MCIERR_MULTIPLE = (MCIERR_BASE + 24)
Global Const MCIERR_EXTENSION_NOT_FOUND = (MCIERR_BASE + 25)
Global Const MCIERR_OUTOFRANGE = (MCIERR_BASE + 26)
Global Const MCIERR_FLAGS_NOT_COMPATIBLE = (MCIERR_BASE + 28)
Global Const MCIERR_FILE_NOT_SAVED = (MCIERR_BASE + 30)
Global Const MCIERR_DEVICE_TYPE_REQUIRED = (MCIERR_BASE + 31)
Global Const MCIERR_DEVICE_LOCKED = (MCIERR_BASE + 32)
Global Const MCIERR_DUPLICATE_ALIAS = (MCIERR_BASE + 33)
Global Const MCIERR_BAD_CONSTANT = (MCIERR_BASE + 34)
Global Const MCIERR_MUST_USE_SHAREABLE = (MCIERR_BASE + 35)
Global Const MCIERR_MISSING_DEVICE_NAME = (MCIERR_BASE + 36)
Global Const MCIERR_BAD_TIME_FORMAT = (MCIERR_BASE + 37)
Global Const MCIERR_NO_CLOSING_QUOTE = (MCIERR_BASE + 38)
Global Const MCIERR_DUPLICATE_FLAGS = (MCIERR_BASE + 39)
Global Const MCIERR_INVALID_FILE = (MCIERR_BASE + 40)
Global Const MCIERR_NULL_PARAMETER_BLOCK = (MCIERR_BASE + 41)
Global Const MCIERR_UNNAMED_RESOURCE = (MCIERR_BASE + 42)
Global Const MCIERR_NEW_REQUIRES_ALIAS = (MCIERR_BASE + 43)
Global Const MCIERR_NOTIFY_ON_AUTO_OPEN = (MCIERR_BASE + 44)
Global Const MCIERR_NO_ELEMENT_ALLOWED = (MCIERR_BASE + 45)
Global Const MCIERR_NONAPPLICABLE_FUNCTION = (MCIERR_BASE + 46)
Global Const MCIERR_ILLEGAL_FOR_AUTO_OPEN = (MCIERR_BASE + 47)
Global Const MCIERR_FILENAME_REQUIRED = (MCIERR_BASE + 48)
Global Const MCIERR_EXTRA_CHARACTERS = (MCIERR_BASE + 49)
Global Const MCIERR_DEVICE_NOT_INSTALLED = (MCIERR_BASE + 50)
Global Const MCIERR_GET_CD = (MCIERR_BASE + 51)
Global Const MCIERR_SET_CD = (MCIERR_BASE + 52)
Global Const MCIERR_SET_DRIVE = (MCIERR_BASE + 53)
Global Const MCIERR_DEVICE_LENGTH = (MCIERR_BASE + 54)
Global Const MCIERR_DEVICE_ORD_LENGTH = (MCIERR_BASE + 55)
Global Const MCIERR_NO_INTEGER = (MCIERR_BASE + 56)
Global Const MCIERR_WAVE_OUTPUTSINUSE = (MCIERR_BASE + 64)
Global Const MCIERR_WAVE_SETOUTPUTINUSE = (MCIERR_BASE + 65)
Global Const MCIERR_WAVE_INPUTSINUSE = (MCIERR_BASE + 66)
Global Const MCIERR_WAVE_SETINPUTINUSE = (MCIERR_BASE + 67)
Global Const MCIERR_WAVE_OUTPUTUNSPECIFIED = (MCIERR_BASE + 68)
Global Const MCIERR_WAVE_INPUTUNSPECIFIED = (MCIERR_BASE + 69)
Global Const MCIERR_WAVE_OUTPUTSUNSUITABLE = (MCIERR_BASE + 70)
Global Const MCIERR_WAVE_SETOUTPUTUNSUITABLE = (MCIERR_BASE + 71)
Global Const MCIERR_WAVE_INPUTSUNSUITABLE = (MCIERR_BASE + 72)
Global Const MCIERR_WAVE_SETINPUTUNSUITABLE = (MCIERR_BASE + 73)
Global Const MCIERR_SEQ_DIV_INCOMPATIBLE = (MCIERR_BASE + 80)
Global Const MCIERR_SEQ_PORT_INUSE = (MCIERR_BASE + 81)
Global Const MCIERR_SEQ_PORT_NONEXISTENT = (MCIERR_BASE + 82)
Global Const MCIERR_SEQ_PORT_MAPNODEVICE = (MCIERR_BASE + 83)
Global Const MCIERR_SEQ_PORT_MISCERROR = (MCIERR_BASE + 84)
Global Const MCIERR_SEQ_TIMER = (MCIERR_BASE + 85)
Global Const MCIERR_SEQ_PORTUNSPECIFIED = (MCIERR_BASE + 86)
Global Const MCIERR_SEQ_NOMIDIPRESENT = (MCIERR_BASE + 87)
Global Const MCIERR_NO_WINDOW = (MCIERR_BASE + 90)
Global Const MCIERR_CREATEWINDOW = (MCIERR_BASE + 91)
Global Const MCIERR_FILE_READ = (MCIERR_BASE + 92)
Global Const MCIERR_FILE_WRITE = (MCIERR_BASE + 93)
' all custom device driver errors must be >= than this value
Global Const MCIERR_CUSTOM_DRIVER_BASE = (MCIERR_BASE + 256)
' MCI command message identifiers
Global Const MCI_OPEN = &H803
Global Const MCI_CLOSE = &H804
Global Const MCI_ESCAPE = &H805
Global Const MCI_PLAY = &H806
Global Const MCI_SEEK = &H807
Global Const MCI_STOP = &H808
Global Const MCI_PAUSE = &H809
Global Const MCI_INFO = &H80A
Global Const MCI_GETDEVCAPS = &H80B
Global Const MCI_SPIN = &H80C
Global Const MCI_SET = &H80D
Global Const MCI_STEP = &H80E
Global Const MCI_RECORD = &H80F
Global Const MCI_SYSINFO = &H810
Global Const MCI_BREAK = &H811
Global Const MCI_SOUND = &H812
Global Const MCI_SAVE = &H813
Global Const MCI_STATUS = &H814
Global Const MCI_CUE = &H830
Global Const MCI_REALIZE = &H840
Global Const MCI_WINDOW = &H841
Global Const MCI_PUT = &H842
Global Const MCI_WHERE = &H843
Global Const MCI_FREEZE = &H844
Global Const MCI_UNFREEZE = &H845
Global Const MCI_LOAD = &H850
Global Const MCI_CUT = &H851
Global Const MCI_COPY = &H852
Global Const MCI_PASTE = &H853
Global Const MCI_UPDATE = &H854
Global Const MCI_RESUME = &H855
Global Const MCI_DELETE = &H856
' device ID for "all devices"
Global Const MCI_ALL_DEVICE_ID = &HFFFF
' constants for predefined MCI device types
Global Const MCI_DEVTYPE_VCR = (MCI_STRING_OFFSET + 1)
Global Const MCI_DEVTYPE_VIDEODISC = (MCI_STRING_OFFSET + 2)
Global Const MCI_DEVTYPE_OVERLAY = (MCI_STRING_OFFSET + 3)
Global Const MCI_DEVTYPE_CD_AUDIO = (MCI_STRING_OFFSET + 4)
Global Const MCI_DEVTYPE_DAT = (MCI_STRING_OFFSET + 5)
Global Const MCI_DEVTYPE_SCANNER = (MCI_STRING_OFFSET + 6)
Global Const MCI_DEVTYPE_ANIMATION = (MCI_STRING_OFFSET + 7)
Global Const MCI_DEVTYPE_DIGITAL_VIDEO = (MCI_STRING_OFFSET + 8)
Global Const MCI_DEVTYPE_OTHER = (MCI_STRING_OFFSET + 9)
Global Const MCI_DEVTYPE_WAVEFORM_AUDIO = (MCI_STRING_OFFSET + 10)
Global Const MCI_DEVTYPE_SEQUENCER = (MCI_STRING_OFFSET + 11)
Global Const MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR
Global Const MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER
' return values for 'status mode' command
Global Const MCI_MODE_NOT_READY = (MCI_STRING_OFFSET + 12)
Global Const MCI_MODE_STOP = (MCI_STRING_OFFSET + 13)
Global Const MCI_MODE_PLAY = (MCI_STRING_OFFSET + 14)
Global Const MCI_MODE_RECORD = (MCI_STRING_OFFSET + 15)
Global Const MCI_MODE_SEEK = (MCI_STRING_OFFSET + 16)
Global Const MCI_MODE_PAUSE = (MCI_STRING_OFFSET + 17)
Global Const MCI_MODE_OPEN = (MCI_STRING_OFFSET + 18)
' constants used in 'set time format' and 'status time format' commands
Global Const MCI_FORMAT_MILLISECONDS = 0
Global Const MCI_FORMAT_HMS = 1
Global Const MCI_FORMAT_MSF = 2
Global Const MCI_FORMAT_FRAMES = 3
Global Const MCI_FORMAT_SMPTE_24 = 4
Global Const MCI_FORMAT_SMPTE_25 = 5
Global Const MCI_FORMAT_SMPTE_30 = 6
Global Const MCI_FORMAT_SMPTE_30DROP = 7
Global Const MCI_FORMAT_BYTES = 8
Global Const MCI_FORMAT_SAMPLES = 9
Global Const MCI_FORMAT_TMSF = 10
' MCI time format conversion macros
' flags for wParam of MM_MCINOTIFY message
Global Const MCI_NOTIFY_SUCCESSFUL = &H1
Global Const MCI_NOTIFY_SUPERSEDED = &H2
Global Const MCI_NOTIFY_ABORTED = &H4
Global Const MCI_NOTIFY_FAILURE = &H8
' common flags for dwFlags parameter of MCI command messages
Global Const MCI_NOTIFY = &H1&
Global Const MCI_WAIT = &H2&
Global Const MCI_FROM = &H4&
Global Const MCI_TO = &H8&
Global Const MCI_TRACK = &H10&
' flags for dwFlags parameter of MCI_OPEN command message
Global Const MCI_OPEN_SHAREABLE = &H100&
Global Const MCI_OPEN_ELEMENT = &H200&
Global Const MCI_OPEN_ALIAS = &H400&
Global Const MCI_OPEN_ELEMENT_ID = &H800&
Global Const MCI_OPEN_TYPE_ID = &H1000&
Global Const MCI_OPEN_TYPE = &H2000&
' flags for dwFlags parameter of MCI_SEEK command message
Global Const MCI_SEEK_TO_START = &H100&
Global Const MCI_SEEK_TO_END = &H200&
' flags for dwFlags parameter of MCI_STATUS command message
Global Const MCI_STATUS_ITEM = &H100&
Global Const MCI_STATUS_START = &H200&
' flags for dwItem field of the MCI_STATUS_PARMS parameter block
Global Const MCI_STATUS_LENGTH = &H1&
Global Const MCI_STATUS_POSITION = &H2&
Global Const MCI_STATUS_NUMBER_OF_TRACKS = &H3&
Global Const MCI_STATUS_MODE = &H4&
Global Const MCI_STATUS_MEDIA_PRESENT = &H5&
Global Const MCI_STATUS_TIME_FORMAT = &H6&
Global Const MCI_STATUS_READY = &H7&
Global Const MCI_STATUS_CURRENT_TRACK = &H8&
' flags for dwFlags parameter of MCI_INFO command message
Global Const MCI_INFO_PRODUCT = &H100&
Global Const MCI_INFO_FILE = &H200&
' flags for dwFlags parameter of MCI_GETDEVCAPS command message
Global Const MCI_GETDEVCAPS_ITEM = &H100&
' flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block
Global Const MCI_GETDEVCAPS_CAN_RECORD = &H1&
Global Const MCI_GETDEVCAPS_HAS_AUDIO = &H2&
Global Const MCI_GETDEVCAPS_HAS_VIDEO = &H3&
Global Const MCI_GETDEVCAPS_DEVICE_TYPE = &H4&
Global Const MCI_GETDEVCAPS_USES_FILES = &H5&
Global Const MCI_GETDEVCAPS_COMPOUND_DEVICE = &H6&
Global Const MCI_GETDEVCAPS_CAN_EJECT = &H7&
Global Const MCI_GETDEVCAPS_CAN_PLAY = &H8&
Global Const MCI_GETDEVCAPS_CAN_SAVE = &H9&
' flags for dwFlags parameter of MCI_SYSINFO command message
Global Const MCI_SYSINFO_QUANTITY = &H100&
Global Const MCI_SYSINFO_OPEN = &H200&
Global Const MCI_SYSINFO_NAME = &H400&
Global Const MCI_SYSINFO_INSTALLNAME = &H800&
' flags for dwFlags parameter of MCI_SET command message
Global Const MCI_SET_DOOR_OPEN = &H100&
Global Const MCI_SET_DOOR_CLOSED = &H200&
Global Const MCI_SET_TIME_FORMAT = &H400&
Global Const MCI_SET_AUDIO = &H800&
Global Const MCI_SET_VIDEO = &H1000&
Global Const MCI_SET_ON = &H2000&
Global Const MCI_SET_OFF = &H4000&
' flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS
Global Const MCI_SET_AUDIO_ALL = &H0&
Global Const MCI_SET_AUDIO_LEFT = &H1&
Global Const MCI_SET_AUDIO_RIGHT = &H2&
' flags for dwFlags parameter of MCI_BREAK command message
Global Const MCI_BREAK_KEY = &H100&
Global Const MCI_BREAK_HWND = &H200&
Global Const MCI_BREAK_OFF = &H400&
' flags for dwFlags parameter of MCI_RECORD command message
Global Const MCI_RECORD_INSERT = &H100&
Global Const MCI_RECORD_OVERWRITE = &H200&
' flags for dwFlags parameter of MCI_SOUND command message
Global Const MCI_SOUND_NAME = &H100&
' flags for dwFlags parameter of MCI_SAVE command message
Global Const MCI_SAVE_FILE = &H100&
' flags for dwFlags parameter of MCI_LOAD command message
Global Const MCI_LOAD_FILE = &H100&
' generic parameter block for MCI command messages with no special parameters
Type MCI_GENERIC_PARMS
dwCallback As Long
End Type
' typedef MCI_GENERIC_PARMS FAR *LPMCI_GENERIC_PARMS;
' parameter block for MCI_OPEN command message
Type MCI_OPEN_PARMS
dwCallback As Long
wDeviceID As Integer
wReserved0 As Integer
lpstrDeviceType As String
lpstrElementName As String
lpstrAlias As String
End Type
' parameter block for MCI_PLAY command message
Type MCI_PLAY_PARMS
dwCallback As Long
dwFrom As Long
dwTo As Long
End Type
' parameter block for MCI_SEEK command message
Type MCI_SEEK_PARMS
dwCallback As Long
dwTo As Long
End Type
' parameter block for MCI_STATUS command message
Type MCI_STATUS_PARMS
dwCallback As Long
dwReturn As Long
dwItem As Long
dwTrack As Long
End Type
' parameter block for MCI_INFO command message
Type MCI_INFO_PARMS
dwCallback As Long
lpstrReturn As Long
dwRetSize As Long
End Type
' parameter block for MCI_GETDEVCAPS command message
Type MCI_GETDEVCAPS_PARMS
dwCallback As Long
dwReturn As Long
dwItem As Long
End Type
' parameter block for MCI_SYSINFO command message
Type MCI_SYSINFO_PARMS
dwCallback As Long
lpstrReturn As Long
dwRetSize As Long
dwNumber As Long
wDeviceType As Integer
wReserved0 As Integer
End Type
' parameter block for MCI_SET command message
Type MCI_SET_PARMS
dwCallback As Long
dwTimeFormat As Long
dwAudio As Long
End Type
' parameter block for MCI_BREAK command message
Type MCI_BREAK_PARMS
dwCallback As Long
nVirtKey As Integer
wReserved0 As Integer
hwndBreak As Integer
wReserved1 As Integer
End Type
' parameter block for MCI_SOUND command message
Type MCI_SOUND_PARMS
dwCallback As Long
lpstrSoundName As String
End Type
' parameter block for MCI_SAVE command message
Type MCI_SAVE_PARMS
dwCallback As Long
lpfilename As String
End Type
' parameter block for MCI_LOAD command message
Type MCI_LOAD_PARMS
dwCallback As Long
lpfilename As String
End Type
' parameter block for MCI_RECORD command message
Type MCI_RECORD_PARMS
dwCallback As Long
dwFrom As Long
dwTo As Long
End Type
' MCI extensions for videodisc devices
' flag for dwReturn field of MCI_STATUS_PARMS
Global Const MCI_VD_MODE_PARK = (MCI_VD_OFFSET + 1)
' flag for dwReturn field of MCI_STATUS_PARMS
Global Const MCI_VD_MEDIA_CLV = (MCI_VD_OFFSET + 2)
Global Const MCI_VD_MEDIA_CAV = (MCI_VD_OFFSET + 3)
Global Const MCI_VD_MEDIA_OTHER = (MCI_VD_OFFSET + 4)
Global Const MCI_VD_FORMAT_TRACK = &H4001
' flags for dwFlags parameter of MCI_PLAY command message
Global Const MCI_VD_PLAY_REVERSE = &H10000
Global Const MCI_VD_PLAY_FAST = &H20000
Global Const MCI_VD_PLAY_SPEED = &H40000
Global Const MCI_VD_PLAY_SCAN = &H80000
Global Const MCI_VD_PLAY_SLOW = &H100000
' flag for dwFlags parameter of MCI_SEEK command message
Global Const MCI_VD_SEEK_REVERSE = &H10000
' flags for dwItem field of MCI_STATUS_PARMS parameter block
Global Const MCI_VD_STATUS_SPEED = &H4002&
Global Const MCI_VD_STATUS_FORWARD = &H4003&
Global Const MCI_VD_STATUS_MEDIA_TYPE = &H4004&
Global Const MCI_VD_STATUS_SIDE = &H4005&
Global Const MCI_VD_STATUS_DISC_SIZE = &H4006&
' flags for dwFlags parameter of MCI_GETDEVCAPS command message
Global Const MCI_VD_GETDEVCAPS_CLV = &H10000
Global Const MCI_VD_GETDEVCAPS_CAV = &H20000
Global Const MCI_VD_SPIN_UP = &H10000
Global Const MCI_VD_SPIN_DOWN = &H20000
' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
Global Const MCI_VD_GETDEVCAPS_CAN_REVERSE = &H4002&
Global Const MCI_VD_GETDEVCAPS_FAST_RATE = &H4003&
Global Const MCI_VD_GETDEVCAPS_SLOW_RATE = &H4004&
Global Const MCI_VD_GETDEVCAPS_NORMAL_RATE = &H4005&
' flags for the dwFlags parameter of MCI_STEP command message
Global Const MCI_VD_STEP_FRAMES = &H10000
Global Const MCI_VD_STEP_REVERSE = &H20000
' flag for the MCI_ESCAPE command message
Global Const MCI_VD_ESCAPE_STRING = &H100&
' parameter block for MCI_PLAY command message
Type MCI_VD_PLAY_PARMS
dwCallback As Long
dwFrom As Long
dwTo As Long
dwSpeed As Long
End Type
' parameter block for MCI_STEP command message
Type MCI_VD_STEP_PARMS
dwCallback As Long
dwFrames As Long
End Type
' parameter block for MCI_ESCAPE command message
Type MCI_VD_ESCAPE_PARMS
dwCallback As Long
lpstrCommand As String
End Type
' MCI extensions for waveform audio devices
' flags for the dwFlags parameter of MCI_OPEN command message
Global Const MCI_WAVE_OPEN_BUFFER = &H10000
' flags for the dwFlags parameter of MCI_SET command message
Global Const MCI_WAVE_SET_FORMATTAG = &H10000
Global Const MCI_WAVE_SET_CHANNELS = &H20000
Global Const MCI_WAVE_SET_SAMPLESPERSEC = &H40000
Global Const MCI_WAVE_SET_AVGBYTESPERSEC = &H80000
Global Const MCI_WAVE_SET_BLOCKALIGN = &H100000
Global Const MCI_WAVE_SET_BITSPERSAMPLE = &H200000
' flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages
Global Const MCI_WAVE_INPUT = &H400000
Global Const MCI_WAVE_OUTPUT = &H800000
' flags for the dwItem field of MCI_STATUS_PARMS parameter block
Global Const MCI_WAVE_STATUS_FORMATTAG = &H4001&
Global Const MCI_WAVE_STATUS_CHANNELS = &H4002&
Global Const MCI_WAVE_STATUS_SAMPLESPERSEC = &H4003&
Global Const MCI_WAVE_STATUS_AVGBYTESPERSEC = &H4004&
Global Const MCI_WAVE_STATUS_BLOCKALIGN = &H4005&
Global Const MCI_WAVE_STATUS_BITSPERSAMPLE = &H4006&
Global Const MCI_WAVE_STATUS_LEVEL = &H4007&
' flags for the dwFlags parameter of MCI_SET command message
Global Const MCI_WAVE_SET_ANYINPUT = &H4000000
Global Const MCI_WAVE_SET_ANYOUTPUT = &H8000000
' flags for the dwFlags parameter of MCI_GETDEVCAPS command message
Global Const MCI_WAVE_GETDEVCAPS_INPUTS = &H4001&
Global Const MCI_WAVE_GETDEVCAPS_OUTPUTS = &H4002&
' parameter block for MCI_OPEN command message
Type MCI_WAVE_OPEN_PARMS
dwCallback As Long
wDeviceID As Integer
wReserved0 As Integer
lpstrDeviceType As String
lpstrElementName As String
lpstrAlias As String
dwBufferSeconds As Long
End Type
' parameter block for MCI_DELETE command message
Type MCI_WAVE_DELETE_PARMS
dwCallback As Long
dwFrom As Long
dwTo As Long
End Type
' typedef MCI_WAVE_DELETE_PARMS FAR *LPMCI_WAVE_DELETE_PARMS;
' parameter block for MCI_SET command message
Type MCI_WAVE_SET_PARMS
dwCallback As Long
dwTimeFormat As Long
dwAudio As Long
wInput As Integer
wReserved0 As Integer
wOutput As Integer
wReserved1 As Integer
wFormatTag As Integer
wReserved2 As Integer
nChannels As Integer
wReserved3 As Integer
nSamplesPerSec As Long
nAvgBytesPerSec As Long
nBlockAlign As Integer
wReserved4 As Integer
wBitsPerSample As Integer
wReserved5 As Integer
End Type
' MCI extensions for MIDI sequencer devices
' flags for the dwReturn field of MCI_STATUS_PARMS parameter block
Global Const MCI_SEQ_DIV_PPQN = (0 + MCI_SEQ_OFFSET)
Global Const MCI_SEQ_DIV_SMPTE_24 = (1 + MCI_SEQ_OFFSET)
Global Const MCI_SEQ_DIV_SMPTE_25 = (2 + MCI_SEQ_OFFSET)
Global Const MCI_SEQ_DIV_SMPTE_30DROP = (3 + MCI_SEQ_OFFSET)
Global Const MCI_SEQ_DIV_SMPTE_30 = (4 + MCI_SEQ_OFFSET)
' flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block
Global Const MCI_SEQ_FORMAT_SONGPTR = &H4001
Global Const MCI_SEQ_FILE = &H4002
Global Const MCI_SEQ_MIDI = &H4003
Global Const MCI_SEQ_SMPTE = &H4004
Global Const MCI_SEQ_NONE = 65533
' flags for the dwItem field of MCI_STATUS_PARMS parameter block
Global Const MCI_SEQ_STATUS_TEMPO = &H4002&
Global Const MCI_SEQ_STATUS_PORT = &H4003&
Global Const MCI_SEQ_STATUS_SLAVE = &H4007&
Global Const MCI_SEQ_STATUS_MASTER = &H4008&
Global Const MCI_SEQ_STATUS_OFFSET = &H4009&
Global Const MCI_SEQ_STATUS_DIVTYPE = &H400A&
' flags for the dwFlags parameter of MCI_SET command message
Global Const MCI_SEQ_SET_TEMPO = &H10000
Global Const MCI_SEQ_SET_PORT = &H20000
Global Const MCI_SEQ_SET_SLAVE = &H40000
Global Const MCI_SEQ_SET_MASTER = &H80000
Global Const MCI_SEQ_SET_OFFSET = &H1000000
' parameter block for MCI_SET command message
Type MCI_SEQ_SET_PARMS
dwCallback As Long
dwTimeFormat As Long
dwAudio As Long
dwTempo As Long
dwPort As Long
dwSlave As Long
dwMaster As Long
dwOffset As Long
End Type
' MCI extensions for animation devices
' flags for dwFlags parameter of MCI_OPEN command message
Global Const MCI_ANIM_OPEN_WS = &H10000
Global Const MCI_ANIM_OPEN_PARENT = &H20000
Global Const MCI_ANIM_OPEN_NOSTATIC = &H40000
' flags for dwFlags parameter of MCI_PLAY command message
Global Const MCI_ANIM_PLAY_SPEED = &H10000
Global Const MCI_ANIM_PLAY_REVERSE = &H20000
Global Const MCI_ANIM_PLAY_FAST = &H40000
Global Const MCI_ANIM_PLAY_SLOW = &H80000
Global Const MCI_ANIM_PLAY_SCAN = &H100000
' flags for dwFlags parameter of MCI_STEP command message
Global Const MCI_ANIM_STEP_REVERSE = &H10000
Global Const MCI_ANIM_STEP_FRAMES = &H20000
' flags for dwItem field of MCI_STATUS_PARMS parameter block
Global Const MCI_ANIM_STATUS_SPEED = &H4001&
Global Const MCI_ANIM_STATUS_FORWARD = &H4002&
Global Const MCI_ANIM_STATUS_HWND = &H4003&
Global Const MCI_ANIM_STATUS_HPAL = &H4004&
Global Const MCI_ANIM_STATUS_STRETCH = &H4005&
' flags for the dwFlags parameter of MCI_INFO command message
Global Const MCI_ANIM_INFO_TEXT = &H10000
' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
Global Const MCI_ANIM_GETDEVCAPS_CAN_REVERSE = &H4001&
Global Const MCI_ANIM_GETDEVCAPS_FAST_RATE = &H4002&
Global Const MCI_ANIM_GETDEVCAPS_SLOW_RATE = &H4003&
Global Const MCI_ANIM_GETDEVCAPS_NORMAL_RATE = &H4004&
Global Const MCI_ANIM_GETDEVCAPS_PALETTES = &H4006&
Global Const MCI_ANIM_GETDEVCAPS_CAN_STRETCH = &H4007&
Global Const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = &H4008&
' flags for the MCI_REALIZE command message
Global Const MCI_ANIM_REALIZE_NORM = &H10000
Global Const MCI_ANIM_REALIZE_BKGD = &H20000
' flags for dwFlags parameter of MCI_WINDOW command message
Global Const MCI_ANIM_WINDOW_HWND = &H10000
Global Const MCI_ANIM_WINDOW_STATE = &H40000
Global Const MCI_ANIM_WINDOW_TEXT = &H80000
Global Const MCI_ANIM_WINDOW_ENABLE_STRETCH = &H100000
Global Const MCI_ANIM_WINDOW_DISABLE_STRETCH = &H200000
' flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block
Global Const MCI_ANIM_WINDOW_DEFAULT = &H0&
' flags for dwFlags parameter of MCI_PUT command message
Global Const MCI_ANIM_RECT = &H10000
Global Const MCI_ANIM_PUT_SOURCE = &H20000
Global Const MCI_ANIM_PUT_DESTINATION = &H40000
' flags for dwFlags parameter of MCI_WHERE command message
Global Const MCI_ANIM_WHERE_SOURCE = &H20000
Global Const MCI_ANIM_WHERE_DESTINATION = &H40000
' flags for dwFlags parameter of MCI_UPDATE command message
Global Const MCI_ANIM_UPDATE_HDC = &H20000
' parameter block for MCI_OPEN command message
Type MCI_ANIM_OPEN_PARMS
dwCallback As Long
wDeviceID As Integer
wReserved0 As Integer
lpstrDeviceType As String
lpstrElementName As String
lpstrAlias As String
dwStyle As Long
hWndParent As Integer
wReserved1 As Integer
End Type
' parameter block for MCI_PLAY command message
Type MCI_ANIM_PLAY_PARMS
dwCallback As Long
dwFrom As Long
dwTo As Long
dwSpeed As Long
End Type
' parameter block for MCI_STEP command message
Type MCI_ANIM_STEP_PARMS
dwCallback As Long
dwFrames As Long
End Type
' parameter block for MCI_WINDOW command message
Type MCI_ANIM_WINDOW_PARMS
dwCallback As Long
hWnd As Integer
wReserved1 As Integer
nCmdShow As Integer
wReserved2 As Integer
lpstrText As String
End Type
' parameter block for MCI_PUT, MCI_UPDATE, MCI_WHERE command messages
Type MCI_ANIM_RECT_PARMS
dwCallback As Long
rc As RECT
End Type
' parameter block for MCI_UPDATE PARMS
Type MCI_ANIM_UPDATE_PARMS
dwCallback As Long
rc As RECT
hDC As Integer
End Type
' MCI extensions for video overlay devices
' flags for dwFlags parameter of MCI_OPEN command message
Global Const MCI_OVLY_OPEN_WS = &H10000
Global Const MCI_OVLY_OPEN_PARENT = &H20000
' flags for dwFlags parameter of MCI_STATUS command message
Global Const MCI_OVLY_STATUS_HWND = &H4001&
Global Const MCI_OVLY_STATUS_STRETCH = &H4002&
' flags for dwFlags parameter of MCI_INFO command message
Global Const MCI_OVLY_INFO_TEXT = &H10000
' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
Global Const MCI_OVLY_GETDEVCAPS_CAN_STRETCH = &H4001&
Global Const MCI_OVLY_GETDEVCAPS_CAN_FREEZE = &H4002&
Global Const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = &H4003&
' flags for dwFlags parameter of MCI_WINDOW command message
Global Const MCI_OVLY_WINDOW_HWND = &H10000
Global Const MCI_OVLY_WINDOW_STATE = &H40000
Global Const MCI_OVLY_WINDOW_TEXT = &H80000
Global Const MCI_OVLY_WINDOW_ENABLE_STRETCH = &H100000
Global Const MCI_OVLY_WINDOW_DISABLE_STRETCH = &H200000
' flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block
Global Const MCI_OVLY_WINDOW_DEFAULT = &H0&
' flags for dwFlags parameter of MCI_PUT command message
Global Const MCI_OVLY_RECT = &H10000
Global Const MCI_OVLY_PUT_SOURCE = &H20000
Global Const MCI_OVLY_PUT_DESTINATION = &H40000
Global Const MCI_OVLY_PUT_FRAME = &H80000
Global Const MCI_OVLY_PUT_VIDEO = &H100000
' flags for dwFlags parameter of MCI_WHERE command message
Global Const MCI_OVLY_WHERE_SOURCE = &H20000
Global Const MCI_OVLY_WHERE_DESTINATION = &H40000
Global Const MCI_OVLY_WHERE_FRAME = &H80000
Global Const MCI_OVLY_WHERE_VIDEO = &H100000
' parameter block for MCI_OPEN command message
Type MCI_OVLY_OPEN_PARMS
dwCallback As Long
wDeviceID As Integer
wReserved0 As Integer
lpstrDeviceType As String
lpstrElementName As String
lpstrAlias As String
dwStyle As Long
hWndParent As Integer
wReserved1 As Integer
End Type
' parameter block for MCI_WINDOW command message
Type MCI_OVLY_WINDOW_PARMS
dwCallback As Long
hWnd As Integer
wReserved1 As Integer
nCmdShow As Integer
wReserved2 As Integer
lpstrText As String
End Type
' parameter block for MCI_PUT, MCI_UPDATE, and MCI_WHERE command messages