📄 mmsystem.inc
字号:
moc_wChannelMask dw ? ; channels used (internal synth only)
moc_dwSupport dd ? ; functionality supported by driver
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
; MIDI output device capabilities structure
MIDIINCAPS struc
mic_wMid dw ? ; manufacturer ID
mic_wPid dw ? ; product ID
mic_vDriverVersion dw ? ; version of the driver
mic_szPname db MAXPNAMELEN dup (?) ; product name (NULL terminated string)
MIDIINCAPS ends
; MIDI data block header
MIDIHDR struc
lpMidiData dd ? ; pointer to locked data block
dwMidiBufferLength dd ? ; length of data in data block
dwMidiBytesRecorded dd ? ; used for input only
dwMidiUser dd ? ; for client's use
dwMidiFlags dd ? ; assorted flags (see defines)
lpMidiNext dd ? ; reserved for driver
Midireserved dd ? ; reserved for driver
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
endif ;ifndef MMNOMIDI
ifndef MMNOAUX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Auxiliary audio support
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; device ID for aux device mapper
AUX_MAPPER equ (-1)
; Auxiliary audio device capabilities structure
AUXCAPS struc
acaps_wMid dw ? ; manufacturer ID
acaps_wPid dw ? ; product ID
acaps_vDriverVersion dw ? ; version of the driver
acaps_szPname db MAXPNAMELEN dup (?) ; product name (NULL terminated string)
acaps_wTechnology dw ? ; type of device
acaps_dwSupport dd ? ; functionality supported by driver
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 0 ; program timer for single event
TIME_PERIODIC equ 1 ; program for continuous periodic event
; timer device capabilities data structure
TIMECAPS struc
tc_wPeriodMin dw ? ; minimum period supported
tc_wPeriodMax dw ? ; maximum period supported
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
; joystick device capabilities data structure
JOYCAPS struc
jcaps_wMid dw ? ; manufacturer ID
jcaps_wPid dw ? ; product ID
jcaps_szPname db MAXPNAMELEN dup (?) ; product name (NULL terminated string)
jcaps_wXmin dw ? ; minimum x position value
jcaps_wXmax dw ? ; maximum x position value
jcaps_wYmin dw ? ; minimum y position value
jcaps_wYmax dw ? ; maximum y position value
jcaps_wZmin dw ? ; minimum z position value
jcaps_wZmax dw ? ; maximum z position value
jcaps_wNumButtons dw ? ; number of buttons
jcaps_wPeriodMin dw ? ; minimum message period when captured
jcaps_wPeriodMax dw ? ; maximum message period when captured
JOYCAPS ends
; joystick information data structure
JOYINFO struc
jinfo_wXpos dw ? ; x position
jinfo_wYpos dw ? ; y position
jinfo_wZpos dw ? ; z position
jinfo_wButtons dw ? ; button states
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) ; file is unbuffered
; MMIO constants
CFSEPCHAR equ '+' ; compound file name separator char.
; general MMIO information data structure
MMIOINFO struc
; general fields
mmio_dwFlags dd ? ; general status flags
mmio_fccIOProc dd ? ; pointer to I/O procedure
mmio_pIOProc dd ? ; pointer to I/O procedure
mmio_wErrorRet dw ? ; place for error to be returned
mmio_htask dw ? ; alternate local task
; fields maintained by MMIO functions during buffered I/O
mmio_cchBuffer dd ? ; size of I/O buffer (or 0L)
mmio_pchBuffer dd ? ; start of I/O buffer (or NULL)
mmio_pchNext dd ? ; pointer to next byte to read/write
mmio_pchEndRead dd ? ; pointer to last valid byte to read
mmio_pchEndWrite dd ? ; pointer to last byte to write
mmio_lBufOffset dd ? ; disk offset of start of buffer
; fields maintained by I/O procedure
mmio_lDiskOffset dd ? ; disk offset of next read or write
mmio_adwInfo dd 3 dup (?) ; data specific to type of MMIOPROC
; other fields maintained by MMIO
mmio_dwReserved1 dd ? ; reserved for MMIO use
mmio_dwReserved2 dd ? ; reserved for MMIO use
mmio_hmmio dw ? ; handle to open file
MMIOINFO ends
; RIFF chunk information data structure
MMCKINFO struc
mmck_ckid dd ? ; chunk ID
mmck_cksize dd ? ; chunk size
mmck_fccType dd ? ; form type or list type
mmck_dwDataOffset dd ? ; offset of data portion of chunk
mmck_dwFlags dd ? ; flags used by MMIO functions
MMCKINFO 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
mmioFOURCC MACRO ch0,ch1,ch2,ch3
mov al,ch0
mov ah,ch1
mov dl,ch2
mov dh,ch3
ENDM
; standard four character codes
; FOURCC_RIFF equ mmioFOURCC('R', 'I', 'F', 'F')
; FOURCC_LIST equ mmioFOURCC('L', 'I', 'S', 'T')
; four character codes used to identify standard built-in I/O procedures
; FOURCC_DOS equ mmioFOURCC('D', 'O', 'S', ' ')
; FOURCC_MEM equ mmioFOURCC('M', 'E', 'M', ' ')
; 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 support
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -