Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

337 lines
11 KiB

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; MMDDK.INC - Multimedia assembly language structures & constants
; for the Development Kit
;
; Copyright (c) Microsoft Corporation 1990. All rights reserved
;
;
; If defined, the following flags inhibit inclusion of the indicated items:
;
; NOTIMERDEV - The Timer Device
; NOJOYDEV - The Joystick Device
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; If defined, the following flags inhibit inclusion
; of the indicated items:
;
; MMNOMIDIDEV - MIDI support
; MMNOWAVEDEV - Waveform support
; MMNOAUXDEV - Auxiliary output support
; MMNOTIMERDEV - Timer support
; MMNOJOYDEV - Joystick support
; MMNOMCIDEV - MCI support
; MMNOTASKDEV - Task support
;
OFFSEL STRUC
Off dw ?
Sel dw ?
OFFSEL ENDS
LOHI STRUC
Lo dw ?
Hi dw ?
LOHI ENDS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Helper functions for drivers
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DCB_NOSWITCH equ 0008h ; don't switch stacks for callback
DCB_TYPEMASK equ 0007h ; callback type mask
DCB_NULL equ 0000h ; unknown callback type
; flags for wFlags parameter of DriverCallback()
DCB_WINDOW equ 0001h ; dwCallback is a HWND
DCB_TASK equ 0002h ; dwCallback is a HTASK
DCB_FUNCTION equ 0003h ; dwCallback is a FARPROC
; device ID for 386 AUTODMA VxD
VADMAD_Device_ID equ 0444h
ifndef MMNOWAVEDEV
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Waveform device driver support
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; maximum number of wave device drivers loaded
MAXWAVEDRIVERS equ 10
; waveform input and output device open information structure
WAVEOPENDESC struc
wod_hWave dw ? ; handle
wod_lpFormat dd ? ; format of wave data
wod_dwCallback dd ? ; callback
wod_dwInstance dd ? ; app's private instance information
WAVEOPENDESC ends
; message sent by mmsystem to wodMessage(), widMessage(), modMessage(),
; and midMessage() when it initializes the wave and midi drivers
DRVM_USER equ 4000h
DRVM_INIT equ 100
WODM_INIT equ DRVM_INIT
WIDM_INIT equ DRVM_INIT
MODM_INIT equ DRVM_INIT
MIDM_INIT equ DRVM_INIT
AUXM_INIT equ DRVM_INIT
; messages sent to wodMessage() entry-point function
WODM_GETNUMDEVS equ 3
WODM_GETDEVCAPS equ 4
WODM_OPEN equ 5
WODM_CLOSE equ 6
WODM_PREPARE equ 7
WODM_UNPREPARE equ 8
WODM_WRITE equ 9
WODM_PAUSE equ 10
WODM_RESTART equ 11
WODM_RESET equ 12
WODM_GETPOS equ 13
WODM_GETPITCH equ 14
WODM_SETPITCH equ 15
WODM_GETVOLUME equ 16
WODM_SETVOLUME equ 17
WODM_GETPLAYBACKRATE equ 18
WODM_SETPLAYBACKRATE equ 19
WODM_BREAKLOOP equ 20
; messages sent to widMessage() entry-point function
WIDM_GETNUMDEVS equ 50
WIDM_GETDEVCAPS equ 51
WIDM_OPEN equ 52
WIDM_CLOSE equ 53
WIDM_PREPARE equ 54
WIDM_UNPREPARE equ 55
WIDM_ADDBUFFER equ 56
WIDM_START equ 57
WIDM_STOP equ 58
WIDM_RESET equ 59
WIDM_GETPOS equ 60
endif ;ifndef MMNOWAVEDEV
ifndef MMNOMIDIDEV
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; MIDI device driver support
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; maximum number of MIDI device drivers loaded
MAXMIDIDRIVERS equ 10
; MIDI input and output device open information structure
MIDIOPENDESC struc
mod_hMidi dw ? ; handle
mod_dwCallback dd ? ; callback
mod_dwInstance dd ? ; app's private instance information
MIDIOPENDESC ends
; messages sent to modMessage() entry-point function
MODM_GETNUMDEVS equ 1
MODM_GETDEVCAPS equ 2
MODM_OPEN equ 3
MODM_CLOSE equ 4
MODM_PREPARE equ 5
MODM_UNPREPARE equ 6
MODM_DATA equ 7
MODM_LONGDATA equ 8
MODM_RESET equ 9
MODM_GETVOLUME equ 10
MODM_SETVOLUME equ 11
MODM_CACHEPATCHES equ 12
MODM_CACHEDRUMPATCHES equ 13
; messages sent to midMessage() entry-point function
MIDM_GETNUMDEVS equ 53
MIDM_GETDEVCAPS equ 54
MIDM_OPEN equ 55
MIDM_CLOSE equ 56
MIDM_PREPARE equ 57
MIDM_UNPREPARE equ 58
MIDM_ADDBUFFER equ 59
MIDM_START equ 60
MIDM_STOP equ 61
MIDM_RESET equ 62
endif ;ifndef MMNOMIDIDEV
ifndef MMNOAUXDEV
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Auxiliary audio device driver support
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; maximum number of auxiliary device drivers loaded
MAXAUXDRIVERS equ 10
; messages sent to auxMessage() entry-point function
AUXDM_GETNUMDEVS equ 3
AUXDM_GETDEVCAPS equ 4
AUXDM_GETVOLUME equ 5
AUXDM_SETVOLUME equ 6
endif ;ifndef MMNOAUXDEV
ifndef MMNOTIMERDEV
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Timer device driver support
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIMEREVENT struc
te_wDelay dw ? ; delay required
te_wResolution dw ? ; resolution required
te_lpFunction dd ? ; ptr to callback function
te_dwUser dd ? ; user DWORD
te_wFlags dw ? ; defines how to program event
TIMEREVENT ends
; messages sent to tddMessage() function
TDD_KILLTIMEREVENT equ DRV_RESERVED+0 ; indices into a table of
TDD_SETTIMEREVENT equ DRV_RESERVED+4 ; functions; thus offset by
TDD_GETSYSTEMTIME equ DRV_RESERVED+8 ; four each time...
TDD_GETDEVCAPS equ DRV_RESERVED+12 ; room for future expansion
TDD_BEGINMINPERIOD equ DRV_RESERVED+16 ; room for future expansion
TDD_ENDMINPERIOD equ DRV_RESERVED+20 ; room for future expansion
endif ;ifndef MMNOTIMERDEV
ifndef MMNOJOYDEV
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Joystick device driver support
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; joystick calibration info structure
JOYCALIBRATE struc
jcal_wXbase dw ?
jcal_wXdelta dw ?
jcal_wYbase dw ?
jcal_wYdelta dw ?
jcal_wZbase dw ?
jcal_wZdelta dw ?
JOYCALIBRATE ends
; messages sent to joystick driver's DriverProc() function
JDD_GETNUMDEVS equ DRV_RESERVED+0001h
JDD_GETDEVCAPS equ DRV_RESERVED+0002h
JDD_GETPOS equ DRV_RESERVED+0101h
JDD_SETCALIBRATION equ DRV_RESERVED+0102h
endif ;ifndef MMNOJOYDEV
ifndef MMNOMCIDEV
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; MCI device driver support
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; internal MCI messages
MCI_OPEN_DRIVER equ 0801h
MCI_CLOSE_DRIVER equ 0802h
MAKEMCIRESOURCE MACRO a,b
mov ax,a
mov dx,b
ENDM
; string return values only used with MAKEMCIRESOURCE
MCI_FALSE equ (MCI_STRING_OFFSET + 19)
MCI_TRUE equ (MCI_STRING_OFFSET + 20)
; resource string return values
MCI_FORMAT_RETURN_BASE equ MCI_FORMAT_MILLISECONDS_S
MCI_FORMAT_MILLISECONDS_S equ (MCI_STRING_OFFSET + 21)
MCI_FORMAT_HMS_S equ (MCI_STRING_OFFSET + 22)
MCI_FORMAT_MSF_S equ (MCI_STRING_OFFSET + 23)
MCI_FORMAT_FRAMES_S equ (MCI_STRING_OFFSET + 24)
MCI_FORMAT_SMPTE_24_S equ (MCI_STRING_OFFSET + 25)
MCI_FORMAT_SMPTE_25_S equ (MCI_STRING_OFFSET + 26)
MCI_FORMAT_SMPTE_30_S equ (MCI_STRING_OFFSET + 27)
MCI_FORMAT_SMPTE_30DROP_S equ (MCI_STRING_OFFSET + 28)
MCI_FORMAT_BYTES_S equ (MCI_STRING_OFFSET + 29)
MCI_FORMAT_SAMPLES_S equ (MCI_STRING_OFFSET + 30)
MCI_FORMAT_TMSF_S equ (MCI_STRING_OFFSET + 31)
MCI_VD_FORMAT_TRACK_S equ (MCI_VD_OFFSET + 5)
WAVE_FORMAT_PCM_S equ (MCI_WAVE_OFFSET + 0)
WAVE_MAPPER_S equ (MCI_WAVE_OFFSET + 1)
MCI_SEQ_MAPPER_S equ (MCI_SEQ_OFFSET + 5)
MCI_SEQ_FILE_S equ (MCI_SEQ_OFFSET + 6)
MCI_SEQ_MIDI_S equ (MCI_SEQ_OFFSET + 7)
MCI_SEQ_SMPTE_S equ (MCI_SEQ_OFFSET + 8)
MCI_SEQ_FORMAT_SONGPTR_S equ (MCI_SEQ_OFFSET + 9)
MCI_SEQ_NONE_S equ (MCI_SEQ_OFFSET + 10)
MIDIMAPPER_S equ (MCI_SEQ_OFFSET + 11)
; parameters for internal version of MCI_OPEN message sent from
; mciOpenDevice() to the driver
MCI_OPEN_DRIVER_PARMS struc
mciodrv_wDeviceID dw ? ; device ID
mciodrv_lpstrParams dw ? ; parameter string for entry in SYSTEM.INI
mciodrv_wCustomCommandTable dw ? ; custom command table (0FFFFh if none)
; filled in by the driver
mciodrv_wType dw ? ; driver type filled in by the driver
MCI_OPEN_DRIVER_PARMS ends
; maximum length of an MCI device type
MCI_MAX_DEVICE_TYPE_LENGTH equ 80
; flags for mciSendCommandInternal() which direct mciSendString() how to
; interpret the return value
MCI_RESOURCE_RETURNED equ 00010000h ; resource ID
MCI_COLONIZED3_RETURN equ 00020000h ; colonized ID, 3 bytes data
MCI_COLONIZED4_RETURN equ 00040000h ; colonized ID, 4 bytes data
MCI_INTEGER_RETURNED equ 00080000h ; integer conversion needed
MCI_RESOURCE_DRIVER equ 00100000h ; driver owns returned resource
; invalid command table ID
MCI_NO_COMMAND_TABLE equ 0FFFFh
; command table information type tags
MCI_COMMAND_HEAD equ 0
MCI_STRING equ 1
MCI_INTEGER equ 2
MCI_END_COMMAND equ 3
MCI_RETURN equ 4
MCI_FLAG equ 5
MCI_END_COMMAND_LIST equ 6
MCI_RECT equ 7
MCI_CONSTANT equ 8
MCI_END_CONSTANT equ 9
endif ;ifndef MMNOMCIDEV
ifndef MMNOTASKDEV
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Task support
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; error return values
TASKERR_NOTASKSUPPORT equ 1
TASKERR_OUTOFMEMORY equ 2
endif ;ifndef MMNOTASKDEV