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.

1490 lines
58 KiB

  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;
  3. ; MMSYSTEM.INC - Multimedia assembly language structures & constants
  4. ;
  5. ; Copyright (c) 1990-1992, Microsoft Corp. All rights reserved.
  6. ;
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8. ; If defined, the following flags inhibit inclusion
  9. ; of the indicated items:
  10. ;
  11. ; MMNODRV - Installable driver support
  12. ; MMNOSOUND - Sound support
  13. ; MMNOWAVE - Waveform support
  14. ; MMNOMIDI - MIDI support
  15. ; MMNOAUX - Auxiliary audio support
  16. ; MMNOTIMER - Timer support
  17. ; MMNOJOY - Joystick support
  18. ; MMNOMCI - MCI support
  19. ; MMNOMMIO - Multimedia file I/O support
  20. ;
  21. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  22. ;
  23. ; General constants and data types
  24. ;
  25. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  26. ; general constants
  27. MAXPNAMELEN equ 32 ; max product name length (including NULL)
  28. MAXERRORLENGTH equ 128 ; max error text length (including NULL)
  29. ; MMTIME data structure
  30. MMTIME struc
  31. mmt_wType dw ? ; indicates the contents of the union
  32. mmt_TimeUnion dd ? ; union
  33. MMTIME ends
  34. SMPTE struc
  35. smpte_hour db ? ; hours
  36. smpte_min db ? ; minutes
  37. smpte_sec db ? ; seconds
  38. smpte_frame db ? ; frames
  39. smpte_fps db ? ; frames per second
  40. smpte_reserved db ? ; pad
  41. SMPTE ends
  42. ; types for wType field in MMTIME struct
  43. TIME_MS equ 0001h ; time in milliseconds
  44. TIME_SAMPLES equ 0002h ; number of wave samples
  45. TIME_BYTES equ 0004h ; current byte offset
  46. TIME_SMPTE equ 0008h ; SMPTE time
  47. TIME_MIDI equ 0010h ; MIDI time
  48. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  49. ;
  50. ; Multimedia Extensions Window Messages
  51. ;
  52. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  53. MM_JOY1MOVE equ 3A0h ; joystick
  54. MM_JOY2MOVE equ 3A1h
  55. MM_JOY1ZMOVE equ 3A2h
  56. MM_JOY2ZMOVE equ 3A3h
  57. MM_JOY1BUTTONDOWN equ 3B5h
  58. MM_JOY2BUTTONDOWN equ 3B6h
  59. MM_JOY1BUTTONUP equ 3B7h
  60. MM_JOY2BUTTONUP equ 3B8h
  61. MM_MCINOTIFY equ 3B9h ; MCI
  62. MM_MCISYSTEM_STRING equ 3CAh
  63. MM_WOM_OPEN equ 3BBh ; waveform output
  64. MM_WOM_CLOSE equ 3BCh
  65. MM_WOM_DONE equ 3BDh
  66. MM_WIM_OPEN equ 3BEh ; waveform input
  67. MM_WIM_CLOSE equ 3BFh
  68. MM_WIM_DATA equ 3C0h
  69. MM_MIM_OPEN equ 3C1h ; MIDI input
  70. MM_MIM_CLOSE equ 3C2h
  71. MM_MIM_DATA equ 3C3h
  72. MM_MIM_LONGDATA equ 3C4h
  73. MM_MIM_ERROR equ 3C5h
  74. MM_MIM_LONGERROR equ 3C6h
  75. MM_MOM_OPEN equ 3C7h ; MIDI output
  76. MM_MOM_CLOSE equ 3C8h
  77. MM_MOM_DONE equ 3C9h
  78. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  79. ;
  80. ; String resource number bases (internal use)
  81. ;
  82. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  83. MMSYSERR_BASE equ 0
  84. WAVERR_BASE equ 32
  85. MIDIERR_BASE equ 64
  86. TIMERR_BASE equ 96
  87. JOYERR_BASE equ 160
  88. MCIERR_BASE equ 256
  89. MCI_STRING_OFFSET equ 512
  90. MCI_VD_OFFSET equ 1024
  91. MCI_CD_OFFSET equ 1088
  92. MCI_WAVE_OFFSET equ 1152
  93. MCI_SEQ_OFFSET equ 1216
  94. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  95. ;
  96. ; General error return values
  97. ;
  98. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  99. ; general error return values
  100. MMSYSERR_NOERROR equ 0 ; no error
  101. MMSYSERR_ERROR equ (MMSYSERR_BASE + 1) ; unspecified error
  102. MMSYSERR_BADDEVICEID equ (MMSYSERR_BASE + 2) ; device ID out of range
  103. MMSYSERR_NOTENABLED equ (MMSYSERR_BASE + 3) ; driver failed enable
  104. MMSYSERR_ALLOCATED equ (MMSYSERR_BASE + 4) ; device already allocated
  105. MMSYSERR_INVALHANDLE equ (MMSYSERR_BASE + 5) ; device handle is invalid
  106. MMSYSERR_NODRIVER equ (MMSYSERR_BASE + 6) ; no device driver present
  107. MMSYSERR_NOMEM equ (MMSYSERR_BASE + 7) ; memory allocation error
  108. MMSYSERR_NOTSUPPORTED equ (MMSYSERR_BASE + 8) ; function isn't supported
  109. MMSYSERR_BADERRNUM equ (MMSYSERR_BASE + 9) ; error value out of range
  110. MMSYSERR_INVALFLAG equ (MMSYSERR_BASE + 10) ; invalid flags passed
  111. MMSYSERR_INVALPARAM equ (MMSYSERR_BASE + 11) ; invalid parameter passed
  112. MMSYSERR_LASTERROR equ (MMSYSERR_BASE + 11) ; last error in range
  113. ifndef MMNODRV
  114. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  115. ;
  116. ; Installable driver support
  117. ;
  118. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  119. DRV_MCI_FIRST equ DRV_RESERVED
  120. DRV_MCI_LAST equ (DRV_RESERVED + 0FFFh)
  121. endif ;ifndef MMNODRV
  122. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  123. ;
  124. ; Driver callback support
  125. ;
  126. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  127. ; flags used with waveOutOpen(), waveInOpen(), midiInOpen(), and
  128. ; midiOutOpen() to specify the type of the dwCallback parameter.
  129. CALLBACK_TYPEMASK equ 00070000h ; callback type mask
  130. CALLBACK_NULL equ 00000000h ; no callback
  131. CALLBACK_WINDOW equ 00010000h ; dwCallback is a HWND
  132. CALLBACK_TASK equ 00020000h ; dwCallback is a HTASK
  133. CALLBACK_FUNCTION equ 00030000h ; dwCallback is a FARPROC
  134. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  135. ;
  136. ; Manufacturer and product IDs
  137. ;
  138. ; Used with wMid and wPid fields in WAVEOUTCAPS, WAVEINCAPS,
  139. ; MIDIOUTCAPS, MIDIINCAPS, AUXCAPS, JOYCAPS structures.
  140. ;
  141. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  142. ; manufacturer IDs
  143. MM_MICROSOFT equ 1 ; Microsoft Corp.
  144. ; product IDs
  145. MM_MIDI_MAPPER equ 1 ; MIDI Mapper
  146. MM_WAVE_MAPPER equ 2 ; Wave Mapper
  147. MM_SNDBLST_MIDIOUT equ 3 ; Sound Blaster MIDI output port
  148. MM_SNDBLST_MIDIIN equ 4 ; Sound Blaster MIDI input port
  149. MM_SNDBLST_SYNTH equ 5 ; Sound Blaster internal synthesizer
  150. MM_SNDBLST_WAVEOUT equ 6 ; Sound Blaster waveform output
  151. MM_SNDBLST_WAVEIN equ 7 ; Sound Blaster waveform input
  152. MM_ADLIB equ 9 ; Ad Lib-compatible synthesizer
  153. MM_MPU401_MIDIOUT equ 10 ; MPU401-compatible MIDI output port
  154. MM_MPU401_MIDIIN equ 11 ; MPU401-compatible MIDI input port
  155. MM_PC_JOYSTICK equ 12 ; Joystick adapter
  156. ifndef MMNOSOUND
  157. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  158. ;
  159. ; Sound support
  160. ;
  161. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  162. ; flag values for wFlags parameter
  163. SND_SYNC equ 0000h ; play synchronously (default)
  164. SND_ASYNC equ 0001h ; play asynchronously
  165. SND_NODEFAULT equ 0002h ; don't use default sound
  166. SND_MEMORY equ 0004h ; lpszSoundName points to a memory file
  167. SND_LOOP equ 0008h ; loop the sound until next sndPlaySound
  168. SND_NOSTOP equ 0010h ; don't stop any currently playing sound
  169. SND_VALID equ 001Fh ;Internal
  170. endif ;ifndef MMNOSOUND
  171. ifndef MMNOWAVE
  172. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  173. ;
  174. ; Waveform audio support
  175. ;
  176. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  177. ; waveform audio error return values
  178. WAVERR_BADFORMAT equ (WAVERR_BASE + 0) ; unsupported wave format
  179. WAVERR_STILLPLAYING equ (WAVERR_BASE + 1) ; still something playing
  180. WAVERR_UNPREPARED equ (WAVERR_BASE + 2) ; header not prepared
  181. WAVERR_SYNC equ (WAVERR_BASE + 3) ; device is synchronous
  182. WAVERR_LASTERROR equ (WAVERR_BASE + 3) ; last error in range
  183. ; wave callback messages
  184. WOM_OPEN equ MM_WOM_OPEN
  185. WOM_CLOSE equ MM_WOM_CLOSE
  186. WOM_DONE equ MM_WOM_DONE
  187. WIM_OPEN equ MM_WIM_OPEN
  188. WIM_CLOSE equ MM_WIM_CLOSE
  189. WIM_DATA equ MM_WIM_DATA
  190. ; device ID for wave device mapper
  191. WAVE_MAPPER equ (-1)
  192. ; flags for dwFlags parameter in waveOutOpen() and waveInOpen()
  193. WAVE_FORMAT_QUERY equ 0001h
  194. WAVE_ALLOWSYNC equ 0002h
  195. WAVE_VALID equ 0003h ;Internal
  196. ; wave data block header
  197. WAVEHDR struc
  198. lpWaveData dd ? ; pointer to locked data buffer
  199. dwWaveBufferLength dd ? ; length of data buffer
  200. dwWaveBytesRecorded dd ? ; used for input only
  201. dwWaveUser dd ? ; for client's use
  202. dwWaveFlags dd ? ; assorted flags (see defines)
  203. dwWaveLoops dd ? ; loop control counter
  204. lpWaveNext dd ? ; reserved for driver
  205. Wavereserved dd ? ; reserved for driver
  206. WAVEHDR ends
  207. ; flags for dwFlags field of WAVEHDR
  208. WHDR_DONE equ 00000001h ; done bit
  209. WHDR_PREPARED equ 00000002h ; set if this header has been prepared
  210. WHDR_BEGINLOOP equ 00000004h ; loop start block
  211. WHDR_ENDLOOP equ 00000008h ; loop end block
  212. WHDR_INQUEUE equ 00000010h ; reserved for driver
  213. WHDR_VALID equ 0000001Fh ;Internal
  214. ; waveform output device capabilities structure
  215. WAVEOUTCAPS struc
  216. woc_wMid dw ? ; manufacturer ID
  217. woc_wPid dw ? ; product ID
  218. woc_vDriverVersion dw ? ; version of the driver
  219. woc_szPname db MAXPNAMELEN dup (?) ; product name (NULL terminated string)
  220. woc_dwFormats dd ? ; formats supported
  221. woc_wChannels dw ? ; number of sources supported
  222. woc_dwSupport dd ? ; functionality supported by driver
  223. WAVEOUTCAPS ends
  224. ; flags for dwSupport field of WAVEOUTCAPS
  225. WAVECAPS_PITCH equ 0001h ; supports pitch control
  226. WAVECAPS_PLAYBACKRATE equ 0002h ; supports playback rate control
  227. WAVECAPS_VOLUME equ 0004h ; supports volume control
  228. WAVECAPS_LRVOLUME equ 0008h ; separate left-right volume control
  229. WAVECAPS_SYNC equ 0010h
  230. ; waveform input device capabilities structure
  231. WAVEINCAPS struc
  232. wic_wMid dw ? ; manufacturer ID
  233. wic_wPid dw ? ; product ID
  234. wic_vDriverVersion dw ? ; version of the driver
  235. wic_szPname db MAXPNAMELEN dup (?) ; product name (NULL terminated string)
  236. wic_dwFormats dd ? ; formats supported
  237. wic_wChannels dw ? ; number of channels supported
  238. WAVEINCAPS ends
  239. ; defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS
  240. WAVE_INVALIDFORMAT equ 00000000h ; invalid format
  241. WAVE_FORMAT_1M08 equ 00000001h ; 11.025 kHz, Mono, 8-bit
  242. WAVE_FORMAT_1S08 equ 00000002h ; 11.025 kHz, Stereo, 8-bit
  243. WAVE_FORMAT_1M16 equ 00000004h ; 11.025 kHz, Mono, 16-bit
  244. WAVE_FORMAT_1S16 equ 00000008h ; 11.025 kHz, Stereo, 16-bit
  245. WAVE_FORMAT_2M08 equ 00000010h ; 22.05 kHz, Mono, 8-bit
  246. WAVE_FORMAT_2S08 equ 00000020h ; 22.05 kHz, Stereo, 8-bit
  247. WAVE_FORMAT_2M16 equ 00000040h ; 22.05 kHz, Mono, 16-bit
  248. WAVE_FORMAT_2S16 equ 00000080h ; 22.05 kHz, Stereo, 16-bit
  249. WAVE_FORMAT_4M08 equ 00000100h ; 44.1 kHz, Mono, 8-bit
  250. WAVE_FORMAT_4S08 equ 00000200h ; 44.1 kHz, Stereo, 8-bit
  251. WAVE_FORMAT_4M16 equ 00000400h ; 44.1 kHz, Mono, 16-bit
  252. WAVE_FORMAT_4S16 equ 00000800h ; 44.1 kHz, Stereo, 16-bit
  253. ; general waveform format structure (information common to all formats)
  254. WAVEFORMAT struc
  255. wfmt_wFormatTag dw ? ; format type
  256. wfmt_nChannels dw ? ; number of channels (i.e. mono, stereo, etc.)
  257. wfmt_nSamplesPerSec dd ? ; sample rate
  258. wfmt_nAvgBytesPerSec dd ? ; for buffer estimation
  259. wfmt_nBlockAlign dw ? ; block size of data
  260. WAVEFORMAT ends
  261. ; flags for wFormatTag field of WAVEFORMAT
  262. WAVE_FORMAT_PCM equ 1
  263. ; specific waveform format structure for PCM data
  264. PCMWAVEFORMAT struc
  265. pcm_wf db (SIZE WAVEFORMAT) dup (?)
  266. pcm_wBitsPerSample dw ?
  267. PCMWAVEFORMAT ends
  268. endif ;ifndef MMNOWAVE
  269. ifndef MMNOMIDI
  270. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  271. ;
  272. ; MIDI audio support
  273. ;
  274. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  275. ; MIDI error return values
  276. MIDIERR_UNPREPARED equ (MIDIERR_BASE + 0) ; header not prepared
  277. MIDIERR_STILLPLAYING equ (MIDIERR_BASE + 1) ; still something playing
  278. MIDIERR_NOMAP equ (MIDIERR_BASE + 2) ; no current map
  279. MIDIERR_NOTREADY equ (MIDIERR_BASE + 3) ; hardware is still busy
  280. MIDIERR_NODEVICE equ (MIDIERR_BASE + 4) ; port no longer connected
  281. MIDIERR_INVALIDSETUP equ (MIDIERR_BASE + 5) ; invalid setup
  282. MIDIERR_LASTERROR equ (MIDIERR_BASE + 5) ; last error in range
  283. ; MIDI audio data types
  284. MIDIPATCHSIZE equ 128
  285. ; MIDI callback messages
  286. MIM_OPEN equ MM_MIM_OPEN
  287. MIM_CLOSE equ MM_MIM_CLOSE
  288. MIM_DATA equ MM_MIM_DATA
  289. MIM_LONGDATA equ MM_MIM_LONGDATA
  290. MIM_ERROR equ MM_MIM_ERROR
  291. MIM_LONGERROR equ MM_MIM_LONGERROR
  292. MOM_OPEN equ MM_MOM_OPEN
  293. MOM_CLOSE equ MM_MOM_CLOSE
  294. MOM_DONE equ MM_MOM_DONE
  295. ; device ID for MIDI mapper
  296. MIDIMAPPER equ (-1)
  297. MIDI_MAPPER equ (-1)
  298. ; flags for wFlags parm of midiOutCachePatches(),
  299. ; midiOutCacheDrumPatches()
  300. MIDI_CACHE_ALL equ 1
  301. MIDI_CACHE_BESTFIT equ 2
  302. MIDI_CACHE_QUERY equ 3
  303. MIDI_UNCACHE equ 4
  304. ; MIDI output device capabilities structure
  305. MIDIOUTCAPS struc
  306. moc_wMid dw ? ; manufacturer ID
  307. moc_wPid dw ? ; product ID
  308. moc_vDriverVersion dw ? ; version of the driver
  309. moc_szPname db MAXPNAMELEN dup (?) ; product name (NULL terminated string)
  310. moc_wTechnology dw ? ; type of device
  311. moc_wVoices dw ? ; # of voices (internal synth only)
  312. moc_wNotes dw ? ; max # of notes (internal synth only)
  313. moc_wChannelMask dw ? ; channels used (internal synth only)
  314. moc_dwSupport dd ? ; functionality supported by driver
  315. MIDIOUTCAPS ends
  316. ; flags for wTechnology field of MIDIOUTCAPS structure
  317. MOD_MIDIPORT equ 1 ; output port
  318. MOD_SYNTH equ 2 ; generic internal synth
  319. MOD_SQSYNTH equ 3 ; square wave internal synth
  320. MOD_FMSYNTH equ 4 ; FM internal synth
  321. MOD_MAPPER equ 5 ; MIDI mapper
  322. ; flags for dwSupport field of MIDIOUTCAPS structure
  323. MIDICAPS_VOLUME equ 0001h ; supports volume control
  324. MIDICAPS_LRVOLUME equ 0002h ; separate left-right volume control
  325. MIDICAPS_CACHE equ 0004h
  326. ; MIDI output device capabilities structure
  327. MIDIINCAPS struc
  328. mic_wMid dw ? ; manufacturer ID
  329. mic_wPid dw ? ; product ID
  330. mic_vDriverVersion dw ? ; version of the driver
  331. mic_szPname db MAXPNAMELEN dup (?) ; product name (NULL terminated string)
  332. MIDIINCAPS ends
  333. ; MIDI data block header
  334. MIDIHDR struc
  335. lpMidiData dd ? ; pointer to locked data block
  336. dwMidiBufferLength dd ? ; length of data in data block
  337. dwMidiBytesRecorded dd ? ; used for input only
  338. dwMidiUser dd ? ; for client's use
  339. dwMidiFlags dd ? ; assorted flags (see defines)
  340. lpMidiNext dd ? ; reserved for driver
  341. Midireserved dd ? ; reserved for driver
  342. MIDIHDR ends
  343. ; flags for dwFlags field of MIDIHDR structure
  344. MHDR_DONE equ 00000001h ; done bit
  345. MHDR_PREPARED equ 00000002h ; set if header prepared
  346. MHDR_INQUEUE equ 00000004h ; reserved for driver
  347. MHDR_VALID equ 00000007h ;Internal
  348. endif ;ifndef MMNOMIDI
  349. ifndef MMNOAUX
  350. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  351. ;
  352. ; Auxiliary audio support
  353. ;
  354. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  355. ; device ID for aux device mapper
  356. AUX_MAPPER equ (-1)
  357. ; Auxiliary audio device capabilities structure
  358. AUXCAPS struc
  359. acaps_wMid dw ? ; manufacturer ID
  360. acaps_wPid dw ? ; product ID
  361. acaps_vDriverVersion dw ? ; version of the driver
  362. acaps_szPname db MAXPNAMELEN dup (?) ; product name (NULL terminated string)
  363. acaps_wTechnology dw ? ; type of device
  364. acaps_dwSupport dd ? ; functionality supported by driver
  365. AUXCAPS ends
  366. ; flags for wTechnology field in AUXCAPS structure
  367. AUXCAPS_CDAUDIO equ 1 ; audio from internal CD-ROM drive
  368. AUXCAPS_AUXIN equ 2 ; audio from auxiliary input jacks
  369. ; flags for dwSupport field in AUXCAPS structure
  370. AUXCAPS_VOLUME equ 0001h ; supports volume control
  371. AUXCAPS_LRVOLUME equ 0002h ; separate left-right volume control
  372. endif ;ifndef MMNOAUX
  373. ifndef MMNOTIMER
  374. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  375. ;
  376. ; Timer support
  377. ;
  378. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  379. ; timer error return values
  380. TIMERR_NOERROR equ (0) ; no error
  381. TIMERR_NOCANDO equ (TIMERR_BASE+1) ; request not completed
  382. TIMERR_STRUCT equ (TIMERR_BASE+33) ; time struct size
  383. ; flags for wFlags parameter of timeSetEvent() function
  384. TIME_ONESHOT equ 0 ; program timer for single event
  385. TIME_PERIODIC equ 1 ; program for continuous periodic event
  386. ; timer device capabilities data structure
  387. TIMECAPS struc
  388. tc_wPeriodMin dw ? ; minimum period supported
  389. tc_wPeriodMax dw ? ; maximum period supported
  390. TIMECAPS ends
  391. endif ;ifndef MMNOTIMER
  392. ifndef MMNOJOY
  393. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  394. ;
  395. ; Joystick support
  396. ;
  397. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  398. ; joystick error return values
  399. JOYERR_NOERROR equ (0) ; no error
  400. JOYERR_PARMS equ (JOYERR_BASE+5) ; bad parameters
  401. JOYERR_NOCANDO equ (JOYERR_BASE+6) ; request not completed
  402. JOYERR_UNPLUGGED equ (JOYERR_BASE+7) ; joystick is unplugged
  403. ; constants used with JOYINFO structure and MM_JOY* messages
  404. JOY_BUTTON1 equ 0001h
  405. JOY_BUTTON2 equ 0002h
  406. JOY_BUTTON3 equ 0004h
  407. JOY_BUTTON4 equ 0008h
  408. JOY_BUTTON1CHG equ 0100h
  409. JOY_BUTTON2CHG equ 0200h
  410. JOY_BUTTON3CHG equ 0400h
  411. JOY_BUTTON4CHG equ 0800h
  412. ; joystick ID constants
  413. JOYSTICKID1 equ 0
  414. JOYSTICKID2 equ 1
  415. ; joystick device capabilities data structure
  416. JOYCAPS struc
  417. jcaps_wMid dw ? ; manufacturer ID
  418. jcaps_wPid dw ? ; product ID
  419. jcaps_szPname db MAXPNAMELEN dup (?) ; product name (NULL terminated string)
  420. jcaps_wXmin dw ? ; minimum x position value
  421. jcaps_wXmax dw ? ; maximum x position value
  422. jcaps_wYmin dw ? ; minimum y position value
  423. jcaps_wYmax dw ? ; maximum y position value
  424. jcaps_wZmin dw ? ; minimum z position value
  425. jcaps_wZmax dw ? ; maximum z position value
  426. jcaps_wNumButtons dw ? ; number of buttons
  427. jcaps_wPeriodMin dw ? ; minimum message period when captured
  428. jcaps_wPeriodMax dw ? ; maximum message period when captured
  429. JOYCAPS ends
  430. ; joystick information data structure
  431. JOYINFO struc
  432. jinfo_wXpos dw ? ; x position
  433. jinfo_wYpos dw ? ; y position
  434. jinfo_wZpos dw ? ; z position
  435. jinfo_wButtons dw ? ; button states
  436. JOYINFO ends
  437. endif ;ifndef MMNOJOY
  438. ifndef MMNOMMIO
  439. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  440. ;
  441. ; Multimedia File I/O support
  442. ;
  443. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  444. ; MMIO error return values
  445. MMIOERR_BASE equ 256
  446. MMIOERR_FILENOTFOUND equ (MMIOERR_BASE + 1) ; file not found
  447. MMIOERR_OUTOFMEMORY equ (MMIOERR_BASE + 2) ; out of memory
  448. MMIOERR_CANNOTOPEN equ (MMIOERR_BASE + 3) ; cannot open
  449. MMIOERR_CANNOTCLOSE equ (MMIOERR_BASE + 4) ; cannot close
  450. MMIOERR_CANNOTREAD equ (MMIOERR_BASE + 5) ; cannot read
  451. MMIOERR_CANNOTWRITE equ (MMIOERR_BASE + 6) ; cannot write
  452. MMIOERR_CANNOTSEEK equ (MMIOERR_BASE + 7) ; cannot seek
  453. MMIOERR_CANNOTEXPAND equ (MMIOERR_BASE + 8) ; cannot expand file
  454. MMIOERR_CHUNKNOTFOUND equ (MMIOERR_BASE + 9) ; chunk not found
  455. MMIOERR_UNBUFFERED equ (MMIOERR_BASE + 10) ; file is unbuffered
  456. ; MMIO constants
  457. CFSEPCHAR equ '+' ; compound file name separator char.
  458. ; general MMIO information data structure
  459. MMIOINFO struc
  460. ; general fields
  461. mmio_dwFlags dd ? ; general status flags
  462. mmio_fccIOProc dd ? ; pointer to I/O procedure
  463. mmio_pIOProc dd ? ; pointer to I/O procedure
  464. mmio_wErrorRet dw ? ; place for error to be returned
  465. mmio_htask dw ? ; alternate local task
  466. ; fields maintained by MMIO functions during buffered I/O
  467. mmio_cchBuffer dd ? ; size of I/O buffer (or 0L)
  468. mmio_pchBuffer dd ? ; start of I/O buffer (or NULL)
  469. mmio_pchNext dd ? ; pointer to next byte to read/write
  470. mmio_pchEndRead dd ? ; pointer to last valid byte to read
  471. mmio_pchEndWrite dd ? ; pointer to last byte to write
  472. mmio_lBufOffset dd ? ; disk offset of start of buffer
  473. ; fields maintained by I/O procedure
  474. mmio_lDiskOffset dd ? ; disk offset of next read or write
  475. mmio_adwInfo dd 3 dup (?) ; data specific to type of MMIOPROC
  476. ; other fields maintained by MMIO
  477. mmio_dwReserved1 dd ? ; reserved for MMIO use
  478. mmio_dwReserved2 dd ? ; reserved for MMIO use
  479. mmio_hmmio dw ? ; handle to open file
  480. MMIOINFO ends
  481. ; RIFF chunk information data structure
  482. MMCKINFO struc
  483. mmck_ckid dd ? ; chunk ID
  484. mmck_cksize dd ? ; chunk size
  485. mmck_fccType dd ? ; form type or list type
  486. mmck_dwDataOffset dd ? ; offset of data portion of chunk
  487. mmck_dwFlags dd ? ; flags used by MMIO functions
  488. MMCKINFO ends
  489. ; bit field masks
  490. MMIO_RWMODE equ 00000003h ; open file for reading/writing/both
  491. MMIO_SHAREMODE equ 00000070h ; file sharing mode number
  492. ; constants for dwFlags field of MMIOINFO
  493. MMIO_CREATE equ 00001000h ; create new file (or truncate file)
  494. MMIO_PARSE equ 00000100h ; parse new file returning path
  495. MMIO_DELETE equ 00000200h ; create new file (or truncate file)
  496. MMIO_EXIST equ 00004000h ; checks for existence of file
  497. MMIO_ALLOCBUF equ 00010000h ; mmioOpen() should allocate a buffer
  498. MMIO_GETTEMP equ 00020000h ; mmioOpen() should retrieve temp name
  499. MMIO_DIRTY equ 10000000h ; I/O buffer is dirty
  500. MMIO_OPEN_VALID equ 0003FFFFh ;Internal
  501. ; read/write mode numbers (bit field MMIO_RWMODE)
  502. MMIO_READ equ 00000000h ; open file for reading only
  503. MMIO_WRITE equ 00000001h ; open file for writing only
  504. MMIO_READWRITE equ 00000002h ; open file for reading and writing
  505. ; share mode numbers (bit field MMIO_SHAREMODE)
  506. MMIO_COMPAT equ 00000000h ; compatibility mode
  507. MMIO_EXCLUSIVE equ 00000010h ; exclusive-access mode
  508. MMIO_DENYWRITE equ 00000020h ; deny writing to other processes
  509. MMIO_DENYREAD equ 00000030h ; deny reading to other processes
  510. MMIO_DENYNONE equ 00000040h ; deny nothing to other processes
  511. ; various MMIO flags
  512. MMIO_FHOPEN equ 0010h ; mmioClose: keep file handle open
  513. MMIO_EMPTYBUF equ 0010h ; mmioFlush: empty the I/O buffer
  514. MMIO_TOUPPER equ 0010h ; mmioStringToFOURCC: to u-case
  515. MMIO_INSTALLPROC equ 00010000h ; mmioInstallIOProc: install MMIOProc
  516. MMIO_GLOBALPROC equ 10000000h ; mmioInstallIOProc: install globally
  517. MMIO_REMOVEPROC equ 00020000h ; mmioInstallIOProc: remove MMIOProc
  518. MMIO_FINDPROC equ 00040000h ; mmioInstallIOProc: find an MMIOProc
  519. MMIO_FINDCHUNK equ 0010h ; mmioDescend: find a chunk by ID
  520. MMIO_FINDRIFF equ 0020h ; mmioDescend: find a LIST chunk
  521. MMIO_FINDLIST equ 0040h ; mmioDescend: find a RIFF chunk
  522. MMIO_CREATERIFF equ 0020h ; mmioCreateChunk: make a LIST chunk
  523. MMIO_CREATELIST equ 0040h ; mmioCreateChunk: make a RIFF chunk
  524. MMIO_VALIDPROC equ 10070000h ;Internal
  525. ; message numbers for MMIOPROC I/O procedure functions
  526. MMIOM_READ equ MMIO_READ ; read
  527. MMIOM_WRITE equ MMIO_WRITE ; write
  528. MMIOM_SEEK equ 2 ; seek to a new position in file
  529. MMIOM_OPEN equ 3 ; open file
  530. MMIOM_CLOSE equ 4 ; close file
  531. MMIOM_WRITEFLUSH equ 5 ; write and flush
  532. MMIOM_RENAME equ 6 ; rename specified file
  533. MMIOM_USER equ 8000h ; beginning of user-defined messages
  534. mmioFOURCC MACRO ch0,ch1,ch2,ch3
  535. mov al,ch0
  536. mov ah,ch1
  537. mov dl,ch2
  538. mov dh,ch3
  539. ENDM
  540. ; standard four character codes
  541. FOURCC_RIFF equ mmioFOURCC('R', 'I', 'F', 'F')
  542. FOURCC_LIST equ mmioFOURCC('L', 'I', 'S', 'T')
  543. ; four character codes used to identify standard built-in I/O procedures
  544. FOURCC_DOS equ mmioFOURCC('D', 'O', 'S', ' ')
  545. FOURCC_MEM equ mmioFOURCC('M', 'E', 'M', ' ')
  546. ; flags for mmioSeek()
  547. ifndef SEEK_SET
  548. SEEK_SET equ 0 ; seek to an absolute position
  549. SEEK_CUR equ 1 ; seek relative to current position
  550. SEEK_END equ 2 ; seek relative to end of file
  551. endif ;ifndef SEEK_SET
  552. ; other constants
  553. MMIO_DEFAULTBUFFER equ 8192 ; default buffer size
  554. endif ;ifndef MMNOMMIO
  555. ifndef MMNOMCI
  556. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  557. ;
  558. ; MCI support
  559. ;
  560. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  561. ; MCI error return values
  562. MCIERR_INVALID_DEVICE_ID equ (MCIERR_BASE + 1)
  563. MCIERR_UNRECOGNIZED_KEYWORD equ (MCIERR_BASE + 3)
  564. MCIERR_UNRECOGNIZED_COMMAND equ (MCIERR_BASE + 5)
  565. MCIERR_HARDWARE equ (MCIERR_BASE + 6)
  566. MCIERR_INVALID_DEVICE_NAME equ (MCIERR_BASE + 7)
  567. MCIERR_OUT_OF_MEMORY equ (MCIERR_BASE + 8)
  568. MCIERR_DEVICE_OPEN equ (MCIERR_BASE + 9)
  569. MCIERR_CANNOT_LOAD_DRIVER equ (MCIERR_BASE + 10)
  570. MCIERR_MISSING_COMMAND_STRING equ (MCIERR_BASE + 11)
  571. MCIERR_PARAM_OVERFLOW equ (MCIERR_BASE + 12)
  572. MCIERR_MISSING_STRING_ARGUMENT equ (MCIERR_BASE + 13)
  573. MCIERR_BAD_INTEGER equ (MCIERR_BASE + 14)
  574. MCIERR_PARSER_INTERNAL equ (MCIERR_BASE + 15)
  575. MCIERR_DRIVER_INTERNAL equ (MCIERR_BASE + 16)
  576. MCIERR_MISSING_PARAMETER equ (MCIERR_BASE + 17)
  577. MCIERR_UNSUPPORTED_FUNCTION equ (MCIERR_BASE + 18)
  578. MCIERR_FILE_NOT_FOUND equ (MCIERR_BASE + 19)
  579. MCIERR_DEVICE_NOT_READY equ (MCIERR_BASE + 20)
  580. MCIERR_INTERNAL equ (MCIERR_BASE + 21)
  581. MCIERR_DRIVER equ (MCIERR_BASE + 22)
  582. MCIERR_CANNOT_USE_ALL equ (MCIERR_BASE + 23)
  583. MCIERR_MULTIPLE equ (MCIERR_BASE + 24)
  584. MCIERR_EXTENSION_NOT_FOUND equ (MCIERR_BASE + 25)
  585. MCIERR_OUTOFRANGE equ (MCIERR_BASE + 26)
  586. MCIERR_FLAGS_NOT_COMPATIBLE equ (MCIERR_BASE + 28)
  587. MCIERR_FILE_NOT_SAVED equ (MCIERR_BASE + 30)
  588. MCIERR_DEVICE_TYPE_REQUIRED equ (MCIERR_BASE + 31)
  589. MCIERR_DEVICE_LOCKED equ (MCIERR_BASE + 32)
  590. MCIERR_DUPLICATE_ALIAS equ (MCIERR_BASE + 33)
  591. MCIERR_BAD_CONSTANT equ (MCIERR_BASE + 34)
  592. MCIERR_MUST_USE_SHAREABLE equ (MCIERR_BASE + 35)
  593. MCIERR_MISSING_DEVICE_NAME equ (MCIERR_BASE + 36)
  594. MCIERR_BAD_TIME_FORMAT equ (MCIERR_BASE + 37)
  595. MCIERR_NO_CLOSING_QUOTE equ (MCIERR_BASE + 38)
  596. MCIERR_DUPLICATE_FLAGS equ (MCIERR_BASE + 39)
  597. MCIERR_INVALID_FILE equ (MCIERR_BASE + 40)
  598. MCIERR_NULL_PARAMETER_BLOCK equ (MCIERR_BASE + 41)
  599. MCIERR_UNNAMED_RESOURCE equ (MCIERR_BASE + 42)
  600. MCIERR_NEW_REQUIRES_ALIAS equ (MCIERR_BASE + 43)
  601. MCIERR_NOTIFY_ON_AUTO_OPEN equ (MCIERR_BASE + 44)
  602. MCIERR_NO_ELEMENT_ALLOWED equ (MCIERR_BASE + 45)
  603. MCIERR_NONAPPLICABLE_FUNCTION equ (MCIERR_BASE + 46)
  604. MCIERR_ILLEGAL_FOR_AUTO_OPEN equ (MCIERR_BASE + 47)
  605. MCIERR_FILENAME_REQUIRED equ (MCIERR_BASE + 48)
  606. MCIERR_EXTRA_CHARACTERS equ (MCIERR_BASE + 49)
  607. MCIERR_DEVICE_NOT_INSTALLED equ (MCIERR_BASE + 50)
  608. MCIERR_GET_CD equ (MCIERR_BASE + 51)
  609. MCIERR_SET_CD equ (MCIERR_BASE + 52)
  610. MCIERR_SET_DRIVE equ (MCIERR_BASE + 53)
  611. MCIERR_DEVICE_LENGTH equ (MCIERR_BASE + 54)
  612. MCIERR_DEVICE_ORD_LENGTH equ (MCIERR_BASE + 55)
  613. MCIERR_NO_INTEGER equ (MCIERR_BASE + 56)
  614. MCIERR_WAVE_OUTPUTSINUSE equ (MCIERR_BASE + 64)
  615. MCIERR_WAVE_SETOUTPUTINUSE equ (MCIERR_BASE + 65)
  616. MCIERR_WAVE_INPUTSINUSE equ (MCIERR_BASE + 66)
  617. MCIERR_WAVE_SETINPUTINUSE equ (MCIERR_BASE + 67)
  618. MCIERR_WAVE_OUTPUTUNSPECIFIED equ (MCIERR_BASE + 68)
  619. MCIERR_WAVE_INPUTUNSPECIFIED equ (MCIERR_BASE + 69)
  620. MCIERR_WAVE_OUTPUTSUNSUITABLE equ (MCIERR_BASE + 70)
  621. MCIERR_WAVE_SETOUTPUTUNSUITABLE equ (MCIERR_BASE + 71)
  622. MCIERR_WAVE_INPUTSUNSUITABLE equ (MCIERR_BASE + 72)
  623. MCIERR_WAVE_SETINPUTUNSUITABLE equ (MCIERR_BASE + 73)
  624. MCIERR_SEQ_DIV_INCOMPATIBLE equ (MCIERR_BASE + 80)
  625. MCIERR_SEQ_PORT_INUSE equ (MCIERR_BASE + 81)
  626. MCIERR_SEQ_PORT_NONEXISTENT equ (MCIERR_BASE + 82)
  627. MCIERR_SEQ_PORT_MAPNODEVICE equ (MCIERR_BASE + 83)
  628. MCIERR_SEQ_PORT_MISCERROR equ (MCIERR_BASE + 84)
  629. MCIERR_SEQ_TIMER equ (MCIERR_BASE + 85)
  630. MCIERR_SEQ_PORTUNSPECIFIED equ (MCIERR_BASE + 86)
  631. MCIERR_SEQ_NOMIDIPRESENT equ (MCIERR_BASE + 87)
  632. MCIERR_NO_WINDOW equ (MCIERR_BASE + 90)
  633. MCIERR_CREATEWINDOW equ (MCIERR_BASE + 91)
  634. MCIERR_FILE_READ equ (MCIERR_BASE + 92)
  635. MCIERR_FILE_WRITE equ (MCIERR_BASE + 93)
  636. ; all custom device driver errors must be >= than this value
  637. MCIERR_CUSTOM_DRIVER_BASE equ (MCIERR_BASE + 256)
  638. ; MCI command message identifiers
  639. MCI_OPEN equ 0803h
  640. MCI_CLOSE equ 0804h
  641. MCI_ESCAPE equ 0805h
  642. MCI_PLAY equ 0806h
  643. MCI_SEEK equ 0807h
  644. MCI_STOP equ 0808h
  645. MCI_PAUSE equ 0809h
  646. MCI_INFO equ 080Ah
  647. MCI_GETDEVCAPS equ 080Bh
  648. MCI_SPIN equ 080Ch
  649. MCI_SET equ 080Dh
  650. MCI_STEP equ 080Eh
  651. MCI_RECORD equ 080Fh
  652. MCI_SYSINFO equ 0810h
  653. MCI_BREAK equ 0811h
  654. MCI_SOUND equ 0812h
  655. MCI_SAVE equ 0813h
  656. MCI_STATUS equ 0814h
  657. MCI_CUE equ 0830h
  658. MCI_REALIZE equ 0840h
  659. MCI_WINDOW equ 0841h
  660. MCI_PUT equ 0842h
  661. MCI_WHERE equ 0843h
  662. MCI_FREEZE equ 0844h
  663. MCI_UNFREEZE equ 0845h
  664. MCI_LOAD equ 0850h
  665. MCI_CUT equ 0851h
  666. MCI_COPY equ 0852h
  667. MCI_PASTE equ 0853h
  668. MCI_UPDATE equ 0854h
  669. MCI_RESUME equ 0855h
  670. MCI_DELETE equ 0856h
  671. ; all custom MCI command messages must be >= than this value
  672. MCI_USER_MESSAGES equ (400h + DRV_MCI_FIRST)
  673. ; device ID for "all devices"
  674. MCI_ALL_DEVICE_ID equ 0FFFFh
  675. ; constants for predefined MCI device types
  676. MCI_DEVTYPE_VCR equ (MCI_STRING_OFFSET + 1)
  677. MCI_DEVTYPE_VIDEODISC equ (MCI_STRING_OFFSET + 2)
  678. MCI_DEVTYPE_OVERLAY equ (MCI_STRING_OFFSET + 3)
  679. MCI_DEVTYPE_CD_AUDIO equ (MCI_STRING_OFFSET + 4)
  680. MCI_DEVTYPE_DAT equ (MCI_STRING_OFFSET + 5)
  681. MCI_DEVTYPE_SCANNER equ (MCI_STRING_OFFSET + 6)
  682. MCI_DEVTYPE_ANIMATION equ (MCI_STRING_OFFSET + 7)
  683. MCI_DEVTYPE_DIGITAL_VIDEO equ (MCI_STRING_OFFSET + 8)
  684. MCI_DEVTYPE_OTHER equ (MCI_STRING_OFFSET + 9)
  685. MCI_DEVTYPE_WAVEFORM_AUDIO equ (MCI_STRING_OFFSET + 10)
  686. MCI_DEVTYPE_SEQUENCER equ (MCI_STRING_OFFSET + 11)
  687. MCI_DEVTYPE_FIRST equ MCI_DEVTYPE_VCR
  688. MCI_DEVTYPE_LAST equ MCI_DEVTYPE_SEQUENCER
  689. ; return values for 'status mode' command
  690. MCI_MODE_NOT_READY equ (MCI_STRING_OFFSET + 12)
  691. MCI_MODE_STOP equ (MCI_STRING_OFFSET + 13)
  692. MCI_MODE_PLAY equ (MCI_STRING_OFFSET + 14)
  693. MCI_MODE_RECORD equ (MCI_STRING_OFFSET + 15)
  694. MCI_MODE_SEEK equ (MCI_STRING_OFFSET + 16)
  695. MCI_MODE_PAUSE equ (MCI_STRING_OFFSET + 17)
  696. MCI_MODE_OPEN equ (MCI_STRING_OFFSET + 18)
  697. ; constants used in 'set time format' and 'status time format' commands
  698. MCI_FORMAT_MILLISECONDS equ 0
  699. MCI_FORMAT_HMS equ 1
  700. MCI_FORMAT_MSF equ 2
  701. MCI_FORMAT_FRAMES equ 3
  702. MCI_FORMAT_SMPTE_24 equ 4
  703. MCI_FORMAT_SMPTE_25 equ 5
  704. MCI_FORMAT_SMPTE_30 equ 6
  705. MCI_FORMAT_SMPTE_30DROP equ 7
  706. MCI_FORMAT_BYTES equ 8
  707. MCI_FORMAT_SAMPLES equ 9
  708. MCI_FORMAT_TMSF equ 10
  709. ; flags for wParam of MM_MCINOTIFY message
  710. MCI_NOTIFY_SUCCESSFUL equ 0001h
  711. MCI_NOTIFY_SUPERSEDED equ 0002h
  712. MCI_NOTIFY_ABORTED equ 0004h
  713. MCI_NOTIFY_FAILURE equ 0008h
  714. ; common flags for dwFlags parameter of MCI command messages
  715. MCI_NOTIFY equ 00000001h
  716. MCI_WAIT equ 00000002h
  717. MCI_FROM equ 00000004h
  718. MCI_TO equ 00000008h
  719. MCI_TRACK equ 00000010h
  720. ; flags for dwFlags parameter of MCI_OPEN command message
  721. MCI_OPEN_SHAREABLE equ 00000100h
  722. MCI_OPEN_ELEMENT equ 00000200h
  723. MCI_OPEN_ALIAS equ 00000400h
  724. MCI_OPEN_ELEMENT_ID equ 00000800h
  725. MCI_OPEN_TYPE_ID equ 00001000h
  726. MCI_OPEN_TYPE equ 00002000h
  727. ; flags for dwFlags parameter of MCI_SEEK command message
  728. MCI_SEEK_TO_START equ 00000100h
  729. MCI_SEEK_TO_END equ 00000200h
  730. ; flags for dwFlags parameter of MCI_STATUS command message
  731. MCI_STATUS_ITEM equ 00000100h
  732. MCI_STATUS_START equ 00000200h
  733. ; flags for dwItem field of the MCI_STATUS_PARMS parameter block
  734. MCI_STATUS_LENGTH equ 00000001h
  735. MCI_STATUS_POSITION equ 00000002h
  736. MCI_STATUS_NUMBER_OF_TRACKS equ 00000003h
  737. MCI_STATUS_MODE equ 00000004h
  738. MCI_STATUS_MEDIA_PRESENT equ 00000005h
  739. MCI_STATUS_TIME_FORMAT equ 00000006h
  740. MCI_STATUS_READY equ 00000007h
  741. MCI_STATUS_CURRENT_TRACK equ 00000008h
  742. ; flags for dwFlags parameter of MCI_INFO command message
  743. MCI_INFO_PRODUCT equ 00000100h
  744. MCI_INFO_FILE equ 00000200h
  745. ; flags for dwFlags parameter of MCI_GETDEVCAPS command message
  746. MCI_GETDEVCAPS_ITEM equ 00000100h
  747. ; flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block
  748. MCI_GETDEVCAPS_CAN_RECORD equ 00000001h
  749. MCI_GETDEVCAPS_HAS_AUDIO equ 00000002h
  750. MCI_GETDEVCAPS_HAS_VIDEO equ 00000003h
  751. MCI_GETDEVCAPS_DEVICE_TYPE equ 00000004h
  752. MCI_GETDEVCAPS_USES_FILES equ 00000005h
  753. MCI_GETDEVCAPS_COMPOUND_DEVICE equ 00000006h
  754. MCI_GETDEVCAPS_CAN_EJECT equ 00000007h
  755. MCI_GETDEVCAPS_CAN_PLAY equ 00000008h
  756. MCI_GETDEVCAPS_CAN_SAVE equ 00000009h
  757. ; flags for dwFlags parameter of MCI_SYSINFO command message
  758. MCI_SYSINFO_QUANTITY equ 00000100h
  759. MCI_SYSINFO_OPEN equ 00000200h
  760. MCI_SYSINFO_NAME equ 00000400h
  761. MCI_SYSINFO_INSTALLNAME equ 00000800h
  762. ; flags for dwFlags parameter of MCI_SET command message
  763. MCI_SET_DOOR_OPEN equ 00000100h
  764. MCI_SET_DOOR_CLOSED equ 00000200h
  765. MCI_SET_TIME_FORMAT equ 00000400h
  766. MCI_SET_AUDIO equ 00000800h
  767. MCI_SET_VIDEO equ 00001000h
  768. MCI_SET_ON equ 00002000h
  769. MCI_SET_OFF equ 00004000h
  770. ; flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS
  771. MCI_SET_AUDIO_ALL equ 00000000h
  772. MCI_SET_AUDIO_LEFT equ 00000001h
  773. MCI_SET_AUDIO_RIGHT equ 00000002h
  774. ; flags for dwFlags parameter of MCI_BREAK command message
  775. MCI_BREAK_KEY equ 00000100h
  776. MCI_BREAK_HWND equ 00000200h
  777. MCI_BREAK_OFF equ 00000400h
  778. ; flags for dwFlags parameter of MCI_RECORD command message
  779. MCI_RECORD_INSERT equ 00000100h
  780. MCI_RECORD_OVERWRITE equ 00000200h
  781. ; flags for dwFlags parameter of MCI_SOUND command message
  782. MCI_SOUND_NAME equ 00000100h
  783. ; flags for dwFlags parameter of MCI_SAVE command message
  784. MCI_SAVE_FILE equ 00000100h
  785. ; flags for dwFlags parameter of MCI_LOAD command message
  786. MCI_LOAD_FILE equ 00000100h
  787. ; generic parameter block for MCI command messages with no special parameters
  788. MCI_GENERIC_PARMS struc
  789. mcigen_dwCallback dd ?
  790. MCI_GENERIC_PARMS ends
  791. ; parameter block for MCI_OPEN command message
  792. MCI_OPEN_PARMS struc
  793. mciopen_dwCallback dd ?
  794. mciopen_wDeviceID dw ?
  795. mciopen_wReserved0 dw ?
  796. mciopen_lpstrDeviceType dd ?
  797. mciopen_lpstrElementName dd ?
  798. mciopen_lpstrAlias dd ?
  799. MCI_OPEN_PARMS ends
  800. ; parameter block for MCI_PLAY command message
  801. MCI_PLAY_PARMS struc
  802. mciplay_dwCallback dd ?
  803. mciplay_dwFrom dd ?
  804. mciplay_dwTo dd ?
  805. MCI_PLAY_PARMS ends
  806. ; parameter block for MCI_SEEK command message
  807. MCI_SEEK_PARMS struc
  808. mciseek_dwCallback dd ?
  809. mciseek_dwTo dd ?
  810. MCI_SEEK_PARMS ends
  811. ; parameter block for MCI_STATUS command message
  812. MCI_STATUS_PARMS struc
  813. mcistat_dwCallback dd ?
  814. mcistat_dwReturn dd ?
  815. mcistat_dwItem dd ?
  816. mcistat_dwTrack dd ?
  817. MCI_STATUS_PARMS ends
  818. ; parameter block for MCI_INFO command message
  819. MCI_INFO_PARMS struc
  820. mciinfo_dwCallback dd ?
  821. mciinfo_lpstrReturn dd ?
  822. mciinfo_dwRetSize dd ?
  823. MCI_INFO_PARMS ends
  824. ; parameter block for MCI_GETDEVCAPS command message
  825. MCI_GETDEVCAPS_PARMS struc
  826. mcigdc_dwCallback dd ?
  827. mcigdc_dwReturn dd ?
  828. mcigdc_dwItem dd ?
  829. MCI_GETDEVCAPS_PARMS ends
  830. ; parameter block for MCI_SYSINFO command message
  831. MCI_SYSINFO_PARMS struc
  832. mcisi_dwCallback dd ?
  833. mcisi_lpstrReturn dd ?
  834. mcisi_dwRetSize dd ?
  835. mcisi_dwNumber dd ?
  836. mcisi_wDeviceType dw ?
  837. mcisi_wReserved0 dw ?
  838. MCI_SYSINFO_PARMS ends
  839. ; parameter block for MCI_SET command message
  840. MCI_SET_PARMS struc
  841. mciset_dwCallback dd ?
  842. mciset_dwTimeFormat dd ?
  843. mciset_dwAudio dd ?
  844. MCI_SET_PARMS ends
  845. ; parameter block for MCI_BREAK command message
  846. MCI_BREAK_PARMS struc
  847. mcibreak_dwCallback dd ?
  848. mcibreak_nVirtKey dw ?
  849. mcibreak_wReserved0 dw ?
  850. mcibreak_hwndBreak dw ?
  851. mcibreak_wReserved1 dw ?
  852. MCI_BREAK_PARMS ends
  853. ; parameter block for MCI_SOUND command message
  854. MCI_SOUND_PARMS struc
  855. mcisnd_dwCallback dd ?
  856. mcisnd_lpstrSoundName dd ?
  857. MCI_SOUND_PARMS ends
  858. ; parameter block for MCI_SAVE command message
  859. MCI_SAVE_PARMS struc
  860. mcisave_dwCallback dd ?
  861. mcisave_lpfilename dd ?
  862. MCI_SAVE_PARMS ends
  863. ; parameter block for MCI_LOAD command message
  864. MCI_LOAD_PARMS struc
  865. mciload_dwCallback dd ?
  866. mciload_lpfilename dd ?
  867. MCI_LOAD_PARMS ends
  868. ; parameter block for MCI_RECORD command message
  869. MCI_RECORD_PARMS struc
  870. mcirec_dwCallback dd ?
  871. mcirec_dwFrom dd ?
  872. mcirec_dwTo dd ?
  873. MCI_RECORD_PARMS ends
  874. ;
  875. ; MCI extensions for videodisc devices
  876. ;
  877. ; flag for dwReturn field of MCI_STATUS_PARMS
  878. ; MCI_STATUS command, (dwItem == MCI_STATUS_MODE)
  879. MCI_VD_MODE_PARK equ (MCI_VD_OFFSET + 1)
  880. ; flag for dwReturn field of MCI_STATUS_PARMS
  881. ; MCI_STATUS command, (dwItem == MCI_VD_STATUS_MEDIA_TYPE)
  882. MCI_VD_MEDIA_CLV equ (MCI_VD_OFFSET + 2)
  883. MCI_VD_MEDIA_CAV equ (MCI_VD_OFFSET + 3)
  884. MCI_VD_MEDIA_OTHER equ (MCI_VD_OFFSET + 4)
  885. MCI_VD_FORMAT_TRACK equ 4001h
  886. ; flags for dwFlags parameter of MCI_PLAY command message
  887. MCI_VD_PLAY_REVERSE equ 00010000h
  888. MCI_VD_PLAY_FAST equ 00020000h
  889. MCI_VD_PLAY_SPEED equ 00040000h
  890. MCI_VD_PLAY_SCAN equ 00080000h
  891. MCI_VD_PLAY_SLOW equ 00100000h
  892. ; flag for dwFlags parameter of MCI_SEEK command message
  893. MCI_VD_SEEK_REVERSE equ 00010000h
  894. ; flags for dwItem field of MCI_STATUS_PARMS parameter block
  895. MCI_VD_STATUS_SPEED equ 00004002h
  896. MCI_VD_STATUS_FORWARD equ 00004003h
  897. MCI_VD_STATUS_MEDIA_TYPE equ 00004004h
  898. MCI_VD_STATUS_SIDE equ 00004005h
  899. MCI_VD_STATUS_DISC_SIZE equ 00004006h
  900. ; flags for dwFlags parameter of MCI_GETDEVCAPS command message
  901. MCI_VD_GETDEVCAPS_CLV equ 00010000h
  902. MCI_VD_GETDEVCAPS_CAV equ 00020000h
  903. MCI_VD_SPIN_UP equ 0001h
  904. MCI_VD_SPIN_DOWN equ 0002h
  905. ; flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
  906. MCI_VD_GETDEVCAPS_CAN_REVERSE equ 00004002h
  907. MCI_VD_GETDEVCAPS_FAST_RATE equ 00004003h
  908. MCI_VD_GETDEVCAPS_SLOW_RATE equ 00004004h
  909. MCI_VD_GETDEVCAPS_NORMAL_RATE equ 00004005h
  910. ; flags for the dwFlags parameter of MCI_STEP command message
  911. MCI_VD_STEP_FRAMES equ 00010000h
  912. MCI_VD_STEP_REVERSE equ 00020000h
  913. ; flag for the MCI_ESCAPE command message
  914. MCI_VD_ESCAPE_STRING equ 00000100h
  915. ; parameter block for MCI_PLAY command message
  916. MCI_VD_PLAY_PARMS struc
  917. mcivdplay_dwCallback dd ?
  918. mcivdplay_dwFrom dd ?
  919. mcivdplay_dwTo dd ?
  920. mcivdplay_dwSpeed dd ?
  921. MCI_VD_PLAY_PARMS ends
  922. ; parameter block for MCI_STEP command message
  923. MCI_VD_STEP_PARMS struc
  924. mcivdstep_dwCallback dd ?
  925. mcivdstep_dwFrames dd ?
  926. MCI_VD_STEP_PARMS ends
  927. ; parameter block for MCI_ESCAPE command message
  928. MCI_VD_ESCAPE_PARMS struc
  929. mcivcesc_dwCallback dd ?
  930. mcivcesc_lpstrCommand dd ?
  931. MCI_VD_ESCAPE_PARMS ends
  932. ;
  933. ; MCI extensions for waveform audio devices
  934. ;
  935. ; flags for the dwFlags parameter of MCI_OPEN command message
  936. MCI_WAVE_OPEN_BUFFER equ 00010000h
  937. ; flags for the dwFlags parameter of MCI_SET command message
  938. MCI_WAVE_SET_FORMATTAG equ 00010000h
  939. MCI_WAVE_SET_CHANNELS equ 00020000h
  940. MCI_WAVE_SET_SAMPLESPERSEC equ 00040000h
  941. MCI_WAVE_SET_AVGBYTESPERSEC equ 00080000h
  942. MCI_WAVE_SET_BLOCKALIGN equ 00100000h
  943. MCI_WAVE_SET_BITSPERSAMPLE equ 00200000h
  944. ; flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages
  945. MCI_WAVE_INPUT equ 00400000h
  946. MCI_WAVE_OUTPUT equ 00800000h
  947. ; flags for the dwItem field of MCI_STATUS_PARMS parameter block
  948. MCI_WAVE_STATUS_FORMATTAG equ 00004001h
  949. MCI_WAVE_STATUS_CHANNELS equ 00004002h
  950. MCI_WAVE_STATUS_SAMPLESPERSEC equ 00004003h
  951. MCI_WAVE_STATUS_AVGBYTESPERSEC equ 00004004h
  952. MCI_WAVE_STATUS_BLOCKALIGN equ 00004005h
  953. MCI_WAVE_STATUS_BITSPERSAMPLE equ 00004006h
  954. MCI_WAVE_STATUS_LEVEL equ 00004007h
  955. ; flags for the dwFlags parameter of MCI_SET command message
  956. MCI_WAVE_SET_ANYINPUT equ 04000000h
  957. MCI_WAVE_SET_ANYOUTPUT equ 08000000h
  958. ; flags for the dwFlags parameter of MCI_GETDEVCAPS command message
  959. MCI_WAVE_GETDEVCAPS_INPUTS equ 00004001h
  960. MCI_WAVE_GETDEVCAPS_OUTPUTS equ 00004002h
  961. ; parameter block for MCI_OPEN command message
  962. MCI_WAVE_OPEN_PARMS struc
  963. mciwopen_dwCallback dd ?
  964. mciwopen_wDeviceID dw ?
  965. mciwopen_wReserved0 dw ?
  966. mciwopen_lpstrDeviceType dd ?
  967. mciwopen_lpstrElementName dd ?
  968. mciwopen_lpstrAlias dd ?
  969. mciwopen_dwBufferSeconds dd ?
  970. MCI_WAVE_OPEN_PARMS ends
  971. ; parameter block for MCI_DELETE command message
  972. MCI_WAVE_DELETE_PARMS struc
  973. mciwdel_dwCallback dd ?
  974. mciwdel_dwFrom dd ?
  975. mciwdel_dwTo dd ?
  976. MCI_WAVE_DELETE_PARMS ends
  977. ; parameter block for MCI_SET command message
  978. MCI_WAVE_SET_PARMS struc
  979. mciwset_dwCallback dd ?
  980. mciwset_dwTimeFormat dd ?
  981. mciwset_dwAudio dd ?
  982. mciwset_wInput dw ?
  983. mciwset_wReserved0 dw ?
  984. mciwset_wOutput dw ?
  985. mciwset_wReserved1 dw ?
  986. mciwset_wFormatTag dw ?
  987. mciwset_wReserved2 dw ?
  988. mciwset_nChannels dw ?
  989. mciwset_wReserved3 dw ?
  990. mciwset_nSamplesPerSec dw ?
  991. mciwset_nAvgBytesPerSec dw ?
  992. mciwset_nBlockAlign dw ?
  993. mciwset_wReserved4 dw ?
  994. mciwset_wBitsPerSample dw ?
  995. mciwset_wReserved5 dw ?
  996. MCI_WAVE_SET_PARMS ends
  997. ;
  998. ; MCI extensions for MIDI sequencer devices
  999. ;
  1000. ; flags for the dwReturn field of MCI_STATUS_PARMS parameter block
  1001. ; MCI_STATUS command, (dwItem == MCI_SEQ_STATUS_DIVTYPE)
  1002. MCI_SEQ_DIV_PPQN equ (0 + MCI_SEQ_OFFSET)
  1003. MCI_SEQ_DIV_SMPTE_24 equ (1 + MCI_SEQ_OFFSET)
  1004. MCI_SEQ_DIV_SMPTE_25 equ (2 + MCI_SEQ_OFFSET)
  1005. MCI_SEQ_DIV_SMPTE_30DROP equ (3 + MCI_SEQ_OFFSET)
  1006. MCI_SEQ_DIV_SMPTE_30 equ (4 + MCI_SEQ_OFFSET)
  1007. ; flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block
  1008. ; MCI_SET command, (dwFlags == MCI_SEQ_SET_MASTER)
  1009. MCI_SEQ_FORMAT_SONGPTR equ 4001h
  1010. MCI_SEQ_FILE equ 4002h
  1011. MCI_SEQ_MIDI equ 4003h
  1012. MCI_SEQ_SMPTE equ 4004h
  1013. MCI_SEQ_NONE equ 65533
  1014. ; flags for the dwItem field of MCI_STATUS_PARMS parameter block
  1015. MCI_SEQ_STATUS_TEMPO equ 00004002h
  1016. MCI_SEQ_STATUS_PORT equ 00004003h
  1017. MCI_SEQ_STATUS_SLAVE equ 00004007h
  1018. MCI_SEQ_STATUS_MASTER equ 00004008h
  1019. MCI_SEQ_STATUS_OFFSET equ 00004009h
  1020. MCI_SEQ_STATUS_DIVTYPE equ 0000400Ah
  1021. ; flags for the dwFlags parameter of MCI_SET command message
  1022. MCI_SEQ_SET_TEMPO equ 00010000h
  1023. MCI_SEQ_SET_PORT equ 00020000h
  1024. MCI_SEQ_SET_SLAVE equ 00040000h
  1025. MCI_SEQ_SET_MASTER equ 00080000h
  1026. MCI_SEQ_SET_OFFSET equ 01000000h
  1027. ; parameter block for MCI_SET command message
  1028. MCI_SEQ_SET_PARMS struc
  1029. mcisset_dwCallback dd ?
  1030. mcisset_dwTimeFormat dd ?
  1031. mcisset_dwAudio dd ?
  1032. mcisset_dwTempo dd ?
  1033. mcisset_dwPort dd ?
  1034. mcisset_dwSlave dd ?
  1035. mcisset_dwMaster dd ?
  1036. mcisset_dwOffset dd ?
  1037. MCI_SEQ_SET_PARMS ends
  1038. ;
  1039. ; MCI extensions for animation devices
  1040. ;
  1041. ; flags for dwFlags parameter of MCI_OPEN command message
  1042. MCI_ANIM_OPEN_WS equ 00010000h
  1043. MCI_ANIM_OPEN_PARENT equ 00020000h
  1044. MCI_ANIM_OPEN_NOSTATIC equ 00040000h
  1045. ; flags for dwFlags parameter of MCI_PLAY command message
  1046. MCI_ANIM_PLAY_SPEED equ 00010000h
  1047. MCI_ANIM_PLAY_REVERSE equ 00020000h
  1048. MCI_ANIM_PLAY_FAST equ 00040000h
  1049. MCI_ANIM_PLAY_SLOW equ 00080000h
  1050. MCI_ANIM_PLAY_SCAN equ 00100000h
  1051. ; flags for dwFlags parameter of MCI_STEP command message
  1052. MCI_ANIM_STEP_REVERSE equ 00010000h
  1053. MCI_ANIM_STEP_FRAMES equ 00020000h
  1054. ; flags for dwItem field of MCI_STATUS_PARMS parameter block
  1055. MCI_ANIM_STATUS_SPEED equ 00004001h
  1056. MCI_ANIM_STATUS_FORWARD equ 00004002h
  1057. MCI_ANIM_STATUS_HWND equ 00004003h
  1058. MCI_ANIM_STATUS_HPAL equ 00004004h
  1059. MCI_ANIM_STATUS_STRETCH equ 00004005h
  1060. ; flags for the dwFlags parameter of MCI_INFO command message
  1061. MCI_ANIM_INFO_TEXT equ 00010000h
  1062. ; flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
  1063. MCI_ANIM_GETDEVCAPS_CAN_REVERSE equ 00004001h
  1064. MCI_ANIM_GETDEVCAPS_FAST_RATE equ 00004002h
  1065. MCI_ANIM_GETDEVCAPS_SLOW_RATE equ 00004003h
  1066. MCI_ANIM_GETDEVCAPS_NORMAL_RATE equ 00004004h
  1067. MCI_ANIM_GETDEVCAPS_PALETTES equ 00004006h
  1068. MCI_ANIM_GETDEVCAPS_CAN_STRETCH equ 00004007h
  1069. MCI_ANIM_GETDEVCAPS_MAX_WINDOWS equ 00004008h
  1070. ; flags for the MCI_REALIZE command message
  1071. MCI_ANIM_REALIZE_NORM equ 00010000h
  1072. MCI_ANIM_REALIZE_BKGD equ 00020000h
  1073. ; flags for dwFlags parameter of MCI_WINDOW command message
  1074. MCI_ANIM_WINDOW_HWND equ 00010000h
  1075. MCI_ANIM_WINDOW_STATE equ 00040000h
  1076. MCI_ANIM_WINDOW_TEXT equ 00080000h
  1077. MCI_ANIM_WINDOW_ENABLE_STRETCH equ 00100000h
  1078. MCI_ANIM_WINDOW_DISABLE_STRETCH equ 00200000h
  1079. ; flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block
  1080. ; MCI_WINDOW command message, (dwFlags == MCI_ANIM_WINDOW_HWND)
  1081. MCI_ANIM_WINDOW_DEFAULT equ 00000000h
  1082. ; flags for dwFlags parameter of MCI_PUT command message
  1083. MCI_ANIM_RECT equ 00010000h
  1084. MCI_ANIM_PUT_SOURCE equ 00020000h
  1085. MCI_ANIM_PUT_DESTINATION equ 00040000h
  1086. ; flags for dwFlags parameter of MCI_WHERE command message
  1087. MCI_ANIM_WHERE_SOURCE equ 00020000h
  1088. MCI_ANIM_WHERE_DESTINATION equ 00040000h
  1089. ; flags for dwFlags parameter of MCI_UPDATE command message
  1090. MCI_ANIM_UPDATE_HDC equ 00020000h
  1091. ; parameter block for MCI_OPEN command message
  1092. MCI_ANIM_OPEN_PARMS struc
  1093. mciaopen_dwCallback dd ?
  1094. mciaopen_wDeviceID dw ?
  1095. mciaopen_wReserved0 dw ?
  1096. mciaopen_lpstrDeviceType dd ?
  1097. mciaopen_lpstrElementName dd ?
  1098. mciaopen_lpstrAlias dd ?
  1099. mciaopen_dwStyle dd ?
  1100. mciaopen_hWndParent dw ?
  1101. mciaopen_wReserved1 dw ?
  1102. MCI_ANIM_OPEN_PARMS ends
  1103. ; parameter block for MCI_PLAY command message
  1104. MCI_ANIM_PLAY_PARMS struc
  1105. mciaplay_dwCallback dd ?
  1106. mciaplay_dwFrom dd ?
  1107. mciaplay_dwTo dd ?
  1108. mciaplay_dwSpeed dd ?
  1109. MCI_ANIM_PLAY_PARMS ends
  1110. ; parameter block for MCI_STEP command message
  1111. MCI_ANIM_STEP_PARMS struc
  1112. mciastep_dwCallback dd ?
  1113. mciastep_dwFrames dd ?
  1114. MCI_ANIM_STEP_PARMS ends
  1115. ; parameter block for MCI_WINDOW command message
  1116. MCI_ANIM_WINDOW_PARMS struc
  1117. mciawin_dwCallback dd ?
  1118. mciawin_hWnd dw ?
  1119. mciawin_wReserved1 dw ?
  1120. mciawin_nCmdShow dw ?
  1121. mciawin_wReserved2 dw ?
  1122. mciawin_lpstrText dd ?
  1123. MCI_ANIM_WINDOW_PARMS ends
  1124. ; parameter block for MCI_PUT, MCI_UPDATE, MCI_WHERE command messages
  1125. MCI_ANIM_RECT_PARMS struc
  1126. mciarect_dwCallback dd ?
  1127. ifdef MCI_USE_OFFEXT
  1128. mciarect_ptOffset db (SIZE POINT) dup (?)
  1129. mciarect_ptExtent db (SIZE POINT) dup (?)
  1130. else ;ifdef MCI_USE_OFFEXT
  1131. mciarect_rc db (SIZE RECT) dup (?)
  1132. endif ;ifdef MCI_USE_OFFEXT
  1133. MCI_ANIM_RECT_PARMS ends
  1134. ; parameter block for MCI_UPDATE PARMS
  1135. MCI_ANIM_UPDATE_PARMS struc
  1136. mciaupd_dwCallback dd ?
  1137. mciaupd_rc db (SIZE RECT) dup (?)
  1138. mciaupd_hDC dw ?
  1139. MCI_ANIM_UPDATE_PARMS ends
  1140. ;
  1141. ; MCI extensions for video overlay devices
  1142. ;
  1143. ; flags for dwFlags parameter of MCI_OPEN command message
  1144. MCI_OVLY_OPEN_WS equ 00010000h
  1145. MCI_OVLY_OPEN_PARENT equ 00020000h
  1146. ; flags for dwFlags parameter of MCI_STATUS command message
  1147. MCI_OVLY_STATUS_HWND equ 00004001h
  1148. MCI_OVLY_STATUS_STRETCH equ 00004002h
  1149. ; flags for dwFlags parameter of MCI_INFO command message
  1150. MCI_OVLY_INFO_TEXT equ 00010000h
  1151. ; flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
  1152. MCI_OVLY_GETDEVCAPS_CAN_STRETCH equ 00004001h
  1153. MCI_OVLY_GETDEVCAPS_CAN_FREEZE equ 00004002h
  1154. MCI_OVLY_GETDEVCAPS_MAX_WINDOWS equ 00004003h
  1155. ; flags for dwFlags parameter of MCI_WINDOW command message
  1156. MCI_OVLY_WINDOW_HWND equ 00010000h
  1157. MCI_OVLY_WINDOW_STATE equ 00040000h
  1158. MCI_OVLY_WINDOW_TEXT equ 00080000h
  1159. MCI_OVLY_WINDOW_ENABLE_STRETCH equ 00100000h
  1160. MCI_OVLY_WINDOW_DISABLE_STRETCH equ 00200000h
  1161. ; flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block
  1162. MCI_OVLY_WINDOW_DEFAULT equ 00000000h
  1163. ; flags for dwFlags parameter of MCI_PUT command message
  1164. MCI_OVLY_RECT equ 00010000h
  1165. MCI_OVLY_PUT_SOURCE equ 00020000h
  1166. MCI_OVLY_PUT_DESTINATION equ 00040000h
  1167. MCI_OVLY_PUT_FRAME equ 00080000h
  1168. MCI_OVLY_PUT_VIDEO equ 00100000h
  1169. ; flags for dwFlags parameter of MCI_WHERE command message
  1170. MCI_OVLY_WHERE_SOURCE equ 00020000h
  1171. MCI_OVLY_WHERE_DESTINATION equ 00040000h
  1172. MCI_OVLY_WHERE_FRAME equ 00080000h
  1173. MCI_OVLY_WHERE_VIDEO equ 00100000h
  1174. ; parameter block for MCI_OPEN command message
  1175. MCI_OVLY_OPEN_PARMS struc
  1176. mcioopen_dwCallback dd ?
  1177. mcioopen_wDeviceID dw ?
  1178. mcioopen_wReserved0 dw ?
  1179. mcioopen_lpstrDeviceType dd ?
  1180. mcioopen_lpstrElementName dd ?
  1181. mcioopen_lpstrAlias dd ?
  1182. mcioopen_dwStyle dd ?
  1183. mcioopen_hWndParent dw ?
  1184. mcioopen_wReserved1 dw ?
  1185. MCI_OVLY_OPEN_PARMS ends
  1186. ; parameter block for MCI_WINDOW command message
  1187. MCI_OVLY_WINDOW_PARMS struc
  1188. mciowin_dwCallback dd ?
  1189. mciowin_hWnd dw ?
  1190. mciowin_wReserved1 dw ?
  1191. mciowin_nCmdShow dw ?
  1192. mciowin_wReserved2 dw ?
  1193. mciowin_lpstrText dd ?
  1194. MCI_OVLY_WINDOW_PARMS ends
  1195. ; parameter block for MCI_PUT, MCI_UPDATE, and MCI_WHERE command messages
  1196. MCI_OVLY_RECT_PARMS struc
  1197. mciorect_dwCallback dd ?
  1198. ifdef MCI_USE_OFFEXT
  1199. mciorect_ptOffset db (SIZE POINT) dup (?)
  1200. mciorect_ptExtent db (SIZE POINT) dup (?)
  1201. else ;ifdef MCI_USE_OFFEXT
  1202. mciorect_rc db (SIZE RECT) dup (?)
  1203. endif ;ifdef MCI_USE_OFFEXT
  1204. MCI_OVLY_RECT_PARMS ends
  1205. ; parameter block for MCI_SAVE command message
  1206. MCI_OVLY_SAVE_PARMS struc
  1207. mciosave_dwCallback dd ?
  1208. mciosave_lpfilename dd ?
  1209. mciosave_rc db (SIZE RECT) dup (?)
  1210. MCI_OVLY_SAVE_PARMS ends
  1211. ; parameter block for MCI_LOAD command message
  1212. MCI_OVLY_LOAD_PARMS struc
  1213. mcioload_dwCallback dd ?
  1214. mcioload_lpfilename dd ?
  1215. mcioload_rc db (SIZE RECT) dup (?)
  1216. MCI_OVLY_LOAD_PARMS ends
  1217. endif ;ifndef MMNOMCI
  1218. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1219. ;
  1220. ; DISPLAY Driver extensions
  1221. ;
  1222. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1223. ifndef C1_TRANSPARENT
  1224. CAPS1 equ 94 ; other caps
  1225. C1_TRANSPARENT equ 0001h ; new raster cap
  1226. NEWTRANSPARENT equ 3 ; use with SetBkMode()
  1227. QUERYROPSUPPORT equ 40 ; use to determine ROP support
  1228. endif ;ifndef C1_TRANSPARENT
  1229. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1230. ;
  1231. ; DIB Driver extensions
  1232. ;
  1233. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1234. SELECTDIB equ 41 ; DIB.DRV select dib escape
  1235. DIBINDEX MACRO a
  1236. mov ax,a
  1237. mov dx,10ffh
  1238. ENDM
  1239. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1240. ;
  1241. ; ScreenSaver support
  1242. ;
  1243. ; The current application will receive a syscommand of SC_SCREENSAVE just
  1244. ; before the screen saver is invoked. If the app wishes to prevent a
  1245. ; screen save, return non-zero value, otherwise call DefWindowProc().
  1246. ;
  1247. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1248. ifndef SC_SCREENSAVE
  1249. SC_SCREENSAVE equ 0F140h
  1250. endif ;ifndef SC_SCREENSAVE