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.

1155 lines
41 KiB

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