home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / digitalv.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  37.2 KB  |  1,108 lines

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