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.

907 lines
31 KiB

  1. /**************************************************************************
  2. *
  3. * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  4. * KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  5. * IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  6. * PURPOSE.
  7. *
  8. * Copyright (c) 1993, 1994 Microsoft Corporation. All Rights Reserved.
  9. *
  10. * FILE: DIGITALV.H
  11. *
  12. * DESCRIPTION:
  13. * Include file for the MCI Digital Video Command Set
  14. *
  15. * HISTORY:
  16. * Aug 19, 1992 -Version 1.0 Release
  17. *
  18. **************************************************************************/
  19. #ifndef _INC_DIGITALV
  20. #define _INC_DIGITALV 100
  21. #ifdef __cplusplus
  22. extern "C" { /* Assume C declarations for C++ */
  23. #endif /* __cplusplus */
  24. #define MCI_TEST 0x00000020L
  25. /* Message values */
  26. #define MCI_CAPTURE 0x0870
  27. #define MCI_MONITOR 0x0871
  28. #define MCI_RESERVE 0x0872
  29. #define MCI_SETAUDIO 0x0873
  30. #define MCI_SIGNAL 0x0875
  31. #define MCI_SETVIDEO 0x0876
  32. #define MCI_QUALITY 0x0877
  33. #define MCI_LIST 0x0878
  34. #define MCI_UNDO 0x0879
  35. #define MCI_CONFIGURE 0x087a
  36. #define MCI_RESTORE 0x087b
  37. /* Return and string constant values */
  38. #define MCI_ON 1
  39. #define MCI_OFF 0
  40. #define MCI_DGV_FILE_MODE_SAVING 0x0001
  41. #define MCI_DGV_FILE_MODE_LOADING 0x0002
  42. #define MCI_DGV_FILE_MODE_EDITING 0x0003
  43. #define MCI_DGV_FILE_MODE_IDLE 0x0004
  44. /* These identifiers are used only by device drivers */
  45. #define MCI_ON_S 0x00008000L
  46. #define MCI_OFF_S 0x00008001L
  47. #define MCI_DGV_FILE_S 0x00008002L
  48. #define MCI_DGV_INPUT_S 0x00008003L
  49. #define MCI_DGV_FILE_MODE_SAVING_S 0x00008004L
  50. #define MCI_DGV_FILE_MODE_LOADING_S 0x00008005L
  51. #define MCI_DGV_FILE_MODE_EDITING_S 0x00008006L
  52. #define MCI_DGV_FILE_MODE_IDLE_S 0x00008007L
  53. #define MCI_DGV_SETVIDEO_SRC_NTSC_S 0x00008010L
  54. #define MCI_DGV_SETVIDEO_SRC_RGB_S 0x00008011L
  55. #define MCI_DGV_SETVIDEO_SRC_SVIDEO_S 0x00008012L
  56. #define MCI_DGV_SETVIDEO_SRC_PAL_S 0x00008013L
  57. #define MCI_DGV_SETVIDEO_SRC_SECAM_S 0x00008014L
  58. #define MCI_DGV_SETVIDEO_SRC_GENERIC_S 0x00008015L
  59. #define MCI_DGV_SETAUDIO_SRC_LEFT_S 0x00008020L
  60. #define MCI_DGV_SETAUDIO_SRC_RIGHT_S 0x00008021L
  61. #define MCI_DGV_SETAUDIO_SRC_AVERAGE_S 0x00008022L
  62. #define MCI_DGV_SETAUDIO_SRC_STEREO_S 0x00008023L
  63. /* Window message for signal notification */
  64. #ifndef MM_MCISIGNAL
  65. #define MM_MCISIGNAL 0x3CB
  66. #endif
  67. /* error values */
  68. #define MCIERR_DGV_DEVICE_LIMIT (MCIERR_CUSTOM_DRIVER_BASE+0)
  69. #define MCIERR_DGV_IOERR (MCIERR_CUSTOM_DRIVER_BASE+1)
  70. #define MCIERR_DGV_WORKSPACE_EMPTY (MCIERR_CUSTOM_DRIVER_BASE+2)
  71. #define MCIERR_DGV_DISK_FULL (MCIERR_CUSTOM_DRIVER_BASE+3)
  72. #define MCIERR_DGV_DEVICE_MEMORY_FULL (MCIERR_CUSTOM_DRIVER_BASE+4)
  73. #define MCIERR_DGV_BAD_CLIPBOARD_RANGE (MCIERR_CUSTOM_DRIVER_BASE+5)
  74. /* defines for monitor methods */
  75. #define MCI_DGV_METHOD_PRE 0x0000a000L
  76. #define MCI_DGV_METHOD_POST 0x0000a001L
  77. #define MCI_DGV_METHOD_DIRECT 0x0000a002L
  78. /* defines for known file formats */
  79. #define MCI_DGV_FF_AVSS 0x00004000L
  80. #define MCI_DGV_FF_AVI 0x00004001L
  81. #define MCI_DGV_FF_DIB 0x00004002L
  82. #define MCI_DGV_FF_RDIB 0x00004003L
  83. #define MCI_DGV_FF_JPEG 0x00004004L
  84. #define MCI_DGV_FF_RJPEG 0x00004005L
  85. #define MCI_DGV_FF_JFIF 0x00004006L
  86. #define MCI_DGV_FF_MPEG 0x00004007L
  87. /* values for dwItem field of MCI_CAPABILITY_PARMS structure */
  88. #define MCI_DGV_GETDEVCAPS_CAN_LOCK 0x00004000L
  89. #define MCI_DGV_GETDEVCAPS_CAN_STRETCH 0x00004001L
  90. #define MCI_DGV_GETDEVCAPS_CAN_FREEZE 0x00004002L
  91. #define MCI_DGV_GETDEVCAPS_MAX_WINDOWS 0x00004003L
  92. #define MCI_DGV_GETDEVCAPS_CAN_REVERSE 0x00004004L
  93. #define MCI_DGV_GETDEVCAPS_HAS_STILL 0x00004005L
  94. #define MCI_DGV_GETDEVCAPS_PALETTES 0x00004006L
  95. #define MCI_DGV_GETDEVCAPS_CAN_STR_IN 0x00004008L
  96. #define MCI_DGV_GETDEVCAPS_CAN_TEST 0x00004009L
  97. #define MCI_DGV_GETDEVCAPS_MAXIMUM_RATE 0x0000400aL
  98. #define MCI_DGV_GETDEVCAPS_MINIMUM_RATE 0x0000400bL
  99. /* flags for dwFlags parameter of MCI_CAPTURE command message */
  100. #define MCI_DGV_CAPTURE_AS 0x00010000L
  101. #define MCI_DGV_CAPTURE_AT 0x00020000L
  102. /* flags for dwFlags parameter of MCI_COPY command message */
  103. #define MCI_DGV_COPY_AT 0x00010000L
  104. #define MCI_DGV_COPY_AUDIO_STREAM 0x00020000L
  105. #define MCI_DGV_COPY_VIDEO_STREAM 0x00040000L
  106. /* flags for dwFlags parameter of MCI_CUE command message */
  107. #define MCI_DGV_CUE_INPUT 0x00010000L
  108. #define MCI_DGV_CUE_OUTPUT 0x00020000L
  109. #define MCI_DGV_CUE_NOSHOW 0x00040000L
  110. /* flags for dwFlags parameter of MCI_CUT command message */
  111. #define MCI_DGV_CUT_AT 0x00010000L
  112. #define MCI_DGV_CUT_AUDIO_STREAM 0x00020000L
  113. #define MCI_DGV_CUT_VIDEO_STREAM 0x00040000L
  114. /* flags for dwFlags parameter of MCI_DELETE command message */
  115. #define MCI_DGV_DELETE_AT 0x00010000L
  116. #define MCI_DGV_DELETE_AUDIO_STREAM 0x00020000L
  117. #define MCI_DGV_DELETE_VIDEO_STREAM 0x00040000L
  118. /* flags for dwFlags parameter of MCI_FREEZE command message */
  119. #define MCI_DGV_FREEZE_AT 0x00010000L
  120. #define MCI_DGV_FREEZE_OUTSIDE 0x00020000L
  121. /* flags for dwFlags parameter of MCI_INFO command message */
  122. #define MCI_DGV_INFO_TEXT 0x00010000L
  123. #define MCI_DGV_INFO_ITEM 0X00020000L
  124. /* values for dwItem field of MCI_DGV_INFO_PARMS structure */
  125. #define MCI_INFO_VERSION 0x00000400L
  126. #define MCI_DGV_INFO_USAGE 0x00004000L
  127. #define MCI_DGV_INFO_AUDIO_QUALITY 0x00004001L
  128. #define MCI_DGV_INFO_STILL_QUALITY 0x00004002L
  129. #define MCI_DGV_INFO_VIDEO_QUALITY 0x00004003L
  130. #define MCI_DGV_INFO_AUDIO_ALG 0x00004004L
  131. #define MCI_DGV_INFO_STILL_ALG 0x00004005L
  132. #define MCI_DGV_INFO_VIDEO_ALG 0x00004006L
  133. /* flags for dwFlags parameter of MCI_LIST command message */
  134. #define MCI_DGV_LIST_ITEM 0x00010000L
  135. #define MCI_DGV_LIST_COUNT 0x00020000L
  136. #define MCI_DGV_LIST_NUMBER 0x00040000L
  137. #define MCI_DGV_LIST_ALG 0x00080000L
  138. /* values for dwItem field of MCI_DGV_LIST_PARMS structure */
  139. #define MCI_DGV_LIST_AUDIO_ALG 0x00004000L
  140. #define MCI_DGV_LIST_AUDIO_QUALITY 0x00004001L
  141. #define MCI_DGV_LIST_AUDIO_STREAM 0x00004002L
  142. #define MCI_DGV_LIST_STILL_ALG 0x00004003L
  143. #define MCI_DGV_LIST_STILL_QUALITY 0x00004004L
  144. #define MCI_DGV_LIST_VIDEO_ALG 0x00004005L
  145. #define MCI_DGV_LIST_VIDEO_QUALITY 0x00004006L
  146. #define MCI_DGV_LIST_VIDEO_STREAM 0x00004007L
  147. #define MCI_DGV_LIST_VIDEO_SOURCE 0x00004008L
  148. /* flags for dwFlags parameter of MCI_MONITOR command message */
  149. #define MCI_DGV_MONITOR_METHOD 0x00010000L
  150. #define MCI_DGV_MONITOR_SOURCE 0x00020000L
  151. /* values for dwSource parameter of the MCI_DGV_MONITOR_PARMS struture */
  152. #define MCI_DGV_MONITOR_INPUT 0x00004000L
  153. #define MCI_DGV_MONITOR_FILE 0x00004001L
  154. /* flags for dwFlags parameter of MCI_OPEN command message */
  155. #define MCI_DGV_OPEN_WS 0x00010000L
  156. #define MCI_DGV_OPEN_PARENT 0x00020000L
  157. #define MCI_DGV_OPEN_NOSTATIC 0x00040000L
  158. /* flags for dwFlags parameter of MCI_PASTE command message */
  159. #define MCI_DGV_PASTE_AT 0x00010000L
  160. #define MCI_DGV_PASTE_AUDIO_STREAM 0x00020000L
  161. #define MCI_DGV_PASTE_VIDEO_STREAM 0x00040000L
  162. #define MCI_DGV_PASTE_INSERT 0x00080000L
  163. #define MCI_DGV_PASTE_OVERWRITE 0x00100000L
  164. /* flags for dwFlags parameter of MCI_PLAY command message */
  165. #define MCI_DGV_PLAY_REPEAT 0x00010000L
  166. #define MCI_DGV_PLAY_REVERSE 0x00020000L
  167. /* flags for dwFlags parameter of MCI_PUT command message */
  168. #define MCI_DGV_RECT 0x00010000L
  169. #define MCI_DGV_PUT_SOURCE 0x00020000L
  170. #define MCI_DGV_PUT_DESTINATION 0x00040000L
  171. #define MCI_DGV_PUT_FRAME 0x00080000L
  172. #define MCI_DGV_PUT_VIDEO 0x00100000L
  173. #define MCI_DGV_PUT_WINDOW 0x00200000L
  174. #define MCI_DGV_PUT_CLIENT 0x00400000L
  175. /* flags for dwFlags parameter of MCI_QUALITY command message */
  176. #define MCI_QUALITY_ITEM 0x00010000L
  177. #define MCI_QUALITY_NAME 0x00020000L
  178. #define MCI_QUALITY_ALG 0x00040000L
  179. #define MCI_QUALITY_DIALOG 0x00080000L
  180. #define MCI_QUALITY_HANDLE 0x00100000L
  181. /* values for dwItem field of MCI_QUALITY_PARMS structure */
  182. #define MCI_QUALITY_ITEM_AUDIO 0x00004000L
  183. #define MCI_QUALITY_ITEM_STILL 0x00004001L
  184. #define MCI_QUALITY_ITEM_VIDEO 0x00004002L
  185. /* flags for dwFlags parameter of MCI_REALIZE command message */
  186. #define MCI_DGV_REALIZE_NORM 0x00010000L
  187. #define MCI_DGV_REALIZE_BKGD 0x00020000L
  188. /* flags for dwFlags parameter of MCI_RECORD command message */
  189. #define MCI_DGV_RECORD_HOLD 0x00020000L
  190. #define MCI_DGV_RECORD_AUDIO_STREAM 0x00040000L
  191. #define MCI_DGV_RECORD_VIDEO_STREAM 0x00080000L
  192. /* flags for dwFlags parameters of MCI_RESERVE command message */
  193. #define MCI_DGV_RESERVE_IN 0x00010000L
  194. #define MCI_DGV_RESERVE_SIZE 0x00020000L
  195. /* flags for dwFlags parameter of MCI_RESTORE command message */
  196. #define MCI_DGV_RESTORE_FROM 0x00010000L
  197. #define MCI_DGV_RESTORE_AT 0x00020000L
  198. /* flags for dwFlags parameters of MCI_SAVE command message */
  199. #define MCI_DGV_SAVE_ABORT 0x00020000L
  200. #define MCI_DGV_SAVE_KEEPRESERVE 0x00040000L
  201. /* flags for dwFlags parameters of MCI_SET command message */
  202. #define MCI_DGV_SET_SEEK_EXACTLY 0x00010000L
  203. #define MCI_DGV_SET_SPEED 0x00020000L
  204. #define MCI_DGV_SET_STILL 0x00040000L
  205. #define MCI_DGV_SET_FILEFORMAT 0x00080000L
  206. /* flags for the dwFlags parameter of MCI_SETAUDIO command message */
  207. #define MCI_DGV_SETAUDIO_OVER 0x00010000L
  208. #define MCI_DGV_SETAUDIO_CLOCKTIME 0x00020000L
  209. #define MCI_DGV_SETAUDIO_ALG 0x00040000L
  210. #define MCI_DGV_SETAUDIO_QUALITY 0x00080000L
  211. #define MCI_DGV_SETAUDIO_RECORD 0x00100000L
  212. #define MCI_DGV_SETAUDIO_LEFT 0x00200000L
  213. #define MCI_DGV_SETAUDIO_RIGHT 0x00400000L
  214. #define MCI_DGV_SETAUDIO_ITEM 0x00800000L
  215. #define MCI_DGV_SETAUDIO_VALUE 0x01000000L
  216. #define MCI_DGV_SETAUDIO_INPUT 0x02000000L
  217. #define MCI_DGV_SETAUDIO_OUTPUT 0x04000000L
  218. /* values for the dwItem parameter of MCI_DGV_SETAUDIO_PARMS */
  219. #define MCI_DGV_SETAUDIO_TREBLE 0x00004000L
  220. #define MCI_DGV_SETAUDIO_BASS 0x00004001L
  221. #define MCI_DGV_SETAUDIO_VOLUME 0x00004002L
  222. #define MCI_DGV_SETAUDIO_STREAM 0x00004003L
  223. #define MCI_DGV_SETAUDIO_SOURCE 0x00004004L
  224. #define MCI_DGV_SETAUDIO_SAMPLESPERSEC 0x00004005L
  225. #define MCI_DGV_SETAUDIO_AVGBYTESPERSEC 0x00004006L
  226. #define MCI_DGV_SETAUDIO_BLOCKALIGN 0x00004007L
  227. #define MCI_DGV_SETAUDIO_BITSPERSAMPLE 0x00004008L
  228. /* values for the dwValue parameter of MCI_DGV_SETAUDIO_PARMS
  229. used with MCI_DGV_SETAUDIO_SOURCE */
  230. #define MCI_DGV_SETAUDIO_SOURCE_STEREO 0x00000000L
  231. #define MCI_DGV_SETAUDIO_SOURCE_LEFT 0x00000001L
  232. #define MCI_DGV_SETAUDIO_SOURCE_RIGHT 0x00000002L
  233. #define MCI_DGV_SETAUDIO_SOURCE_AVERAGE 0x00004000L
  234. /* flags for the dwFlags parameter of MCI_SETVIDEO command */
  235. #define MCI_DGV_SETVIDEO_QUALITY 0x00010000L
  236. #define MCI_DGV_SETVIDEO_ALG 0x00020000L
  237. #define MCI_DGV_SETVIDEO_CLOCKTIME 0x00040000L
  238. #define MCI_DGV_SETVIDEO_SRC_NUMBER 0x00080000L
  239. #define MCI_DGV_SETVIDEO_ITEM 0x00100000L
  240. #define MCI_DGV_SETVIDEO_OVER 0x00200000L
  241. #define MCI_DGV_SETVIDEO_RECORD 0x00400000L
  242. #define MCI_DGV_SETVIDEO_STILL 0x00800000L
  243. #define MCI_DGV_SETVIDEO_VALUE 0x01000000L
  244. #define MCI_DGV_SETVIDEO_INPUT 0x02000000L
  245. #define MCI_DGV_SETVIDEO_OUTPUT 0x04000000L
  246. /* values for the dwTo field of MCI_SETVIDEO_PARMS
  247. used with MCI_DGV_SETVIDEO_SOURCE */
  248. #define MCI_DGV_SETVIDEO_SRC_NTSC 0x00004000L
  249. #define MCI_DGV_SETVIDEO_SRC_RGB 0x00004001L
  250. #define MCI_DGV_SETVIDEO_SRC_SVIDEO 0x00004002L
  251. #define MCI_DGV_SETVIDEO_SRC_PAL 0x00004003L
  252. #define MCI_DGV_SETVIDEO_SRC_SECAM 0x00004004L
  253. #define MCI_DGV_SETVIDEO_SRC_GENERIC 0x00004005L
  254. /* values for the dwItem field of MCI_SETVIDEO_PARMS */
  255. #define MCI_DGV_SETVIDEO_BRIGHTNESS 0x00004000L
  256. #define MCI_DGV_SETVIDEO_COLOR 0x00004001L
  257. #define MCI_DGV_SETVIDEO_CONTRAST 0x00004002L
  258. #define MCI_DGV_SETVIDEO_TINT 0x00004003L
  259. #define MCI_DGV_SETVIDEO_SHARPNESS 0x00004004L
  260. #define MCI_DGV_SETVIDEO_GAMMA 0x00004005L
  261. #define MCI_DGV_SETVIDEO_STREAM 0x00004006L
  262. #define MCI_DGV_SETVIDEO_PALHANDLE 0x00004007L
  263. #define MCI_DGV_SETVIDEO_FRAME_RATE 0x00004008L
  264. #define MCI_DGV_SETVIDEO_SOURCE 0x00004009L
  265. #define MCI_DGV_SETVIDEO_KEY_INDEX 0x0000400aL
  266. #define MCI_DGV_SETVIDEO_KEY_COLOR 0x0000400bL
  267. #define MCI_DGV_SETVIDEO_BITSPERPEL 0x0000400cL
  268. /* flags for the dwFlags parameter of MCI_SIGNAL */
  269. #define MCI_DGV_SIGNAL_AT 0x00010000L
  270. #define MCI_DGV_SIGNAL_EVERY 0x00020000L
  271. #define MCI_DGV_SIGNAL_USERVAL 0x00040000L
  272. #define MCI_DGV_SIGNAL_CANCEL 0x00080000L
  273. #define MCI_DGV_SIGNAL_POSITION 0x00100000L
  274. /* The following is the function digitalvideo drivers must use
  275. * to signal when a frame marked by the SIGNAL command has been rendered:
  276. *
  277. * SEND_DGVSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos )
  278. *
  279. * The following is a description of the parameters:
  280. *
  281. * dwFlags - the dwFlags parameter passed when the signal was set
  282. * dwCallback - the dwCallback value from the MCI_DGV_SIGNAL_PARMS struct
  283. * used to set the signal
  284. * hDriver - the handle assigned to the driver by MMSYSTEM when the
  285. * device was opened
  286. * wDeviceID - the device ID
  287. * dwUser - the dwUserParm value from the MCI_DGV_SIGNAL_PARMS struct
  288. * used to set the signal
  289. * dwPos - the position at which the signal was sent, in the current
  290. * time format.
  291. *
  292. * The window indicated by the handle in the dwCallback field is notified
  293. * by means of a Windows message with the following form:
  294. *
  295. * msg = MM_MCISIGNAL
  296. * wParam = wDeviceID of the sending driver
  297. * lParam = the uservalue specified or the position the signal was sent
  298. * at; the latter if the MCI_DGV_SIGNAL_POSITION flag was set
  299. * in the dwFlags parameter when the signal was created.
  300. */
  301. #define SEND_DGVSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos ) \
  302. DriverCallback( (dwCallback), DCB_WINDOW, (HANDLE)(wDeviceID), MM_MCISIGNAL,\
  303. hDriver, ((dwFlags) & MCI_DGV_SIGNAL_POSITION) ? (dwPos):(dwUser),\
  304. ((dwFlags) & MCI_DGV_SIGNAL_POSITION) ? (dwUser):(dwPos))
  305. /* flags for the dwFlags parameter of MCI_STATUS command */
  306. #define MCI_DGV_STATUS_NOMINAL 0x00020000L
  307. #define MCI_DGV_STATUS_REFERENCE 0x00040000L
  308. #define MCI_DGV_STATUS_LEFT 0x00080000L
  309. #define MCI_DGV_STATUS_RIGHT 0x00100000L
  310. #define MCI_DGV_STATUS_DISKSPACE 0x00200000L
  311. #define MCI_DGV_STATUS_INPUT 0x00400000L
  312. #define MCI_DGV_STATUS_OUTPUT 0x00800000L
  313. #define MCI_DGV_STATUS_RECORD 0x01000000L
  314. /* values for dwItem field of MCI_STATUS_PARMS structure */
  315. #define MCI_DGV_STATUS_AUDIO_INPUT 0x00004000L
  316. #define MCI_DGV_STATUS_HWND 0x00004001L
  317. #define MCI_DGV_STATUS_SPEED 0x00004003L
  318. #define MCI_DGV_STATUS_HPAL 0x00004004L
  319. #define MCI_DGV_STATUS_BRIGHTNESS 0x00004005L
  320. #define MCI_DGV_STATUS_COLOR 0x00004006L
  321. #define MCI_DGV_STATUS_CONTRAST 0x00004007L
  322. #define MCI_DGV_STATUS_FILEFORMAT 0x00004008L
  323. #define MCI_DGV_STATUS_AUDIO_SOURCE 0x00004009L
  324. #define MCI_DGV_STATUS_GAMMA 0x0000400aL
  325. #define MCI_DGV_STATUS_MONITOR 0x0000400bL
  326. #define MCI_DGV_STATUS_MONITOR_METHOD 0x0000400cL
  327. #define MCI_DGV_STATUS_FRAME_RATE 0x0000400eL
  328. #define MCI_DGV_STATUS_BASS 0x0000400fL
  329. #define MCI_DGV_STATUS_SIZE 0x00004010L
  330. #define MCI_DGV_STATUS_SEEK_EXACTLY 0x00004011L
  331. #define MCI_DGV_STATUS_SHARPNESS 0x00004012L
  332. #define MCI_DGV_STATUS_SMPTE 0x00004013L
  333. #define MCI_DGV_STATUS_AUDIO 0x00004014L
  334. #define MCI_DGV_STATUS_TINT 0x00004015L
  335. #define MCI_DGV_STATUS_TREBLE 0x00004016L
  336. #define MCI_DGV_STATUS_UNSAVED 0x00004017L
  337. #define MCI_DGV_STATUS_VIDEO 0x00004018L
  338. #define MCI_DGV_STATUS_VOLUME 0x00004019L
  339. #define MCI_DGV_STATUS_AUDIO_RECORD 0x0000401aL
  340. #define MCI_DGV_STATUS_VIDEO_SOURCE 0x0000401bL
  341. #define MCI_DGV_STATUS_VIDEO_RECORD 0x0000401cL
  342. #define MCI_DGV_STATUS_STILL_FILEFORMAT 0x0000401dL
  343. #define MCI_DGV_STATUS_VIDEO_SRC_NUM 0x0000401eL
  344. #define MCI_DGV_STATUS_FILE_MODE 0x0000401fL
  345. #define MCI_DGV_STATUS_FILE_COMPLETION 0x00004020L
  346. #define MCI_DGV_STATUS_WINDOW_VISIBLE 0x00004021L
  347. #define MCI_DGV_STATUS_WINDOW_MINIMIZED 0x00004022L
  348. #define MCI_DGV_STATUS_WINDOW_MAXIMIZED 0x00004023L
  349. #define MCI_DGV_STATUS_KEY_INDEX 0x00004024L
  350. #define MCI_DGV_STATUS_KEY_COLOR 0x00004025L
  351. #define MCI_DGV_STATUS_PAUSE_MODE 0x00004026L
  352. #define MCI_DGV_STATUS_SAMPLESPERSEC 0x00004027L
  353. #define MCI_DGV_STATUS_AVGBYTESPERSEC 0x00004028L
  354. #define MCI_DGV_STATUS_BLOCKALIGN 0x00004029L
  355. #define MCI_DGV_STATUS_BITSPERSAMPLE 0x0000402aL
  356. #define MCI_DGV_STATUS_BITSPERPEL 0x0000402bL
  357. #define MCI_DGV_STATUS_FORWARD 0x0000402cL
  358. #define MCI_DGV_STATUS_AUDIO_STREAM 0x0000402dL
  359. #define MCI_DGV_STATUS_VIDEO_STREAM 0x0000402eL
  360. /* flags for dwFlags parameter of MCI_STEP command message */
  361. #define MCI_DGV_STEP_REVERSE 0x00010000L
  362. #define MCI_DGV_STEP_FRAMES 0x00020000L
  363. /* flags for dwFlags parameter of MCI_STOP command message */
  364. #define MCI_DGV_STOP_HOLD 0x00010000L
  365. /* flags for dwFlags parameter of MCI_UPDATE command message */
  366. #define MCI_DGV_UPDATE_HDC 0x00020000L
  367. #define MCI_DGV_UPDATE_PAINT 0x00040000L
  368. /* flags for dwFlags parameter of MCI_WHERE command message */
  369. #define MCI_DGV_WHERE_SOURCE 0x00020000L
  370. #define MCI_DGV_WHERE_DESTINATION 0x00040000L
  371. #define MCI_DGV_WHERE_FRAME 0x00080000L
  372. #define MCI_DGV_WHERE_VIDEO 0x00100000L
  373. #define MCI_DGV_WHERE_WINDOW 0x00200000L
  374. #define MCI_DGV_WHERE_MAX 0x00400000L
  375. /* flags for dwFlags parameter of MCI_WINDOW command message */
  376. #define MCI_DGV_WINDOW_HWND 0x00010000L
  377. #define MCI_DGV_WINDOW_STATE 0x00040000L
  378. #define MCI_DGV_WINDOW_TEXT 0x00080000L
  379. /* flags for hWnd parameter of MCI_DGV_WINDOW_PARMS parameter block */
  380. #define MCI_DGV_WINDOW_DEFAULT 0x00000000L
  381. /* parameter block for MCI_WHERE, MCI_PUT, MCI_FREEZE, MCI_UNFREEZE cmds */
  382. typedef struct {
  383. DWORD dwCallback;
  384. #ifdef MCI_USE_OFFEXT
  385. POINT ptOffset;
  386. POINT ptExtent;
  387. #else
  388. RECT rc;
  389. #endif
  390. } MCI_DGV_RECT_PARMS;
  391. typedef MCI_DGV_RECT_PARMS FAR * LPMCI_DGV_RECT_PARMS;
  392. /* parameter block for MCI_CAPTURE command message */
  393. typedef struct {
  394. DWORD dwCallback;
  395. #ifdef WIN32
  396. LPTSTR lpstrFileName;
  397. #else
  398. LPSTR lpstrFileName;
  399. #endif
  400. #ifdef MCI_USE_OFFEXT
  401. POINT ptOffset;
  402. POINT ptExtent;
  403. #else
  404. RECT rc;
  405. #endif
  406. } MCI_DGV_CAPTURE_PARMS;
  407. typedef MCI_DGV_CAPTURE_PARMS FAR * LPMCI_DGV_CAPTURE_PARMS;
  408. /* parameter block for MCI_CLOSE command message */
  409. typedef MCI_GENERIC_PARMS MCI_CLOSE_PARMS;
  410. typedef MCI_CLOSE_PARMS FAR * LPMCI_CLOSE_PARMS;
  411. /* parameter block for MCI_COPY command message */
  412. typedef struct {
  413. DWORD dwCallback;
  414. DWORD dwFrom;
  415. DWORD dwTo;
  416. #ifdef MCI_USE_OFFEXT
  417. POINT ptOffset;
  418. POINT ptExtent;
  419. #else
  420. RECT rc;
  421. #endif
  422. DWORD dwAudioStream;
  423. DWORD dwVideoStream;
  424. } MCI_DGV_COPY_PARMS;
  425. typedef MCI_DGV_COPY_PARMS FAR * LPMCI_DGV_COPY_PARMS;
  426. /* parameter block for MCI_CUE command message */
  427. typedef struct {
  428. DWORD dwCallback;
  429. DWORD dwTo;
  430. } MCI_DGV_CUE_PARMS;
  431. typedef MCI_DGV_CUE_PARMS FAR * LPMCI_DGV_CUE_PARMS;
  432. /* parameter block for MCI_CUT command message */
  433. typedef struct {
  434. DWORD dwCallback;
  435. DWORD dwFrom;
  436. DWORD dwTo;
  437. #ifdef MCI_USE_OFFEXT
  438. POINT ptOffset;
  439. POINT ptExtent;
  440. #else
  441. RECT rc;
  442. #endif
  443. DWORD dwAudioStream;
  444. DWORD dwVideoStream;
  445. } MCI_DGV_CUT_PARMS;
  446. typedef MCI_DGV_CUT_PARMS FAR * LPMCI_DGV_CUT_PARMS;
  447. /* parameter block for MCI_DELETE command message */
  448. typedef struct {
  449. DWORD dwCallback;
  450. DWORD dwFrom;
  451. DWORD dwTo;
  452. #ifdef MCI_USE_OFFEXT
  453. POINT ptOffset;
  454. POINT ptExtent;
  455. #else
  456. RECT rc;
  457. #endif
  458. DWORD dwAudioStream;
  459. DWORD dwVideoStream;
  460. } MCI_DGV_DELETE_PARMS;
  461. typedef MCI_DGV_DELETE_PARMS FAR * LPMCI_DGV_DELETE_PARMS;
  462. /* parameter block for MCI_FREEZE command message */
  463. typedef MCI_DGV_RECT_PARMS MCI_DGV_FREEZE_PARMS;
  464. typedef MCI_DGV_FREEZE_PARMS FAR * LPMCI_DGV_FREEZE_PARMS;
  465. /* parameter block for MCI_INFO command message */
  466. typedef struct {
  467. DWORD dwCallback;
  468. #ifdef WIN32
  469. LPTSTR lpstrReturn;
  470. #else
  471. LPSTR lpstrReturn;
  472. #endif
  473. DWORD dwRetSize;
  474. DWORD dwItem;
  475. } MCI_DGV_INFO_PARMS;
  476. typedef MCI_INFO_PARMS FAR * LPMCI_INFO_PARMS;
  477. typedef MCI_DGV_INFO_PARMS FAR * LPMCI_DGV_INFO_PARMS;
  478. /* parameter block for MCI_LIST command message */
  479. typedef struct {
  480. DWORD dwCallback;
  481. #ifdef WIN32
  482. LPTSTR lpstrReturn;
  483. #else
  484. LPSTR lpstrReturn;
  485. #endif
  486. DWORD dwLength;
  487. DWORD dwNumber;
  488. DWORD dwItem;
  489. #ifdef WIN32
  490. LPTSTR lpstrAlgorithm;
  491. #else
  492. LPSTR lpstrAlgorithm;
  493. #endif
  494. } MCI_DGV_LIST_PARMS;
  495. typedef MCI_DGV_LIST_PARMS FAR * LPMCI_DGV_LIST_PARMS;
  496. /* parameter block for MCI_LOAD command message */
  497. typedef MCI_LOAD_PARMS MCI_DGV_LOAD_PARMS;
  498. typedef MCI_DGV_LOAD_PARMS FAR * LPMCI_DGV_LOAD_PARMS;
  499. /* parameter block for MCI_MONITOR command message */
  500. typedef struct {
  501. DWORD dwCallback;
  502. DWORD dwSource;
  503. DWORD dwMethod;
  504. } MCI_DGV_MONITOR_PARMS;
  505. typedef MCI_DGV_MONITOR_PARMS FAR * LPMCI_DGV_MONITOR_PARMS;
  506. /* parameter block for MCI_OPEN command message */
  507. typedef struct {
  508. DWORD dwCallback;
  509. WORD wDeviceID;
  510. WORD wReserved0;
  511. #ifdef WIN32
  512. LPTSTR lpstrDeviceType;
  513. LPTSTR lpstrElementName;
  514. LPTSTR lpstrAlias;
  515. #else
  516. LPSTR lpstrDeviceType;
  517. LPSTR lpstrElementName;
  518. LPSTR lpstrAlias;
  519. #endif
  520. DWORD dwStyle;
  521. HWND hWndParent;
  522. #ifndef WIN32
  523. WORD wReserved1;
  524. #endif
  525. } MCI_DGV_OPEN_PARMS;
  526. typedef MCI_DGV_OPEN_PARMS FAR * LPMCI_DGV_OPEN_PARMS;
  527. /* parameter block for MCI_PAUSE command message */
  528. typedef MCI_GENERIC_PARMS MCI_DGV_PAUSE_PARMS;
  529. typedef MCI_DGV_PAUSE_PARMS FAR * LPMCI_DGV_PAUSE_PARMS;
  530. /* parameter block for MCI_PASTE command message */
  531. typedef struct {
  532. DWORD dwCallback;
  533. DWORD dwTo;
  534. #ifdef MCI_USE_OFFEXT
  535. POINT ptOffset;
  536. POINT ptExtent;
  537. #else
  538. RECT rc;
  539. #endif
  540. DWORD dwAudioStream;
  541. DWORD dwVideoStream;
  542. } MCI_DGV_PASTE_PARMS;
  543. typedef MCI_DGV_PASTE_PARMS FAR * LPMCI_DGV_PASTE_PARMS;
  544. /* parameter block for MCI_PLAY command message */
  545. typedef MCI_PLAY_PARMS MCI_DGV_PLAY_PARMS;
  546. typedef MCI_DGV_PLAY_PARMS FAR * LPMCI_DGV_PLAY_PARMS;
  547. /* parameter block for MCI_PUT command message */
  548. typedef MCI_DGV_RECT_PARMS MCI_DGV_PUT_PARMS;
  549. typedef MCI_DGV_PUT_PARMS FAR * LPMCI_DGV_PUT_PARMS;
  550. /* parameter block for MCI_QUALITY command message */
  551. typedef struct {
  552. DWORD dwCallback;
  553. DWORD dwItem;
  554. #ifdef WIN32
  555. LPTSTR lpstrName;
  556. #else
  557. LPSTR lpstrName;
  558. #endif
  559. DWORD lpstrAlgorithm;
  560. DWORD dwHandle;
  561. } MCI_DGV_QUALITY_PARMS;
  562. typedef MCI_DGV_QUALITY_PARMS FAR * LPMCI_DGV_QUALITY_PARMS;
  563. /* parameter block for MCI_REALIZE command message */
  564. typedef MCI_GENERIC_PARMS MCI_REALIZE_PARMS;
  565. typedef MCI_REALIZE_PARMS FAR * LPMCI_REALIZE_PARMS;
  566. /* parameter block for MCI_RECORD command message */
  567. typedef struct {
  568. DWORD dwCallback;
  569. DWORD dwFrom;
  570. DWORD dwTo;
  571. #ifdef MCI_USE_OFFEXT
  572. POINT ptOffset;
  573. POINT ptExtent;
  574. #else
  575. RECT rc;
  576. #endif
  577. DWORD dwAudioStream;
  578. DWORD dwVideoStream;
  579. } MCI_DGV_RECORD_PARMS;
  580. typedef MCI_DGV_RECORD_PARMS FAR * LPMCI_DGV_RECORD_PARMS;
  581. /* parameter block for MCI_RESERVE command message */
  582. typedef struct {
  583. DWORD dwCallback;
  584. #ifdef WIN32
  585. LPTSTR lpstrPath;
  586. #else
  587. LPSTR lpstrPath;
  588. #endif
  589. DWORD dwSize;
  590. } MCI_DGV_RESERVE_PARMS;
  591. typedef MCI_DGV_RESERVE_PARMS FAR * LPMCI_DGV_RESERVE_PARMS;
  592. /* parameter block for MCI_RESTORE command message */
  593. typedef struct {
  594. DWORD dwCallback;
  595. #ifdef WIN32
  596. LPTSTR lpstrFileName;
  597. #else
  598. LPSTR lpstrFileName;
  599. #endif
  600. #ifdef MCI_USE_OFFEXT
  601. POINT ptOffset;
  602. POINT ptExtent;
  603. #else
  604. RECT rc;
  605. #endif
  606. } MCI_DGV_RESTORE_PARMS;
  607. typedef MCI_DGV_RESTORE_PARMS FAR * LPMCI_DGV_RESTORE_PARMS;
  608. /* parameter block for MCI_RESUME command message */
  609. typedef MCI_GENERIC_PARMS MCI_DGV_RESUME_PARMS;
  610. typedef MCI_DGV_RESUME_PARMS FAR * LPMCI_DGV_RESUME_PARMS;
  611. /* parameter block for MCI_SAVE command message */
  612. typedef struct {
  613. DWORD dwCallback;
  614. #ifdef WIN32
  615. LPTSTR lpstrFileName;
  616. #else
  617. LPSTR lpstrFileName;
  618. #endif
  619. RECT rc;
  620. } MCI_DGV_SAVE_PARMS;
  621. typedef MCI_DGV_SAVE_PARMS FAR * LPMCI_DGV_SAVE_PARMS;
  622. /* parameter block for MCI_SET command message */
  623. typedef struct {
  624. DWORD dwCallback;
  625. DWORD dwTimeFormat;
  626. DWORD dwAudio;
  627. DWORD dwFileFormat;
  628. DWORD dwSpeed;
  629. } MCI_DGV_SET_PARMS;
  630. typedef MCI_DGV_SET_PARMS FAR * LPMCI_DGV_SET_PARMS;
  631. /* parameter block for MCI_SETAUDIO command message */
  632. typedef struct {
  633. DWORD dwCallback;
  634. DWORD dwItem;
  635. DWORD dwValue;
  636. DWORD dwOver;
  637. #ifdef WIN32
  638. LPTSTR lpstrAlgorithm;
  639. LPTSTR lpstrQuality;
  640. #else
  641. LPSTR lpstrAlgorithm;
  642. LPSTR lpstrQuality;
  643. #endif
  644. } MCI_DGV_SETAUDIO_PARMS;
  645. typedef MCI_DGV_SETAUDIO_PARMS FAR * LPMCI_DGV_SETAUDIO_PARMS;
  646. /* parameter block for MCI_SIGNAL command message */
  647. typedef struct {
  648. DWORD dwCallback;
  649. DWORD dwPosition;
  650. DWORD dwPeriod;
  651. DWORD dwUserParm;
  652. } MCI_DGV_SIGNAL_PARMS;
  653. typedef MCI_DGV_SIGNAL_PARMS FAR * LPMCI_DGV_SIGNAL_PARMS;
  654. /* parameter block for MCI_SETVIDEO command message */
  655. typedef struct {
  656. DWORD dwCallback;
  657. DWORD dwItem;
  658. DWORD dwValue;
  659. DWORD dwOver;
  660. #ifdef WIN32
  661. LPTSTR lpstrAlgorithm;
  662. LPTSTR lpstrQuality;
  663. #else
  664. LPSTR lpstrAlgorithm;
  665. LPSTR lpstrQuality;
  666. #endif
  667. DWORD dwSourceNumber;
  668. } MCI_DGV_SETVIDEO_PARMS;
  669. typedef MCI_DGV_SETVIDEO_PARMS FAR * LPMCI_DGV_SETVIDEO_PARMS;
  670. /* parameter block for MCI_STATUS command message */
  671. typedef struct {
  672. DWORD dwCallback;
  673. DWORD dwReturn;
  674. DWORD dwItem;
  675. DWORD dwTrack;
  676. #ifdef WIN32
  677. LPTSTR lpstrDrive;
  678. #else
  679. LPSTR lpstrDrive;
  680. #endif
  681. DWORD dwReference;
  682. } MCI_DGV_STATUS_PARMS;
  683. typedef MCI_DGV_STATUS_PARMS FAR * LPMCI_DGV_STATUS_PARMS;
  684. /* parameter block for MCI_STEP command message */
  685. typedef struct {
  686. DWORD dwCallback;
  687. DWORD dwFrames;
  688. } MCI_DGV_STEP_PARMS;
  689. typedef MCI_DGV_STEP_PARMS FAR *LPMCI_DGV_STEP_PARMS;
  690. /* parameter block for MCI_STOP command message */
  691. typedef MCI_GENERIC_PARMS MCI_DGV_STOP_PARMS;
  692. typedef MCI_DGV_STOP_PARMS FAR * LPMCI_DGV_STOP_PARMS;
  693. /* parameter block for MCI_UNFREEZE command message */
  694. typedef MCI_DGV_RECT_PARMS MCI_DGV_UNFREEZE_PARMS;
  695. typedef MCI_DGV_UNFREEZE_PARMS FAR * LPMCI_DGV_UNFREEZE_PARMS;
  696. /* parameter block for MCI_UPDATE command message */
  697. typedef struct {
  698. DWORD dwCallback;
  699. #ifdef MCI_USE_OFFEXT
  700. POINT ptOffset;
  701. POINT ptExtent;
  702. #else
  703. RECT rc;
  704. #endif
  705. HDC hDC;
  706. WORD wReserved0;
  707. } MCI_DGV_UPDATE_PARMS;
  708. typedef MCI_DGV_UPDATE_PARMS FAR * LPMCI_DGV_UPDATE_PARMS;
  709. /* parameter block for MCI_WHERE command message */
  710. typedef MCI_DGV_RECT_PARMS MCI_DGV_WHERE_PARMS;
  711. typedef MCI_DGV_WHERE_PARMS FAR * LPMCI_DGV_WHERE_PARMS;
  712. /* parameter block for MCI_WINDOW command message */
  713. typedef struct {
  714. DWORD dwCallback;
  715. HWND hWnd;
  716. #ifdef WIN32
  717. UINT nCmdShow;
  718. LPTSTR lpstrText;
  719. #else
  720. WORD wReserved1;
  721. UINT nCmdShow;
  722. WORD wReserved2;
  723. LPSTR lpstrText;
  724. #endif
  725. } MCI_DGV_WINDOW_PARMS;
  726. typedef MCI_DGV_WINDOW_PARMS FAR * LPMCI_DGV_WINDOW_PARMS;
  727. #ifdef __cplusplus
  728. } /* End of extern "C" { */
  729. #endif /* __cplusplus */
  730. #endif /* !_INC_DIGITALV */