home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / misc / vfwdk / inc / digitalv.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-31  |  29.8 KB  |  838 lines

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