Source code of Windows XP (NT5)
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.

122 lines
4.9 KiB

  1. /****************************************************************************/
  2. /* */
  3. /* MSVIDDRV.H - Include file for messages to video capture drivers */
  4. /* */
  5. /* Note: You must include WINDOWS.H before including this file. */
  6. /* */
  7. /* Copyright (c) 1990-1995, Microsoft Corp. All rights reserved. */
  8. /* */
  9. /****************************************************************************/
  10. #ifndef _INC_MSVIDDRV
  11. #define _INC_MSVIDDRV 50 /* version number */
  12. #ifdef __cplusplus
  13. extern "C" { /* Assume C declarations for C++ */
  14. #endif /* __cplusplus */
  15. /****************************************************************************
  16. Digital Video Messages (DVM_)
  17. ****************************************************************************/
  18. // General messages
  19. #define DVM_START DRV_USER
  20. #define DVM_GETERRORTEXT (DVM_START + 0)
  21. #define DVM_GETVIDEOAPIVER (DVM_START + 1)
  22. // This value increments each time the API changes
  23. // It is passed to the driver in the DRV_OPEN message.
  24. #define VIDEOAPIVERSION 4
  25. // General messages applicable to all channel types
  26. #define DVM_DIALOG (DVM_START + 100)
  27. #define DVM_CONFIGURESTORAGE (DVM_START + 101)
  28. #define DVM_GET_CHANNEL_CAPS (DVM_START + 102)
  29. #define DVM_UPDATE (DVM_START + 103)
  30. // Single frame msg
  31. #define DVM_FRAME (DVM_START + 200)
  32. // stream messages
  33. #define DVM_STREAM_MSG_START (DVM_START + 300)
  34. #define DVM_STREAM_MSG_END (DVM_START + 399)
  35. #define DVM_STREAM_ADDBUFFER (DVM_START + 300)
  36. #define DVM_STREAM_FINI (DVM_START + 301)
  37. #define DVM_STREAM_GETERROR (DVM_START + 302)
  38. #define DVM_STREAM_GETPOSITION (DVM_START + 303)
  39. #define DVM_STREAM_INIT (DVM_START + 304)
  40. #define DVM_STREAM_PREPAREHEADER (DVM_START + 305)
  41. #define DVM_STREAM_RESET (DVM_START + 306)
  42. #define DVM_STREAM_START (DVM_START + 307)
  43. #define DVM_STREAM_STOP (DVM_START + 308)
  44. #define DVM_STREAM_UNPREPAREHEADER (DVM_START + 309)
  45. // Following added post VFW1.1a, but are now obsolete
  46. #define DVM_STREAM_ALLOCHDRANDBUFFER (DVM_START + 310)
  47. #define DVM_STREAM_FREEHDRANDBUFFER (DVM_START + 311)
  48. // The 2 messages above will be removed once the ALLOCBUFFER code is ready
  49. // Following added for Win95 and NTPPC
  50. #define DVM_STREAM_ALLOCBUFFER (DVM_START + 312)
  51. #define DVM_STREAM_FREEBUFFER (DVM_START + 313)
  52. // NOTE that DVM_CONFIGURE numbers will start at 0x1000 (for configure API)
  53. /****************************************************************************
  54. Open Definitions
  55. ****************************************************************************/
  56. #define OPEN_TYPE_VCAP mmioFOURCC('v', 'c', 'a', 'p')
  57. // The following structure is the same as IC_OPEN
  58. // to allow compressors and capture devices to share
  59. // the same DriverProc.
  60. typedef struct tag_video_open_parms {
  61. DWORD dwSize; // sizeof(VIDEO_OPEN_PARMS)
  62. FOURCC fccType; // 'vcap'
  63. FOURCC fccComp; // unused
  64. DWORD dwVersion; // version of msvideo opening you
  65. DWORD dwFlags; // channel type
  66. DWORD dwError; // if open fails, this is why
  67. LPVOID pV1Reserved; // Reserved
  68. LPVOID pV2Reserved; // Reserved
  69. DWORD dnDevNode; // Devnode for PnP devices
  70. } VIDEO_OPEN_PARMS, FAR * LPVIDEO_OPEN_PARMS;
  71. typedef struct tag_video_geterrortext_parms {
  72. DWORD dwError; // The error number to identify
  73. #ifdef _WIN32
  74. LPWSTR lpText; // Text buffer to fill
  75. #else
  76. LPSTR lpText; // Text buffer to fill
  77. #endif
  78. DWORD dwLength; // Size of text buffer in characters
  79. } VIDEO_GETERRORTEXT_PARMS, FAR * LPVIDEO_GETERRORTEXT_PARMS;
  80. typedef struct tag_video_stream_init_parms {
  81. DWORD dwMicroSecPerFrame;
  82. DWORD_PTR dwCallback;
  83. DWORD_PTR dwCallbackInst;
  84. DWORD dwFlags;
  85. DWORD_PTR hVideo;
  86. } VIDEO_STREAM_INIT_PARMS, FAR * LPVIDEO_STREAM_INIT_PARMS;
  87. typedef struct tag_video_configure_parms {
  88. LPDWORD lpdwReturn; // Return parameter from configure MSG.
  89. LPVOID lpData1; // Pointer to data 1.
  90. DWORD dwSize1; // size of data buffer 1.
  91. LPVOID lpData2; // Pointer to data 2.
  92. DWORD dwSize2; // size of data buffer 2.
  93. } VIDEOCONFIGPARMS, FAR * LPVIDEOCONFIGPARMS;
  94. #ifdef __cplusplus
  95. } /* End of extern "C" { */
  96. #endif /* __cplusplus */
  97. #endif /* _INC_MSVIDDRV */