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