📄 vfw.h
字号:
#ifndef _VFW_H#define _VFW_H#if __GNUC__ >= 3#pragma GCC system_header#endif#ifndef _WINDOWS_H#include <windows.h>#endif#ifndef _MMSYSTEM_H#include <mmsystem.h>#endif#if !defined (_OLE2_H) && !defined (_OBJC_NO_COM)#include <ole2.h>#endif#define VFWAPI WINAPI#define VFWAPIV WINAPIV#include <pshpack8.h>#ifdef __cplusplusextern "C" {#endif#define ICERR_OK 0#define ICERR_DONTDRAW 1#define ICERR_NEWPALETTE 2#define ICERR_GOTOKEYFRAME 3#define ICERR_STOPDRAWING 4#define ICERR_UNSUPPORTED -1#define ICERR_BADFORMAT -2#define ICERR_MEMORY -3#define ICERR_INTERNAL -4#define ICERR_BADFLAGS -5#define ICERR_BADPARAM -6#define ICERR_BADSIZE -7#define ICERR_BADHANDLE -8#define ICERR_CANTUPDATE -9#define ICERR_ABORT -10#define ICERR_ERROR -100#define ICERR_BADBITDEPTH -200#define ICERR_BADIMAGESIZE -201#define ICERR_CUSTOM -400#define ICCOMPRESSFRAMES_PADDING 0x01#define ICM_USER (DRV_USER+0x0000)#define ICM_RESERVED_LOW (DRV_USER+0x1000)#define ICM_RESERVED_HIGH (DRV_USER+0x2000)#define ICM_RESERVED ICM_RESERVED_LOW#define ICM_GETSTATE (ICM_RESERVED+0)#define ICM_SETSTATE (ICM_RESERVED+1)#define ICM_GETINFO (ICM_RESERVED+2)#define ICM_CONFIGURE (ICM_RESERVED+10)#define ICM_ABOUT (ICM_RESERVED+11)#define ICM_GETDEFAULTQUALITY (ICM_RESERVED+30)#define ICM_GETQUALITY (ICM_RESERVED+31)#define ICM_SETQUALITY (ICM_RESERVED+32)#define ICM_SET (ICM_RESERVED+40)#define ICM_GET (ICM_RESERVED+41)#define ICM_FRAMERATE mmioFOURCC('F','r','m','R')#define ICM_KEYFRAMERATE mmioFOURCC('K','e','y','R')#define ICM_COMPRESS_GET_FORMAT (ICM_USER+4)#define ICM_COMPRESS_GET_SIZE (ICM_USER+5)#define ICM_COMPRESS_QUERY (ICM_USER+6)#define ICM_COMPRESS_BEGIN (ICM_USER+7)#define ICM_COMPRESS (ICM_USER+8)#define ICM_COMPRESS_END (ICM_USER+9)#define ICM_DECOMPRESS_GET_FORMAT (ICM_USER+10)#define ICM_DECOMPRESS_QUERY (ICM_USER+11)#define ICM_DECOMPRESS_BEGIN (ICM_USER+12)#define ICM_DECOMPRESS (ICM_USER+13)#define ICM_DECOMPRESS_END (ICM_USER+14)#define ICM_DECOMPRESS_SET_PALETTE (ICM_USER+29)#define ICM_DECOMPRESS_GET_PALETTE (ICM_USER+30)#define ICM_DRAW_QUERY (ICM_USER+31)#define ICM_DRAW_BEGIN (ICM_USER+15)#define ICM_DRAW_GET_PALETTE (ICM_USER+16)#define ICM_DRAW_START (ICM_USER+18)#define ICM_DRAW_STOP (ICM_USER+19)#define ICM_DRAW_END (ICM_USER+21)#define ICM_DRAW_GETTIME (ICM_USER+32)#define ICM_DRAW (ICM_USER+33)#define ICM_DRAW_WINDOW (ICM_USER+34)#define ICM_DRAW_SETTIME (ICM_USER+35)#define ICM_DRAW_REALIZE (ICM_USER+36)#define ICM_DRAW_FLUSH (ICM_USER+37)#define ICM_DRAW_RENDERBUFFER (ICM_USER+38)#define ICM_DRAW_START_PLAY (ICM_USER+39)#define ICM_DRAW_STOP_PLAY (ICM_USER+40)#define ICM_DRAW_SUGGESTFORMAT (ICM_USER+50)#define ICM_DRAW_CHANGEPALETTE (ICM_USER+51)#define ICM_GETBUFFERSWANTED (ICM_USER+41)#define ICM_GETDEFAULTKEYFRAMERATE (ICM_USER+42)#define ICM_DECOMPRESSEX_BEGIN (ICM_USER+60)#define ICM_DECOMPRESSEX_QUERY (ICM_USER+61)#define ICM_DECOMPRESSEX (ICM_USER+62)#define ICM_DECOMPRESSEX_END (ICM_USER+63)#define ICM_COMPRESS_FRAMES_INFO (ICM_USER+70)#define ICM_SET_STATUS_PROC (ICM_USER+72)#define ICMF_CONFIGURE_QUERY 0x01#define ICCOMPRESS_KEYFRAME 0x01#define ICSTATUS_START 0#define ICSTATUS_STATUS 1#define ICSTATUS_END 2#define ICSTATUS_ERROR 3#define ICSTATUS_YIELD 4#define ICMODE_COMPRESS 1#define ICMODE_DECOMPRESS 2#define ICMODE_FASTDECOMPRESS 3#define ICMODE_QUERY 4#define ICMODE_FASTCOMPRESS 5#define ICMODE_DRAW 8#define ICQUALITY_LOW 0#define ICQUALITY_HIGH 10000#define ICQUALITY_DEFAULT -1#define VIDCF_QUALITY 0x01#define VIDCF_CRUNCH 0x02#define VIDCF_TEMPORAL 0x04#define VIDCF_COMPRESSFRAMES 0x08#define VIDCF_DRAW 0x10#define VIDCF_FASTTEMPORALC 0x20#define VIDCF_FASTTEMPORALD 0x80#define VIDCF_QUALITYTIME 0x40#define VIDCF_FASTTEMPORAL (VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD)#define ICMF_ABOUT_QUERY 0x01#define ICDECOMPRESS_HURRYUP 0x80000000#define ICDECOMPRESS_UPDATE 0x40000000#define ICDECOMPRESS_PREROLL 0x20000000#define ICDECOMPRESS_NULLFRAME 0x10000000#define ICDECOMPRESS_NOTKEYFRAME 0x8000000#define ICDRAW_QUERY 0x01L#define ICDRAW_FULLSCREEN 0x02L#define ICDRAW_HDC 0x04L#define ICDRAW_ANIMATE 0x08L#define ICDRAW_CONTINUE 0x10L#define ICDRAW_MEMORYDC 0x20L#define ICDRAW_UPDATING 0x40L#define ICDRAW_RENDER 0x80L#define ICDRAW_BUFFER 0x100L#define ICINSTALL_UNICODE 0x8000#define ICINSTALL_FUNCTION 0x01#define ICINSTALL_DRIVER 0x02#define ICINSTALL_HDRV 0x04#define ICINSTALL_DRIVERW 0x8002#define ICDRAW_HURRYUP 0x80000000L#define ICDRAW_UPDATE 0x40000000L#define ICDRAW_PREROLL 0x20000000L#define ICDRAW_NULLFRAME 0x10000000L#define ICDRAW_NOTKEYFRAME 0x8000000L#define ICMF_COMPVARS_VALID 0x01#define ICMF_CHOOSE_KEYFRAME 0x01#define ICMF_CHOOSE_DATARATE 0x02#define ICMF_CHOOSE_PREVIEW 0x04#define ICMF_CHOOSE_ALLCOMPRESSORS 0x08#define ICTYPE_VIDEO mmioFOURCC('v','i','d','c')#define ICTYPE_AUDIO mmioFOURCC('a','u','d','c')#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')#define streamtypeANY 0UL#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')#define cktypeDIBbits aviTWOCC('d','b')#define cktypeDIBcompressed aviTWOCC('d','c')#define cktypePALchange aviTWOCC('p','c')#define cktypeWAVEbytes aviTWOCC('w','b')#define ckidAVIPADDING mmioFOURCC('J','U','N','K')#define FromHex(n) (((n)>='A')?((n)+10-'A'):((n)-'0'))#define StreamFromFOURCC(fcc) ((WORD)((FromHex(LOBYTE(LOWORD(fcc)))<<4)+(FromHex(HIBYTE(LOWORD(fcc))))))#define TWOCCFromFOURCC(fcc) HIWORD(fcc)#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)#define AVIF_HASINDEX 0x10#define AVIF_MUSTUSEINDEX 0x20#define AVIF_ISINTERLEAVED 0x100#define AVIF_TRUSTCKTYPE 0x800#define AVIF_WASCAPTUREFILE 0x10000#define AVIF_COPYRIGHTED 0x20000#define AVI_HEADERSIZE 2048#define AVISF_DISABLED 0x01#define AVISF_VIDEO_PALCHANGES 0x10000#define AVIIF_LIST 0x01#define AVIIF_TWOCC 0x02#define AVIIF_KEYFRAME 0x10#define AVIIF_NOTIME 0x100#define AVIIF_COMPUSE 0xfff0000#define AVIIF_KEYFRAME 0x10#define AVIGETFRAMEF_BESTDISPLAYFMT 1#define AVISTREAMINFO_DISABLED 0x01#define AVISTREAMINFO_FORMATCHANGES 0x10000#define AVIFILEINFO_HASINDEX 0x10#define AVIFILEINFO_MUSTUSEINDEX 0x20#define AVIFILEINFO_ISINTERLEAVED 0x100#define AVIFILEINFO_TRUSTCKTYPE 0x800#define AVIFILEINFO_WASCAPTUREFILE 0x10000#define AVIFILEINFO_COPYRIGHTED 0x20000#define AVIFILECAPS_CANREAD 0x01#define AVIFILECAPS_CANWRITE 0x02#define AVIFILECAPS_ALLKEYFRAMES 0x10#define AVIFILECAPS_NOCOMPRESSION 0x20#define AVICOMPRESSF_INTERLEAVE 0x01#define AVICOMPRESSF_DATARATE 0x02#define AVICOMPRESSF_KEYFRAMES 0x04#define AVICOMPRESSF_VALID 0x08#define FIND_DIR 0x0000000fL#define FIND_NEXT 0x00000001L#define FIND_PREV 0x00000004L#define FIND_FROM_START 0x00000008L#define FIND_TYPE 0x000000f0L#define FIND_KEY 0x00000010L#define FIND_ANY 0x00000020L#define FIND_FORMAT 0x00000040L#define FIND_RET 0x0000f000L#define FIND_POS 0x00000000L#define FIND_LENGTH 0x00001000L#define FIND_OFFSET 0x00002000L#define FIND_SIZE 0x00003000L#define FIND_INDEX 0x00004000L#define AVIERR_OK 0#define MAKE_AVIERR(e) MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000+e)#define AVIERR_UNSUPPORTED MAKE_AVIERR(101)#define AVIERR_BADFORMAT MAKE_AVIERR(102)#define AVIERR_MEMORY MAKE_AVIERR(103)#define AVIERR_INTERNAL MAKE_AVIERR(104)#define AVIERR_BADFLAGS MAKE_AVIERR(105)#define AVIERR_BADPARAM MAKE_AVIERR(106)#define AVIERR_BADSIZE MAKE_AVIERR(107)#define AVIERR_BADHANDLE MAKE_AVIERR(108)#define AVIERR_FILEREAD MAKE_AVIERR(109)#define AVIERR_FILEWRITE MAKE_AVIERR(110)#define AVIERR_FILEOPEN MAKE_AVIERR(111)#define AVIERR_COMPRESSOR MAKE_AVIERR(112)#define AVIERR_NOCOMPRESSOR MAKE_AVIERR(113)#define AVIERR_READONLY MAKE_AVIERR(114)#define AVIERR_NODATA MAKE_AVIERR(115)#define AVIERR_BUFFERTOOSMALL MAKE_AVIERR(116)#define AVIERR_CANTCOMPRESS MAKE_AVIERR(117)#define AVIERR_USERABORT MAKE_AVIERR(198)#define AVIERR_ERROR MAKE_AVIERR(199)#define MCIWNDOPENF_NEW 0x0001#define MCIWNDF_NOAUTOSIZEWINDOW 0x0001#define MCIWNDF_NOPLAYBAR 0x0002#define MCIWNDF_NOAUTOSIZEMOVIE 0x0004#define MCIWNDF_NOMENU 0x0008#define MCIWNDF_SHOWNAME 0x0010#define MCIWNDF_SHOWPOS 0x0020#define MCIWNDF_SHOWMODE 0x0040#define MCIWNDF_SHOWALL 0x0070#define MCIWNDF_NOTIFYMODE 0x0100#define MCIWNDF_NOTIFYPOS 0x0200#define MCIWNDF_NOTIFYSIZE 0x0400#define MCIWNDF_NOTIFYERROR 0x1000#define MCIWNDF_NOTIFYALL 0x1F00#define MCIWNDF_NOTIFYANSI 0x0080#define MCIWNDF_NOTIFYMEDIAA 0x0880#define MCIWNDF_NOTIFYMEDIAW 0x0800#define MCIWNDF_RECORD 0x2000#define MCIWNDF_NOERRORDLG 0x4000#define MCIWNDF_NOOPEN 0x8000#define MCIWNDM_GETDEVICEID (WM_USER + 100)#define MCIWNDM_GETSTART (WM_USER + 103)#define MCIWNDM_GETLENGTH (WM_USER + 104)#define MCIWNDM_GETEND (WM_USER + 105)#define MCIWNDM_EJECT (WM_USER + 107)#define MCIWNDM_SETZOOM (WM_USER + 108)#define MCIWNDM_GETZOOM (WM_USER + 109)#define MCIWNDM_SETVOLUME (WM_USER + 110)#define MCIWNDM_GETVOLUME (WM_USER + 111)#define MCIWNDM_SETSPEED (WM_USER + 112)#define MCIWNDM_GETSPEED (WM_USER + 113)#define MCIWNDM_SETREPEAT (WM_USER + 114)#define MCIWNDM_GETREPEAT (WM_USER + 115)#define MCIWNDM_REALIZE (WM_USER + 118)#define MCIWNDM_VALIDATEMEDIA (WM_USER + 121)#define MCIWNDM_PLAYFROM (WM_USER + 122)#define MCIWNDM_PLAYTO (WM_USER + 123)#define MCIWNDM_GETPALETTE (WM_USER + 126)#define MCIWNDM_SETPALETTE (WM_USER + 127)#define MCIWNDM_SETTIMERS (WM_USER + 129)#define MCIWNDM_SETACTIVETIMER (WM_USER + 130)#define MCIWNDM_SETINACTIVETIMER (WM_USER + 131)#define MCIWNDM_GETACTIVETIMER (WM_USER + 132)#define MCIWNDM_GETINACTIVETIMER (WM_USER + 133)#define MCIWNDM_CHANGESTYLES (WM_USER + 135)#define MCIWNDM_GETSTYLES (WM_USER + 136)#define MCIWNDM_GETALIAS (WM_USER + 137)#define MCIWNDM_PLAYREVERSE (WM_USER + 139)#define MCIWNDM_GET_SOURCE (WM_USER + 140)#define MCIWNDM_PUT_SOURCE (WM_USER + 141)#define MCIWNDM_GET_DEST (WM_USER + 142)#define MCIWNDM_PUT_DEST (WM_USER + 143)#define MCIWNDM_CAN_PLAY (WM_USER + 144)#define MCIWNDM_CAN_WINDOW (WM_USER + 145)#define MCIWNDM_CAN_RECORD (WM_USER + 146)#define MCIWNDM_CAN_SAVE (WM_USER + 147)#define MCIWNDM_CAN_EJECT (WM_USER + 148)#define MCIWNDM_CAN_CONFIG (WM_USER + 149)#define MCIWNDM_PALETTEKICK (WM_USER + 150)#define MCIWNDM_OPENINTERFACE (WM_USER + 151)#define MCIWNDM_SETOWNER (WM_USER + 152)#define MCIWNDM_SENDSTRINGA (WM_USER + 101)#define MCIWNDM_GETPOSITIONA (WM_USER + 102)#define MCIWNDM_GETMODEA (WM_USER + 106)#define MCIWNDM_SETTIMEFORMATA (WM_USER + 119)#define MCIWNDM_GETTIMEFORMATA (WM_USER + 120)#define MCIWNDM_GETFILENAMEA (WM_USER + 124)#define MCIWNDM_GETDEVICEA (WM_USER + 125)#define MCIWNDM_GETERRORA (WM_USER + 128)#define MCIWNDM_NEWA (WM_USER + 134)#define MCIWNDM_RETURNSTRINGA (WM_USER + 138)#define MCIWNDM_OPENA (WM_USER + 153)#define MCIWNDM_SENDSTRINGW (WM_USER + 201)#define MCIWNDM_GETPOSITIONW (WM_USER + 202)#define MCIWNDM_GETMODEW (WM_USER + 206)#define MCIWNDM_SETTIMEFORMATW (WM_USER + 219)#define MCIWNDM_GETTIMEFORMATW (WM_USER + 220)#define MCIWNDM_GETFILENAMEW (WM_USER + 224)#define MCIWNDM_GETDEVICEW (WM_USER + 225)#define MCIWNDM_GETERRORW (WM_USER + 228)#define MCIWNDM_NEWW (WM_USER + 234)#define MCIWNDM_RETURNSTRINGW (WM_USER + 238)#define MCIWNDM_OPENW (WM_USER + 252)#define MCIWNDM_NOTIFYMODE (WM_USER + 200)#define MCIWNDM_NOTIFYPOS (WM_USER + 201)#define MCIWNDM_NOTIFYSIZE (WM_USER + 202)#define MCIWNDM_NOTIFYMEDIA (WM_USER + 203)#define MCIWNDM_NOTIFYERROR (WM_USER + 205)#define MCIWND_START -1#define MCIWND_END -2#define DDF_UPDATE 0x02#define DDF_SAME_HDC 0x04#define DDF_SAME_DRAW 0x08#define DDF_DONTDRAW 0x10#define DDF_ANIMATE 0x20#define DDF_BUFFER 0x40#define DDF_JUSTDRAWIT 0x80#define DDF_FULLSCREEN 0x100#define DDF_BACKGROUNDPAL 0x200#define DDF_NOTKEYFRAME 0x400#define DDF_HURRYUP 0x800#define DDF_HALFTONE 0x1000#define DDF_PREROLL DDF_DONTDRAW#define DDF_SAME_DIB DDF_SAME_DRAW#define DDF_SAME_SIZE DDF_SAME_DRAW#define PD_CAN_DRAW_DIB 0x01#define PD_CAN_STRETCHDIB 0x02#define PD_STRETCHDIB_1_1_OK 0x04#define PD_STRETCHDIB_1_2_OK 0x08#define PD_STRETCHDIB_1_N_OK 0x10#ifndef mmioFOURCC#define mmioFOURCC(c0,c1,c2,c3) ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<<16)|((DWORD)(BYTE)(c3)<<24))#endif#ifndef aviTWOCC#define aviTWOCC(ch0,ch1) ((WORD)(BYTE)(ch0)|((WORD)(BYTE)(ch1)<<8))#endif#ifndef RC_INVOKEDDECLARE_HANDLE(HIC);DECLARE_HANDLE(HDRAWDIB);typedef WORD TWOCC;typedef BOOL (CALLBACK *AVISAVECALLBACK)(INT);typedef struct { DWORD dwSize; DWORD fccType; DWORD fccHandler; DWORD dwVersion; DWORD dwFlags; LRESULT dwError; LPVOID pV1Reserved; LPVOID pV2Reserved; DWORD dnDevNode;} ICOPEN,*LPICOPEN;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -