home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / sdk / winh / digitalv.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-11  |  36.9 KB  |  1,095 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-1995, Microsoft Corp.  All rights reserved.    */
  8. /*                                                                          */
  9. /*  Date            Modification                                            */
  10. /*  ------------    ------------                                            */
  11. /*  Aug 19, 1992    -Version 1.0 Release                                    */
  12. /*                                                                          */
  13. /****************************************************************************/
  14.  
  15. #ifndef _INC_DIGITALV
  16. #define _INC_DIGITALV  100
  17.  
  18. #if !defined(_WIN32) && !defined(LPWSTR)
  19.     #define LPWSTR LPSTR
  20. #endif
  21.  
  22. #ifdef __cplusplus
  23. extern "C" {            /* Assume C declarations for C++ */
  24. #endif    /* __cplusplus */
  25.  
  26. #define MCI_TEST                            0x00000020L
  27.  
  28. /* Message values */
  29.  
  30. #define MCI_CAPTURE                         0x0870
  31. #define MCI_MONITOR                         0x0871
  32. #define MCI_RESERVE                         0x0872
  33. #define MCI_SETAUDIO                        0x0873
  34. #define MCI_SIGNAL                          0x0875
  35. #define MCI_SETVIDEO                        0x0876
  36. #define MCI_QUALITY                         0x0877
  37. #define MCI_LIST                            0x0878
  38. #define MCI_UNDO                            0x0879
  39. #define MCI_CONFIGURE                       0x087a
  40. #define MCI_RESTORE                         0x087b
  41.  
  42. /* Return and string constant values */
  43.  
  44. #define MCI_ON   1
  45. #define MCI_OFF  0
  46.  
  47. #define MCI_DGV_FILE_MODE_SAVING            0x0001
  48. #define MCI_DGV_FILE_MODE_LOADING           0x0002
  49. #define MCI_DGV_FILE_MODE_EDITING           0x0003
  50. #define MCI_DGV_FILE_MODE_IDLE              0x0004
  51.  
  52. /* These identifiers are used only by device drivers */
  53.  
  54. #define MCI_ON_S                            0x00008000L
  55. #define MCI_OFF_S                           0x00008001L
  56. #define MCI_DGV_FILE_S                      0x00008002L
  57. #define MCI_DGV_INPUT_S                     0x00008003L
  58.  
  59. #define MCI_DGV_FILE_MODE_SAVING_S          0x00008004L
  60. #define MCI_DGV_FILE_MODE_LOADING_S         0x00008005L
  61. #define MCI_DGV_FILE_MODE_EDITING_S         0x00008006L
  62. #define MCI_DGV_FILE_MODE_IDLE_S            0x00008007L
  63.  
  64. #define MCI_DGV_SETVIDEO_SRC_NTSC_S         0x00008010L
  65. #define MCI_DGV_SETVIDEO_SRC_RGB_S          0x00008011L
  66. #define MCI_DGV_SETVIDEO_SRC_SVIDEO_S       0x00008012L
  67. #define MCI_DGV_SETVIDEO_SRC_PAL_S          0x00008013L
  68. #define MCI_DGV_SETVIDEO_SRC_SECAM_S        0x00008014L
  69. #define MCI_DGV_SETVIDEO_SRC_GENERIC_S      0x00008015L
  70.  
  71. #define MCI_DGV_SETAUDIO_SRC_LEFT_S         0x00008020L
  72. #define MCI_DGV_SETAUDIO_SRC_RIGHT_S        0x00008021L
  73. #define MCI_DGV_SETAUDIO_SRC_AVERAGE_S      0x00008022L
  74. #define MCI_DGV_SETAUDIO_SRC_STEREO_S       0x00008023L
  75.  
  76. /* Window message for signal notification */
  77.  
  78. #ifndef MM_MCISIGNAL
  79. #define MM_MCISIGNAL                        0x3CB
  80. #endif
  81.  
  82. /* error values */
  83.  
  84. #define MCIERR_DGV_DEVICE_LIMIT             (MCIERR_CUSTOM_DRIVER_BASE+0)
  85. #define MCIERR_DGV_IOERR                    (MCIERR_CUSTOM_DRIVER_BASE+1)
  86. #define MCIERR_DGV_WORKSPACE_EMPTY          (MCIERR_CUSTOM_DRIVER_BASE+2)
  87. #define MCIERR_DGV_DISK_FULL                (MCIERR_CUSTOM_DRIVER_BASE+3)
  88. #define MCIERR_DGV_DEVICE_MEMORY_FULL       (MCIERR_CUSTOM_DRIVER_BASE+4)
  89. #define MCIERR_DGV_BAD_CLIPBOARD_RANGE      (MCIERR_CUSTOM_DRIVER_BASE+5)
  90.  
  91. /* defines for monitor methods */
  92.  
  93. #define MCI_DGV_METHOD_PRE                  0x0000a000L
  94. #define MCI_DGV_METHOD_POST                 0x0000a001L
  95. #define MCI_DGV_METHOD_DIRECT               0x0000a002L
  96.  
  97. /* defines for known file formats */
  98.  
  99. #define MCI_DGV_FF_AVSS                     0x00004000L
  100. #define MCI_DGV_FF_AVI                      0x00004001L
  101. #define MCI_DGV_FF_DIB                      0x00004002L
  102. #define MCI_DGV_FF_RDIB                     0x00004003L
  103. #define MCI_DGV_FF_JPEG                     0x00004004L
  104. #define MCI_DGV_FF_RJPEG                    0x00004005L
  105. #define MCI_DGV_FF_JFIF                     0x00004006L
  106. #define MCI_DGV_FF_MPEG                     0x00004007L
  107.  
  108. /* values for dwItem field of MCI_CAPABILITY_PARMS structure */
  109.  
  110. #define MCI_DGV_GETDEVCAPS_CAN_LOCK         0x00004000L
  111. #define MCI_DGV_GETDEVCAPS_CAN_STRETCH      0x00004001L
  112. #define MCI_DGV_GETDEVCAPS_CAN_FREEZE       0x00004002L
  113. #define MCI_DGV_GETDEVCAPS_MAX_WINDOWS      0x00004003L
  114. #define MCI_DGV_GETDEVCAPS_CAN_REVERSE      0x00004004L
  115. #define MCI_DGV_GETDEVCAPS_HAS_STILL        0x00004005L
  116. #define MCI_DGV_GETDEVCAPS_PALETTES         0x00004006L
  117. #define MCI_DGV_GETDEVCAPS_CAN_STR_IN       0x00004008L
  118. #define MCI_DGV_GETDEVCAPS_CAN_TEST         0x00004009L
  119. #define MCI_DGV_GETDEVCAPS_MAXIMUM_RATE     0x0000400aL
  120. #define MCI_DGV_GETDEVCAPS_MINIMUM_RATE     0x0000400bL
  121.  
  122. /* flags for dwFlags parameter of MCI_CAPTURE command message */
  123.  
  124. #define MCI_DGV_CAPTURE_AS                  0x00010000L
  125. #define MCI_DGV_CAPTURE_AT                  0x00020000L
  126.  
  127. /* flags for dwFlags parameter of MCI_COPY command message */
  128.  
  129. #define MCI_DGV_COPY_AT                     0x00010000L
  130. #define MCI_DGV_COPY_AUDIO_STREAM           0x00020000L
  131. #define MCI_DGV_COPY_VIDEO_STREAM           0x00040000L
  132.  
  133. /* flags for dwFlags parameter of MCI_CUE command message */
  134.  
  135. #define MCI_DGV_CUE_INPUT                   0x00010000L
  136. #define MCI_DGV_CUE_OUTPUT                  0x00020000L
  137. #define MCI_DGV_CUE_NOSHOW                  0x00040000L
  138.  
  139. /* flags for dwFlags parameter of MCI_CUT command message */
  140.  
  141. #define MCI_DGV_CUT_AT                      0x00010000L
  142. #define MCI_DGV_CUT_AUDIO_STREAM            0x00020000L
  143. #define MCI_DGV_CUT_VIDEO_STREAM            0x00040000L
  144.  
  145. /* flags for dwFlags parameter of MCI_DELETE command message */
  146.  
  147. #define MCI_DGV_DELETE_AT                   0x00010000L
  148. #define MCI_DGV_DELETE_AUDIO_STREAM         0x00020000L
  149. #define MCI_DGV_DELETE_VIDEO_STREAM         0x00040000L
  150.  
  151. /* flags for dwFlags parameter of MCI_FREEZE command message */
  152.  
  153. #define MCI_DGV_FREEZE_AT                   0x00010000L
  154. #define MCI_DGV_FREEZE_OUTSIDE              0x00020000L
  155.  
  156. /* flags for dwFlags parameter of MCI_INFO command message */
  157.  
  158. #define MCI_DGV_INFO_TEXT                   0x00010000L
  159. #define MCI_DGV_INFO_ITEM                   0X00020000L
  160.  
  161. /* values for dwItem field of MCI_DGV_INFO_PARMS structure */
  162.  
  163. #define MCI_INFO_VERSION                    0x00000400L
  164.  
  165. #define MCI_DGV_INFO_USAGE                  0x00004000L
  166. #define MCI_DGV_INFO_AUDIO_QUALITY          0x00004001L
  167. #define MCI_DGV_INFO_STILL_QUALITY          0x00004002L
  168. #define MCI_DGV_INFO_VIDEO_QUALITY          0x00004003L
  169. #define MCI_DGV_INFO_AUDIO_ALG              0x00004004L
  170. #define MCI_DGV_INFO_STILL_ALG              0x00004005L
  171. #define MCI_DGV_INFO_VIDEO_ALG              0x00004006L
  172.  
  173. /* flags for dwFlags parameter of MCI_LIST command message */
  174.  
  175. #define MCI_DGV_LIST_ITEM                   0x00010000L
  176. #define MCI_DGV_LIST_COUNT                  0x00020000L
  177. #define MCI_DGV_LIST_NUMBER                 0x00040000L
  178. #define MCI_DGV_LIST_ALG                    0x00080000L
  179.  
  180. /* values for dwItem field of MCI_DGV_LIST_PARMS structure */
  181.  
  182. #define MCI_DGV_LIST_AUDIO_ALG              0x00004000L
  183. #define MCI_DGV_LIST_AUDIO_QUALITY          0x00004001L
  184. #define MCI_DGV_LIST_AUDIO_STREAM           0x00004002L
  185. #define MCI_DGV_LIST_STILL_ALG              0x00004003L
  186. #define MCI_DGV_LIST_STILL_QUALITY          0x00004004L
  187. #define MCI_DGV_LIST_VIDEO_ALG              0x00004005L
  188. #define MCI_DGV_LIST_VIDEO_QUALITY          0x00004006L
  189. #define MCI_DGV_LIST_VIDEO_STREAM           0x00004007L
  190. #define MCI_DGV_LIST_VIDEO_SOURCE           0x00004008L
  191.  
  192. /* flags for dwFlags parameter of MCI_MONITOR command message */
  193.  
  194. #define MCI_DGV_MONITOR_METHOD              0x00010000L
  195. #define MCI_DGV_MONITOR_SOURCE              0x00020000L
  196.  
  197. /* values for dwSource parameter of the MCI_DGV_MONITOR_PARMS struture */
  198.  
  199. #define MCI_DGV_MONITOR_INPUT               0x00004000L
  200. #define MCI_DGV_MONITOR_FILE                0x00004001L
  201.  
  202. /* flags for dwFlags parameter of MCI_OPEN command message */
  203.  
  204. #define MCI_DGV_OPEN_WS                     0x00010000L
  205. #define MCI_DGV_OPEN_PARENT                 0x00020000L
  206. #define MCI_DGV_OPEN_NOSTATIC               0x00040000L
  207. #define MCI_DGV_OPEN_16BIT                  0x00080000L
  208. #define MCI_DGV_OPEN_32BIT                  0x00100000L
  209.  
  210. /* flags for dwFlags parameter of MCI_PASTE command message */
  211.  
  212. #define MCI_DGV_PASTE_AT                    0x00010000L
  213. #define MCI_DGV_PASTE_AUDIO_STREAM          0x00020000L
  214. #define MCI_DGV_PASTE_VIDEO_STREAM          0x00040000L
  215. #define MCI_DGV_PASTE_INSERT                0x00080000L
  216. #define MCI_DGV_PASTE_OVERWRITE             0x00100000L
  217.  
  218. /* flags for dwFlags parameter of MCI_PLAY command message */
  219.  
  220. #define MCI_DGV_PLAY_REPEAT                 0x00010000L
  221. #define MCI_DGV_PLAY_REVERSE                0x00020000L
  222.  
  223. /* flags for dwFlags parameter of MCI_PUT command message */
  224.  
  225. #define MCI_DGV_RECT                        0x00010000L
  226. #define MCI_DGV_PUT_SOURCE                  0x00020000L
  227. #define MCI_DGV_PUT_DESTINATION             0x00040000L
  228. #define MCI_DGV_PUT_FRAME                   0x00080000L
  229. #define MCI_DGV_PUT_VIDEO                   0x00100000L
  230. #define MCI_DGV_PUT_WINDOW                  0x00200000L
  231. #define MCI_DGV_PUT_CLIENT                  0x00400000L
  232.  
  233. /* flags for dwFlags parameter of MCI_QUALITY command message */
  234.  
  235. #define MCI_QUALITY_ITEM                    0x00010000L
  236. #define MCI_QUALITY_NAME                    0x00020000L
  237. #define MCI_QUALITY_ALG                     0x00040000L
  238. #define MCI_QUALITY_DIALOG                  0x00080000L
  239. #define MCI_QUALITY_HANDLE                  0x00100000L
  240.  
  241. /* values for dwItem field of MCI_QUALITY_PARMS structure */
  242.  
  243. #define MCI_QUALITY_ITEM_AUDIO              0x00004000L
  244. #define MCI_QUALITY_ITEM_STILL              0x00004001L
  245. #define MCI_QUALITY_ITEM_VIDEO              0x00004002L
  246.  
  247. /* flags for dwFlags parameter of MCI_REALIZE command message */
  248.  
  249. #define MCI_DGV_REALIZE_NORM                0x00010000L
  250. #define MCI_DGV_REALIZE_BKGD                0x00020000L
  251.  
  252. /* flags for dwFlags parameter of MCI_RECORD command message */
  253.  
  254. #define MCI_DGV_RECORD_HOLD                 0x00020000L
  255. #define MCI_DGV_RECORD_AUDIO_STREAM         0x00040000L
  256. #define MCI_DGV_RECORD_VIDEO_STREAM         0x00080000L
  257.  
  258. /* flags for dwFlags parameters of MCI_RESERVE command message */
  259.  
  260. #define MCI_DGV_RESERVE_IN                  0x00010000L
  261. #define MCI_DGV_RESERVE_SIZE                0x00020000L
  262.  
  263. /* flags for dwFlags parameter of MCI_RESTORE command message */
  264.  
  265. #define MCI_DGV_RESTORE_FROM                0x00010000L
  266. #define MCI_DGV_RESTORE_AT                  0x00020000L
  267.  
  268. /* flags for dwFlags parameters of MCI_SAVE command message */
  269.  
  270. #define MCI_DGV_SAVE_ABORT                  0x00020000L
  271. #define MCI_DGV_SAVE_KEEPRESERVE            0x00040000L
  272.  
  273. /* flags for dwFlags parameters of MCI_SET command message */
  274.  
  275. #define MCI_DGV_SET_SEEK_EXACTLY            0x00010000L
  276. #define MCI_DGV_SET_SPEED                   0x00020000L
  277. #define MCI_DGV_SET_STILL                   0x00040000L
  278. #define MCI_DGV_SET_FILEFORMAT              0x00080000L
  279.  
  280. /* flags for the dwFlags parameter of MCI_SETAUDIO command message */
  281.  
  282. #define MCI_DGV_SETAUDIO_OVER               0x00010000L
  283. #define MCI_DGV_SETAUDIO_CLOCKTIME          0x00020000L
  284. #define MCI_DGV_SETAUDIO_ALG                0x00040000L
  285. #define MCI_DGV_SETAUDIO_QUALITY            0x00080000L
  286. #define MCI_DGV_SETAUDIO_RECORD             0x00100000L
  287. #define MCI_DGV_SETAUDIO_LEFT               0x00200000L
  288. #define MCI_DGV_SETAUDIO_RIGHT              0x00400000L
  289. #define MCI_DGV_SETAUDIO_ITEM               0x00800000L
  290. #define MCI_DGV_SETAUDIO_VALUE              0x01000000L
  291. #define MCI_DGV_SETAUDIO_INPUT              0x02000000L
  292. #define MCI_DGV_SETAUDIO_OUTPUT             0x04000000L
  293.  
  294. /* values for the dwItem parameter of MCI_DGV_SETAUDIO_PARMS */
  295.  
  296. #define MCI_DGV_SETAUDIO_TREBLE             0x00004000L
  297. #define MCI_DGV_SETAUDIO_BASS               0x00004001L
  298. #define MCI_DGV_SETAUDIO_VOLUME             0x00004002L
  299. #define MCI_DGV_SETAUDIO_STREAM             0x00004003L
  300. #define MCI_DGV_SETAUDIO_SOURCE             0x00004004L
  301. #define MCI_DGV_SETAUDIO_SAMPLESPERSEC      0x00004005L
  302. #define MCI_DGV_SETAUDIO_AVGBYTESPERSEC     0x00004006L
  303. #define MCI_DGV_SETAUDIO_BLOCKALIGN         0x00004007L
  304. #define MCI_DGV_SETAUDIO_BITSPERSAMPLE      0x00004008L
  305.  
  306. /* values for the dwValue parameter of MCI_DGV_SETAUDIO_PARMS
  307.    used with MCI_DGV_SETAUDIO_SOURCE */
  308.  
  309. #define MCI_DGV_SETAUDIO_SOURCE_STEREO      0x00000000L
  310. #define MCI_DGV_SETAUDIO_SOURCE_LEFT        0x00000001L
  311. #define MCI_DGV_SETAUDIO_SOURCE_RIGHT       0x00000002L
  312. #define MCI_DGV_SETAUDIO_SOURCE_AVERAGE     0x00004000L
  313.  
  314. /* flags for the dwFlags parameter of MCI_SETVIDEO command */
  315.  
  316. #define MCI_DGV_SETVIDEO_QUALITY            0x00010000L
  317. #define MCI_DGV_SETVIDEO_ALG                0x00020000L
  318. #define MCI_DGV_SETVIDEO_CLOCKTIME          0x00040000L
  319. #define MCI_DGV_SETVIDEO_SRC_NUMBER         0x00080000L
  320. #define MCI_DGV_SETVIDEO_ITEM               0x00100000L
  321. #define MCI_DGV_SETVIDEO_OVER               0x00200000L
  322. #define MCI_DGV_SETVIDEO_RECORD             0x00400000L
  323. #define MCI_DGV_SETVIDEO_STILL              0x00800000L
  324. #define MCI_DGV_SETVIDEO_VALUE              0x01000000L
  325. #define MCI_DGV_SETVIDEO_INPUT              0x02000000L
  326. #define MCI_DGV_SETVIDEO_OUTPUT             0x04000000L
  327.  
  328. /* values for the dwTo field of MCI_SETVIDEO_PARMS
  329.    used with MCI_DGV_SETVIDEO_SOURCE */
  330.  
  331. #define MCI_DGV_SETVIDEO_SRC_NTSC           0x00004000L
  332. #define MCI_DGV_SETVIDEO_SRC_RGB            0x00004001L
  333. #define MCI_DGV_SETVIDEO_SRC_SVIDEO         0x00004002L
  334. #define MCI_DGV_SETVIDEO_SRC_PAL            0x00004003L
  335. #define MCI_DGV_SETVIDEO_SRC_SECAM          0x00004004L
  336. #define MCI_DGV_SETVIDEO_SRC_GENERIC        0x00004005L
  337.  
  338. /* values for the dwItem field of MCI_SETVIDEO_PARMS */
  339.  
  340. #define MCI_DGV_SETVIDEO_BRIGHTNESS         0x00004000L
  341. #define MCI_DGV_SETVIDEO_COLOR              0x00004001L
  342. #define MCI_DGV_SETVIDEO_CONTRAST           0x00004002L
  343. #define MCI_DGV_SETVIDEO_TINT               0x00004003L
  344. #define MCI_DGV_SETVIDEO_SHARPNESS          0x00004004L
  345. #define MCI_DGV_SETVIDEO_GAMMA              0x00004005L
  346. #define MCI_DGV_SETVIDEO_STREAM             0x00004006L
  347. #define MCI_DGV_SETVIDEO_PALHANDLE          0x00004007L
  348. #define MCI_DGV_SETVIDEO_FRAME_RATE         0x00004008L
  349. #define MCI_DGV_SETVIDEO_SOURCE             0x00004009L
  350. #define MCI_DGV_SETVIDEO_KEY_INDEX          0x0000400aL
  351. #define MCI_DGV_SETVIDEO_KEY_COLOR          0x0000400bL
  352. #define MCI_DGV_SETVIDEO_BITSPERPEL         0x0000400cL
  353.  
  354. /* flags for the dwFlags parameter of MCI_SIGNAL */
  355.  
  356. #define MCI_DGV_SIGNAL_AT                   0x00010000L
  357. #define MCI_DGV_SIGNAL_EVERY                0x00020000L
  358. #define MCI_DGV_SIGNAL_USERVAL              0x00040000L
  359. #define MCI_DGV_SIGNAL_CANCEL               0x00080000L
  360. #define MCI_DGV_SIGNAL_POSITION             0x00100000L
  361.  
  362. /* The following is the function digitalvideo drivers must use
  363.  * to signal when a frame marked by the SIGNAL command has been rendered:
  364.  *
  365.  *  SEND_DGVSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos )
  366.  *
  367.  * The following is a description of the parameters:
  368.  *
  369.  *  dwFlags    - the dwFlags parameter passed when the signal was set
  370.  *  dwCallback - the dwCallback value from the MCI_DGV_SIGNAL_PARMS struct
  371.  *               used to set the signal
  372.  *  hDriver    - the handle assigned to the driver by MMSYSTEM when the
  373.  *               device was opened
  374.  *  wDeviceID  - the device ID
  375.  *  dwUser     - the dwUserParm value from the MCI_DGV_SIGNAL_PARMS struct
  376.  *               used to set the signal
  377.  *  dwPos      - the position at which the signal was sent, in the current
  378.  *               time format.
  379.  *
  380.  * The window indicated by the handle in the dwCallback field is notified
  381.  * by means of a Windows message with the following form:
  382.  *
  383.  * msg    = MM_MCISIGNAL
  384.  * wParam = wDeviceID of the sending driver
  385.  * lParam = the uservalue specified or the position the signal was sent
  386.  *          at; the latter if the MCI_DGV_SIGNAL_POSITION flag was set
  387.  *          in the dwFlags parameter when the signal was created.
  388.  */
  389.  
  390. #define SEND_DGVSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos ) \
  391.   DriverCallback( (dwCallback), DCB_WINDOW, (HANDLE)(wDeviceID), MM_MCISIGNAL,\
  392.   hDriver, ((dwFlags) & MCI_DGV_SIGNAL_POSITION) ? (dwPos):(dwUser),\
  393.   ((dwFlags) & MCI_DGV_SIGNAL_POSITION) ? (dwUser):(dwPos))
  394.  
  395. /* flags for the dwFlags parameter of MCI_STATUS command */
  396.  
  397. #define MCI_DGV_STATUS_NOMINAL              0x00020000L
  398. #define MCI_DGV_STATUS_REFERENCE            0x00040000L
  399. #define MCI_DGV_STATUS_LEFT                 0x00080000L
  400. #define MCI_DGV_STATUS_RIGHT                0x00100000L
  401. #define MCI_DGV_STATUS_DISKSPACE            0x00200000L
  402. #define MCI_DGV_STATUS_INPUT                0x00400000L
  403. #define MCI_DGV_STATUS_OUTPUT               0x00800000L
  404. #define MCI_DGV_STATUS_RECORD               0x01000000L
  405.  
  406. /* values for dwItem field of MCI_STATUS_PARMS structure */
  407.  
  408. #define MCI_DGV_STATUS_AUDIO_INPUT          0x00004000L
  409. #define MCI_DGV_STATUS_HWND                 0x00004001L
  410. #define MCI_DGV_STATUS_SPEED                0x00004003L
  411. #define MCI_DGV_STATUS_HPAL                 0x00004004L
  412. #define MCI_DGV_STATUS_BRIGHTNESS           0x00004005L
  413. #define MCI_DGV_STATUS_COLOR                0x00004006L
  414. #define MCI_DGV_STATUS_CONTRAST             0x00004007L
  415. #define MCI_DGV_STATUS_FILEFORMAT           0x00004008L
  416. #define MCI_DGV_STATUS_AUDIO_SOURCE         0x00004009L
  417. #define MCI_DGV_STATUS_GAMMA                0x0000400aL
  418. #define MCI_DGV_STATUS_MONITOR              0x0000400bL
  419. #define MCI_DGV_STATUS_MONITOR_METHOD       0x0000400cL
  420. #define MCI_DGV_STATUS_FRAME_RATE           0x0000400eL
  421. #define MCI_DGV_STATUS_BASS                 0x0000400fL
  422. #define MCI_DGV_STATUS_SIZE                 0x00004010L
  423. #define MCI_DGV_STATUS_SEEK_EXACTLY         0x00004011L
  424. #define MCI_DGV_STATUS_SHARPNESS            0x00004012L
  425. #define MCI_DGV_STATUS_SMPTE                0x00004013L
  426. #define MCI_DGV_STATUS_AUDIO                0x00004014L
  427. #define MCI_DGV_STATUS_TINT                 0x00004015L
  428. #define MCI_DGV_STATUS_TREBLE               0x00004016L
  429. #define MCI_DGV_STATUS_UNSAVED              0x00004017L
  430. #define MCI_DGV_STATUS_VIDEO                0x00004018L
  431. #define MCI_DGV_STATUS_VOLUME               0x00004019L
  432. #define MCI_DGV_STATUS_AUDIO_RECORD         0x0000401aL
  433. #define MCI_DGV_STATUS_VIDEO_SOURCE         0x0000401bL
  434. #define MCI_DGV_STATUS_VIDEO_RECORD         0x0000401cL
  435. #define MCI_DGV_STATUS_STILL_FILEFORMAT     0x0000401dL
  436. #define MCI_DGV_STATUS_VIDEO_SRC_NUM        0x0000401eL
  437. #define MCI_DGV_STATUS_FILE_MODE            0x0000401fL
  438. #define MCI_DGV_STATUS_FILE_COMPLETION      0x00004020L
  439. #define MCI_DGV_STATUS_WINDOW_VISIBLE       0x00004021L
  440. #define MCI_DGV_STATUS_WINDOW_MINIMIZED     0x00004022L
  441. #define MCI_DGV_STATUS_WINDOW_MAXIMIZED     0x00004023L
  442. #define MCI_DGV_STATUS_KEY_INDEX            0x00004024L
  443. #define MCI_DGV_STATUS_KEY_COLOR            0x00004025L
  444. #define MCI_DGV_STATUS_PAUSE_MODE           0x00004026L
  445. #define MCI_DGV_STATUS_SAMPLESPERSEC        0x00004027L
  446. #define MCI_DGV_STATUS_AVGBYTESPERSEC       0x00004028L
  447. #define MCI_DGV_STATUS_BLOCKALIGN           0x00004029L
  448. #define MCI_DGV_STATUS_BITSPERSAMPLE        0x0000402aL
  449. #define MCI_DGV_STATUS_BITSPERPEL           0x0000402bL
  450. #define MCI_DGV_STATUS_FORWARD              0x0000402cL
  451. #define MCI_DGV_STATUS_AUDIO_STREAM         0x0000402dL
  452. #define MCI_DGV_STATUS_VIDEO_STREAM         0x0000402eL
  453.  
  454. /* flags for dwFlags parameter of MCI_STEP command message */
  455.  
  456. #define MCI_DGV_STEP_REVERSE                0x00010000L
  457. #define MCI_DGV_STEP_FRAMES                 0x00020000L
  458.  
  459. /* flags for dwFlags parameter of MCI_STOP command message */
  460.  
  461. #define MCI_DGV_STOP_HOLD                   0x00010000L
  462.  
  463. /* flags for dwFlags parameter of MCI_UPDATE command message */
  464.  
  465. #define MCI_DGV_UPDATE_HDC                  0x00020000L
  466. #define MCI_DGV_UPDATE_PAINT                0x00040000L
  467.  
  468. /* flags for dwFlags parameter of MCI_WHERE command message */
  469.  
  470. #define MCI_DGV_WHERE_SOURCE                0x00020000L
  471. #define MCI_DGV_WHERE_DESTINATION           0x00040000L
  472. #define MCI_DGV_WHERE_FRAME                 0x00080000L
  473. #define MCI_DGV_WHERE_VIDEO                 0x00100000L
  474. #define MCI_DGV_WHERE_WINDOW                0x00200000L
  475. #define MCI_DGV_WHERE_MAX                   0x00400000L
  476.  
  477. /* flags for dwFlags parameter of MCI_WINDOW command message */
  478.  
  479. #define MCI_DGV_WINDOW_HWND                 0x00010000L
  480. #define MCI_DGV_WINDOW_STATE                0x00040000L
  481. #define MCI_DGV_WINDOW_TEXT                 0x00080000L
  482.  
  483. /* flags for hWnd parameter of MCI_DGV_WINDOW_PARMS parameter block */
  484.  
  485. #define MCI_DGV_WINDOW_DEFAULT              0x00000000L
  486.  
  487. /* parameter block for MCI_WHERE, MCI_PUT, MCI_FREEZE, MCI_UNFREEZE cmds */
  488.  
  489. typedef struct {
  490.     DWORD   dwCallback;
  491. #ifdef MCI_USE_OFFEXT
  492.     POINT   ptOffset;
  493.     POINT   ptExtent;
  494. #else    
  495.     RECT    rc;
  496. #endif
  497. } MCI_DGV_RECT_PARMS;
  498. typedef MCI_DGV_RECT_PARMS FAR * LPMCI_DGV_RECT_PARMS;
  499.  
  500. /* parameter block for MCI_CAPTURE command message */
  501.  
  502. typedef struct {
  503.     DWORD   dwCallback;
  504.     LPSTR   lpstrFileName;
  505. #ifdef MCI_USE_OFFEXT
  506.     POINT   ptOffset;
  507.     POINT   ptExtent;
  508. #else    
  509.     RECT    rc;
  510. #endif
  511. } MCI_DGV_CAPTURE_PARMSA;
  512. typedef struct {
  513.     DWORD   dwCallback;
  514.     LPWSTR  lpstrFileName;
  515. #ifdef MCI_USE_OFFEXT
  516.     POINT   ptOffset;
  517.     POINT   ptExtent;
  518. #else    
  519.     RECT    rc;
  520. #endif
  521. } MCI_DGV_CAPTURE_PARMSW;
  522. #ifdef UNICODE
  523. typedef MCI_DGV_CAPTURE_PARMSW MCI_DGV_CAPTURE_PARMS;
  524. #else
  525. typedef MCI_DGV_CAPTURE_PARMSA MCI_DGV_CAPTURE_PARMS;
  526. #endif // UNICODE
  527. typedef MCI_DGV_CAPTURE_PARMSA FAR * LPMCI_DGV_CAPTURE_PARMSA;
  528. typedef MCI_DGV_CAPTURE_PARMSW FAR * LPMCI_DGV_CAPTURE_PARMSW;
  529. #ifdef UNICODE
  530. typedef LPMCI_DGV_CAPTURE_PARMSW LPMCI_DGV_CAPTURE_PARMS;
  531. #else
  532. typedef LPMCI_DGV_CAPTURE_PARMSA LPMCI_DGV_CAPTURE_PARMS;
  533. #endif // UNICODE
  534.  
  535. /* parameter block for MCI_CLOSE command message */
  536.  
  537. typedef MCI_GENERIC_PARMS MCI_CLOSE_PARMS;
  538. typedef MCI_CLOSE_PARMS FAR * LPMCI_CLOSE_PARMS;
  539.  
  540. /* parameter block for MCI_COPY command message */
  541.  
  542. typedef struct {
  543.     DWORD   dwCallback;
  544.     DWORD   dwFrom;
  545.     DWORD   dwTo;
  546. #ifdef MCI_USE_OFFEXT
  547.     POINT   ptOffset;
  548.     POINT   ptExtent;
  549. #else    
  550.     RECT    rc;
  551. #endif
  552.     DWORD   dwAudioStream;
  553.     DWORD   dwVideoStream;
  554. } MCI_DGV_COPY_PARMS;
  555. typedef MCI_DGV_COPY_PARMS FAR * LPMCI_DGV_COPY_PARMS;
  556.  
  557. /* parameter block for MCI_CUE command message */
  558.  
  559. typedef struct {
  560.     DWORD   dwCallback;
  561.     DWORD   dwTo;
  562. } MCI_DGV_CUE_PARMS;
  563. typedef MCI_DGV_CUE_PARMS FAR * LPMCI_DGV_CUE_PARMS;
  564.  
  565. /* parameter block for MCI_CUT command message */
  566.  
  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_CUT_PARMS;
  580. typedef MCI_DGV_CUT_PARMS FAR * LPMCI_DGV_CUT_PARMS;
  581.  
  582. /* parameter block for MCI_DELETE command message */
  583.  
  584. typedef struct {
  585.     DWORD   dwCallback;
  586.     DWORD   dwFrom;
  587.     DWORD   dwTo;
  588. #ifdef MCI_USE_OFFEXT
  589.     POINT   ptOffset;
  590.     POINT   ptExtent;
  591. #else    
  592.     RECT    rc;
  593. #endif
  594.     DWORD   dwAudioStream;
  595.     DWORD   dwVideoStream;
  596. } MCI_DGV_DELETE_PARMS;
  597. typedef MCI_DGV_DELETE_PARMS FAR * LPMCI_DGV_DELETE_PARMS;
  598.  
  599. /* parameter block for MCI_FREEZE command message */
  600.  
  601. typedef MCI_DGV_RECT_PARMS MCI_DGV_FREEZE_PARMS;
  602. typedef MCI_DGV_FREEZE_PARMS FAR * LPMCI_DGV_FREEZE_PARMS;
  603.  
  604. /* parameter block for MCI_INFO command message */
  605.  
  606. typedef struct  {
  607.     DWORD   dwCallback;
  608.     LPSTR   lpstrReturn;
  609.     DWORD   dwRetSize;
  610.     DWORD   dwItem;
  611. } MCI_DGV_INFO_PARMSA;
  612. typedef struct  {
  613.     DWORD   dwCallback;
  614.     LPWSTR  lpstrReturn;
  615.     DWORD   dwRetSize;
  616.     DWORD   dwItem;
  617. } MCI_DGV_INFO_PARMSW;
  618. #ifdef UNICODE
  619. typedef MCI_DGV_INFO_PARMSW MCI_DGV_INFO_PARMS;
  620. #else
  621. typedef MCI_DGV_INFO_PARMSA MCI_DGV_INFO_PARMS;
  622. #endif // UNICODE
  623. //? already typedef'd?  //typedef MCI_INFO_PARMS FAR * LPMCI_INFO_PARMS;
  624. typedef MCI_DGV_INFO_PARMSA FAR * LPMCI_DGV_INFO_PARMSA;
  625. typedef MCI_DGV_INFO_PARMSW FAR * LPMCI_DGV_INFO_PARMSW;
  626. #ifdef UNICODE
  627. typedef LPMCI_DGV_INFO_PARMSW LPMCI_DGV_INFO_PARMS;
  628. #else
  629. typedef LPMCI_DGV_INFO_PARMSA LPMCI_DGV_INFO_PARMS;
  630. #endif // UNICODE
  631.  
  632. /* parameter block for MCI_LIST command message */
  633.  
  634. typedef struct {
  635.     DWORD   dwCallback;
  636.     LPSTR   lpstrReturn;
  637.     DWORD   dwLength;
  638.     DWORD   dwNumber;
  639.     DWORD   dwItem;
  640.     LPSTR   lpstrAlgorithm;
  641. } MCI_DGV_LIST_PARMSA;
  642. typedef struct {
  643.     DWORD   dwCallback;
  644.     LPWSTR  lpstrReturn;
  645.     DWORD   dwLength;
  646.     DWORD   dwNumber;
  647.     DWORD   dwItem;
  648.     LPWSTR  lpstrAlgorithm;
  649. } MCI_DGV_LIST_PARMSW;
  650. #ifdef UNICODE
  651. typedef MCI_DGV_LIST_PARMSW MCI_DGV_LIST_PARMS;
  652. #else
  653. typedef MCI_DGV_LIST_PARMSA MCI_DGV_LIST_PARMS;
  654. #endif // UNICODE
  655. typedef MCI_DGV_LIST_PARMSA FAR * LPMCI_DGV_LIST_PARMSA;
  656. typedef MCI_DGV_LIST_PARMSW FAR * LPMCI_DGV_LIST_PARMSW;
  657. #ifdef UNICODE
  658. typedef LPMCI_DGV_LIST_PARMSW LPMCI_DGV_LIST_PARMS;
  659. #else
  660. typedef LPMCI_DGV_LIST_PARMSA LPMCI_DGV_LIST_PARMS;
  661. #endif // UNICODE
  662.  
  663. /* parameter block for MCI_LOAD command message */
  664.  
  665. typedef MCI_LOAD_PARMS MCI_DGV_LOAD_PARMS;
  666. typedef MCI_DGV_LOAD_PARMS FAR * LPMCI_DGV_LOAD_PARMS;
  667.  
  668. /* parameter block for MCI_MONITOR command message */
  669.  
  670. typedef struct {
  671.     DWORD   dwCallback;
  672.     DWORD   dwSource;
  673.     DWORD   dwMethod;
  674. } MCI_DGV_MONITOR_PARMS;
  675. typedef MCI_DGV_MONITOR_PARMS FAR * LPMCI_DGV_MONITOR_PARMS;
  676.  
  677. /* parameter block for MCI_OPEN command message */
  678.  
  679. typedef struct {
  680.     DWORD   dwCallback;
  681.     UINT    wDeviceID;
  682. #ifndef _WIN32
  683.     WORD    wReserved0;
  684. #endif
  685.     LPSTR   lpstrDeviceType;
  686.     LPSTR   lpstrElementName;
  687.     LPSTR   lpstrAlias;
  688.     DWORD   dwStyle;
  689.     HWND    hWndParent;
  690. #ifndef _WIN32
  691.     WORD    wReserved1;
  692. #endif
  693. } MCI_DGV_OPEN_PARMSA;
  694. typedef struct {
  695.     DWORD   dwCallback;
  696.     UINT    wDeviceID;
  697. #ifndef _WIN32
  698.     WORD    wReserved0;
  699. #endif
  700.     LPWSTR  lpstrDeviceType;
  701.     LPWSTR  lpstrElementName;
  702.     LPWSTR  lpstrAlias;
  703.     DWORD   dwStyle;
  704.     HWND    hWndParent;
  705. #ifndef _WIN32
  706.     WORD    wReserved1;
  707. #endif
  708. } MCI_DGV_OPEN_PARMSW;
  709. #ifdef UNICODE
  710. typedef MCI_DGV_OPEN_PARMSW MCI_DGV_OPEN_PARMS;
  711. #else
  712. typedef MCI_DGV_OPEN_PARMSA MCI_DGV_OPEN_PARMS;
  713. #endif // UNICODE
  714. typedef MCI_DGV_OPEN_PARMSA FAR * LPMCI_DGV_OPEN_PARMSA;
  715. typedef MCI_DGV_OPEN_PARMSW FAR * LPMCI_DGV_OPEN_PARMSW;
  716. #ifdef UNICODE
  717. typedef LPMCI_DGV_OPEN_PARMSW LPMCI_DGV_OPEN_PARMS;
  718. #else
  719. typedef LPMCI_DGV_OPEN_PARMSA LPMCI_DGV_OPEN_PARMS;
  720. #endif // UNICODE
  721.  
  722. /* parameter block for MCI_PAUSE command message */
  723.  
  724. typedef MCI_GENERIC_PARMS MCI_DGV_PAUSE_PARMS;
  725. typedef MCI_DGV_PAUSE_PARMS FAR * LPMCI_DGV_PAUSE_PARMS;
  726.  
  727. /* parameter block for MCI_PASTE command message */
  728.  
  729. typedef struct {
  730.     DWORD   dwCallback;
  731.     DWORD   dwTo;
  732. #ifdef MCI_USE_OFFEXT
  733.     POINT   ptOffset;
  734.     POINT   ptExtent;
  735. #else    
  736.     RECT    rc;
  737. #endif
  738.     DWORD   dwAudioStream;
  739.     DWORD   dwVideoStream;
  740. } MCI_DGV_PASTE_PARMS;
  741. typedef MCI_DGV_PASTE_PARMS FAR * LPMCI_DGV_PASTE_PARMS;
  742.  
  743. /* parameter block for MCI_PLAY command message */
  744.  
  745. typedef MCI_PLAY_PARMS MCI_DGV_PLAY_PARMS;
  746. typedef MCI_DGV_PLAY_PARMS FAR * LPMCI_DGV_PLAY_PARMS;
  747.  
  748. /* parameter block for MCI_PUT command message */
  749.  
  750. typedef MCI_DGV_RECT_PARMS MCI_DGV_PUT_PARMS;
  751. typedef MCI_DGV_PUT_PARMS FAR * LPMCI_DGV_PUT_PARMS;
  752.  
  753. /* parameter block for MCI_QUALITY command message */
  754.  
  755. typedef struct {
  756.     DWORD       dwCallback;
  757.     DWORD       dwItem;
  758.     LPSTR       lpstrName;
  759.     DWORD       lpstrAlgorithm;
  760.     DWORD       dwHandle;
  761. } MCI_DGV_QUALITY_PARMSA;
  762. typedef struct {
  763.     DWORD       dwCallback;
  764.     DWORD       dwItem;
  765.     LPWSTR      lpstrName;
  766.     DWORD       lpstrAlgorithm;
  767.     DWORD       dwHandle;
  768. } MCI_DGV_QUALITY_PARMSW;
  769. #ifdef UNICODE
  770. typedef MCI_DGV_QUALITY_PARMSW MCI_DGV_QUALITY_PARMS;
  771. #else
  772. typedef MCI_DGV_QUALITY_PARMSA MCI_DGV_QUALITY_PARMS;
  773. #endif // UNICODE
  774. typedef MCI_DGV_QUALITY_PARMSA FAR * LPMCI_DGV_QUALITY_PARMSA;
  775. typedef MCI_DGV_QUALITY_PARMSW FAR * LPMCI_DGV_QUALITY_PARMSW;
  776. #ifdef UNICODE
  777. typedef LPMCI_DGV_QUALITY_PARMSW LPMCI_DGV_QUALITY_PARMS;
  778. #else
  779. typedef LPMCI_DGV_QUALITY_PARMSA LPMCI_DGV_QUALITY_PARMS;
  780. #endif // UNICODE
  781.  
  782. /* parameter block for MCI_REALIZE command message */
  783.  
  784. typedef MCI_GENERIC_PARMS MCI_REALIZE_PARMS;
  785. typedef MCI_REALIZE_PARMS FAR * LPMCI_REALIZE_PARMS;
  786.  
  787. /* parameter block for MCI_RECORD command message */
  788.  
  789. typedef struct {
  790.     DWORD   dwCallback;
  791.     DWORD   dwFrom;
  792.     DWORD   dwTo;
  793. #ifdef MCI_USE_OFFEXT
  794.     POINT   ptOffset;
  795.     POINT   ptExtent;
  796. #else    
  797.     RECT    rc;
  798. #endif
  799.     DWORD   dwAudioStream;
  800.     DWORD   dwVideoStream;
  801. } MCI_DGV_RECORD_PARMS;
  802. typedef MCI_DGV_RECORD_PARMS FAR * LPMCI_DGV_RECORD_PARMS;
  803.  
  804. /* parameter block for MCI_RESERVE command message */
  805.  
  806. typedef struct {
  807.     DWORD   dwCallback;
  808.     LPSTR   lpstrPath;
  809.     DWORD   dwSize;
  810. } MCI_DGV_RESERVE_PARMSA;
  811. typedef struct {
  812.     DWORD   dwCallback;
  813.     LPWSTR  lpstrPath;
  814.     DWORD   dwSize;
  815. } MCI_DGV_RESERVE_PARMSW;
  816. #ifdef UNICODE
  817. typedef MCI_DGV_RESERVE_PARMSW MCI_DGV_RESERVE_PARMS;
  818. #else
  819. typedef MCI_DGV_RESERVE_PARMSA MCI_DGV_RESERVE_PARMS;
  820. #endif // UNICODE
  821. typedef MCI_DGV_RESERVE_PARMSA FAR * LPMCI_DGV_RESERVE_PARMSA;
  822. typedef MCI_DGV_RESERVE_PARMSW FAR * LPMCI_DGV_RESERVE_PARMSW;
  823. #ifdef UNICODE
  824. typedef LPMCI_DGV_RESERVE_PARMSW LPMCI_DGV_RESERVE_PARMS;
  825. #else
  826. typedef LPMCI_DGV_RESERVE_PARMSA LPMCI_DGV_RESERVE_PARMS;
  827. #endif // UNICODE
  828.  
  829. /* parameter block for MCI_RESTORE command message */
  830.  
  831. typedef struct {
  832.     DWORD   dwCallback;
  833.     LPSTR   lpstrFileName;
  834. #ifdef MCI_USE_OFFEXT
  835.     POINT   ptOffset;
  836.     POINT   ptExtent;
  837. #else    
  838.     RECT    rc;
  839. #endif
  840. } MCI_DGV_RESTORE_PARMSA;
  841. typedef struct {
  842.     DWORD   dwCallback;
  843.     LPWSTR  lpstrFileName;
  844. #ifdef MCI_USE_OFFEXT
  845.     POINT   ptOffset;
  846.     POINT   ptExtent;
  847. #else    
  848.     RECT    rc;
  849. #endif
  850. } MCI_DGV_RESTORE_PARMSW;
  851. #ifdef UNICODE
  852. typedef MCI_DGV_RESTORE_PARMSW MCI_DGV_RESTORE_PARMS;
  853. #else
  854. typedef MCI_DGV_RESTORE_PARMSA MCI_DGV_RESTORE_PARMS;
  855. #endif // UNICODE
  856. typedef MCI_DGV_RESTORE_PARMSA FAR * LPMCI_DGV_RESTORE_PARMSA;
  857. typedef MCI_DGV_RESTORE_PARMSW FAR * LPMCI_DGV_RESTORE_PARMSW;
  858. #ifdef UNICODE
  859. typedef LPMCI_DGV_RESTORE_PARMSW LPMCI_DGV_RESTORE_PARMS;
  860. #else
  861. typedef LPMCI_DGV_RESTORE_PARMSA LPMCI_DGV_RESTORE_PARMS;
  862. #endif // UNICODE
  863.  
  864. /* parameter block for MCI_RESUME command message */
  865.  
  866. typedef MCI_GENERIC_PARMS MCI_DGV_RESUME_PARMS;
  867. typedef MCI_DGV_RESUME_PARMS FAR * LPMCI_DGV_RESUME_PARMS;
  868.  
  869. /* parameter block for MCI_SAVE command message */
  870.  
  871. typedef struct {
  872.     DWORD   dwCallback;
  873.     LPSTR   lpstrFileName;
  874.     RECT    rc;
  875. } MCI_DGV_SAVE_PARMSA;
  876. typedef struct {
  877.     DWORD   dwCallback;
  878.     LPWSTR  lpstrFileName;
  879.     RECT    rc;
  880. } MCI_DGV_SAVE_PARMSW;
  881. #ifdef UNICODE
  882. typedef MCI_DGV_SAVE_PARMSW MCI_DGV_SAVE_PARMS;
  883. #else
  884. typedef MCI_DGV_SAVE_PARMSA MCI_DGV_SAVE_PARMS;
  885. #endif // UNICODE
  886. typedef MCI_DGV_SAVE_PARMSA FAR * LPMCI_DGV_SAVE_PARMSA;
  887. typedef MCI_DGV_SAVE_PARMSW FAR * LPMCI_DGV_SAVE_PARMSW;
  888. #ifdef UNICODE
  889. typedef LPMCI_DGV_SAVE_PARMSW LPMCI_DGV_SAVE_PARMS;
  890. #else
  891. typedef LPMCI_DGV_SAVE_PARMSA LPMCI_DGV_SAVE_PARMS;
  892. #endif // UNICODE
  893.  
  894. /* parameter block for MCI_SET command message */
  895.  
  896. typedef struct {
  897.     DWORD   dwCallback;
  898.     DWORD   dwTimeFormat;
  899.     DWORD   dwAudio;
  900.     DWORD   dwFileFormat;
  901.     DWORD   dwSpeed;
  902. } MCI_DGV_SET_PARMS;
  903. typedef MCI_DGV_SET_PARMS FAR * LPMCI_DGV_SET_PARMS;
  904.  
  905. /* parameter block for MCI_SETAUDIO command message */
  906.  
  907. typedef struct {
  908.     DWORD   dwCallback;
  909.     DWORD   dwItem;
  910.     DWORD   dwValue;
  911.     DWORD   dwOver;
  912.     LPSTR   lpstrAlgorithm;
  913.     LPSTR   lpstrQuality;
  914. } MCI_DGV_SETAUDIO_PARMSA;
  915. typedef struct {
  916.     DWORD   dwCallback;
  917.     DWORD   dwItem;
  918.     DWORD   dwValue;
  919.     DWORD   dwOver;
  920.     LPWSTR  lpstrAlgorithm;
  921.     LPWSTR  lpstrQuality;
  922. } MCI_DGV_SETAUDIO_PARMSW;
  923. #ifdef UNICODE
  924. typedef MCI_DGV_SETAUDIO_PARMSW MCI_DGV_SETAUDIO_PARMS;
  925. #else
  926. typedef MCI_DGV_SETAUDIO_PARMSA MCI_DGV_SETAUDIO_PARMS;
  927. #endif // UNICODE
  928. typedef MCI_DGV_SETAUDIO_PARMSA FAR * LPMCI_DGV_SETAUDIO_PARMSA;
  929. typedef MCI_DGV_SETAUDIO_PARMSW FAR * LPMCI_DGV_SETAUDIO_PARMSW;
  930. #ifdef UNICODE
  931. typedef LPMCI_DGV_SETAUDIO_PARMSW LPMCI_DGV_SETAUDIO_PARMS;
  932. #else
  933. typedef LPMCI_DGV_SETAUDIO_PARMSA LPMCI_DGV_SETAUDIO_PARMS;
  934. #endif // UNICODE
  935.  
  936. /* parameter block for MCI_SIGNAL command message */
  937.  
  938. typedef struct {
  939.     DWORD   dwCallback;
  940.     DWORD   dwPosition;
  941.     DWORD   dwPeriod;
  942.     DWORD   dwUserParm;
  943. } MCI_DGV_SIGNAL_PARMS;
  944. typedef MCI_DGV_SIGNAL_PARMS FAR * LPMCI_DGV_SIGNAL_PARMS;
  945.  
  946. /* parameter block for MCI_SETVIDEO command message */
  947.  
  948. typedef struct {
  949.     DWORD   dwCallback;
  950.     DWORD   dwItem;
  951.     DWORD   dwValue;
  952.     DWORD   dwOver;
  953.     LPSTR   lpstrAlgorithm;
  954.     LPSTR   lpstrQuality;
  955.     DWORD   dwSourceNumber;
  956. } MCI_DGV_SETVIDEO_PARMSA;
  957. typedef struct {
  958.     DWORD   dwCallback;
  959.     DWORD   dwItem;
  960.     DWORD   dwValue;
  961.     DWORD   dwOver;
  962.     LPWSTR  lpstrAlgorithm;
  963.     LPWSTR  lpstrQuality;
  964.     DWORD   dwSourceNumber;
  965. } MCI_DGV_SETVIDEO_PARMSW;
  966. #ifdef UNICODE
  967. typedef MCI_DGV_SETVIDEO_PARMSW MCI_DGV_SETVIDEO_PARMS;
  968. #else
  969. typedef MCI_DGV_SETVIDEO_PARMSA MCI_DGV_SETVIDEO_PARMS;
  970. #endif // UNICODE
  971. typedef MCI_DGV_SETVIDEO_PARMSA FAR * LPMCI_DGV_SETVIDEO_PARMSA;
  972. typedef MCI_DGV_SETVIDEO_PARMSW FAR * LPMCI_DGV_SETVIDEO_PARMSW;
  973. #ifdef UNICODE
  974. typedef LPMCI_DGV_SETVIDEO_PARMSW LPMCI_DGV_SETVIDEO_PARMS;
  975. #else
  976. typedef LPMCI_DGV_SETVIDEO_PARMSA LPMCI_DGV_SETVIDEO_PARMS;
  977. #endif // UNICODE
  978.  
  979. /* parameter block for MCI_STATUS command message */
  980.  
  981. typedef struct {
  982.     DWORD   dwCallback;
  983.     DWORD   dwReturn;
  984.     DWORD   dwItem;
  985.     DWORD   dwTrack;
  986.     LPSTR   lpstrDrive;
  987.     DWORD   dwReference;
  988. } MCI_DGV_STATUS_PARMSA;
  989. typedef struct {
  990.     DWORD   dwCallback;
  991.     DWORD   dwReturn;
  992.     DWORD   dwItem;
  993.     DWORD   dwTrack;
  994.     LPWSTR  lpstrDrive;
  995.     DWORD   dwReference;
  996. } MCI_DGV_STATUS_PARMSW;
  997. #ifdef UNICODE
  998. typedef MCI_DGV_STATUS_PARMSW MCI_DGV_STATUS_PARMS;
  999. #else
  1000. typedef MCI_DGV_STATUS_PARMSA MCI_DGV_STATUS_PARMS;
  1001. #endif // UNICODE
  1002. typedef MCI_DGV_STATUS_PARMSA FAR * LPMCI_DGV_STATUS_PARMSA;
  1003. typedef MCI_DGV_STATUS_PARMSW FAR * LPMCI_DGV_STATUS_PARMSW;
  1004. #ifdef UNICODE
  1005. typedef LPMCI_DGV_STATUS_PARMSW LPMCI_DGV_STATUS_PARMS;
  1006. #else
  1007. typedef LPMCI_DGV_STATUS_PARMSA LPMCI_DGV_STATUS_PARMS;
  1008. #endif // UNICODE
  1009.  
  1010. /* parameter block for MCI_STEP command message */
  1011.  
  1012. typedef struct {
  1013.     DWORD   dwCallback;
  1014.     DWORD   dwFrames;
  1015. } MCI_DGV_STEP_PARMS;
  1016. typedef MCI_DGV_STEP_PARMS FAR *LPMCI_DGV_STEP_PARMS;
  1017.  
  1018. /* parameter block for MCI_STOP command message */
  1019.  
  1020. typedef MCI_GENERIC_PARMS MCI_DGV_STOP_PARMS;
  1021. typedef MCI_DGV_STOP_PARMS FAR * LPMCI_DGV_STOP_PARMS;
  1022.  
  1023. /* parameter block for MCI_UNFREEZE command message */
  1024.  
  1025. typedef MCI_DGV_RECT_PARMS MCI_DGV_UNFREEZE_PARMS;
  1026. typedef MCI_DGV_UNFREEZE_PARMS FAR * LPMCI_DGV_UNFREEZE_PARMS;
  1027.  
  1028. /* parameter block for MCI_UPDATE command message */
  1029.  
  1030. typedef struct {
  1031.     DWORD   dwCallback;
  1032. #ifdef MCI_USE_OFFEXT
  1033.     POINT   ptOffset;
  1034.     POINT   ptExtent;
  1035. #else    
  1036.     RECT    rc;
  1037. #endif
  1038.     HDC     hDC;
  1039.  
  1040. #ifndef _WIN32
  1041.     WORD    wReserved0;
  1042. #endif
  1043. } MCI_DGV_UPDATE_PARMS;
  1044. typedef MCI_DGV_UPDATE_PARMS FAR * LPMCI_DGV_UPDATE_PARMS;
  1045.  
  1046. /* parameter block for MCI_WHERE command message */
  1047.  
  1048. typedef MCI_DGV_RECT_PARMS MCI_DGV_WHERE_PARMS;
  1049. typedef MCI_DGV_WHERE_PARMS FAR * LPMCI_DGV_WHERE_PARMS;
  1050.  
  1051. /* parameter block for MCI_WINDOW command message */
  1052.  
  1053. typedef struct {
  1054.     DWORD   dwCallback;
  1055.     HWND    hWnd;
  1056. #ifndef _WIN32
  1057.     WORD    wReserved1;
  1058. #endif
  1059.     UINT    nCmdShow;
  1060. #ifndef _WIN32
  1061.     WORD    wReserved2;
  1062. #endif
  1063.     LPSTR   lpstrText;
  1064. } MCI_DGV_WINDOW_PARMSA;
  1065. typedef struct {
  1066.     DWORD   dwCallback;
  1067.     HWND    hWnd;
  1068. #ifndef _WIN32
  1069.     WORD    wReserved1;
  1070. #endif
  1071.     UINT    nCmdShow;
  1072. #ifndef _WIN32
  1073.     WORD    wReserved2;
  1074. #endif
  1075.     LPWSTR  lpstrText;
  1076. } MCI_DGV_WINDOW_PARMSW;
  1077. #ifdef UNICODE
  1078. typedef MCI_DGV_WINDOW_PARMSW MCI_DGV_WINDOW_PARMS;
  1079. #else
  1080. typedef MCI_DGV_WINDOW_PARMSA MCI_DGV_WINDOW_PARMS;
  1081. #endif // UNICODE
  1082. typedef MCI_DGV_WINDOW_PARMSA FAR * LPMCI_DGV_WINDOW_PARMSA;
  1083. typedef MCI_DGV_WINDOW_PARMSW FAR * LPMCI_DGV_WINDOW_PARMSW;
  1084. #ifdef UNICODE
  1085. typedef LPMCI_DGV_WINDOW_PARMSW LPMCI_DGV_WINDOW_PARMS;
  1086. #else
  1087. typedef LPMCI_DGV_WINDOW_PARMSA LPMCI_DGV_WINDOW_PARMS;
  1088. #endif // UNICODE
  1089.  
  1090. #ifdef __cplusplus
  1091. }                       /* End of extern "C" { */
  1092. #endif    /* __cplusplus */
  1093.  
  1094. #endif  /* !_INC_DIGITALV */
  1095.