home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / RTLWIN32.PAK / MSVIDDRV.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  4.6 KB  |  118 lines

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