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.

1284 lines
44 KiB

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