Digitalv.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:37k
源码类别:

模拟服务器

开发平台:

C/C++

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