windows-nt/Source/XPSP1/NT/multimedia/media/avi/inc.16/mmsystem.inc

1156 lines
40 KiB
PHP
Raw Normal View History

2020-09-26 03:20:57 -05:00
;==========================================================================;
; mmsystem.h -- Include file for Multimedia API's
; Version 4.00
; Copyright (C) 1992-1994 Microsoft Corporation. All Rights Reserved.
;--------------------------------------------------------------------------;
; Define: Prevent inclusion of:
; -------------- --------------------------------------------------------
; MMNODRV Installable driver support
; MMNOSOUND Sound support
; MMNOWAVE Waveform support
; MMNOMIDI MIDI support
; MMNOAUX Auxiliary audio support
; MMNOMIXER Mixer support
; MMNOTIMER Timer support
; MMNOJOY Joystick support
; MMNOMCI MCI support
; MMNOMMIO Multimedia file I/O support
; MMNOMMSYSTEM General MMSYSTEM functions
;==========================================================================;
; general constants
MAXPNAMELEN EQU 32 ; max product name length (including NULL)
MAXERRORLENGTH EQU 256 ; max error text length (including NULL)
MMTIME STRUC
mmt_wType DW ?
mmt_TimeUnion DD ?
MMTIME ENDS
SMPTE STRUC
smpte_hour DB ?
smpte_min DB ?
smpte_sec DB ?
smpte_frame DB ?
smpte_fps DB ?
smpte_reserved DB ?
SMPTE ENDS
; types for wType field in MMTIME struct
TIME_MS EQU 0001H ; time in milliseconds
TIME_SAMPLES EQU 0002H ; number of wave samples
TIME_BYTES EQU 0004H ; current byte offset
TIME_SMPTE EQU 0008H ; SMPTE time
TIME_MIDI EQU 0010H ; MIDI time
TIME_TICKS EQU 0020H ; Ticks within MIDI stream
MM_JOY1MOVE EQU 3A0H ; joystick
MM_JOY2MOVE EQU 3A1H
MM_JOY1ZMOVE EQU 3A2H
MM_JOY2ZMOVE EQU 3A3H
MM_JOY1BUTTONDOWN EQU 3B5H
MM_JOY2BUTTONDOWN EQU 3B6H
MM_JOY1BUTTONUP EQU 3B7H
MM_JOY2BUTTONUP EQU 3B8H
MM_MCINOTIFY EQU 3B9H ; MCI
MM_WOM_OPEN EQU 3BBH ; waveform output
MM_WOM_CLOSE EQU 3BCH
MM_WOM_DONE EQU 3BDH
MM_WIM_OPEN EQU 3BEH ; waveform input
MM_WIM_CLOSE EQU 3BFH
MM_WIM_DATA EQU 3C0H
MM_MIM_OPEN EQU 3C1H ; MIDI input
MM_MIM_CLOSE EQU 3C2H
MM_MIM_DATA EQU 3C3H
MM_MIM_LONGDATA EQU 3C4H
MM_MIM_ERROR EQU 3C5H
MM_MIM_LONGERROR EQU 3C6H
MM_MOM_OPEN EQU 3C7H ; MIDI output
MM_MOM_CLOSE EQU 3C8H
MM_MOM_DONE EQU 3C9H
MMSYSERR_BASE EQU 0
WAVERR_BASE EQU 32
MIDIERR_BASE EQU 64
TIMERR_BASE EQU 96
JOYERR_BASE EQU 160
MCIERR_BASE EQU 256
MIXERR_BASE EQU 1024
MCI_STRING_OFFSET EQU 512
MCI_VD_OFFSET EQU 1024
MCI_CD_OFFSET EQU 1088
MCI_WAVE_OFFSET EQU 1152
MCI_SEQ_OFFSET EQU 1216
;***************************************************************************
; General error return values
;*************************************************************************
; general error return values
MMSYSERR_NOERROR EQU 0 ; no error
MMSYSERR_ERROR EQU (MMSYSERR_BASE+1) ; unspecified error
MMSYSERR_BADDEVICEID EQU (MMSYSERR_BASE+2) ; device ID out of range
MMSYSERR_NOTENABLED EQU (MMSYSERR_BASE+3) ; driver failed enable
MMSYSERR_ALLOCATED EQU (MMSYSERR_BASE+4) ; device already allocated
MMSYSERR_INVALHANDLE EQU (MMSYSERR_BASE+5) ; device handle is invalid
MMSYSERR_NODRIVER EQU (MMSYSERR_BASE+6) ; no device driver present
MMSYSERR_NOMEM EQU (MMSYSERR_BASE+7) ; memory allocation error
MMSYSERR_NOTSUPPORTED EQU (MMSYSERR_BASE+8) ; function isn't supported
MMSYSERR_BADERRNUM EQU (MMSYSERR_BASE+9) ; error value out of range
MMSYSERR_INVALFLAG EQU (MMSYSERR_BASE+10) ; invalid flag passed
MMSYSERR_INVALPARAM EQU (MMSYSERR_BASE+11) ; invalid parameter passed
MMSYSERR_HANDLEBUSY EQU (MMSYSERR_BASE+12) ; handle being used
; simultaneously on another
; thread (eg callback)
MMSYSERR_INVALIDALIAS EQU (MMSYSERR_BASE+13) ; specified alias not found
MMSYSERR_BADDB EQU (MMSYSERR_BASE+14) ; bad registry database
MMSYSERR_KEYNOTFOUND EQU (MMSYSERR_BASE+15) ; registry key not found
MMSYSERR_READERROR EQU (MMSYSERR_BASE+16) ; registry read error
MMSYSERR_WRITEERROR EQU (MMSYSERR_BASE+17) ; registry write error
MMSYSERR_DELETEERROR EQU (MMSYSERR_BASE+18) ; registry delete error
MMSYSERR_VALNOTFOUND EQU (MMSYSERR_BASE+19) ; registry value not found
MMSYSERR_LASTERROR EQU (MMSYSERR_BASE+19) ; last error in range
ifndef MMNODRV
ifndef DRV_RESERVED
DRV_RESERVED EQU 0800H
DRV_USER EQU 4000H
endif
DRV_MCI_FIRST EQU DRV_RESERVED
DRV_MCI_LAST EQU (DRV_RESERVED+0FFFH)
endif ; ifndef MMNODRV
;***************************************************************************
; Driver callback support
;*************************************************************************
; flags used with waveOutOpen(), waveInOpen(), midiInOpen(), and
; midiOutOpen() to specify the type of the dwCallback parameter.
CALLBACK_TYPEMASK EQU 00070000H ; callback type mask
CALLBACK_NULL EQU 00000000H ; no callback
CALLBACK_WINDOW EQU 00010000H ; dwCallback is a HWND
CALLBACK_TASK EQU 00020000H ; dwCallback is a HTASK
CALLBACK_FUNCTION EQU 00030000H ; dwCallback is a FARPROC
ifdef WIN32
CALLBACK_THREAD EQU (CALLBACK_TASK) ; thread ID replaces 16 bit task
CALLBACK_EVENT EQU 00050000H ; dwCallback is an EVENT
endif
SND_SYNC EQU 0000H ; play synchronously (default)
SND_ASYNC EQU 0001H ; play asynchronously
SND_NODEFAULT EQU 0002H ; silence (!default) if sound not found
SND_MEMORY EQU 0004H ; pszSound points to a memory file
SND_LOOP EQU 0008H ; loop the sound until next sndPlaySound
SND_NOSTOP EQU 0010H ; don't stop any currently playing sound
ifndef MMNOWAVE
;***************************************************************************
; Waveform audio support
;*************************************************************************
; waveform audio error return values
WAVERR_BADFORMAT EQU (WAVERR_BASE+0) ; unsupported wave format
WAVERR_STILLPLAYING EQU (WAVERR_BASE+1) ; still something playing
WAVERR_UNPREPARED EQU (WAVERR_BASE+2) ; header not prepared
WAVERR_SYNC EQU (WAVERR_BASE+3) ; device is synchronous
WAVERR_LASTERROR EQU (WAVERR_BASE+3) ; last error in range
; wave callback messages
WOM_OPEN EQU MM_WOM_OPEN
WOM_CLOSE EQU MM_WOM_CLOSE
WOM_DONE EQU MM_WOM_DONE
WIM_OPEN EQU MM_WIM_OPEN
WIM_CLOSE EQU MM_WIM_CLOSE
WIM_DATA EQU MM_WIM_DATA
; device ID for wave device mapper
WAVE_MAPPER EQU (-1)
; flags for dwFlags parameter in waveOutOpen() and waveInOpen()
WAVE_FORMAT_QUERY EQU 0001H
WAVE_ALLOWSYNC EQU 0002H
WAVEHDR STRUC
lpWaveData DD ?
dwWaveBufferLength DD ?
dwWaveBytesRecorded DD ?
dwWaveUser DD ?
dwWaveFlags DD ?
dwWaveLoops DD ?
lpWaveNext DD ?
Wavereserved DD ?
WAVEHDR ENDS
; flags for dwFlags field of WAVEHDR
WHDR_DONE EQU 00000001H ; done bit
WHDR_PREPARED EQU 00000002H ; set if this header has been prepared
WHDR_BEGINLOOP EQU 00000004H ; loop start block
WHDR_ENDLOOP EQU 00000008H ; loop end block
WHDR_INQUEUE EQU 00000010H ; reserved for driver
WAVEOUTCAPS STRUC
woc_wMid DW ?
woc_wPid DW ?
woc_vDriverVersion DW ?
woc_szPname DB MAXPNAMELEN DUP (?)
woc_dwFormats DD ?
woc_wChannels DW ?
woc_dwSupport DD ?
WAVEOUTCAPS ENDS
; flags for dwSupport field of WAVEOUTCAPS
WAVECAPS_PITCH EQU 0001H ; supports pitch control
WAVECAPS_PLAYBACKRATE EQU 0002H ; supports playback rate control
WAVECAPS_VOLUME EQU 0004H ; supports volume control
WAVECAPS_LRVOLUME EQU 0008H ; separate left-right volume control
WAVECAPS_SYNC EQU 0010H
WAVEINCAPS STRUC
wic_wMid DW ?
wic_wPid DW ?
wic_vDriverVersion DW ?
wic_szPname DB MAXPNAMELEN DUP (?)
wic_dwFormats DD ?
wic_wChannels DW ?
WAVEINCAPS ENDS
; defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS
WAVE_INVALIDFORMAT EQU 00000000H ; invalid format
WAVE_FORMAT_1M08 EQU 00000001H ; 11.025 kHz, Mono, 8-bit
WAVE_FORMAT_1S08 EQU 00000002H ; 11.025 kHz, Stereo, 8-bit
WAVE_FORMAT_1M16 EQU 00000004H ; 11.025 kHz, Mono, 16-bit
WAVE_FORMAT_1S16 EQU 00000008H ; 11.025 kHz, Stereo, 16-bit
WAVE_FORMAT_2M08 EQU 00000010H ; 22.05 kHz, Mono, 8-bit
WAVE_FORMAT_2S08 EQU 00000020H ; 22.05 kHz, Stereo, 8-bit
WAVE_FORMAT_2M16 EQU 00000040H ; 22.05 kHz, Mono, 16-bit
WAVE_FORMAT_2S16 EQU 00000080H ; 22.05 kHz, Stereo, 16-bit
WAVE_FORMAT_4M08 EQU 00000100H ; 44.1 kHz, Mono, 8-bit
WAVE_FORMAT_4S08 EQU 00000200H ; 44.1 kHz, Stereo, 8-bit
WAVE_FORMAT_4M16 EQU 00000400H ; 44.1 kHz, Mono, 16-bit
WAVE_FORMAT_4S16 EQU 00000800H ; 44.1 kHz, Stereo, 16-bit
WAVEFORMAT STRUC
wfmt_wFormatTag DW ?
wfmt_nChannels DW ?
wfmt_nSamplesPerSec DD ?
wfmt_nAvgBytesPerSec DD ?
wfmt_nBlockAlign DW ?
WAVEFORMAT ENDS
; flags for wFormatTag field of WAVEFORMAT
WAVE_FORMAT_PCM EQU 1
PCMWAVEFORMAT STRUC
pcm_wf DB SIZE WAVEFORMAT DUP (?)
pcm_wBitsPerSample DW ?
PCMWAVEFORMAT ENDS
endif ; ifndef MMNOWAVE
ifndef MMNOMIDI
;***************************************************************************
; MIDI audio support
;*************************************************************************
; MIDI error return values
MIDIERR_UNPREPARED EQU (MIDIERR_BASE+0) ; header not prepared
MIDIERR_STILLPLAYING EQU (MIDIERR_BASE+1) ; still something playing
MIDIERR_NOMAP EQU (MIDIERR_BASE+2) ; no configured instruments
MIDIERR_NOTREADY EQU (MIDIERR_BASE+3) ; hardware is still busy
MIDIERR_NODEVICE EQU (MIDIERR_BASE+4) ; port no longer connected
MIDIERR_INVALIDSETUP EQU (MIDIERR_BASE+5) ; invalid MIF
MIDIERR_BADOPENMODE EQU (MIDIERR_BASE+6) ; operation unsupported w/ open mode
MIDIERR_LASTERROR EQU (MIDIERR_BASE+6) ; last error in range
MIDIPATCHSIZE EQU 128
; MIDI callback messages
MIM_OPEN EQU MM_MIM_OPEN
MIM_CLOSE EQU MM_MIM_CLOSE
MIM_DATA EQU MM_MIM_DATA
MIM_LONGDATA EQU MM_MIM_LONGDATA
MIM_ERROR EQU MM_MIM_ERROR
MIM_LONGERROR EQU MM_MIM_LONGERROR
MOM_OPEN EQU MM_MOM_OPEN
MOM_CLOSE EQU MM_MOM_CLOSE
MOM_DONE EQU MM_MOM_DONE
; device ID for MIDI mapper
MIDIMAPPER EQU (-1)
MIDI_MAPPER EQU (-1)
MIDI_CACHE_ALL EQU 1
MIDI_CACHE_BESTFIT EQU 2
MIDI_CACHE_QUERY EQU 3
MIDI_UNCACHE EQU 4
MIDIOUTCAPS STRUC
moc_wMid DW ?
moc_wPid DW ?
moc_vDriverVersion DW ?
moc_szPname DB MAXPNAMELEN DUP (?)
moc_wTechnology DW ?
moc_wVoices DW ?
moc_wNotes DW ?
moc_wChannelMask DW ?
moc_dwSupport DD ?
MIDIOUTCAPS ENDS
; flags for wTechnology field of MIDIOUTCAPS structure
MOD_MIDIPORT EQU 1 ; output port
MOD_SYNTH EQU 2 ; generic internal synth
MOD_SQSYNTH EQU 3 ; square wave internal synth
MOD_FMSYNTH EQU 4 ; FM internal synth
MOD_MAPPER EQU 5 ; MIDI mapper
; flags for dwSupport field of MIDIOUTCAPS structure
MIDICAPS_VOLUME EQU 0001H ; supports volume control
MIDICAPS_LRVOLUME EQU 0002H ; separate left-right volume control
MIDICAPS_CACHE EQU 0004H
MIDIINCAPS STRUC
mic_wMid DW ?
mic_wPid DW ?
mic_vDriverVersion DW ?
mic_szPname DB MAXPNAMELEN DUP (?)
MIDIINCAPS ENDS
MIDIHDR STRUC
lpMidiData DD ?
dwMidiBufferLength DD ?
dwMidiBytesRecorded DD ?
dwMidiUser DD ?
dwMidiFlags DD ?
lpMidiNext DD ?
Midireserved DD ?
MIDIHDR ENDS
; flags for dwFlags field of MIDIHDR structure
MHDR_DONE EQU 00000001H ; done bit
MHDR_PREPARED EQU 00000002H ; set if header prepared
MHDR_INQUEUE EQU 00000004H ; reserved for driver
MHDR_ISPOLY EQU 00000008H ; Buffer is polymsg buffer
MHDR_CHANIGNORE EQU 0FFFF0000H ; Ignore channels 1-16
endif ; ifndef MMNOMIDI
ifndef MMNOAUX
;***************************************************************************
; Auxiliary audio support
;*************************************************************************
; device ID for aux device mapper
AUX_MAPPER EQU (-1)
AUXCAPS STRUC
acaps_wMid DW ?
acaps_wPid DW ?
acaps_vDriverVersion DW ?
acaps_szPname DB MAXPNAMELEN DUP (?)
acaps_wTechnology DW ?
acaps_dwSupport DD ?
AUXCAPS ENDS
; flags for wTechnology field in AUXCAPS structure
AUXCAPS_CDAUDIO EQU 1 ; audio from internal CD-ROM drive
AUXCAPS_AUXIN EQU 2 ; audio from auxiliary input jacks
; flags for dwSupport field in AUXCAPS structure
AUXCAPS_VOLUME EQU 0001H ; supports volume control
AUXCAPS_LRVOLUME EQU 0002H ; separate left-right volume control
endif ; ifndef MMNOAUX
ifndef MMNOTIMER
;***************************************************************************
; Timer support
;*************************************************************************
; timer error return values
TIMERR_NOERROR EQU (0) ; no error
TIMERR_NOCANDO EQU (TIMERR_BASE+1) ; request not completed
TIMERR_STRUCT EQU (TIMERR_BASE+33) ; time struct size
; flags for wFlags parameter of timeSetEvent() function
TIME_ONESHOT EQU 00H ; program timer for single event
TIME_PERIODIC EQU 01H ; program for continuous periodic event
TIMECAPS STRUC
tc_wPeriodMin DW ?
tc_wPeriodMax DW ?
TIMECAPS ENDS
endif ; ifndef MMNOTIMER
ifndef MMNOJOY
;***************************************************************************
; Joystick support
;*************************************************************************
; joystick error return values
JOYERR_NOERROR EQU (0) ; no error
JOYERR_PARMS EQU (JOYERR_BASE+5) ; bad parameters
JOYERR_NOCANDO EQU (JOYERR_BASE+6) ; request not completed
JOYERR_UNPLUGGED EQU (JOYERR_BASE+7) ; joystick is unplugged
; constants used with JOYINFO structure and MM_JOY* messages
JOY_BUTTON1 EQU 0001H
JOY_BUTTON2 EQU 0002H
JOY_BUTTON3 EQU 0004H
JOY_BUTTON4 EQU 0008H
JOY_BUTTON1CHG EQU 0100H
JOY_BUTTON2CHG EQU 0200H
JOY_BUTTON3CHG EQU 0400H
JOY_BUTTON4CHG EQU 0800H
; joystick ID constants
JOYSTICKID1 EQU 0
JOYSTICKID2 EQU 1
JOYCAPS STRUC
jcaps_wMid DW ?
jcaps_wPid DW ?
jcaps_szPname DB MAXPNAMELEN DUP (?)
jcaps_wXmin DW ?
jcaps_wXmax DW ?
jcaps_wYmin DW ?
jcaps_wYmax DW ?
jcaps_wZmin DW ?
jcaps_wZmax DW ?
jcaps_wNumButtons DW ?
jcaps_wPeriodMin DW ?
jcaps_wPeriodMax DW ?
JOYCAPS ENDS
JOYINFO STRUC
jinfo_wXpos DW ?
jinfo_wYpos DW ?
jinfo_wZpos DW ?
jinfo_wButtons DW ?
JOYINFO ENDS
endif ; ifndef MMNOJOY
ifndef MMNOMMIO
;***************************************************************************
; Multimedia File I/O support
;*************************************************************************
; MMIO error return values
MMIOERR_BASE EQU 256
MMIOERR_FILENOTFOUND EQU (MMIOERR_BASE+1) ; file not found
MMIOERR_OUTOFMEMORY EQU (MMIOERR_BASE+2) ; out of memory
MMIOERR_CANNOTOPEN EQU (MMIOERR_BASE+3) ; cannot open
MMIOERR_CANNOTCLOSE EQU (MMIOERR_BASE+4) ; cannot close
MMIOERR_CANNOTREAD EQU (MMIOERR_BASE+5) ; cannot read
MMIOERR_CANNOTWRITE EQU (MMIOERR_BASE+6) ; cannot write
MMIOERR_CANNOTSEEK EQU (MMIOERR_BASE+7) ; cannot seek
MMIOERR_CANNOTEXPAND EQU (MMIOERR_BASE+8) ; cannot expand file
MMIOERR_CHUNKNOTFOUND EQU (MMIOERR_BASE+9) ; chunk not found
MMIOERR_UNBUFFERED EQU (MMIOERR_BASE+10) ;
MMIOERR_PATHNOTFOUND EQU (MMIOERR_BASE+11) ; path incorrect
MMIOERR_ACCESSDENIED EQU (MMIOERR_BASE+12) ; file was protected
MMIOERR_SHARINGVIOLATION EQU (MMIOERR_BASE+13) ; file in use
MMIOERR_NETWORKERROR EQU (MMIOERR_BASE+14) ; network not responding
MMIOERR_TOOMANYOPENFILES EQU (MMIOERR_BASE+15) ; no more file handles
MMIOERR_INVALIDFILE EQU (MMIOERR_BASE+16) ; default error file error
; MMIO constants
CFSEPCHAR EQU <'+'> ; compound file name separator char.
MMIOINFO STRUC
mmio_dwFlags DD ?
mmio_fccIOProc DD ?
mmio_pIOProc DD ?
mmio_wErrorRet DW ?
mmio_htask DW ?
mmio_cchBuffer DD ?
mmio_pchBuffer DD ?
mmio_pchNext DD ?
mmio_pchEndRead DD ?
mmio_pchEndWrite DD ?
mmio_lBufOffset DD ?
mmio_lDiskOffset DD ?
mmio_adwInfo DD 3 DUP (?)
mmio_dwReserved1 DD ?
mmio_dwReserved2 DD ?
mmio_hmmio DW ?
MMIOINFO ENDS
; bit field masks
MMIO_RWMODE EQU 00000003H ; open file for reading/writing/both
MMIO_SHAREMODE EQU 00000070H ; file sharing mode number
; constants for dwFlags field of MMIOINFO
MMIO_CREATE EQU 00001000H ; create new file (or truncate file)
MMIO_PARSE EQU 00000100H ; parse new file returning path
MMIO_DELETE EQU 00000200H ; create new file (or truncate file)
MMIO_EXIST EQU 00004000H ; checks for existence of file
MMIO_ALLOCBUF EQU 00010000H ; mmioOpen() should allocate a buffer
MMIO_GETTEMP EQU 00020000H ; mmioOpen() should retrieve temp name
MMIO_DIRTY EQU 10000000H ; I/O buffer is dirty
; read/write mode numbers (bit field MMIO_RWMODE)
MMIO_READ EQU 00000000H ; open file for reading only
MMIO_WRITE EQU 00000001H ; open file for writing only
MMIO_READWRITE EQU 00000002H ; open file for reading and writing
; share mode numbers (bit field MMIO_SHAREMODE)
MMIO_COMPAT EQU 00000000H ; compatibility mode
MMIO_EXCLUSIVE EQU 00000010H ; exclusive-access mode
MMIO_DENYWRITE EQU 00000020H ; deny writing to other processes
MMIO_DENYREAD EQU 00000030H ; deny reading to other processes
MMIO_DENYNONE EQU 00000040H ; deny nothing to other processes
; various MMIO flags
MMIO_FHOPEN EQU 0010H ; mmioClose: keep file handle open
MMIO_EMPTYBUF EQU 0010H ; mmioFlush: empty the I/O buffer
MMIO_TOUPPER EQU 0010H ; mmioStringToFOURCC: to u-case
MMIO_INSTALLPROC EQU 00010000H ; mmioInstallIOProc: install MMIOProc
MMIO_GLOBALPROC EQU 10000000H ; mmioInstallIOProc: install globally
MMIO_REMOVEPROC EQU 00020000H ; mmioInstallIOProc: remove MMIOProc
MMIO_FINDPROC EQU 00040000H ; mmioInstallIOProc: find an MMIOProc
MMIO_FINDCHUNK EQU 0010H ; mmioDescend: find a chunk by ID
MMIO_FINDRIFF EQU 0020H ; mmioDescend: find a LIST chunk
MMIO_FINDLIST EQU 0040H ; mmioDescend: find a RIFF chunk
MMIO_CREATERIFF EQU 0020H ; mmioCreateChunk: make a LIST chunk
MMIO_CREATELIST EQU 0040H ; mmioCreateChunk: make a RIFF chunk
; message numbers for MMIOPROC I/O procedure functions
MMIOM_READ EQU MMIO_READ ; read
MMIOM_WRITE EQU MMIO_WRITE ; write
MMIOM_SEEK EQU 2 ; seek to a new position in file
MMIOM_OPEN EQU 3 ; open file
MMIOM_CLOSE EQU 4 ; close file
MMIOM_WRITEFLUSH EQU 5 ; write and flush
MMIOM_RENAME EQU 6 ; rename specified file
MMIOM_USER EQU 8000H ; beginning of user-defined messages
; flags for mmioSeek()
ifndef SEEK_SET
SEEK_SET EQU 0 ; seek to an absolute position
SEEK_CUR EQU 1 ; seek relative to current position
SEEK_END EQU 2 ; seek relative to end of file
endif ; ifndef SEEK_SET
; other constants
MMIO_DEFAULTBUFFER EQU 8192 ; default buffer size
endif ; ifndef MMNOMMIO
ifndef MMNOMCI
; MCI error return values
MCIERR_INVALID_DEVICE_ID EQU (MCIERR_BASE+1)
MCIERR_UNRECOGNIZED_KEYWORD EQU (MCIERR_BASE+3)
MCIERR_UNRECOGNIZED_COMMAND EQU (MCIERR_BASE+5)
MCIERR_HARDWARE EQU (MCIERR_BASE+6)
MCIERR_INVALID_DEVICE_NAME EQU (MCIERR_BASE+7)
MCIERR_OUT_OF_MEMORY EQU (MCIERR_BASE+8)
MCIERR_DEVICE_OPEN EQU (MCIERR_BASE+9)
MCIERR_CANNOT_LOAD_DRIVER EQU (MCIERR_BASE+10)
MCIERR_MISSING_COMMAND_STRING EQU (MCIERR_BASE+11)
MCIERR_PARAM_OVERFLOW EQU (MCIERR_BASE+12)
MCIERR_MISSING_STRING_ARGUMENT EQU (MCIERR_BASE+13)
MCIERR_BAD_INTEGER EQU (MCIERR_BASE+14)
MCIERR_PARSER_INTERNAL EQU (MCIERR_BASE+15)
MCIERR_DRIVER_INTERNAL EQU (MCIERR_BASE+16)
MCIERR_MISSING_PARAMETER EQU (MCIERR_BASE+17)
MCIERR_UNSUPPORTED_FUNCTION EQU (MCIERR_BASE+18)
MCIERR_FILE_NOT_FOUND EQU (MCIERR_BASE+19)
MCIERR_DEVICE_NOT_READY EQU (MCIERR_BASE+20)
MCIERR_INTERNAL EQU (MCIERR_BASE+21)
MCIERR_DRIVER EQU (MCIERR_BASE+22)
MCIERR_CANNOT_USE_ALL EQU (MCIERR_BASE+23)
MCIERR_MULTIPLE EQU (MCIERR_BASE+24)
MCIERR_EXTENSION_NOT_FOUND EQU (MCIERR_BASE+25)
MCIERR_OUTOFRANGE EQU (MCIERR_BASE+26)
MCIERR_FLAGS_NOT_COMPATIBLE EQU (MCIERR_BASE+28)
MCIERR_FILE_NOT_SAVED EQU (MCIERR_BASE+30)
MCIERR_DEVICE_TYPE_REQUIRED EQU (MCIERR_BASE+31)
MCIERR_DEVICE_LOCKED EQU (MCIERR_BASE+32)
MCIERR_DUPLICATE_ALIAS EQU (MCIERR_BASE+33)
MCIERR_BAD_CONSTANT EQU (MCIERR_BASE+34)
MCIERR_MUST_USE_SHAREABLE EQU (MCIERR_BASE+35)
MCIERR_MISSING_DEVICE_NAME EQU (MCIERR_BASE+36)
MCIERR_BAD_TIME_FORMAT EQU (MCIERR_BASE+37)
MCIERR_NO_CLOSING_QUOTE EQU (MCIERR_BASE+38)
MCIERR_DUPLICATE_FLAGS EQU (MCIERR_BASE+39)
MCIERR_INVALID_FILE EQU (MCIERR_BASE+40)
MCIERR_NULL_PARAMETER_BLOCK EQU (MCIERR_BASE+41)
MCIERR_UNNAMED_RESOURCE EQU (MCIERR_BASE+42)
MCIERR_NEW_REQUIRES_ALIAS EQU (MCIERR_BASE+43)
MCIERR_NOTIFY_ON_AUTO_OPEN EQU (MCIERR_BASE+44)
MCIERR_NO_ELEMENT_ALLOWED EQU (MCIERR_BASE+45)
MCIERR_NONAPPLICABLE_FUNCTION EQU (MCIERR_BASE+46)
MCIERR_ILLEGAL_FOR_AUTO_OPEN EQU (MCIERR_BASE+47)
MCIERR_FILENAME_REQUIRED EQU (MCIERR_BASE+48)
MCIERR_EXTRA_CHARACTERS EQU (MCIERR_BASE+49)
MCIERR_DEVICE_NOT_INSTALLED EQU (MCIERR_BASE+50)
MCIERR_GET_CD EQU (MCIERR_BASE+51)
MCIERR_SET_CD EQU (MCIERR_BASE+52)
MCIERR_SET_DRIVE EQU (MCIERR_BASE+53)
MCIERR_DEVICE_LENGTH EQU (MCIERR_BASE+54)
MCIERR_DEVICE_ORD_LENGTH EQU (MCIERR_BASE+55)
MCIERR_NO_INTEGER EQU (MCIERR_BASE+56)
MCIERR_WAVE_OUTPUTSINUSE EQU (MCIERR_BASE+64)
MCIERR_WAVE_SETOUTPUTINUSE EQU (MCIERR_BASE+65)
MCIERR_WAVE_INPUTSINUSE EQU (MCIERR_BASE+66)
MCIERR_WAVE_SETINPUTINUSE EQU (MCIERR_BASE+67)
MCIERR_WAVE_OUTPUTUNSPECIFIED EQU (MCIERR_BASE+68)
MCIERR_WAVE_INPUTUNSPECIFIED EQU (MCIERR_BASE+69)
MCIERR_WAVE_OUTPUTSUNSUITABLE EQU (MCIERR_BASE+70)
MCIERR_WAVE_SETOUTPUTUNSUITABLE EQU (MCIERR_BASE+71)
MCIERR_WAVE_INPUTSUNSUITABLE EQU (MCIERR_BASE+72)
MCIERR_WAVE_SETINPUTUNSUITABLE EQU (MCIERR_BASE+73)
MCIERR_SEQ_DIV_INCOMPATIBLE EQU (MCIERR_BASE+80)
MCIERR_SEQ_PORT_INUSE EQU (MCIERR_BASE+81)
MCIERR_SEQ_PORT_NONEXISTENT EQU (MCIERR_BASE+82)
MCIERR_SEQ_PORT_MAPNODEVICE EQU (MCIERR_BASE+83)
MCIERR_SEQ_PORT_MISCERROR EQU (MCIERR_BASE+84)
MCIERR_SEQ_TIMER EQU (MCIERR_BASE+85)
MCIERR_SEQ_PORTUNSPECIFIED EQU (MCIERR_BASE+86)
MCIERR_SEQ_NOMIDIPRESENT EQU (MCIERR_BASE+87)
MCIERR_NO_WINDOW EQU (MCIERR_BASE+90)
MCIERR_CREATEWINDOW EQU (MCIERR_BASE+91)
MCIERR_FILE_READ EQU (MCIERR_BASE+92)
MCIERR_FILE_WRITE EQU (MCIERR_BASE+93)
MCIERR_NO_IDENTITY EQU (MCIERR_BASE+94)
; all custom device driver errors must be >= than this value
MCIERR_CUSTOM_DRIVER_BASE EQU (MCIERR_BASE+256)
; MCI command message identifiers
MCI_OPEN EQU 0803H
MCI_CLOSE EQU 0804H
MCI_ESCAPE EQU 0805H
MCI_PLAY EQU 0806H
MCI_SEEK EQU 0807H
MCI_STOP EQU 0808H
MCI_PAUSE EQU 0809H
MCI_INFO EQU 080AH
MCI_GETDEVCAPS EQU 080BH
MCI_SPIN EQU 080CH
MCI_SET EQU 080DH
MCI_STEP EQU 080EH
MCI_RECORD EQU 080FH
MCI_SYSINFO EQU 0810H
MCI_BREAK EQU 0811H
;reserved 0x0812
MCI_SAVE EQU 0813H
MCI_STATUS EQU 0814H
MCI_CUE EQU 0830H
MCI_REALIZE EQU 0840H
MCI_WINDOW EQU 0841H
MCI_PUT EQU 0842H
MCI_WHERE EQU 0843H
MCI_FREEZE EQU 0844H
MCI_UNFREEZE EQU 0845H
MCI_LOAD EQU 0850H
MCI_CUT EQU 0851H
MCI_COPY EQU 0852H
MCI_PASTE EQU 0853H
MCI_UPDATE EQU 0854H
MCI_RESUME EQU 0855H
MCI_DELETE EQU 0856H
; all custom MCI command messages must be >= than this value
MCI_USER_MESSAGES EQU (DRV_MCI_FIRST+400H)
MCI_ALL_DEVICE_ID EQU -1
; constants for predefined MCI device types
MCI_DEVTYPE_VCR EQU (MCI_STRING_OFFSET+1)
MCI_DEVTYPE_VIDEODISC EQU (MCI_STRING_OFFSET+2)
MCI_DEVTYPE_OVERLAY EQU (MCI_STRING_OFFSET+3)
MCI_DEVTYPE_CD_AUDIO EQU (MCI_STRING_OFFSET+4)
MCI_DEVTYPE_DAT EQU (MCI_STRING_OFFSET+5)
MCI_DEVTYPE_SCANNER EQU (MCI_STRING_OFFSET+6)
MCI_DEVTYPE_ANIMATION EQU (MCI_STRING_OFFSET+7)
MCI_DEVTYPE_DIGITAL_VIDEO EQU (MCI_STRING_OFFSET+8)
MCI_DEVTYPE_OTHER EQU (MCI_STRING_OFFSET+9)
MCI_DEVTYPE_WAVEFORM_AUDIO EQU (MCI_STRING_OFFSET+10)
MCI_DEVTYPE_SEQUENCER EQU (MCI_STRING_OFFSET+11)
MCI_DEVTYPE_FIRST EQU MCI_DEVTYPE_VCR
MCI_DEVTYPE_LAST EQU MCI_DEVTYPE_SEQUENCER
; return values for 'status mode' command
MCI_MODE_NOT_READY EQU (MCI_STRING_OFFSET+12)
MCI_MODE_STOP EQU (MCI_STRING_OFFSET+13)
MCI_MODE_PLAY EQU (MCI_STRING_OFFSET+14)
MCI_MODE_RECORD EQU (MCI_STRING_OFFSET+15)
MCI_MODE_SEEK EQU (MCI_STRING_OFFSET+16)
MCI_MODE_PAUSE EQU (MCI_STRING_OFFSET+17)
MCI_MODE_OPEN EQU (MCI_STRING_OFFSET+18)
; constants used in 'set time format' and 'status time format' commands
MCI_FORMAT_MILLISECONDS EQU 0
MCI_FORMAT_HMS EQU 1
MCI_FORMAT_MSF EQU 2
MCI_FORMAT_FRAMES EQU 3
MCI_FORMAT_SMPTE_24 EQU 4
MCI_FORMAT_SMPTE_25 EQU 5
MCI_FORMAT_SMPTE_30 EQU 6
MCI_FORMAT_SMPTE_30DROP EQU 7
MCI_FORMAT_BYTES EQU 8
MCI_FORMAT_SAMPLES EQU 9
MCI_FORMAT_TMSF EQU 10
; flags for wParam of MM_MCINOTIFY message
MCI_NOTIFY_SUCCESSFUL EQU 0001H
MCI_NOTIFY_SUPERSEDED EQU 0002H
MCI_NOTIFY_ABORTED EQU 0004H
MCI_NOTIFY_FAILURE EQU 0008H
; common flags for dwFlags parameter of MCI command messages
MCI_NOTIFY EQU 00000001H
MCI_WAIT EQU 00000002H
MCI_FROM EQU 00000004H
MCI_TO EQU 00000008H
MCI_TRACK EQU 00000010H
; flags for dwFlags parameter of MCI_OPEN command message
MCI_OPEN_SHAREABLE EQU 00000100H
MCI_OPEN_ELEMENT EQU 00000200H
MCI_OPEN_ALIAS EQU 00000400H
MCI_OPEN_ELEMENT_ID EQU 00000800H
MCI_OPEN_TYPE_ID EQU 00001000H
MCI_OPEN_TYPE EQU 00002000H
; flags for dwFlags parameter of MCI_SEEK command message
MCI_SEEK_TO_START EQU 00000100H
MCI_SEEK_TO_END EQU 00000200H
; flags for dwFlags parameter of MCI_STATUS command message
MCI_STATUS_ITEM EQU 00000100H
MCI_STATUS_START EQU 00000200H
; flags for dwItem field of the MCI_STATUS_PARMS parameter block
MCI_STATUS_LENGTH EQU 00000001H
MCI_STATUS_POSITION EQU 00000002H
MCI_STATUS_NUMBER_OF_TRACKS EQU 00000003H
MCI_STATUS_MODE EQU 00000004H
MCI_STATUS_MEDIA_PRESENT EQU 00000005H
MCI_STATUS_TIME_FORMAT EQU 00000006H
MCI_STATUS_READY EQU 00000007H
MCI_STATUS_CURRENT_TRACK EQU 00000008H
; flags for dwFlags parameter of MCI_INFO command message
MCI_INFO_PRODUCT EQU 00000100H
MCI_INFO_FILE EQU 00000200H
MCI_INFO_MEDIA_UPC EQU 00000400H
MCI_INFO_MEDIA_IDENTITY EQU 00000800H
; flags for dwFlags parameter of MCI_GETDEVCAPS command message
MCI_GETDEVCAPS_ITEM EQU 00000100H
; flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block
MCI_GETDEVCAPS_CAN_RECORD EQU 00000001H
MCI_GETDEVCAPS_HAS_AUDIO EQU 00000002H
MCI_GETDEVCAPS_HAS_VIDEO EQU 00000003H
MCI_GETDEVCAPS_DEVICE_TYPE EQU 00000004H
MCI_GETDEVCAPS_USES_FILES EQU 00000005H
MCI_GETDEVCAPS_COMPOUND_DEVICE EQU 00000006H
MCI_GETDEVCAPS_CAN_EJECT EQU 00000007H
MCI_GETDEVCAPS_CAN_PLAY EQU 00000008H
MCI_GETDEVCAPS_CAN_SAVE EQU 00000009H
; flags for dwFlags parameter of MCI_SYSINFO command message
MCI_SYSINFO_QUANTITY EQU 00000100H
MCI_SYSINFO_OPEN EQU 00000200H
MCI_SYSINFO_NAME EQU 00000400H
MCI_SYSINFO_INSTALLNAME EQU 00000800H
; flags for dwFlags parameter of MCI_SET command message
MCI_SET_DOOR_OPEN EQU 00000100H
MCI_SET_DOOR_CLOSED EQU 00000200H
MCI_SET_TIME_FORMAT EQU 00000400H
MCI_SET_AUDIO EQU 00000800H
MCI_SET_VIDEO EQU 00001000H
MCI_SET_ON EQU 00002000H
MCI_SET_OFF EQU 00004000H
; flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS
ifdef WIN32
MCI_SET_AUDIO_ALL EQU 00004001H
MCI_SET_AUDIO_LEFT EQU 00004002H
MCI_SET_AUDIO_RIGHT EQU 00004003H
else
MCI_SET_AUDIO_ALL EQU 00000000H
MCI_SET_AUDIO_LEFT EQU 00000001H
MCI_SET_AUDIO_RIGHT EQU 00000002H
endif
; flags for dwFlags parameter of MCI_BREAK command message
MCI_BREAK_KEY EQU 00000100H
MCI_BREAK_HWND EQU 00000200H
MCI_BREAK_OFF EQU 00000400H
; flags for dwFlags parameter of MCI_RECORD command message
MCI_RECORD_INSERT EQU 00000100H
MCI_RECORD_OVERWRITE EQU 00000200H
; flags for dwFlags parameter of MCI_SAVE command message
MCI_SAVE_FILE EQU 00000100H
; flags for dwFlags parameter of MCI_LOAD command message
MCI_LOAD_FILE EQU 00000100H
MCI_GENERIC_PARMS STRUC
mcigen_dwCallback DD ?
MCI_GENERIC_PARMS ENDS
MCI_OPEN_PARMS STRUC
mciopen_dwCallback DD ?
mciopen_wDeviceID DW ?
mciopen_wReserved0 DW ?
mciopen_lpstrDeviceType DD ?
mciopen_lpstrElementName DD ?
mciopen_lpstrAlias DD ?
MCI_OPEN_PARMS ENDS
MCI_PLAY_PARMS STRUC
mciplay_dwCallback DD ?
mciplay_dwFrom DD ?
mciplay_dwTo DD ?
MCI_PLAY_PARMS ENDS
MCI_SEEK_PARMS STRUC
mciseek_dwCallback DD ?
mciseek_dwTo DD ?
MCI_SEEK_PARMS ENDS
MCI_STATUS_PARMS STRUC
mcistat_dwCallback DD ?
mcistat_dwReturn DD ?
mcistat_dwItem DD ?
mcistat_dwTrack DD ?
MCI_STATUS_PARMS ENDS
MCI_INFO_PARMS STRUC
mciinfo_dwCallback DD ?
mciinfo_lpstrReturn DD ?
mciinfo_dwRetSize DD ?
MCI_INFO_PARMS ENDS
MCI_GETDEVCAPS_PARMS STRUC
mcigdc_dwCallback DD ?
mcigdc_dwReturn DD ?
mcigdc_dwItem DD ?
MCI_GETDEVCAPS_PARMS ENDS
MCI_SYSINFO_PARMS STRUC
mcisi_dwCallback DD ?
mcisi_lpstrReturn DD ?
mcisi_dwRetSize DD ?
mcisi_dwNumber DD ?
mcisi_wDeviceType DW ?
mcisi_wReserved0 DW ?
MCI_SYSINFO_PARMS ENDS
MCI_SET_PARMS STRUC
mciset_dwCallback DD ?
mciset_dwTimeFormat DD ?
mciset_dwAudio DD ?
MCI_SET_PARMS ENDS
MCI_BREAK_PARMS STRUC
mcibreak_dwCallback DD ?
mcibreak_nVirtKey DW ?
mcibreak_wReserved0 DW ?
mcibreak_hwndBreak DW ?
mcibreak_wReserved1 DW ?
MCI_BREAK_PARMS ENDS
MCI_SAVE_PARMS STRUC
mcisave_dwCallback DD ?
mcisave_lpfilename DD ?
MCI_SAVE_PARMS ENDS
MCI_LOAD_PARMS STRUC
mciload_dwCallback DD ?
mciload_lpfilename DD ?
MCI_LOAD_PARMS ENDS
MCI_RECORD_PARMS STRUC
mcirec_dwCallback DD ?
mcirec_dwFrom DD ?
mcirec_dwTo DD ?
MCI_RECORD_PARMS ENDS
; MCI extensions for videodisc devices
; flag for dwReturn field of MCI_STATUS_PARMS
; MCI_STATUS command, (dwItem == MCI_STATUS_MODE)
MCI_VD_MODE_PARK EQU (MCI_VD_OFFSET+1)
; flag for dwReturn field of MCI_STATUS_PARMS
; MCI_STATUS command, (dwItem == MCI_VD_STATUS_MEDIA_TYPE)
MCI_VD_MEDIA_CLV EQU (MCI_VD_OFFSET+2)
MCI_VD_MEDIA_CAV EQU (MCI_VD_OFFSET+3)
MCI_VD_MEDIA_OTHER EQU (MCI_VD_OFFSET+4)
MCI_VD_FORMAT_TRACK EQU 4001H
; flags for dwFlags parameter of MCI_PLAY command message
MCI_VD_PLAY_REVERSE EQU 00010000H
MCI_VD_PLAY_FAST EQU 00020000H
MCI_VD_PLAY_SPEED EQU 00040000H
MCI_VD_PLAY_SCAN EQU 00080000H
MCI_VD_PLAY_SLOW EQU 00100000H
; flag for dwFlags parameter of MCI_SEEK command message
MCI_VD_SEEK_REVERSE EQU 00010000H
; flags for dwItem field of MCI_STATUS_PARMS parameter block
MCI_VD_STATUS_SPEED EQU 00004002H
MCI_VD_STATUS_FORWARD EQU 00004003H
MCI_VD_STATUS_MEDIA_TYPE EQU 00004004H
MCI_VD_STATUS_SIDE EQU 00004005H
MCI_VD_STATUS_DISC_SIZE EQU 00004006H
; flags for dwFlags parameter of MCI_GETDEVCAPS command message
MCI_VD_GETDEVCAPS_CLV EQU 00010000H
MCI_VD_GETDEVCAPS_CAV EQU 00020000H
MCI_VD_SPIN_UP EQU 00010000H
MCI_VD_SPIN_DOWN EQU 00020000H
; flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
MCI_VD_GETDEVCAPS_CAN_REVERSE EQU 00004002H
MCI_VD_GETDEVCAPS_FAST_RATE EQU 00004003H
MCI_VD_GETDEVCAPS_SLOW_RATE EQU 00004004H
MCI_VD_GETDEVCAPS_NORMAL_RATE EQU 00004005H
; flags for the dwFlags parameter of MCI_STEP command message
MCI_VD_STEP_FRAMES EQU 00010000H
MCI_VD_STEP_REVERSE EQU 00020000H
; flag for the MCI_ESCAPE command message
MCI_VD_ESCAPE_STRING EQU 00000100H
MCI_VD_PLAY_PARMS STRUC
mcivdplay_dwCallback DD ?
mcivdplay_dwFrom DD ?
mcivdplay_dwTo DD ?
mcivdplay_dwSpeed DD ?
MCI_VD_PLAY_PARMS ENDS
MCI_VD_STEP_PARMS STRUC
mcivdstep_dwCallback DD ?
mcivdstep_dwFrames DD ?
MCI_VD_STEP_PARMS ENDS
MCI_VD_ESCAPE_PARMS STRUC
mcivcesc_dwCallback DD ?
mcivcesc_lpstrCommand DD ?
MCI_VD_ESCAPE_PARMS ENDS
; MCI extensions for CD audio devices
; flags for the dwItem field of the MCI_STATUS_PARMS parameter block
MCI_CDA_STATUS_TYPE_TRACK EQU 00004001H
; flags for the dwReturn field of MCI_STATUS_PARMS parameter block
; MCI_STATUS command, (dwItem == MCI_CDA_STATUS_TYPE_TRACK)
MCI_CDA_TRACK_AUDIO EQU (MCI_CD_OFFSET+0)
MCI_CDA_TRACK_OTHER EQU (MCI_CD_OFFSET+1)
; MCI extensions for waveform audio devices
; flags for the dwFlags parameter of MCI_OPEN command message
MCI_WAVE_OPEN_BUFFER EQU 00010000H
; flags for the dwFlags parameter of MCI_SET command message
MCI_WAVE_SET_FORMATTAG EQU 00010000H
MCI_WAVE_SET_CHANNELS EQU 00020000H
MCI_WAVE_SET_SAMPLESPERSEC EQU 00040000H
MCI_WAVE_SET_AVGBYTESPERSEC EQU 00080000H
MCI_WAVE_SET_BLOCKALIGN EQU 00100000H
MCI_WAVE_SET_BITSPERSAMPLE EQU 00200000H
; flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages
MCI_WAVE_INPUT EQU 00400000H
MCI_WAVE_OUTPUT EQU 00800000H
; flags for the dwItem field of MCI_STATUS_PARMS parameter block
MCI_WAVE_STATUS_FORMATTAG EQU 00004001H
MCI_WAVE_STATUS_CHANNELS EQU 00004002H
MCI_WAVE_STATUS_SAMPLESPERSEC EQU 00004003H
MCI_WAVE_STATUS_AVGBYTESPERSEC EQU 00004004H
MCI_WAVE_STATUS_BLOCKALIGN EQU 00004005H
MCI_WAVE_STATUS_BITSPERSAMPLE EQU 00004006H
MCI_WAVE_STATUS_LEVEL EQU 00004007H
; flags for the dwFlags parameter of MCI_SET command message
MCI_WAVE_SET_ANYINPUT EQU 04000000H
MCI_WAVE_SET_ANYOUTPUT EQU 08000000H
; flags for the dwFlags parameter of MCI_GETDEVCAPS command message
MCI_WAVE_GETDEVCAPS_INPUTS EQU 00004001H
MCI_WAVE_GETDEVCAPS_OUTPUTS EQU 00004002H
MCI_WAVE_OPEN_PARMS STRUC
mciwopen_dwCallback DD ?
mciwopen_wDeviceID DW ?
mciwopen_wReserved0 DW ?
mciwopen_lpstrDeviceType DD ?
mciwopen_lpstrElementName DD ?
mciwopen_lpstrAlias DD ?
mciwopen_dwBufferSeconds DD ?
MCI_WAVE_OPEN_PARMS ENDS
MCI_WAVE_DELETE_PARMS STRUC
mciwdel_dwCallback DD ?
mciwdel_dwFrom DD ?
mciwdel_dwTo DD ?
MCI_WAVE_DELETE_PARMS ENDS
MCI_WAVE_SET_PARMS STRUC
mciwset_dwCallback DD ?
mciwset_dwTimeFormat DD ?
mciwset_dwAudio DD ?
mciwset_wInput DW ?
mciwset_wReserved0 DW ?
mciwset_wOutput DW ?
mciwset_wReserved1 DW ?
mciwset_wFormatTag DW ?
mciwset_wReserved2 DW ?
mciwset_nChannels DW ?
mciwset_wReserved3 DW ?
mciwset_nSamplesPerSec DW ?
mciwset_nAvgBytesPerSec DW ?
mciwset_nBlockAlign DW ?
mciwset_wReserved4 DW ?
mciwset_wBitsPerSample DW ?
mciwset_wReserved5 DW ?
MCI_WAVE_SET_PARMS ENDS
; 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_PPQN EQU (0+MCI_SEQ_OFFSET)
MCI_SEQ_DIV_SMPTE_24 EQU (1+MCI_SEQ_OFFSET)
MCI_SEQ_DIV_SMPTE_25 EQU (2+MCI_SEQ_OFFSET)
MCI_SEQ_DIV_SMPTE_30DROP EQU (3+MCI_SEQ_OFFSET)
MCI_SEQ_DIV_SMPTE_30 EQU (4+MCI_SEQ_OFFSET)
; flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block
; MCI_SET command, (dwFlags == MCI_SEQ_SET_MASTER)
MCI_SEQ_FORMAT_SONGPTR EQU 4001H
MCI_SEQ_FILE EQU 4002H
MCI_SEQ_MIDI EQU 4003H
MCI_SEQ_SMPTE EQU 4004H
MCI_SEQ_NONE EQU 65533
; flags for the dwItem field of MCI_STATUS_PARMS parameter block
MCI_SEQ_STATUS_TEMPO EQU 00004002H
MCI_SEQ_STATUS_PORT EQU 00004003H
MCI_SEQ_STATUS_SLAVE EQU 00004007H
MCI_SEQ_STATUS_MASTER EQU 00004008H
MCI_SEQ_STATUS_OFFSET EQU 00004009H
MCI_SEQ_STATUS_DIVTYPE EQU 0000400AH
; flags for the dwFlags parameter of MCI_SET command message
MCI_SEQ_SET_TEMPO EQU 00010000H
MCI_SEQ_SET_PORT EQU 00020000H
MCI_SEQ_SET_SLAVE EQU 00040000H
MCI_SEQ_SET_MASTER EQU 00080000H
MCI_SEQ_SET_OFFSET EQU 01000000H
MCI_SEQ_SET_PARMS STRUC
mcisset_dwCallback DD ?
mcisset_dwTimeFormat DD ?
mcisset_dwAudio DD ?
mcisset_dwTempo DD ?
mcisset_dwPort DD ?
mcisset_dwSlave DD ?
mcisset_dwMaster DD ?
mcisset_dwOffset DD ?
MCI_SEQ_SET_PARMS ENDS
; MCI extensions for animation devices
; flags for dwFlags parameter of MCI_OPEN command message
MCI_ANIM_OPEN_WS EQU 00010000H
MCI_ANIM_OPEN_PARENT EQU 00020000H
MCI_ANIM_OPEN_NOSTATIC EQU 00040000H
; flags for dwFlags parameter of MCI_PLAY command message
MCI_ANIM_PLAY_SPEED EQU 00010000H
MCI_ANIM_PLAY_REVERSE EQU 00020000H
MCI_ANIM_PLAY_FAST EQU 00040000H
MCI_ANIM_PLAY_SLOW EQU 00080000H
MCI_ANIM_PLAY_SCAN EQU 00100000H
; flags for dwFlags parameter of MCI_STEP command message
MCI_ANIM_STEP_REVERSE EQU 00010000H
MCI_ANIM_STEP_FRAMES EQU 00020000H
; flags for dwItem field of MCI_STATUS_PARMS parameter block
MCI_ANIM_STATUS_SPEED EQU 00004001H
MCI_ANIM_STATUS_FORWARD EQU 00004002H
MCI_ANIM_STATUS_HWND EQU 00004003H
MCI_ANIM_STATUS_HPAL EQU 00004004H
MCI_ANIM_STATUS_STRETCH EQU 00004005H
; flags for the dwFlags parameter of MCI_INFO command message
MCI_ANIM_INFO_TEXT EQU 00010000H
; flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
MCI_ANIM_GETDEVCAPS_CAN_REVERSE EQU 00004001H
MCI_ANIM_GETDEVCAPS_FAST_RATE EQU 00004002H
MCI_ANIM_GETDEVCAPS_SLOW_RATE EQU 00004003H
MCI_ANIM_GETDEVCAPS_NORMAL_RATE EQU 00004004H
MCI_ANIM_GETDEVCAPS_PALETTES EQU 00004006H
MCI_ANIM_GETDEVCAPS_CAN_STRETCH EQU 00004007H
MCI_ANIM_GETDEVCAPS_MAX_WINDOWS EQU 00004008H
; flags for the MCI_REALIZE command message
MCI_ANIM_REALIZE_NORM EQU 00010000H
MCI_ANIM_REALIZE_BKGD EQU 00020000H
; flags for dwFlags parameter of MCI_WINDOW command message
MCI_ANIM_WINDOW_HWND EQU 00010000H
MCI_ANIM_WINDOW_STATE EQU 00040000H
MCI_ANIM_WINDOW_TEXT EQU 00080000H
MCI_ANIM_WINDOW_ENABLE_STRETCH EQU 00100000H
MCI_ANIM_WINDOW_DISABLE_STRETCH EQU 00200000H
; flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block
; MCI_WINDOW command message, (dwFlags == MCI_ANIM_WINDOW_HWND)
MCI_ANIM_WINDOW_DEFAULT EQU 00000000H
; flags for dwFlags parameter of MCI_PUT command message
MCI_ANIM_RECT EQU 00010000H
MCI_ANIM_PUT_SOURCE EQU 00020000H
MCI_ANIM_PUT_DESTINATION EQU 00040000H
; flags for dwFlags parameter of MCI_WHERE command message
MCI_ANIM_WHERE_SOURCE EQU 00020000H
MCI_ANIM_WHERE_DESTINATION EQU 00040000H
; flags for dwFlags parameter of MCI_UPDATE command message
MCI_ANIM_UPDATE_HDC EQU 00020000H
MCI_ANIM_OPEN_PARMS STRUC
mciaopen_dwCallback DD ?
mciaopen_wDeviceID DW ?
mciaopen_wReserved0 DW ?
mciaopen_lpstrDeviceType DD ?
mciaopen_lpstrElementName DD ?
mciaopen_lpstrAlias DD ?
mciaopen_dwStyle DD ?
mciaopen_hWndParent DW ?
mciaopen_wReserved1 DW ?
MCI_ANIM_OPEN_PARMS ENDS
MCI_ANIM_PLAY_PARMS STRUC
mciaplay_dwCallback DD ?
mciaplay_dwFrom DD ?
mciaplay_dwTo DD ?
mciaplay_dwSpeed DD ?
MCI_ANIM_PLAY_PARMS ENDS
MCI_ANIM_STEP_PARMS STRUC
mciastep_dwCallback DD ?
mciastep_dwFrames DD ?
MCI_ANIM_STEP_PARMS ENDS
MCI_ANIM_WINDOW_PARMS STRUC
mciawin_dwCallback DD ?
mciawin_hWnd DW ?
mciawin_wReserved1 DW ?
mciawin_nCmdShow DW ?
mciawin_wReserved2 DW ?
mciawin_lpstrText DD ?
MCI_ANIM_WINDOW_PARMS ENDS
MCI_ANIM_RECT_PARMS STRUC
mciarect_dwCallback DD ?
ifdef MCI_USE_OFFEXT
mciarect_ptOffset DB SIZE POINT DUP (?)
mciarect_ptExtent DB SIZE POINT DUP (?)
else ;ifdef MCI_USE_OFFEXT
mciarect_rc DB SIZE RECT DUP (?)
endif ;ifdef MCI_USE_OFFEXT
MCI_ANIM_RECT_PARMS ENDS
MCI_ANIM_UPDATE_PARMS STRUC
mciaupd_dwCallback DD ?
mciaupd_rc DB SIZE RECT DUP (?)
mciaupd_hDC DW ?
MCI_ANIM_UPDATE_PARMS ENDS
; MCI extensions for video overlay devices
; flags for dwFlags parameter of MCI_OPEN command message
MCI_OVLY_OPEN_WS EQU 00010000H
MCI_OVLY_OPEN_PARENT EQU 00020000H
; flags for dwFlags parameter of MCI_STATUS command message
MCI_OVLY_STATUS_HWND EQU 00004001H
MCI_OVLY_STATUS_STRETCH EQU 00004002H
; flags for dwFlags parameter of MCI_INFO command message
MCI_OVLY_INFO_TEXT EQU 00010000H
; flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
MCI_OVLY_GETDEVCAPS_CAN_STRETCH EQU 00004001H
MCI_OVLY_GETDEVCAPS_CAN_FREEZE EQU 00004002H
MCI_OVLY_GETDEVCAPS_MAX_WINDOWS EQU 00004003H
; flags for dwFlags parameter of MCI_WINDOW command message
MCI_OVLY_WINDOW_HWND EQU 00010000H
MCI_OVLY_WINDOW_STATE EQU 00040000H
MCI_OVLY_WINDOW_TEXT EQU 00080000H
MCI_OVLY_WINDOW_ENABLE_STRETCH EQU 00100000H
MCI_OVLY_WINDOW_DISABLE_STRETCH EQU 00200000H
; flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block
MCI_OVLY_WINDOW_DEFAULT EQU 00000000H
; flags for dwFlags parameter of MCI_PUT command message
MCI_OVLY_RECT EQU 00010000H
MCI_OVLY_PUT_SOURCE EQU 00020000H
MCI_OVLY_PUT_DESTINATION EQU 00040000H
MCI_OVLY_PUT_FRAME EQU 00080000H
MCI_OVLY_PUT_VIDEO EQU 00100000H
; flags for dwFlags parameter of MCI_WHERE command message
MCI_OVLY_WHERE_SOURCE EQU 00020000H
MCI_OVLY_WHERE_DESTINATION EQU 00040000H
MCI_OVLY_WHERE_FRAME EQU 00080000H
MCI_OVLY_WHERE_VIDEO EQU 00100000H
MCI_OVLY_OPEN_PARMS STRUC
mcioopen_dwCallback DD ?
mcioopen_wDeviceID DW ?
mcioopen_wReserved0 DW ?
mcioopen_lpstrDeviceType DD ?
mcioopen_lpstrElementName DD ?
mcioopen_lpstrAlias DD ?
mcioopen_dwStyle DD ?
mcioopen_hWndParent DW ?
mcioopen_wReserved1 DW ?
MCI_OVLY_OPEN_PARMS ENDS
MCI_OVLY_WINDOW_PARMS STRUC
mciowin_dwCallback DD ?
mciowin_hWnd DW ?
mciowin_wReserved1 DW ?
mciowin_nCmdShow DW ?
mciowin_wReserved2 DW ?
mciowin_lpstrText DD ?
MCI_OVLY_WINDOW_PARMS ENDS
MCI_OVLY_RECT_PARMS STRUC
mciorect_dwCallback DD ?
ifdef MCI_USE_OFFEXT
mciorect_ptOffset DB SIZE POINT DUP (?)
mciorect_ptExtent DB SIZE POINT DUP (?)
else ;ifdef MCI_USE_OFFEXT
mciorect_rc DB SIZE RECT DUP (?)
endif ;ifdef MCI_USE_OFFEXT
MCI_OVLY_RECT_PARMS ENDS
MCI_OVLY_SAVE_PARMS STRUC
mciosave_dwCallback DD ?
mciosave_lpfilename DD ?
mciosave_rc DB SIZE RECT DUP (?)
MCI_OVLY_SAVE_PARMS ENDS
MCI_OVLY_LOAD_PARMS STRUC
mcioload_dwCallback DD ?
mcioload_lpfilename DD ?
mcioload_rc DB SIZE RECT DUP (?)
MCI_OVLY_LOAD_PARMS ENDS
endif ; ifndef MMNOMCI
;***************************************************************************
; DISPLAY Driver extensions
;*************************************************************************
ifndef C1_TRANSPARENT
CAPS1 EQU 94 ; other caps
C1_TRANSPARENT EQU 0001H ; new raster cap
NEWTRANSPARENT EQU 3 ; use with SetBkMode()
QUERYROPSUPPORT EQU 40 ; use to determine ROP support
endif ; ifndef C1_TRANSPARENT
;***************************************************************************
; DIB Driver extensions
;*************************************************************************
SELECTDIB EQU 41 ; DIB.DRV select dib escape
ifndef SC_SCREENSAVE
SC_SCREENSAVE EQU 0F140H
endif ; ifndef SC_SCREENSAVE