📄 vfw.h
字号:
typedef struct { DWORD dwFlags; LPBITMAPINFOHEADER lpbiOutput; LPVOID lpOutput; LPBITMAPINFOHEADER lpbiInput; LPVOID lpInput; LPDWORD lpckid; LPDWORD lpdwFlags; LONG lFrameNum; DWORD dwFrameSize; DWORD dwQuality; LPBITMAPINFOHEADER lpbiPrev; LPVOID lpPrev;} ICCOMPRESS;typedef struct { DWORD dwFlags; LPBITMAPINFOHEADER lpbiOutput; LPARAM lOutput; LPBITMAPINFOHEADER lpbiInput; LPARAM lInput; LONG lStartFrame; LONG lFrameCount; LONG lQuality; LONG lDataRate; LONG lKeyRate; DWORD dwRate; DWORD dwScale; DWORD dwOverheadPerFrame; DWORD dwReserved2; LONG (CALLBACK *GetData)(LPARAM,LONG,LPVOID,LONG); LONG (CALLBACK *PutData)(LPARAM,LONG,LPVOID,LONG);} ICCOMPRESSFRAMES;typedef struct { DWORD dwFlags; LPARAM lParam; LONG (CALLBACK *Status)(LPARAM,UINT,LONG);} ICSETSTATUSPROC;typedef struct { DWORD dwSize; DWORD fccType; DWORD fccHandler; DWORD dwFlags; DWORD dwVersion; DWORD dwVersionICM; WCHAR szName[16]; WCHAR szDescription[128]; WCHAR szDriver[128];} ICINFO;typedef struct { DWORD dwFlags; LPBITMAPINFOHEADER lpbiInput; LPVOID lpInput; LPBITMAPINFOHEADER lpbiOutput; LPVOID lpOutput; DWORD ckid;} ICDECOMPRESS;typedef struct { DWORD dwFlags; LPBITMAPINFOHEADER lpbiSrc; LPVOID lpSrc; LPBITMAPINFOHEADER lpbiDst; LPVOID lpDst; INT xDst; INT yDst; INT dxDst; INT dyDst; INT xSrc; INT ySrc; INT dxSrc; INT dySrc;} ICDECOMPRESSEX;typedef struct { DWORD dwFlags; LPBITMAPINFOHEADER lpbiIn; LPBITMAPINFOHEADER lpbiSuggest; INT dxSrc; INT dySrc; INT dxDst; INT dyDst; HIC hicDecompressor;} ICDRAWSUGGEST;typedef struct { DWORD dwFlags; INT iStart; INT iLen; LPPALETTEENTRY lppe;} ICPALETTE;typedef struct { DWORD dwFlags; HPALETTE hpal; HWND hwnd; HDC hdc; INT xDst; INT yDst; INT dxDst; INT dyDst; LPBITMAPINFOHEADER lpbi; INT xSrc; INT ySrc; INT dxSrc; INT dySrc; DWORD dwRate; DWORD dwScale;} ICDRAWBEGIN;typedef struct { DWORD dwFlags; LPVOID lpFormat; LPVOID lpData; DWORD cbData; LONG lTime;} ICDRAW;typedef struct { LONG cbSize; DWORD dwFlags; HIC hic; DWORD fccType; DWORD fccHandler; LPBITMAPINFO lpbiIn; LPBITMAPINFO lpbiOut; LPVOID lpBitsOut; LPVOID lpBitsPrev; LONG lFrame; LONG lKey; LONG lDataRate; LONG lQ; LONG lKeyCount; LPVOID lpState; LONG cbState;} COMPVARS, *PCOMPVARS;typedef struct _MainAVIHeader{ DWORD dwMicroSecPerFrame; DWORD dwMaxBytesPerSec; DWORD dwPaddingGranularity; DWORD dwFlags; DWORD dwTotalFrames; DWORD dwInitialFrames; DWORD dwStreams; DWORD dwSuggestedBufferSize; DWORD dwWidth; DWORD dwHeight; DWORD dwReserved[4];} MainAVIHeader;typedef struct { FOURCC fccType; FOURCC fccHandler; DWORD dwFlags; WORD wPriority; WORD wLanguage; DWORD dwInitialFrames; DWORD dwScale; DWORD dwRate; DWORD dwStart; DWORD dwLength; DWORD dwSuggestedBufferSize; DWORD dwQuality; DWORD dwSampleSize; RECT rcFrame;} AVIStreamHeader;typedef struct _AVIINDEXENTRY { DWORD ckid; DWORD dwFlags; DWORD dwChunkOffset; DWORD dwChunkLength;} AVIINDEXENTRY;typedef struct _AVIPALCHANGE { BYTE bFirstEntry; BYTE bNumEntries; WORD wFlags; PALETTEENTRY peNew[1];} AVIPALCHANGE;typedef struct _AVISTREAMINFOA { DWORD fccType; DWORD fccHandler; DWORD dwFlags; DWORD dwCaps; WORD wPriority; WORD wLanguage; DWORD dwScale; DWORD dwRate; DWORD dwStart; DWORD dwLength; DWORD dwInitialFrames; DWORD dwSuggestedBufferSize; DWORD dwQuality; DWORD dwSampleSize; RECT rcFrame; DWORD dwEditCount; DWORD dwFormatChangeCount; CHAR szName[64];} AVISTREAMINFOA, * LPAVISTREAMINFOA, *PAVISTREAMINFOA;typedef struct _AVISTREAMINFOW { DWORD fccType; DWORD fccHandler; DWORD dwFlags; DWORD dwCaps; WORD wPriority; WORD wLanguage; DWORD dwScale; DWORD dwRate; DWORD dwStart; DWORD dwLength; DWORD dwInitialFrames; DWORD dwSuggestedBufferSize; DWORD dwQuality; DWORD dwSampleSize; RECT rcFrame; DWORD dwEditCount; DWORD dwFormatChangeCount; WCHAR szName[64];} AVISTREAMINFOW, * LPAVISTREAMINFOW, *PAVISTREAMINFOW;typedef struct _AVIFILEINFOW { DWORD dwMaxBytesPerSec; DWORD dwFlags; DWORD dwCaps; DWORD dwStreams; DWORD dwSuggestedBufferSize; DWORD dwWidth; DWORD dwHeight; DWORD dwScale; DWORD dwRate; DWORD dwLength; DWORD dwEditCount; WCHAR szFileType[64];} AVIFILEINFOW, *LPAVIFILEINFOW, *PAVIFILEINFOW;typedef struct _AVIFILEINFOA { DWORD dwMaxBytesPerSec; DWORD dwFlags; DWORD dwCaps; DWORD dwStreams; DWORD dwSuggestedBufferSize; DWORD dwWidth; DWORD dwHeight; DWORD dwScale; DWORD dwRate; DWORD dwLength; DWORD dwEditCount; CHAR szFileType[64];} AVIFILEINFOA, *LPAVIFILEINFOA, *PAVIFILEINFOA;typedef struct _AVICOMPRESSOPTIONS { DWORD fccType; DWORD fccHandler; DWORD dwKeyFrameEvery; DWORD dwQuality; DWORD dwBytesPerSecond; DWORD dwFlags; LPVOID lpFormat; DWORD cbFormat; LPVOID lpParms; DWORD cbParms; DWORD dwInterleaveEvery;} AVICOMPRESSOPTIONS, *LPAVICOMPRESSOPTIONS,*PAVICOMPRESSOPTIONS;#if !defined (_OBJC_NO_COM)#define DEFINE_AVIGUID(name,l,w1,w2) DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)DEFINE_AVIGUID(IID_IAVIFile,0x00020020,0,0);DEFINE_AVIGUID(IID_IAVIStream,0x00020021,0,0);DEFINE_AVIGUID(IID_IAVIStreaming,0x00020022,0,0);DEFINE_AVIGUID(IID_IGetFrame,0x00020023,0,0);DEFINE_AVIGUID(IID_IAVIEditStream,0x00020024,0,0);DEFINE_AVIGUID(CLSID_AVIFile,0x00020000,0,0);#define INTERFACE IAVIStreamDECLARE_INTERFACE_(IAVIStream, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(Create)(THIS_ LPARAM,LPARAM) PURE; STDMETHOD(Info)(THIS_ AVISTREAMINFOW*,LONG) PURE; STDMETHOD_(LONG,FindSample)(THIS_ LONG,LONG) PURE; STDMETHOD(ReadFormat)(THIS_ LONG,LPVOID,LONG*) PURE; STDMETHOD(SetFormat)(THIS_ LONG,LPVOID,LONG) PURE; STDMETHOD(Read)(THIS_ LONG,LONG,LPVOID,LONG,LONG*,LONG*) PURE; STDMETHOD(Write)(THIS_ LONG,LONG,LPVOID,LONG,DWORD,LONG*,LONG*) PURE; STDMETHOD(Delete)(THIS_ LONG,LONG) PURE; STDMETHOD(ReadData)(THIS_ DWORD,LPVOID,LONG*) PURE; STDMETHOD(WriteData)(THIS_ DWORD,LPVOID,LONG) PURE; STDMETHOD(SetInfo)(THIS_ AVISTREAMINFOW*,LONG) PURE;};#undef INTERFACEtypedef IAVIStream *PAVISTREAM;#define INTERFACE IAVIStreamingDECLARE_INTERFACE_(IAVIStreaming, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(Begin)(THIS_ LONG,LONG,LONG) PURE; STDMETHOD(End)(THIS) PURE;};#undef INTERFACEtypedef IAVIStreaming *PAVISTREAMING;#define INTERFACE IAVIEditStreamDECLARE_INTERFACE_(IAVIEditStream, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(Cut)(THIS_ LONG*,LONG*,PAVISTREAM*) PURE; STDMETHOD(Copy)(THIS_ LONG*,LONG*,PAVISTREAM*) PURE; STDMETHOD(Paste)(THIS_ LONG*,LONG*,PAVISTREAM,LONG,LONG) PURE; STDMETHOD(Clone)(THIS_ PAVISTREAM*) PURE; STDMETHOD(SetInfo)(THIS_ LPAVISTREAMINFOW,LONG) PURE;};#undef INTERFACEtypedef IAVIEditStream *PAVIEDITSTREAM;#define INTERFACE IAVIFileDECLARE_INTERFACE_(IAVIFile, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(Info)(THIS_ AVIFILEINFOW*,LONG) PURE; STDMETHOD(GetStream)(THIS_ PAVISTREAM*,DWORD,LONG) PURE; STDMETHOD(CreateStream)(THIS_ PAVISTREAM*,AVISTREAMINFOW*) PURE; STDMETHOD(WriteData)(THIS_ DWORD,LPVOID,LONG) PURE; STDMETHOD(ReadData)(THIS_ DWORD,LPVOID,LONG*) PURE; STDMETHOD(EndRecord)(THIS) PURE; STDMETHOD(DeleteStream)(THIS_ DWORD,LONG) PURE;};#undef INTERFACEtypedef IAVIFile *PAVIFILE;#define INTERFACE IGetFrameDECLARE_INTERFACE_(IGetFrame, IUnknown){ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD_(LPVOID,GetFrame)(THIS_ LONG) PURE; STDMETHOD(Begin)(THIS_ LONG,LONG,LONG) PURE; STDMETHOD(End)(THIS) PURE; STDMETHOD(SetFormat)(THIS_ LPBITMAPINFOHEADER,LPVOID,INT,INT,INT,INT) PURE;};#undef INTERFACEtypedef IGetFrame *PGETFRAME;#endif /* !defined (_OBJC_NO_COM) */DWORD VFWAPI VideoForWindowsVersion(VOID);LONG VFWAPI InitVFW(VOID);LONG VFWAPI TermVFW(VOID);DWORD VFWAPIV ICCompress(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID,LPDWORD,LPDWORD,LONG,DWORD,DWORD,LPBITMAPINFOHEADER,LPVOID);DWORD VFWAPIV ICDecompress(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID);LRESULT VFWAPI ICSendMessage(HIC,UINT,DWORD,DWORD);HANDLE VFWAPI ICImageCompress(HIC,UINT,LPBITMAPINFO,LPVOID,LPBITMAPINFO,LONG,LONG*);HANDLE VFWAPI ICImageDecompress(HIC,UINT,LPBITMAPINFO,LPVOID,LPBITMAPINFO);BOOL VFWAPI ICInfo(DWORD,DWORD,ICINFO*);BOOL VFWAPI ICInstall(DWORD,DWORD,LPARAM,LPSTR,UINT);BOOL VFWAPI ICRemove(DWORD,DWORD,UINT);LRESULT VFWAPI ICGetInfo(HIC,ICINFO*,DWORD);HIC VFWAPI ICOpen(DWORD,DWORD,UINT);HIC VFWAPI ICOpenFunction(DWORD,DWORD,UINT,FARPROC);LRESULT VFWAPI ICClose(HIC hic);HIC VFWAPI ICLocate(DWORD,DWORD,LPBITMAPINFOHEADER,LPBITMAPINFOHEADER,WORD);HIC VFWAPI ICGetDisplayFormat(HIC,LPBITMAPINFOHEADER,LPBITMAPINFOHEADER,INT,INT,INT);DWORD VFWAPIV ICDrawBegin(HIC,DWORD,HPALETTE,HWND,HDC,INT,INT,INT,INT,LPBITMAPINFOHEADER,INT,INT,INT,INT,DWORD,DWORD);DWORD VFWAPIV ICDraw(HIC,DWORD,LPVOID,LPVOID,DWORD,LONG);BOOL VFWAPI ICCompressorChoose(HWND,UINT,LPVOID,LPVOID,PCOMPVARS,LPSTR);BOOL VFWAPI ICSeqCompressFrameStart(PCOMPVARS,LPBITMAPINFO);void VFWAPI ICSeqCompressFrameEnd(PCOMPVARS);LPVOID VFWAPI ICSeqCompressFrame(PCOMPVARS,UINT,LPVOID,BOOL*,LONG*);void VFWAPI ICCompressorFree(PCOMPVARS);#if !defined (_OBJC_NO_COM)ULONG WINAPI AVIStreamAddRef(PAVISTREAM);ULONG WINAPI AVIStreamRelease(PAVISTREAM);HRESULT WINAPI AVIStreamCreate(PAVISTREAM*,LONG,LONG,CLSID*);HRESULT WINAPI AVIStreamInfoA(PAVISTREAM,AVISTREAMINFOA*,LONG);HRESULT WINAPI AVIStreamInfoW(PAVISTREAM,AVISTREAMINFOW*,LONG);HRESULT WINAPI AVIStreamFindSample(PAVISTREAM,LONG,DWORD);HRESULT WINAPI AVIStreamReadFormat(PAVISTREAM,LONG,LPVOID,LONG*);HRESULT WINAPI AVIStreamSetFormat(PAVISTREAM,LONG,LPVOID,LONG);HRESULT WINAPI AVIStreamRead(PAVISTREAM,LONG,LONG,LPVOID,LONG,LONG*,LONG*);HRESULT WINAPI AVIStreamWrite(PAVISTREAM,LONG,LONG,LPVOID,LONG,DWORD,LONG*,LONG*);HRESULT WINAPI AVIStreamReadData(PAVISTREAM,DWORD,LPVOID,LONG*);HRESULT WINAPI AVIStreamWriteData(PAVISTREAM,DWORD,LPVOID,LONG);PGETFRAME WINAPI AVIStreamGetFrameOpen(PAVISTREAM,LPBITMAPINFOHEADER);LPVOID WINAPI AVIStreamGetFrame(PGETFRAME,LONG);HRESULT WINAPI AVIStreamGetFrameClose(PGETFRAME);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -