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.

117 lines
4.7 KiB

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