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.

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