Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

421 lines
20 KiB

  1. /***************************************************************************
  2. * *
  3. * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY *
  4. * KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE *
  5. * IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR *
  6. * PURPOSE. *
  7. * *
  8. * Copyright (c) 1993 Microsoft Corporation. All Rights Reserved. *
  9. * *
  10. * File: vcr.h *
  11. * Title: VCR-MCI Command Table Include File *
  12. * *
  13. ***************************************************************************/
  14. /* string resource base for vcr device type */
  15. #define MCI_VCR_OFFSET 1280
  16. /* system MCI commands */
  17. #define MCI_LIST 0x0878
  18. #define MCI_SETAUDIO 0x0873
  19. #define MCI_SETVIDEO 0x0876
  20. #define MCI_SIGNAL 0x0875
  21. /* custom MCI commands for VCRs */
  22. #define MCI_MARK (MCI_USER_MESSAGES + 0)
  23. #define MCI_INDEX (MCI_USER_MESSAGES + 1)
  24. #define MCI_SETTUNER (MCI_USER_MESSAGES + 2)
  25. #define MCI_SETVCR (MCI_USER_MESSAGES + 3)
  26. #define MCI_SETTIMECODE (MCI_USER_MESSAGES + 4)
  27. /* Test is appplicable to all commands */
  28. #define MCI_TEST 0x00000020L
  29. /* flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block */
  30. #define MCI_VCR_GETDEVCAPS_CAN_DETECT_LENGTH 0x00004001L
  31. #define MCI_VCR_GETDEVCAPS_SEEK_ACCURACY 0x00004002L
  32. #define MCI_VCR_GETDEVCAPS_HAS_CLOCK 0x00004003L
  33. #define MCI_VCR_GETDEVCAPS_CAN_REVERSE 0x00004004L
  34. #define MCI_VCR_GETDEVCAPS_NUMBER_OF_MARKS 0x00004005L
  35. #define MCI_VCR_GETDEVCAPS_CAN_TEST 0x00004006L
  36. #define MCI_VCR_GETDEVCAPS_CAN_PREROLL 0x00004007L
  37. #define MCI_VCR_GETDEVCAPS_CAN_PREVIEW 0x00004008L
  38. #define MCI_VCR_GETDEVCAPS_CAN_MONITOR_SOURCES 0x00004009L
  39. #define MCI_VCR_GETDEVCAPS_HAS_TIMECODE 0x0000400AL
  40. #define MCI_VCR_GETDEVCAPS_CAN_FREEZE 0x0000401BL
  41. #define MCI_VCR_GETDEVCAPS_CLOCK_INCREMENT_RATE 0x0000401CL
  42. /* flags for dwFlags parameter of MCI_INFO command message */
  43. #define MCI_VCR_INFO_VERSION 0x00010000L
  44. /* flags for dwFlags parameter of MCI_PLAY command message */
  45. #define MCI_VCR_PLAY_REVERSE 0x00010000L
  46. #define MCI_VCR_PLAY_AT 0x00020000L
  47. #define MCI_VCR_PLAY_SCAN 0x00040000L
  48. /* flags for dwFlags parameter of MCI_RECORD command message */
  49. #define MCI_VCR_RECORD_INITIALIZE 0x00010000L
  50. #define MCI_VCR_RECORD_AT 0x00020000L
  51. #define MCI_VCR_RECORD_PREVIEW 0x00040000L
  52. /* flags for dwFlags parameter of MCI_CUE command message */
  53. #define MCI_VCR_CUE_INPUT 0x00010000L
  54. #define MCI_VCR_CUE_OUTPUT 0x00020000L
  55. #define MCI_VCR_CUE_PREROLL 0x00040000L
  56. #define MCI_VCR_CUE_REVERSE 0x00080000L
  57. /* flags for dwFlags parameter of MCI_SEEK command message */
  58. #define MCI_VCR_SEEK_REVERSE 0x00010000L
  59. #define MCI_VCR_SEEK_MARK 0x00020000L
  60. #define MCI_VCR_SEEK_AT 0x00040000L
  61. /* flags for dwFlags parameter of MCI_SETTUNER command message */
  62. #define MCI_VCR_SETTUNER_CHANNEL 0x00010000L
  63. #define MCI_VCR_SETTUNER_CHANNEL_UP 0x00020000L
  64. #define MCI_VCR_SETTUNER_CHANNEL_DOWN 0x00040000L
  65. #define MCI_VCR_SETTUNER_CHANNEL_SEEK_UP 0x00080000L
  66. #define MCI_VCR_SETTUNER_CHANNEL_SEEK_DOWN 0x00100000L
  67. #define MCI_VCR_SETTUNER_NUMBER 0x00200000L
  68. /* flags for dwFlags parameter of MCI_SET command message */
  69. #define MCI_VCR_SET_TIME_MODE 0x00010000L
  70. #define MCI_VCR_SET_POWER 0x00020000L
  71. #define MCI_VCR_SET_RECORD_FORMAT 0x00040000L
  72. #define MCI_VCR_SET_COUNTER_FORMAT 0x00080000L
  73. #define MCI_VCR_SET_INDEX 0x00100000L
  74. #define MCI_VCR_SET_ASSEMBLE_RECORD 0x00200000L
  75. #define MCI_VCR_SET_TRACKING 0x00400000L
  76. #define MCI_VCR_SET_SPEED 0x00800000L
  77. #define MCI_VCR_SET_TAPE_LENGTH 0x01000000L
  78. #define MCI_VCR_SET_COUNTER_VALUE 0x02000000L
  79. #define MCI_VCR_SET_CLOCK 0x04000000L
  80. #define MCI_VCR_SET_PAUSE_TIMEOUT 0x08000000L
  81. #define MCI_VCR_SET_PREROLL_DURATION 0x10000000L
  82. #define MCI_VCR_SET_POSTROLL_DURATION 0x20000000L
  83. /* flags for dwItem parameter of MCI_SETTIMECODE commmand message */
  84. #define MCI_VCR_SETTIMECODE_RECORD 0x00010000L
  85. /* flags for dwItem field of MCI_STATUS_PARMS parameter block */
  86. #define MCI_VCR_STATUS_FRAME_RATE 0x00004001L /* Frame rate */
  87. #define MCI_VCR_STATUS_SPEED 0x00004002L /* Speed */
  88. #define MCI_VCR_STATUS_MEDIA_TYPE 0x00004003L
  89. #define MCI_VCR_STATUS_RECORD_FORMAT 0x00004004L
  90. #define MCI_VCR_STATUS_PLAY_FORMAT 0x00004005L
  91. #define MCI_VCR_STATUS_AUDIO_SOURCE 0x00004006L
  92. #define MCI_VCR_STATUS_AUDIO_SOURCE_NUMBER 0x00004007L
  93. #define MCI_VCR_STATUS_VIDEO_SOURCE 0x00004008L
  94. #define MCI_VCR_STATUS_VIDEO_SOURCE_NUMBER 0x00004009L
  95. #define MCI_VCR_STATUS_AUDIO_MONITOR 0x0000400AL
  96. #define MCI_VCR_STATUS_AUDIO_MONITOR_NUMBER 0x0000400BL
  97. #define MCI_VCR_STATUS_VIDEO_MONITOR 0x0000400CL
  98. #define MCI_VCR_STATUS_VIDEO_MONITOR_NUMBER 0x0000400DL
  99. #define MCI_VCR_STATUS_INDEX_ON 0x0000400EL
  100. #define MCI_VCR_STATUS_INDEX 0x0000400FL
  101. #define MCI_VCR_STATUS_COUNTER_FORMAT 0x00004010L
  102. #define MCI_VCR_STATUS_COUNTER_RESOLUTION 0x00004011L
  103. #define MCI_VCR_STATUS_TIMECODE_TYPE 0x00004012L
  104. #define MCI_VCR_STATUS_COUNTER_VALUE 0x00004013L
  105. #define MCI_VCR_STATUS_TUNER_CHANNEL 0x00004014L
  106. #define MCI_VCR_STATUS_WRITE_PROTECTED 0x00004015L
  107. #define MCI_VCR_STATUS_TIMECODE_RECORD 0x00004016L
  108. #define MCI_VCR_STATUS_VIDEO_RECORD 0x00004017L
  109. #define MCI_VCR_STATUS_AUDIO_RECORD 0x00004018L
  110. #define MCI_VCR_STATUS_TIME_TYPE 0x00004019L
  111. #define MCI_VCR_STATUS_TIME_MODE 0x0000401AL
  112. #define MCI_VCR_STATUS_POWER_ON 0x0000401BL
  113. #define MCI_VCR_STATUS_CLOCK 0x0000401CL
  114. #define MCI_VCR_STATUS_ASSEMBLE_RECORD 0x0000401DL
  115. #define MCI_VCR_STATUS_TIMECODE_PRESENT 0x0000401EL
  116. #define MCI_VCR_STATUS_NUMBER_OF_VIDEO_TRACKS 0x0000401FL
  117. #define MCI_VCR_STATUS_NUMBER_OF_AUDIO_TRACKS 0x00004020L
  118. #define MCI_VCR_STATUS_CLOCK_ID 0x00004021L
  119. #define MCI_VCR_STATUS_PAUSE_TIMEOUT 0x00004022L
  120. #define MCI_VCR_STATUS_PREROLL_DURATION 0x00004023L
  121. #define MCI_VCR_STATUS_POSTROLL_DURATION 0x00004024L
  122. #define MCI_VCR_STATUS_VIDEO 0x00004025L
  123. #define MCI_VCR_STATUS_AUDIO 0x00004026L
  124. #define MCI_VCR_STATUS_NUMBER 0x00080000L
  125. /* flags for dwFlags parameter of MCI_ESCAPE command message */
  126. #define MCI_VCR_ESCAPE_STRING 0x00000100L
  127. /* flags for dwFlags parameter of MCI_LIST command message */
  128. #define MCI_VCR_LIST_VIDEO_SOURCE 0x00010000L
  129. #define MCI_VCR_LIST_AUDIO_SOURCE 0x00020000L
  130. #define MCI_VCR_LIST_COUNT 0x00040000L
  131. #define MCI_VCR_LIST_NUMBER 0x00080000L
  132. /* flags for dwFlags parameter of MCI_MARK command message */
  133. #define MCI_VCR_MARK_WRITE 0x00010000L
  134. #define MCI_VCR_MARK_ERASE 0x00020000L
  135. /* flags for dwFlags parameter for MCI_SETAUDIO command message */
  136. #define MCI_VCR_SETAUDIO_RECORD 0x00010000L
  137. #define MCI_VCR_SETAUDIO_SOURCE 0x00020000L
  138. #define MCI_VCR_SETAUDIO_MONITOR 0x00040000L
  139. #define MCI_VCR_SETAUDIO_TO 0x00200000L
  140. #define MCI_VCR_SETAUDIO_NUMBER 0x00400000L
  141. /* flags for dwFlags parameter for MCI_SETVIDEO command message */
  142. #define MCI_VCR_SETVIDEO_RECORD 0x00010000L
  143. #define MCI_VCR_SETVIDEO_SOURCE 0x00020000L
  144. #define MCI_VCR_SETVIDEO_MONITOR 0x00040000L
  145. #define MCI_VCR_SETVIDEO_TO 0x00100000L
  146. #define MCI_VCR_SETVIDEO_NUMBER 0x00200000L
  147. /* The following is the function digitalvideo drivers must use
  148. * to signal when a frame marked by the SIGNAL command has been rendered:
  149. *
  150. * SEND_VCRSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos )
  151. *
  152. * The following is a description of the parameters:
  153. *
  154. * dwFlags - the dwFlags parameter passed when the signal was set
  155. * dwCallback - the dwCallback value from the MCI_VCR_SIGNAL_PARMS struct
  156. * used to set the signal
  157. * hDriver - the handle assigned to the driver by MMSYSTEM when the
  158. * device was opened
  159. * wDeviceID - the device ID
  160. * dwUser - the dwUserParm value from the MCI_VCR_SIGNAL_PARMS struct
  161. * used to set the signal
  162. * dwPos - the position at which the signal was sent, in the current
  163. * time format.
  164. *
  165. * The window indicated by the handle in the dwCallback field is notified
  166. * by means of a Windows message with the following form:
  167. *
  168. * msg = MM_MCISIGNAL
  169. * wParam = wDeviceID of the sending driver
  170. * lParam = the uservalue specified or the position the signal was sent
  171. * at; the latter if the MCI_VCR_SIGNAL_POSITION flag was set
  172. * in the dwFlags parameter when the signal was created.
  173. */
  174. #define SEND_VCRSIGNAL(dwFlags, dwCallback, hDriver, wDeviceID, dwUser, dwPos ) \
  175. DriverCallback( (dwCallback), DCB_WINDOW, (HANDLE)(wDeviceID), MM_MCISIGNAL,\
  176. hDriver, ((dwFlags) & MCI_VCR_SIGNAL_POSITION) ? (dwPos):(dwUser),\
  177. ((dwFlags) & MCI_VCR_SIGNAL_POSITION) ? (dwUser):(dwPos))
  178. /* Window message for signal notification */
  179. #define MM_MCISIGNAL 0x3CB
  180. /* flags for dwFlags parameter of MCI_SIGNAL command message */
  181. #define MCI_VCR_SIGNAL_AT 0x00010000L
  182. #define MCI_VCR_SIGNAL_EVERY 0x00020000L
  183. #define MCI_VCR_SIGNAL_USERVAL 0x00040000L
  184. #define MCI_VCR_SIGNAL_CANCEL 0x00080000L
  185. #define MCI_VCR_SIGNAL_POSITION 0x00100000L
  186. /* flags for dwFlags parameter of MCI_STEP command message */
  187. #define MCI_VCR_STEP_FRAMES 0x00010000L
  188. #define MCI_VCR_STEP_REVERSE 0x00020000L
  189. /* flags for dwFlags parameter of MCI_FREEZE command message */
  190. #define MCI_VCR_FREEZE_INPUT 0x00010000L
  191. #define MCI_VCR_FREEZE_OUTPUT 0x00020000L
  192. #define MCI_VCR_FREEZE_FIELD 0x00040000L
  193. #define MCI_VCR_FREEZE_FRAME 0x00080000L
  194. /* flags for dwFlags parameter of MCI_UNFREEZE command message */
  195. #define MCI_VCR_UNFREEZE_INPUT 0x00010000L
  196. #define MCI_VCR_UNFREEZE_OUTPUT 0x00020000L
  197. /* string resource values for vcr media types */
  198. #define MCI_VCR_MEDIA_8MM (MCI_VCR_OFFSET + 1)
  199. #define MCI_VCR_MEDIA_HI8 (MCI_VCR_OFFSET + 2)
  200. #define MCI_VCR_MEDIA_VHS (MCI_VCR_OFFSET + 3)
  201. #define MCI_VCR_MEDIA_SVHS (MCI_VCR_OFFSET + 4)
  202. #define MCI_VCR_MEDIA_BETA (MCI_VCR_OFFSET + 5)
  203. #define MCI_VCR_MEDIA_EDBETA (MCI_VCR_OFFSET + 6)
  204. #define MCI_VCR_MEDIA_OTHER (MCI_VCR_OFFSET + 7)
  205. /* string resource values for vcr play/record formats */
  206. #define MCI_VCR_FORMAT_SP (MCI_VCR_OFFSET + 8)
  207. #define MCI_VCR_FORMAT_LP (MCI_VCR_OFFSET + 9)
  208. #define MCI_VCR_FORMAT_EP (MCI_VCR_OFFSET + 10)
  209. #define MCI_VCR_FORMAT_OTHER (MCI_VCR_OFFSET + 11)
  210. /* string resource values for timecode types */
  211. #define MCI_VCR_TIME_TIMECODE (MCI_VCR_OFFSET + 12)
  212. #define MCI_VCR_TIME_COUNTER (MCI_VCR_OFFSET + 13)
  213. #define MCI_VCR_TIME_DETECT (MCI_VCR_OFFSET + 14)
  214. /* string resource values for src types */
  215. #define MCI_VCR_SRC_TYPE_TUNER (MCI_VCR_OFFSET + 15)
  216. #define MCI_VCR_SRC_TYPE_LINE (MCI_VCR_OFFSET + 16)
  217. #define MCI_VCR_SRC_TYPE_SVIDEO (MCI_VCR_OFFSET + 17)
  218. #define MCI_VCR_SRC_TYPE_RGB (MCI_VCR_OFFSET + 18)
  219. #define MCI_VCR_SRC_TYPE_AUX (MCI_VCR_OFFSET + 19)
  220. #define MCI_VCR_SRC_TYPE_GENERIC (MCI_VCR_OFFSET + 20)
  221. #define MCI_VCR_SRC_TYPE_MUTE (MCI_VCR_OFFSET + 21)
  222. #define MCI_VCR_SRC_TYPE_OUTPUT (MCI_VCR_OFFSET + 22)
  223. /* string resource values for vcr counters */
  224. #define MCI_VCR_INDEX_TIMECODE (MCI_VCR_OFFSET + 23)
  225. #define MCI_VCR_INDEX_COUNTER (MCI_VCR_OFFSET + 24)
  226. #define MCI_VCR_INDEX_DATE (MCI_VCR_OFFSET + 25)
  227. #define MCI_VCR_INDEX_TIME (MCI_VCR_OFFSET + 26)
  228. /* string resources for timecode type and counter resolution */
  229. #define MCI_VCR_COUNTER_RES_SECONDS (MCI_VCR_OFFSET + 27)
  230. #define MCI_VCR_COUNTER_RES_FRAMES (MCI_VCR_OFFSET + 28)
  231. #define MCI_VCR_TIMECODE_TYPE_SMPTE (MCI_VCR_OFFSET + 29)
  232. #define MCI_VCR_TIMECODE_TYPE_SMPTE_DROP (MCI_VCR_OFFSET + 30)
  233. #define MCI_VCR_TIMECODE_TYPE_OTHER (MCI_VCR_OFFSET + 31)
  234. #define MCI_VCR_TIMECODE_TYPE_NONE (MCI_VCR_OFFSET + 32)
  235. #define MCI_VCR_PLUS (MCI_VCR_OFFSET + 33)
  236. #define MCI_VCR_MINUS (MCI_VCR_OFFSET + 34)
  237. #define MCI_VCR_RESET (MCI_VCR_OFFSET + 35)
  238. #ifndef RC_INVOKED
  239. /* parameter block for MCI_SEEK command message */
  240. typedef struct tagMCI_VCR_SEEK_PARMS {
  241. DWORD dwCallback;
  242. DWORD dwTo;
  243. DWORD dwMark;
  244. DWORD dwAt;
  245. } MCI_VCR_SEEK_PARMS;
  246. typedef MCI_VCR_SEEK_PARMS FAR *LPMCI_VCR_SEEK_PARMS;
  247. /* parameter block for MCI_SET command message */
  248. typedef struct tagMCI_VCR_SET_PARMS {
  249. DWORD dwCallback;
  250. DWORD dwTimeFormat;
  251. DWORD dwAudio;
  252. DWORD dwTimeMode;
  253. DWORD dwRecordFormat;
  254. DWORD dwCounterFormat;
  255. DWORD dwIndex;
  256. DWORD dwTracking;
  257. DWORD dwSpeed;
  258. DWORD dwLength;
  259. DWORD dwCounter;
  260. DWORD dwClock;
  261. DWORD dwPauseTimeout;
  262. DWORD dwPrerollDuration;
  263. DWORD dwPostrollDuration;
  264. } MCI_VCR_SET_PARMS;
  265. typedef MCI_VCR_SET_PARMS FAR *LPMCI_VCR_SET_PARMS;
  266. /* parameter block for MCI_VCR_SETTUNER command message */
  267. typedef struct tagMCI_VCR_SETTUNER_PARMS {
  268. DWORD dwCallback;
  269. DWORD dwChannel;
  270. DWORD dwNumber;
  271. } MCI_VCR_SETTUNER_PARMS;
  272. typedef MCI_VCR_SETTUNER_PARMS FAR *LPMCI_VCR_SETTUNER_PARMS;
  273. /* parameter block for MCI_ESCAPE command message */
  274. typedef struct tagMCI_VCR_ESCAPE_PARMS {
  275. DWORD dwCallback;
  276. LPCSTR lpstrCommand;
  277. } MCI_VCR_ESCAPE_PARMS;
  278. typedef MCI_VCR_ESCAPE_PARMS FAR *LPMCI_VCR_ESCAPE_PARMS;
  279. /* parameter block for MCI_LIST command message */
  280. typedef struct tagMCI_VCR_LIST_PARMS {
  281. DWORD dwCallback;
  282. DWORD dwReturn;
  283. DWORD dwNumber;
  284. } MCI_VCR_LIST_PARMS;
  285. typedef MCI_VCR_LIST_PARMS FAR *LPMCI_VCR_LIST_PARMS;
  286. /* parameter block for MCI_RECORD command message */
  287. typedef struct tagMCI_VCR_RECORD_PARMS {
  288. DWORD dwCallback;
  289. DWORD dwFrom;
  290. DWORD dwTo;
  291. DWORD dwAt;
  292. } MCI_VCR_RECORD_PARMS;
  293. typedef MCI_VCR_RECORD_PARMS FAR *LPMCI_VCR_RECORD_PARMS;
  294. /* parameter block for MCI_PLAY command message */
  295. typedef struct tagMCI_VCR_PLAY_PARMS {
  296. DWORD dwCallback;
  297. DWORD dwFrom;
  298. DWORD dwTo;
  299. DWORD dwAt;
  300. } MCI_VCR_PLAY_PARMS;
  301. typedef MCI_VCR_PLAY_PARMS FAR *LPMCI_VCR_PLAY_PARMS;
  302. /* parameter block for MCI_SETAUDIO command message */
  303. typedef struct tagMCI_VCR_SETAUDIO_PARMS {
  304. DWORD dwCallback;
  305. DWORD dwTrack;
  306. DWORD dwTo;
  307. DWORD dwNumber;
  308. } MCI_VCR_SETAUDIO_PARMS;
  309. typedef MCI_VCR_SETAUDIO_PARMS FAR *LPMCI_VCR_SETAUDIO_PARMS;
  310. /* parameter block for MCI_SIGNAL command message */
  311. typedef struct tagMCI_VCR_SIGNAL_PARMS {
  312. DWORD dwCallback;
  313. DWORD dwPosition;
  314. DWORD dwPeriod;
  315. DWORD dwUserParm;
  316. } MCI_VCR_SIGNAL_PARMS;
  317. typedef MCI_VCR_SIGNAL_PARMS FAR * LPMCI_VCR_SIGNAL_PARMS;
  318. /* parameter block for MCI_VCR_STATUS command message */
  319. typedef struct tagMCI_VCR_STATUS_PARMS {
  320. DWORD dwCallback;
  321. DWORD dwReturn;
  322. DWORD dwItem;
  323. DWORD dwTrack;
  324. DWORD dwNumber;
  325. } MCI_VCR_STATUS_PARMS;
  326. typedef MCI_VCR_STATUS_PARMS FAR * LPMCI_VCR_STATUS_PARMS;
  327. /* parameter block for MCI_SETVIDEO command message */
  328. typedef struct tagMCI_VCR_SETVIDEO_PARMS {
  329. DWORD dwCallback;
  330. DWORD dwTrack;
  331. DWORD dwTo;
  332. DWORD dwNumber;
  333. } MCI_VCR_SETVIDEO_PARMS;
  334. typedef MCI_VCR_SETVIDEO_PARMS FAR *LPMCI_VCR_SETVIDEO_PARMS;
  335. /* parameter block for MCI_STEP command message */
  336. typedef struct tagMCI_VCR_STEP_PARMS {
  337. DWORD dwCallback;
  338. DWORD dwFrames;
  339. } MCI_VCR_STEP_PARMS;
  340. typedef MCI_VCR_STEP_PARMS FAR *LPMCI_VCR_STEP_PARMS;
  341. /* parameter block for MCI_CUE command message */
  342. typedef struct tagMCI_VCR_CUE_PARMS {
  343. DWORD dwCallback;
  344. DWORD dwFrom;
  345. DWORD dwTo;
  346. } MCI_VCR_CUE_PARMS;
  347. typedef MCI_VCR_CUE_PARMS FAR *LPMCI_VCR_CUE_PARMS;
  348. #endif /* NOT RC_INVOKED */
  349. /* VCR error codes */
  350. #define MCIERR_VCR_CANNOT_OPEN_COMM (MCIERR_CUSTOM_DRIVER_BASE + 1)
  351. #define MCIERR_VCR_CANNOT_WRITE_COMM (MCIERR_CUSTOM_DRIVER_BASE + 2)
  352. #define MCIERR_VCR_READ_TIMEOUT (MCIERR_CUSTOM_DRIVER_BASE + 3)
  353. #define MCIERR_VCR_COMMAND_BUFFER_FULL (MCIERR_CUSTOM_DRIVER_BASE + 4)
  354. #define MCIERR_VCR_COMMAND_CANCELLED (MCIERR_CUSTOM_DRIVER_BASE + 5)
  355. #define MCIERR_VCR_POWER_OFF (MCIERR_CUSTOM_DRIVER_BASE + 6)
  356. #define MCIERR_VCR_COMMAND_FAILED (MCIERR_CUSTOM_DRIVER_BASE + 7)
  357. #define MCIERR_VCR_SEARCH (MCIERR_CUSTOM_DRIVER_BASE + 8)
  358. #define MCIERR_VCR_CONDITION (MCIERR_CUSTOM_DRIVER_BASE + 9)
  359. #define MCIERR_VCR_CAMERA_MODE (MCIERR_CUSTOM_DRIVER_BASE + 10)
  360. #define MCIERR_VCR_VCR_MODE (MCIERR_CUSTOM_DRIVER_BASE + 11)
  361. #define MCIERR_VCR_COUNTER_TYPE (MCIERR_CUSTOM_DRIVER_BASE + 12)
  362. #define MCIERR_VCR_TUNER (MCIERR_CUSTOM_DRIVER_BASE + 13)
  363. #define MCIERR_VCR_EMERGENCY_STOP (MCIERR_CUSTOM_DRIVER_BASE + 14)
  364. #define MCIERR_VCR_MEDIA_UNMOUNTED (MCIERR_CUSTOM_DRIVER_BASE + 15)
  365. #define MCIERR_VCR_REGISTER (MCIERR_CUSTOM_DRIVER_BASE + 16)
  366. #define MCIERR_VCR_TRACK_FAILURE (MCIERR_CUSTOM_DRIVER_BASE + 17)
  367. #define MCIERR_VCR_CUE_FAILED_FLAGS (MCIERR_CUSTOM_DRIVER_BASE + 18)
  368. #define MCIERR_VCR_ISWRITEPROTECTED (MCIERR_CUSTOM_DRIVER_BASE + 19)