⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vfwmod.h

📁 用于机器人自动低分辨路的地图测绘程序。用于机器人控制测绘。分为远端控制端和本地控制端。控制电机为标准舵机。
💻 H
📖 第 1 页 / 共 5 页
字号:
/*******************0000***************************************************** * *      VfW.H - Video for Windows include file * *      Copyright (c) 1991-1995, Microsoft Corp.  All rights reserved. * *      This include files defines interfaces to the following *      video components * *          COMPMAN         - Installable Compression Manager. *          DRAWDIB         - Routines for drawing to the display. *          VIDEO           - Video Capture Driver Interface * *          AVIFMT          - AVI File Format structure definitions. *          MMREG           - FOURCC and other things * *          AVIFile         - Interface for reading AVI Files and AVI Streams *          MCIWND          - MCI/AVI window class *          AVICAP          - AVI Capture Window class * *          MSACM           - Audio compression manager. * *      The following symbols control inclusion of various parts of this file: * *          NOCOMPMAN       - dont include COMPMAN *          NODRAWDIB       - dont include DRAWDIB *          NOVIDEO         - dont include video capture interface * *          NOAVIFMT        - dont include AVI file format structs *          NOMMREG         - dont include MMREG * *          NOAVIFILE       - dont include AVIFile interface *          NOMCIWND        - dont include AVIWnd class. *          NOAVICAP        - dont include AVICap class. * *          NOMSACM         - dont include ACM stuff. * ****************************************************************************/#define NOMMREG#define NOMSACM#ifndef _INC_VFW#define _INC_VFW#ifdef __cplusplusextern "C" {            /* Assume C declarations for C++ */#endif  /* __cplusplus *//**************************************************************************** * *  types * ***************************************************************************/#ifdef _WIN32#define VFWAPI  WINAPI#define VFWAPIV WINAPIV#else#define VFWAPI  FAR PASCAL#define VFWAPIV FAR CDECL#endif/**************************************************************************** * *  VideoForWindowsVersion() - returns version of VfW * ***************************************************************************/DWORD FAR PASCAL VideoForWindowsVersion(void);/**************************************************************************** * *  call these to start stop using VfW from your app. * ***************************************************************************/LONG VFWAPI InitVFW(void);LONG VFWAPI TermVFW(void);/**************************************************************************** * *  do we need MMSYSTEM? * ****************************************************************************/#if !defined(_INC_MMSYSTEM) && (!defined(NOVIDEO) || !defined(NOAVICAP))    #include <mmsystem.h>#endif/****************************************************************************//*                                                                          *//*        Macros                                                            *//*                                                                          *//*  should we define this??                                                 *//*                                                                          *//****************************************************************************/#ifndef MKFOURCC#define MKFOURCC( ch0, ch1, ch2, ch3 )                                    \		( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) |	\		( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) )#endif#if !defined(_INC_MMSYSTEM)    #undef mmioFOURCC    #define mmioFOURCC MKFOURCC#endif/**************************************************************************** * *  COMPMAN - Installable Compression Manager. * ****************************************************************************/#ifndef NOCOMPMAN#ifdef _WIN32#define ICVERSION       0x0104DECLARE_HANDLE(HIC);     /* Handle to a Installable Compressor *///// this code in biCompression means the DIB must be accesed via// 48 bit pointers! using *ONLY* the selector given.//#define BI_1632  0x32333631     // '1632'#ifndef mmioFOURCC#define mmioFOURCC( ch0, ch1, ch2, ch3 )				\		( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) |	\		( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) )#endif#ifndef aviTWOCC#define aviTWOCC(ch0, ch1) ((WORD)(BYTE)(ch0) | ((WORD)(BYTE)(ch1) << 8))#endif#ifndef ICTYPE_VIDEO#define ICTYPE_VIDEO    mmioFOURCC('v', 'i', 'd', 'c')#define ICTYPE_AUDIO    mmioFOURCC('a', 'u', 'd', 'c')#endif#ifndef ICERR_OK#define ICERR_OK                0L#define ICERR_DONTDRAW          1L#define ICERR_NEWPALETTE        2L#define ICERR_GOTOKEYFRAME	3L#define ICERR_STOPDRAWING 	4L#define ICERR_UNSUPPORTED      -1L#define ICERR_BADFORMAT        -2L#define ICERR_MEMORY           -3L#define ICERR_INTERNAL         -4L#define ICERR_BADFLAGS         -5L#define ICERR_BADPARAM         -6L#define ICERR_BADSIZE          -7L#define ICERR_BADHANDLE        -8L#define ICERR_CANTUPDATE       -9L#define ICERR_ABORT	       -10L#define ICERR_ERROR            -100L#define ICERR_BADBITDEPTH      -200L#define ICERR_BADIMAGESIZE     -201L#define ICERR_CUSTOM           -400L    // errors less than ICERR_CUSTOM...#endif/* Values for dwFlags of ICOpen() */#ifndef ICMODE_COMPRESS#define ICMODE_COMPRESS		1#define ICMODE_DECOMPRESS	2#define ICMODE_FASTDECOMPRESS   3#define ICMODE_QUERY            4#define ICMODE_FASTCOMPRESS     5#define ICMODE_DRAW             8#endif/* Flags for AVI file index */#define AVIIF_LIST	0x00000001L#define AVIIF_TWOCC	0x00000002L#define AVIIF_KEYFRAME	0x00000010L/* quality flags */#define ICQUALITY_LOW       0#define ICQUALITY_HIGH      10000#define ICQUALITY_DEFAULT   -1/************************************************************************************************************************************************/#define ICM_USER          (DRV_USER+0x0000)#define ICM_RESERVED      ICM_RESERVED_LOW#define ICM_RESERVED_LOW  (DRV_USER+0x1000)#define ICM_RESERVED_HIGH (DRV_USER+0x2000)/************************************************************************    messages.************************************************************************/#define ICM_GETSTATE                (ICM_RESERVED+0)    // Get compressor state#define ICM_SETSTATE                (ICM_RESERVED+1)    // Set compressor state#define ICM_GETINFO                 (ICM_RESERVED+2)    // Query info about the compressor#define ICM_CONFIGURE               (ICM_RESERVED+10)   // show the configure dialog#define ICM_ABOUT                   (ICM_RESERVED+11)   // show the about box#define ICM_GETDEFAULTQUALITY       (ICM_RESERVED+30)   // get the default value for quality#define ICM_GETQUALITY              (ICM_RESERVED+31)   // get the current value for quality#define ICM_SETQUALITY              (ICM_RESERVED+32)   // set the default value for quality#define ICM_SET			    (ICM_RESERVED+40)	// Tell the driver something#define ICM_GET			    (ICM_RESERVED+41)	// Ask the driver something// Constants for ICM_SET:#define ICM_FRAMERATE       mmioFOURCC('F','r','m','R')#define ICM_KEYFRAMERATE    mmioFOURCC('K','e','y','R')/************************************************************************    ICM specific messages.************************************************************************/#define ICM_COMPRESS_GET_FORMAT     (ICM_USER+4)    // get compress format or size#define ICM_COMPRESS_GET_SIZE       (ICM_USER+5)    // get output size#define ICM_COMPRESS_QUERY          (ICM_USER+6)    // query support for compress#define ICM_COMPRESS_BEGIN          (ICM_USER+7)    // begin a series of compress calls.#define ICM_COMPRESS                (ICM_USER+8)    // compress a frame#define ICM_COMPRESS_END            (ICM_USER+9)    // end of a series of compress calls.#define ICM_DECOMPRESS_GET_FORMAT   (ICM_USER+10)   // get decompress format or size#define ICM_DECOMPRESS_QUERY        (ICM_USER+11)   // query support for dempress#define ICM_DECOMPRESS_BEGIN        (ICM_USER+12)   // start a series of decompress calls#define ICM_DECOMPRESS              (ICM_USER+13)   // decompress a frame#define ICM_DECOMPRESS_END          (ICM_USER+14)   // end a series of decompress calls#define ICM_DECOMPRESS_SET_PALETTE  (ICM_USER+29)   // fill in the DIB color table#define ICM_DECOMPRESS_GET_PALETTE  (ICM_USER+30)   // fill in the DIB color table#define ICM_DRAW_QUERY              (ICM_USER+31)   // query support for dempress#define ICM_DRAW_BEGIN              (ICM_USER+15)   // start a series of draw calls#define ICM_DRAW_GET_PALETTE        (ICM_USER+16)   // get the palette needed for drawing#define ICM_DRAW_START              (ICM_USER+18)   // start decompress clock#define ICM_DRAW_STOP               (ICM_USER+19)   // stop decompress clock#define ICM_DRAW_END                (ICM_USER+21)   // end a series of draw calls#define ICM_DRAW_GETTIME            (ICM_USER+32)   // get value of decompress clock#define ICM_DRAW                    (ICM_USER+33)   // generalized "render" message#define ICM_DRAW_WINDOW             (ICM_USER+34)   // drawing window has moved or hidden#define ICM_DRAW_SETTIME            (ICM_USER+35)   // set correct value for decompress clock#define ICM_DRAW_REALIZE            (ICM_USER+36)   // realize palette for drawing#define ICM_DRAW_FLUSH	            (ICM_USER+37)   // clear out buffered frames#define ICM_DRAW_RENDERBUFFER       (ICM_USER+38)   // draw undrawn things in queue#define ICM_DRAW_START_PLAY         (ICM_USER+39)   // start of a play#define ICM_DRAW_STOP_PLAY          (ICM_USER+40)   // end of a play#define ICM_DRAW_SUGGESTFORMAT      (ICM_USER+50)   // Like ICGetDisplayFormat#define ICM_DRAW_CHANGEPALETTE      (ICM_USER+51)   // for animating palette#define ICM_GETBUFFERSWANTED        (ICM_USER+41)   // ask about prebuffering#define ICM_GETDEFAULTKEYFRAMERATE  (ICM_USER+42)   // get the default value for key frames#define ICM_DECOMPRESSEX_BEGIN      (ICM_USER+60)   // start a series of decompress calls#define ICM_DECOMPRESSEX_QUERY      (ICM_USER+61)   // start a series of decompress calls#define ICM_DECOMPRESSEX            (ICM_USER+62)   // decompress a frame#define ICM_DECOMPRESSEX_END        (ICM_USER+63)   // end a series of decompress calls#define ICM_COMPRESS_FRAMES_INFO    (ICM_USER+70)   // tell about compress to come#define ICM_SET_STATUS_PROC	        (ICM_USER+72)   // set status callback/************************************************************************************************************************************************/typedef struct {    DWORD               dwSize;         // sizeof(ICOPEN)    DWORD               fccType;        // 'vidc'    DWORD               fccHandler;     //    DWORD               dwVersion;      // version of compman opening you    DWORD               dwFlags;        // LOWORD is type specific    LRESULT             dwError;        // error return.    LPVOID              pV1Reserved;    // Reserved    LPVOID              pV2Reserved;    // Reserved    DWORD               dnDevNode;      // Devnode for PnP devices} ICOPEN;/************************************************************************************************************************************************/typedef struct {    DWORD   dwSize;                 // sizeof(ICINFO)    DWORD   fccType;                // compressor type     'vidc' 'audc'    DWORD   fccHandler;             // compressor sub-type 'rle ' 'jpeg' 'pcm '    DWORD   dwFlags;                // flags LOWORD is type specific    DWORD   dwVersion;              // version of the driver    DWORD   dwVersionICM;           // version of the ICM used    //    // under Win32, the driver always returns UNICODE strings.    //    WCHAR   szName[16];             // short name    WCHAR   szDescription[128];     // long name    WCHAR   szDriver[128];          // driver that contains compressor}   ICINFO;/* Flags for the <dwFlags> field of the <ICINFO> structure. */#define VIDCF_QUALITY        0x0001  // supports quality#define VIDCF_CRUNCH         0x0002  // supports crunching to a frame size#define VIDCF_TEMPORAL       0x0004  // supports inter-frame compress#define VIDCF_COMPRESSFRAMES 0x0008  // wants the compress all frames message#define VIDCF_DRAW           0x0010  // supports drawing#define VIDCF_FASTTEMPORALC  0x0020  // does not need prev frame on compress#define VIDCF_FASTTEMPORALD  0x0080  // does not need prev frame on decompress//#define VIDCF_QUALITYTIME    0x0040  // supports temporal quality//#define VIDCF_FASTTEMPORAL   (VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD)/************************************************************************************************************************************************/#define ICCOMPRESS_KEYFRAME	0x00000001Ltypedef struct {    DWORD               dwFlags;        // flags    LPBITMAPINFOHEADER  lpbiOutput;     // output format    LPVOID              lpOutput;       // output data    LPBITMAPINFOHEADER  lpbiInput;      // format of frame to compress    LPVOID              lpInput;        // frame data to compress    LPDWORD             lpckid;         // ckid for data in AVI file    LPDWORD             lpdwFlags;      // flags in the AVI index.    LONG                lFrameNum;      // frame number of seq.    DWORD               dwFrameSize;    // reqested size in bytes. (if non zero)    DWORD               dwQuality;      // quality    // these are new fields    LPBITMAPINFOHEADER  lpbiPrev;       // format of previous frame    LPVOID              lpPrev;         // previous frame} ICCOMPRESS;/************************************************************************************************************************************************/#define ICCOMPRESSFRAMES_PADDING	0x00000001typedef struct {    DWORD               dwFlags;        // flags    LPBITMAPINFOHEADER  lpbiOutput;     // output format    LPARAM              lOutput;        // output identifier    LPBITMAPINFOHEADER  lpbiInput;      // format of frame to compress    LPARAM              lInput;         // input identifier    LONG                lStartFrame;    // start frame    LONG                lFrameCount;    // # of frames    LONG                lQuality;       // quality    LONG                lDataRate;      // data rate    LONG                lKeyRate;       // key frame rate    DWORD		dwRate;		// frame rate, as always    DWORD		dwScale;    DWORD		dwOverheadPerFrame;    DWORD		dwReserved2;    LONG (CALLBACK *GetData)(LPARAM lInput, LONG lFrame, LPVOID lpBits, LONG len);    LONG (CALLBACK *PutData)(LPARAM lOutput, LONG lFrame, LPVOID lpBits, LONG len);} ICCOMPRESSFRAMES;typedef struct {    DWORD		dwFlags;    LPARAM		lParam;    // messages for Status callback    #define ICSTATUS_START	    0    #define ICSTATUS_STATUS	    1	    // l == % done    #define ICSTATUS_END	    2    #define ICSTATUS_ERROR	    3	    // l == error string (LPSTR)    #define ICSTATUS_YIELD	    4

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -