Leaked source code of windows server 2003
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.

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