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.

121 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. // Following added for Win95 and NTPPC
  49. #define DVM_STREAM_ALLOCBUFFER (DVM_START + 312)
  50. #define DVM_STREAM_FREEBUFFER (DVM_START + 313)
  51. // NOTE that DVM_CONFIGURE numbers will start at 0x1000 (for configure API)
  52. /****************************************************************************
  53. Open Definitions
  54. ****************************************************************************/
  55. #define OPEN_TYPE_VCAP mmioFOURCC('v', 'c', 'a', 'p')
  56. // The following structure is the same as IC_OPEN
  57. // to allow compressors and capture devices to share
  58. // the same DriverProc.
  59. typedef struct tag_video_open_parms {
  60. DWORD dwSize; // sizeof(VIDEO_OPEN_PARMS)
  61. FOURCC fccType; // 'vcap'
  62. FOURCC fccComp; // unused
  63. DWORD dwVersion; // version of msvideo opening you
  64. DWORD dwFlags; // channel type
  65. DWORD dwError; // if open fails, this is why
  66. LPVOID pV1Reserved; // Reserved
  67. LPVOID pV2Reserved; // Reserved
  68. DWORD dnDevNode; // Devnode for PnP devices
  69. } VIDEO_OPEN_PARMS, FAR * LPVIDEO_OPEN_PARMS;
  70. typedef struct tag_video_geterrortext_parms {
  71. DWORD dwError; // The error number to identify
  72. #ifdef _WIN32
  73. LPWSTR lpText; // Text buffer to fill
  74. #else
  75. LPSTR lpText; // Text buffer to fill
  76. #endif
  77. DWORD dwLength; // Size of text buffer in characters
  78. } VIDEO_GETERRORTEXT_PARMS, FAR * LPVIDEO_GETERRORTEXT_PARMS;
  79. typedef struct tag_video_stream_init_parms {
  80. DWORD dwMicroSecPerFrame;
  81. DWORD_PTR dwCallback;
  82. DWORD_PTR dwCallbackInst;
  83. DWORD dwFlags;
  84. DWORD_PTR hVideo;
  85. } VIDEO_STREAM_INIT_PARMS, FAR * LPVIDEO_STREAM_INIT_PARMS;
  86. typedef struct tag_video_configure_parms {
  87. LPDWORD lpdwReturn; // Return parameter from configure MSG.
  88. LPVOID lpData1; // Pointer to data 1.
  89. DWORD dwSize1; // size of data buffer 1.
  90. LPVOID lpData2; // Pointer to data 2.
  91. DWORD dwSize2; // size of data buffer 2.
  92. } VIDEOCONFIGPARMS, FAR * LPVIDEOCONFIGPARMS;
  93. #ifdef __cplusplus
  94. } /* End of extern "C" { */
  95. #endif /* __cplusplus */
  96. #endif /* _INC_MSVIDDRV */
  97.