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

📄 vfwmod.h

📁 用于机器人自动低分辨路的地图测绘程序。用于机器人控制测绘。分为远端控制端和本地控制端。控制电机为标准舵机。
💻 H
📖 第 1 页 / 共 5 页
字号:
typedef HANDLE HDRAWDIB; /* hdd *//*********************************************************************  DrawDib Flags**********************************************************************/#define DDF_UPDATE          0x0002          /* re-draw the last DIB */#define DDF_SAME_HDC        0x0004          /* HDC same as last call (all setup) */#define DDF_SAME_DRAW       0x0008          /* draw params are the same */#define DDF_DONTDRAW        0x0010          /* dont draw frame, just decompress */#define DDF_ANIMATE         0x0020          /* allow palette animation */#define DDF_BUFFER          0x0040          /* always buffer image */#define DDF_JUSTDRAWIT      0x0080          /* just draw it with GDI */#define DDF_FULLSCREEN      0x0100          /* use DisplayDib */#define DDF_BACKGROUNDPAL   0x0200	    /* Realize palette in background */#define DDF_NOTKEYFRAME     0x0400          /* this is a partial frame update, hint */#define DDF_HURRYUP         0x0800          /* hurry up please! */#define DDF_HALFTONE        0x1000          /* always halftone */#define DDF_PREROLL         DDF_DONTDRAW    /* Builing up a non-keyframe */#define DDF_SAME_DIB        DDF_SAME_DRAW#define DDF_SAME_SIZE       DDF_SAME_DRAW/*********************************************************************    DrawDib functions	*********************************************************************//***  DrawDibOpen()***/extern HDRAWDIB VFWAPI DrawDibOpen(void);/***  DrawDibClose()***/extern BOOL VFWAPI DrawDibClose(HDRAWDIB hdd);/*** DrawDibGetBuffer()***/extern LPVOID VFWAPI DrawDibGetBuffer(HDRAWDIB hdd, LPBITMAPINFOHEADER lpbi, DWORD dwSize, DWORD dwFlags);/***  DrawDibGetPalette()****  get the palette used for drawing DIBs***/extern HPALETTE VFWAPI DrawDibGetPalette(HDRAWDIB hdd);/***  DrawDibSetPalette()****  get the palette used for drawing DIBs***/extern BOOL VFWAPI DrawDibSetPalette(HDRAWDIB hdd, HPALETTE hpal);/***  DrawDibChangePalette()*/extern BOOL VFWAPI DrawDibChangePalette(HDRAWDIB hdd, int iStart, int iLen, LPPALETTEENTRY lppe);/***  DrawDibRealize()****  realize the palette in a HDD***/extern UINT VFWAPI DrawDibRealize(HDRAWDIB hdd, HDC hdc, BOOL fBackground);/***  DrawDibStart()****  start of streaming playback***/extern BOOL VFWAPI DrawDibStart(HDRAWDIB hdd, DWORD rate);/***  DrawDibStop()****  start of streaming playback***/extern BOOL VFWAPI DrawDibStop(HDRAWDIB hdd);/***  DrawDibBegin()****  prepare to draw***/extern BOOL VFWAPI DrawDibBegin(HDRAWDIB hdd,                                    HDC      hdc,                                    int      dxDst,                                    int      dyDst,                                    LPBITMAPINFOHEADER lpbi,                                    int      dxSrc,                                    int      dySrc,                                    UINT     wFlags);/***  DrawDibDraw()****  actualy draw a DIB to the screen.***/extern BOOL VFWAPI DrawDibDraw(HDRAWDIB hdd,                                   HDC      hdc,                                   int      xDst,                                   int      yDst,                                   int      dxDst,                                   int      dyDst,                                   LPBITMAPINFOHEADER lpbi,                                   LPVOID   lpBits,                                   int      xSrc,                                   int      ySrc,                                   int      dxSrc,                                   int      dySrc,                                   UINT     wFlags);/***  DrawDibUpdate()****  redraw the last image (may only be valid with DDF_BUFFER)*/#define DrawDibUpdate(hdd, hdc, x, y) \        DrawDibDraw(hdd, hdc, x, y, 0, 0, NULL, NULL, 0, 0, 0, 0, DDF_UPDATE)/***  DrawDibEnd()*/extern BOOL VFWAPI DrawDibEnd(HDRAWDIB hdd);/***  DrawDibTime()  [for debugging purposes only]*/typedef struct {    LONG    timeCount;    LONG    timeDraw;    LONG    timeDecompress;    LONG    timeDither;    LONG    timeStretch;    LONG    timeBlt;    LONG    timeSetDIBits;}   DRAWDIBTIME, FAR *LPDRAWDIBTIME;BOOL VFWAPI DrawDibTime(HDRAWDIB hdd, LPDRAWDIBTIME lpddtime);/* display profiling */#define PD_CAN_DRAW_DIB         0x0001      /* if you can draw at all */#define PD_CAN_STRETCHDIB       0x0002      /* basicly RC_STRETCHDIB */#define PD_STRETCHDIB_1_1_OK    0x0004      /* is it fast? */#define PD_STRETCHDIB_1_2_OK    0x0008      /* ... */#define PD_STRETCHDIB_1_N_OK    0x0010      /* ... */DWORD VFWAPI DrawDibProfileDisplay(LPBITMAPINFOHEADER lpbi);#else    #include <drawdib.h>#endif  /* not _WIN32 */#endif  /* NODRAWDIB *//**************************************************************************** * *  AVIFMT - AVI file format definitions * ****************************************************************************/#ifndef NOAVIFMT    #ifndef _INC_MMSYSTEM        typedef DWORD FOURCC;    #endif#ifdef _WIN32#ifdef _MSC_VER#pragma warning(disable:4200)#endif    /* The following is a short description of the AVI file format.  Please * see the accompanying documentation for a full explanation. * * An AVI file is the following RIFF form: * *	RIFF('AVI'  *	      LIST('hdrl' *		    avih(<MainAVIHeader>) *                  LIST ('strl' *                      strh(<Stream header>) *                      strf(<Stream format>) *                      ... additional header data *            LIST('movi'	  *      	  { LIST('rec'  *      		      SubChunk... *      		   ) *      	      | SubChunk } ....	     *            ) *            [ <AVIIndex> ] *      ) * *	The main file header specifies how many streams are present.  For *	each one, there must be a stream header chunk and a stream format *	chunk, enlosed in a 'strl' LIST chunk.  The 'strf' chunk contains *	type-specific format information; for a video stream, this should *	be a BITMAPINFO structure, including palette.  For an audio stream, *	this should be a WAVEFORMAT (or PCMWAVEFORMAT) structure. * *	The actual data is contained in subchunks within the 'movi' LIST  *	chunk.  The first two characters of each data chunk are the *	stream number with which that data is associated. * *	Some defined chunk types: *           Video Streams: *                  ##db:	RGB DIB bits *                  ##dc:	RLE8 compressed DIB bits *                  ##pc:	Palette Change * *           Audio Streams: *                  ##wb:	waveform audio bytes * * The grouping into LIST 'rec' chunks implies only that the contents of *   the chunk should be read into memory at the same time.  This *   grouping is used for files specifically intended to be played from  *   CD-ROM. * * The index chunk at the end of the file should contain one entry for  *   each data chunk in the file. *        * Limitations for the current software: *	Only one video stream and one audio stream are allowed. *	The streams must start at the beginning of the file. * *  * To register codec types please obtain a copy of the Multimedia * Developer Registration Kit from: * *  Microsoft Corporation *  Multimedia Systems Group *  Product Marketing *  One Microsoft Way *  Redmond, WA 98052-6399 * */#ifndef mmioFOURCC#define mmioFOURCC( ch0, ch1, ch2, ch3 )				\		( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) |	\		( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) )#endif/* Macro to make a TWOCC out of two characters */#ifndef aviTWOCC#define aviTWOCC(ch0, ch1) ((WORD)(BYTE)(ch0) | ((WORD)(BYTE)(ch1) << 8))#endiftypedef WORD TWOCC;/* form types, list types, and chunk types */#define formtypeAVI             mmioFOURCC('A', 'V', 'I', ' ')#define listtypeAVIHEADER       mmioFOURCC('h', 'd', 'r', 'l')#define ckidAVIMAINHDR          mmioFOURCC('a', 'v', 'i', 'h')#define listtypeSTREAMHEADER    mmioFOURCC('s', 't', 'r', 'l')#define ckidSTREAMHEADER        mmioFOURCC('s', 't', 'r', 'h')#define ckidSTREAMFORMAT        mmioFOURCC('s', 't', 'r', 'f')#define ckidSTREAMHANDLERDATA   mmioFOURCC('s', 't', 'r', 'd')#define ckidSTREAMNAME		mmioFOURCC('s', 't', 'r', 'n')#define listtypeAVIMOVIE        mmioFOURCC('m', 'o', 'v', 'i')#define listtypeAVIRECORD       mmioFOURCC('r', 'e', 'c', ' ')#define ckidAVINEWINDEX         mmioFOURCC('i', 'd', 'x', '1')/*** Stream types for the <fccType> field of the stream header.*/#define streamtypeVIDEO         mmioFOURCC('v', 'i', 'd', 's')#define streamtypeAUDIO         mmioFOURCC('a', 'u', 'd', 's')#define streamtypeMIDI		mmioFOURCC('m', 'i', 'd', 's')#define streamtypeTEXT          mmioFOURCC('t', 'x', 't', 's')/* Basic chunk types */#define cktypeDIBbits           aviTWOCC('d', 'b')#define cktypeDIBcompressed     aviTWOCC('d', 'c')#define cktypePALchange         aviTWOCC('p', 'c')#define cktypeWAVEbytes         aviTWOCC('w', 'b')/* Chunk id to use for extra chunks for padding. */#define ckidAVIPADDING          mmioFOURCC('J', 'U', 'N', 'K')/*** Useful macros**** Warning: These are nasty macro, and MS C 6.0 compiles some of them** incorrectly if optimizations are on.  Ack.*//* Macro to get stream number out of a FOURCC ckid */#define FromHex(n)	(((n) >= 'A') ? ((n) + 10 - 'A') : ((n) - '0'))#define StreamFromFOURCC(fcc) ((WORD) ((FromHex(LOBYTE(LOWORD(fcc))) << 4) + \                                             (FromHex(HIBYTE(LOWORD(fcc))))))/* Macro to get TWOCC chunk type out of a FOURCC ckid */#define TWOCCFromFOURCC(fcc)    HIWORD(fcc)/* Macro to make a ckid for a chunk out of a TWOCC and a stream number** from 0-255.*/#define ToHex(n)	((BYTE) (((n) > 9) ? ((n) - 10 + 'A') : ((n) + '0')))#define MAKEAVICKID(tcc, stream) \        MAKELONG((ToHex((stream) & 0x0f) << 8) | \			    (ToHex(((stream) & 0xf0) >> 4)), tcc)/*** Main AVI File Header */	     		     /* flags for use in <dwFlags> in AVIFileHdr */#define AVIF_HASINDEX		0x00000010	// Index at end of file?#define AVIF_MUSTUSEINDEX	0x00000020#define AVIF_ISINTERLEAVED	0x00000100#define AVIF_TRUSTCKTYPE	0x00000800	// Use CKType to find key frames?#define AVIF_WASCAPTUREFILE	0x00010000#define AVIF_COPYRIGHTED	0x00020000/* The AVI File Header LIST chunk should be padded to this size */#define AVI_HEADERSIZE  2048                    // size of AVI header listtypedef struct{    DWORD		dwMicroSecPerFrame;	// frame display rate (or 0L)    DWORD		dwMaxBytesPerSec;	// max. transfer rate    DWORD		dwPaddingGranularity;	// pad to multiples of this                                                // size; normally 2K.    DWORD		dwFlags;		// the ever-present flags    DWORD		dwTotalFrames;		// # frames in file    DWORD		dwInitialFrames;    DWORD		dwStreams;    DWORD		dwSuggestedBufferSize;        DWORD		dwWidth;    DWORD		dwHeight;        DWORD		dwReserved[4];} MainAVIHeader;/*** Stream header*/#define AVISF_DISABLED			0x00000001#define AVISF_VIDEO_PALCHANGES		0x00010000typedef struct {    FOURCC		fccType;    FOURCC		fccHandler;    DWORD		dwFlags;	/* Contains AVITF_* flags */    WORD		wPriority;    WORD		wLanguage;    DWORD		dwInitialFrames;    DWORD		dwScale;	    DWORD		dwRate;	/* dwRate / dwScale == samples/second */    DWORD		dwStart;    DWORD		dwLength; /* In units above... */    DWORD		dwSuggestedBufferSize;    DWORD		dwQuality;    DWORD		dwSampleSize;    RECT		rcFrame;} AVIStreamHeader;/* Flags for index */#define AVIIF_LIST          0x00000001L // chunk is a 'LIST'#define AVIIF_KEYFRAME      0x00000010L // this frame is a key frame.#define AVIIF_NOTIME	    0x00000100L // this frame doesn't take any time#define AVIIF_COMPUSE       0x0FFF0000L // these bits are for compressor usetypedef struct{    DWORD		ckid;

⌨️ 快捷键说明

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