|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  | #ifndef _INC_VFW | 
|  | #define _INC_VFW | 
|  |  | 
|  | #include <_mingw_unicode.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #define VFWAPI WINAPI | 
|  | #define VFWAPIV WINAPIV | 
|  | #define VFWAPI_INLINE WINAPI | 
|  |  | 
|  | DWORD WINAPI VideoForWindowsVersion(void); | 
|  | LONG WINAPI InitVFW(void); | 
|  | LONG WINAPI TermVFW(void); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #if !defined(_INC_MMSYSTEM) && (!defined(NOVIDEO) || !defined(NOAVICAP)) | 
|  | #include <mmsystem.h> | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #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) | 
|  | #define mmioFOURCC MKFOURCC | 
|  | #endif | 
|  |  | 
|  | #ifndef NOCOMPMAN | 
|  |  | 
|  | #define ICVERSION 0x0104 | 
|  |  | 
|  | DECLARE_HANDLE(HIC); | 
|  |  | 
|  | #define BI_1632 0x32333631 | 
|  |  | 
|  | #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 __MSABI_LONG(0) | 
|  | #define ICERR_DONTDRAW __MSABI_LONG(1) | 
|  | #define ICERR_NEWPALETTE __MSABI_LONG(2) | 
|  | #define ICERR_GOTOKEYFRAME __MSABI_LONG(3) | 
|  | #define ICERR_STOPDRAWING __MSABI_LONG(4) | 
|  |  | 
|  | #define ICERR_UNSUPPORTED __MSABI_LONG(-1) | 
|  | #define ICERR_BADFORMAT __MSABI_LONG(-2) | 
|  | #define ICERR_MEMORY __MSABI_LONG(-3) | 
|  | #define ICERR_INTERNAL __MSABI_LONG(-4) | 
|  | #define ICERR_BADFLAGS __MSABI_LONG(-5) | 
|  | #define ICERR_BADPARAM __MSABI_LONG(-6) | 
|  | #define ICERR_BADSIZE __MSABI_LONG(-7) | 
|  | #define ICERR_BADHANDLE __MSABI_LONG(-8) | 
|  | #define ICERR_CANTUPDATE __MSABI_LONG(-9) | 
|  | #define ICERR_ABORT __MSABI_LONG(-10) | 
|  | #define ICERR_ERROR __MSABI_LONG(-100) | 
|  | #define ICERR_BADBITDEPTH __MSABI_LONG(-200) | 
|  | #define ICERR_BADIMAGESIZE __MSABI_LONG(-201) | 
|  |  | 
|  | #define ICERR_CUSTOM __MSABI_LONG(-400) | 
|  | #endif | 
|  |  | 
|  | #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 | 
|  |  | 
|  | #define AVIIF_LIST __MSABI_LONG(0x00000001) | 
|  | #define AVIIF_TWOCC __MSABI_LONG(0x00000002) | 
|  | #define AVIIF_KEYFRAME __MSABI_LONG(0x00000010) | 
|  |  | 
|  | #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) | 
|  |  | 
|  | #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_GETERRORTEXT (ICM_RESERVED+12) | 
|  | #define ICM_GETFORMATNAME (ICM_RESERVED+20) | 
|  | #define ICM_ENUMFORMATS (ICM_RESERVED+21) | 
|  |  | 
|  | #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_UPDATE (ICM_USER+17) | 
|  | #define ICM_DRAW_START (ICM_USER+18) | 
|  | #define ICM_DRAW_STOP (ICM_USER+19) | 
|  | #define ICM_DRAW_BITS (ICM_USER+20) | 
|  | #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_DRAW_IDLE (ICM_USER+52) | 
|  |  | 
|  | #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_COMPRESS_FRAMES (ICM_USER+71) | 
|  | #define ICM_SET_STATUS_PROC (ICM_USER+72) | 
|  |  | 
|  | typedef struct { | 
|  | DWORD dwSize; | 
|  | DWORD fccType; | 
|  | DWORD fccHandler; | 
|  | DWORD dwVersion; | 
|  | DWORD dwFlags; | 
|  | LRESULT dwError; | 
|  | LPVOID pV1Reserved; | 
|  | LPVOID pV2Reserved; | 
|  | DWORD dnDevNode; | 
|  | } ICOPEN; | 
|  |  | 
|  | typedef struct { | 
|  | DWORD dwSize; | 
|  | DWORD fccType; | 
|  | DWORD fccHandler; | 
|  | DWORD dwFlags; | 
|  | DWORD dwVersion; | 
|  | DWORD dwVersionICM; | 
|  |  | 
|  | WCHAR szName[16]; | 
|  | WCHAR szDescription[128]; | 
|  | WCHAR szDriver[128]; | 
|  | } ICINFO; | 
|  |  | 
|  | #define VIDCF_QUALITY 0x0001 | 
|  | #define VIDCF_CRUNCH 0x0002 | 
|  | #define VIDCF_TEMPORAL 0x0004 | 
|  | #define VIDCF_COMPRESSFRAMES 0x0008 | 
|  | #define VIDCF_DRAW 0x0010 | 
|  | #define VIDCF_FASTTEMPORALC 0x0020 | 
|  | #define VIDCF_QUALITYTIME   0x0040 | 
|  | #define VIDCF_FASTTEMPORALD 0x0080 | 
|  | #define VIDCF_FASTTEMPORAL	(VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD) | 
|  |  | 
|  | #define ICCOMPRESS_KEYFRAME __MSABI_LONG(0x00000001) | 
|  |  | 
|  | 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; | 
|  |  | 
|  | #define ICCOMPRESSFRAMES_PADDING 0x00000001 | 
|  |  | 
|  | 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 lInput,LONG lFrame,LPVOID lpBits,LONG len); | 
|  | LONG (CALLBACK *PutData)(LPARAM lOutput,LONG lFrame,LPVOID lpBits,LONG len); | 
|  | } ICCOMPRESSFRAMES; | 
|  |  | 
|  | #define ICSTATUS_START 0 | 
|  | #define ICSTATUS_STATUS 1 | 
|  | #define ICSTATUS_END 2 | 
|  | #define ICSTATUS_ERROR 3 | 
|  | #define ICSTATUS_YIELD 4 | 
|  |  | 
|  | typedef struct { | 
|  | DWORD dwFlags; | 
|  | LPARAM lParam; | 
|  | LONG (CALLBACK *Status)(LPARAM lParam,UINT message,LONG l); | 
|  | } ICSETSTATUSPROC; | 
|  |  | 
|  | #define ICDECOMPRESS_HURRYUP __MSABI_LONG(0x80000000) | 
|  | #define ICDECOMPRESS_UPDATE __MSABI_LONG(0x40000000) | 
|  | #define ICDECOMPRESS_PREROLL __MSABI_LONG(0x20000000) | 
|  | #define ICDECOMPRESS_NULLFRAME __MSABI_LONG(0x10000000) | 
|  | #define ICDECOMPRESS_NOTKEYFRAME __MSABI_LONG(0x08000000) | 
|  |  | 
|  | 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; | 
|  |  | 
|  | #define ICDRAW_QUERY __MSABI_LONG(0x00000001) | 
|  | #define ICDRAW_FULLSCREEN __MSABI_LONG(0x00000002) | 
|  | #define ICDRAW_HDC __MSABI_LONG(0x00000004) | 
|  | #define ICDRAW_ANIMATE __MSABI_LONG(0x00000008) | 
|  | #define ICDRAW_CONTINUE __MSABI_LONG(0x00000010) | 
|  | #define ICDRAW_MEMORYDC __MSABI_LONG(0x00000020) | 
|  | #define ICDRAW_UPDATING __MSABI_LONG(0x00000040) | 
|  | #define ICDRAW_RENDER __MSABI_LONG(0x00000080) | 
|  | #define ICDRAW_BUFFER __MSABI_LONG(0x00000100) | 
|  |  | 
|  | 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; | 
|  |  | 
|  | #define ICDRAW_HURRYUP __MSABI_LONG(0x80000000) | 
|  | #define ICDRAW_UPDATE __MSABI_LONG(0x40000000) | 
|  | #define ICDRAW_PREROLL __MSABI_LONG(0x20000000) | 
|  | #define ICDRAW_NULLFRAME __MSABI_LONG(0x10000000) | 
|  | #define ICDRAW_NOTKEYFRAME __MSABI_LONG(0x08000000) | 
|  |  | 
|  | typedef struct { | 
|  | DWORD dwFlags; | 
|  | LPVOID lpFormat; | 
|  | LPVOID lpData; | 
|  | DWORD cbData; | 
|  | LONG lTime; | 
|  | } ICDRAW; | 
|  |  | 
|  | typedef struct { | 
|  | 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; | 
|  |  | 
|  | WINBOOL WINAPI ICInfo(DWORD fccType,DWORD fccHandler,ICINFO *lpicinfo); | 
|  | WINBOOL WINAPI ICInstall(DWORD fccType,DWORD fccHandler,LPARAM lParam,LPSTR szDesc,UINT wFlags); | 
|  | WINBOOL WINAPI ICRemove(DWORD fccType,DWORD fccHandler,UINT wFlags); | 
|  | LRESULT WINAPI ICGetInfo(HIC hic,ICINFO *picinfo,DWORD cb); | 
|  | HIC WINAPI ICOpen(DWORD fccType,DWORD fccHandler,UINT wMode); | 
|  | HIC WINAPI ICOpenFunction(DWORD fccType,DWORD fccHandler,UINT wMode,FARPROC lpfnHandler); | 
|  | LRESULT WINAPI ICClose(HIC hic); | 
|  | LRESULT WINAPI ICSendMessage(HIC hic,UINT msg,DWORD_PTR dw1,DWORD_PTR dw2); | 
|  |  | 
|  | #define ICINSTALL_UNICODE 0x8000 | 
|  | #define ICINSTALL_FUNCTION 0x0001 | 
|  | #define ICINSTALL_DRIVER 0x0002 | 
|  | #define ICINSTALL_HDRV 0x0004 | 
|  | #define ICINSTALL_DRIVERW 0x8002 | 
|  |  | 
|  | #define ICMF_CONFIGURE_QUERY 0x00000001 | 
|  | #define ICMF_ABOUT_QUERY 0x00000001 | 
|  |  | 
|  | #define ICQueryAbout(hic) (ICSendMessage(hic,ICM_ABOUT,(DWORD_PTR) -1,ICMF_ABOUT_QUERY)==ICERR_OK) | 
|  | #define ICAbout(hic,hwnd) ICSendMessage(hic,ICM_ABOUT,(DWORD_PTR)(UINT_PTR)(hwnd),(DWORD_PTR)0) | 
|  | #define ICQueryConfigure(hic) (ICSendMessage(hic,ICM_CONFIGURE,(DWORD_PTR) -1,ICMF_CONFIGURE_QUERY)==ICERR_OK) | 
|  | #define ICConfigure(hic,hwnd) ICSendMessage(hic,ICM_CONFIGURE,(DWORD_PTR)(UINT_PTR)(hwnd),(DWORD_PTR)0) | 
|  | #define ICGetState(hic,pv,cb) ICSendMessage(hic,ICM_GETSTATE,(DWORD_PTR)(LPVOID)(pv),(DWORD_PTR)(cb)) | 
|  | #define ICSetState(hic,pv,cb) ICSendMessage(hic,ICM_SETSTATE,(DWORD_PTR)(LPVOID)(pv),(DWORD_PTR)(cb)) | 
|  | #define ICGetStateSize(hic) (DWORD) ICGetState(hic,NULL,0) | 
|  |  | 
|  | static DWORD dwICValue; | 
|  |  | 
|  | #define ICGetDefaultQuality(hic) (ICSendMessage(hic,ICM_GETDEFAULTQUALITY,(DWORD_PTR)(LPVOID)&dwICValue,sizeof(DWORD)),dwICValue) | 
|  | #define ICGetDefaultKeyFrameRate(hic) (ICSendMessage(hic,ICM_GETDEFAULTKEYFRAMERATE,(DWORD_PTR)(LPVOID)&dwICValue,sizeof(DWORD)),dwICValue) | 
|  | #define ICDrawWindow(hic,prc) ICSendMessage(hic,ICM_DRAW_WINDOW,(DWORD_PTR)(LPVOID)(prc),sizeof(RECT)) | 
|  |  | 
|  | DWORD WINAPIV ICCompress(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiOutput,LPVOID lpData,LPBITMAPINFOHEADER lpbiInput,LPVOID lpBits,LPDWORD lpckid,LPDWORD lpdwFlags,LONG lFrameNum,DWORD dwFrameSize,DWORD dwQuality,LPBITMAPINFOHEADER lpbiPrev,LPVOID lpPrev); | 
|  |  | 
|  | #define ICCompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_BEGIN,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | 
|  | #define ICCompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_QUERY,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | 
|  | #define ICCompressGetFormat(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_FORMAT,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | 
|  | #define ICCompressGetFormatSize(hic,lpbi) (DWORD) ICCompressGetFormat(hic,lpbi,NULL) | 
|  | #define ICCompressGetSize(hic,lpbiInput,lpbiOutput) (DWORD) ICSendMessage(hic,ICM_COMPRESS_GET_SIZE,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | 
|  | #define ICCompressEnd(hic) ICSendMessage(hic,ICM_COMPRESS_END,(DWORD_PTR)0,(DWORD_PTR)0) | 
|  | #define ICDECOMPRESS_HURRYUP __MSABI_LONG(0x80000000) | 
|  |  | 
|  | DWORD WINAPIV ICDecompress(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiFormat,LPVOID lpData,LPBITMAPINFOHEADER lpbi,LPVOID lpBits); | 
|  |  | 
|  | #define ICDecompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_BEGIN,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | 
|  | #define ICDecompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_QUERY,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | 
|  | #define ICDecompressGetFormat(hic,lpbiInput,lpbiOutput) ((LONG) ICSendMessage(hic,ICM_DECOMPRESS_GET_FORMAT,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput))) | 
|  | #define ICDecompressGetFormatSize(hic,lpbi) ICDecompressGetFormat(hic,lpbi,NULL) | 
|  | #define ICDecompressGetPalette(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_GET_PALETTE,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | 
|  | #define ICDecompressSetPalette(hic,lpbiPalette) ICSendMessage(hic,ICM_DECOMPRESS_SET_PALETTE,(DWORD_PTR)(LPVOID)(lpbiPalette),(DWORD_PTR)0) | 
|  | #define ICDecompressEnd(hic) ICSendMessage(hic,ICM_DECOMPRESS_END,(DWORD_PTR)0,(DWORD_PTR)0) | 
|  |  | 
|  | #ifndef __CRT__NO_INLINE | 
|  | __CRT_INLINE LRESULT WINAPI ICDecompressEx(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,int xSrc,int ySrc,int dxSrc,int dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,int xDst,int yDst,int dxDst,int dyDst) { | 
|  | ICDECOMPRESSEX ic; | 
|  | ic.dwFlags = dwFlags; | 
|  | ic.lpbiSrc = lpbiSrc; | 
|  | ic.lpSrc = lpSrc; | 
|  | ic.xSrc = xSrc; | 
|  | ic.ySrc = ySrc; | 
|  | ic.dxSrc = dxSrc; | 
|  | ic.dySrc = dySrc; | 
|  | ic.lpbiDst = lpbiDst; | 
|  | ic.lpDst = lpDst; | 
|  | ic.xDst = xDst; | 
|  | ic.yDst = yDst; | 
|  | ic.dxDst = dxDst; | 
|  | ic.dyDst = dyDst; | 
|  | return ICSendMessage(hic,ICM_DECOMPRESSEX,(DWORD_PTR)&ic,sizeof(ic)); | 
|  | } | 
|  |  | 
|  | __CRT_INLINE LRESULT WINAPI ICDecompressExBegin(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,int xSrc,int ySrc,int dxSrc,int dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,int xDst,int yDst,int dxDst,int dyDst) { | 
|  | ICDECOMPRESSEX ic; | 
|  | ic.dwFlags = dwFlags; | 
|  | ic.lpbiSrc = lpbiSrc; | 
|  | ic.lpSrc = lpSrc; | 
|  | ic.xSrc = xSrc; | 
|  | ic.ySrc = ySrc; | 
|  | ic.dxSrc = dxSrc; | 
|  | ic.dySrc = dySrc; | 
|  | ic.lpbiDst = lpbiDst; | 
|  | ic.lpDst = lpDst; | 
|  | ic.xDst = xDst; | 
|  | ic.yDst = yDst; | 
|  | ic.dxDst = dxDst; | 
|  | ic.dyDst = dyDst; | 
|  | return ICSendMessage(hic,ICM_DECOMPRESSEX_BEGIN,(DWORD_PTR)&ic,sizeof(ic)); | 
|  | } | 
|  |  | 
|  | __CRT_INLINE LRESULT WINAPI ICDecompressExQuery(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,int xSrc,int ySrc,int dxSrc,int dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,int xDst,int yDst,int dxDst,int dyDst) { | 
|  | ICDECOMPRESSEX ic; | 
|  | ic.dwFlags = dwFlags; | 
|  | ic.lpbiSrc = lpbiSrc; | 
|  | ic.lpSrc = lpSrc; | 
|  | ic.xSrc = xSrc; | 
|  | ic.ySrc = ySrc; | 
|  | ic.dxSrc = dxSrc; | 
|  | ic.dySrc = dySrc; | 
|  | ic.lpbiDst = lpbiDst; | 
|  | ic.lpDst = lpDst; | 
|  | ic.xDst = xDst; | 
|  | ic.yDst = yDst; | 
|  | ic.dxDst = dxDst; | 
|  | ic.dyDst = dyDst; | 
|  | return ICSendMessage(hic,ICM_DECOMPRESSEX_QUERY,(DWORD_PTR)&ic,sizeof(ic)); | 
|  | } | 
|  | #endif /* !__CRT__NO_INLINE */ | 
|  |  | 
|  | #define ICDecompressExEnd(hic) ICSendMessage(hic,ICM_DECOMPRESSEX_END,(DWORD_PTR)0,(DWORD_PTR)0) | 
|  |  | 
|  | #define ICDRAW_QUERY __MSABI_LONG(0x00000001) | 
|  | #define ICDRAW_FULLSCREEN __MSABI_LONG(0x00000002) | 
|  | #define ICDRAW_HDC __MSABI_LONG(0x00000004) | 
|  |  | 
|  | DWORD WINAPIV ICDrawBegin(HIC hic,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); | 
|  |  | 
|  | #define ICDRAW_HURRYUP __MSABI_LONG(0x80000000) | 
|  | #define ICDRAW_UPDATE __MSABI_LONG(0x40000000) | 
|  |  | 
|  | DWORD WINAPIV ICDraw(HIC hic,DWORD dwFlags,LPVOID lpFormat,LPVOID lpData,DWORD cbData,LONG lTime); | 
|  |  | 
|  | #ifndef __CRT__NO_INLINE | 
|  | __CRT_INLINE LRESULT WINAPI ICDrawSuggestFormat(HIC hic,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,int dxSrc,int dySrc,int dxDst,int dyDst,HIC hicDecomp) { | 
|  | ICDRAWSUGGEST ic; | 
|  | ic.lpbiIn = lpbiIn; | 
|  | ic.lpbiSuggest = lpbiOut; | 
|  | ic.dxSrc = dxSrc; | 
|  | ic.dySrc = dySrc; | 
|  | ic.dxDst = dxDst; | 
|  | ic.dyDst = dyDst; | 
|  | ic.hicDecompressor = hicDecomp; | 
|  | return ICSendMessage(hic,ICM_DRAW_SUGGESTFORMAT,(DWORD_PTR)&ic,sizeof(ic)); | 
|  | } | 
|  | #endif /* !__CRT__NO_INLINE */ | 
|  |  | 
|  | #define ICDrawQuery(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_QUERY,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD)0) | 
|  | #define ICDrawChangePalette(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_CHANGEPALETTE,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD)0) | 
|  | #define ICGetBuffersWanted(hic,lpdwBuffers) ICSendMessage(hic,ICM_GETBUFFERSWANTED,(DWORD_PTR)(LPVOID)(lpdwBuffers),(DWORD_PTR)0) | 
|  | #define ICDrawEnd(hic) ICSendMessage(hic,ICM_DRAW_END,(DWORD_PTR)0,(DWORD_PTR)0) | 
|  | #define ICDrawStart(hic) ICSendMessage(hic,ICM_DRAW_START,(DWORD_PTR)0,(DWORD_PTR)0) | 
|  | #define ICDrawStartPlay(hic,lFrom,lTo) ICSendMessage(hic,ICM_DRAW_START_PLAY,(DWORD_PTR)(lFrom),(DWORD_PTR)(lTo)) | 
|  | #define ICDrawStop(hic) ICSendMessage(hic,ICM_DRAW_STOP,(DWORD_PTR)0,(DWORD_PTR)0) | 
|  | #define ICDrawStopPlay(hic) ICSendMessage(hic,ICM_DRAW_STOP_PLAY,(DWORD_PTR)0,(DWORD_PTR)0) | 
|  | #define ICDrawGetTime(hic,lplTime) ICSendMessage(hic,ICM_DRAW_GETTIME,(DWORD_PTR)(LPVOID)(lplTime),(DWORD_PTR)0) | 
|  | #define ICDrawSetTime(hic,lTime) ICSendMessage(hic,ICM_DRAW_SETTIME,(DWORD_PTR)lTime,(DWORD_PTR)0) | 
|  | #define ICDrawRealize(hic,hdc,fBackground) ICSendMessage(hic,ICM_DRAW_REALIZE,(DWORD_PTR)(UINT_PTR)(HDC)(hdc),(DWORD_PTR)(WINBOOL)(fBackground)) | 
|  | #define ICDrawFlush(hic) ICSendMessage(hic,ICM_DRAW_FLUSH,(DWORD_PTR)0,(DWORD_PTR)0) | 
|  | #define ICDrawRenderBuffer(hic) ICSendMessage(hic,ICM_DRAW_RENDERBUFFER,(DWORD_PTR)0,(DWORD_PTR)0) | 
|  |  | 
|  | #ifndef __CRT__NO_INLINE | 
|  | __CRT_INLINE LRESULT WINAPI ICSetStatusProc(HIC hic,DWORD dwFlags,LRESULT lParam,LONG (CALLBACK *fpfnStatus)(LPARAM,UINT,LONG)) { | 
|  | ICSETSTATUSPROC ic; | 
|  | ic.dwFlags = dwFlags; | 
|  | ic.lParam = lParam; | 
|  | ic.Status = fpfnStatus; | 
|  | return ICSendMessage(hic,ICM_SET_STATUS_PROC,(DWORD_PTR)&ic,sizeof(ic)); | 
|  | } | 
|  | #endif /* !__CRT__NO_INLINE */ | 
|  |  | 
|  | #define ICDecompressOpen(fccType,fccHandler,lpbiIn,lpbiOut) ICLocate(fccType,fccHandler,lpbiIn,lpbiOut,ICMODE_DECOMPRESS) | 
|  | #define ICDrawOpen(fccType,fccHandler,lpbiIn) ICLocate(fccType,fccHandler,lpbiIn,NULL,ICMODE_DRAW) | 
|  |  | 
|  | HIC WINAPI ICLocate(DWORD fccType,DWORD fccHandler,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,WORD wFlags); | 
|  | HIC WINAPI ICGetDisplayFormat(HIC hic,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,int BitDepth,int dx,int dy); | 
|  | HANDLE WINAPI ICImageCompress(HIC hic,UINT uiFlags,LPBITMAPINFO lpbiIn,LPVOID lpBits,LPBITMAPINFO lpbiOut,LONG lQuality,LONG *plSize); | 
|  | HANDLE WINAPI ICImageDecompress(HIC hic,UINT uiFlags,LPBITMAPINFO lpbiIn,LPVOID lpBits,LPBITMAPINFO lpbiOut); | 
|  |  | 
|  | 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; | 
|  |  | 
|  | #define ICMF_COMPVARS_VALID 0x00000001 | 
|  |  | 
|  | WINBOOL WINAPI ICCompressorChoose(HWND hwnd,UINT uiFlags,LPVOID pvIn,LPVOID lpData,PCOMPVARS pc,LPSTR lpszTitle); | 
|  |  | 
|  | #define ICMF_CHOOSE_KEYFRAME 0x0001 | 
|  | #define ICMF_CHOOSE_DATARATE 0x0002 | 
|  | #define ICMF_CHOOSE_PREVIEW 0x0004 | 
|  | #define ICMF_CHOOSE_ALLCOMPRESSORS 0x0008 | 
|  |  | 
|  | WINBOOL WINAPI ICSeqCompressFrameStart(PCOMPVARS pc,LPBITMAPINFO lpbiIn); | 
|  | void WINAPI ICSeqCompressFrameEnd(PCOMPVARS pc); | 
|  | LPVOID WINAPI ICSeqCompressFrame(PCOMPVARS pc,UINT uiFlags,LPVOID lpBits,WINBOOL *pfKey,LONG *plSize); | 
|  | void WINAPI ICCompressorFree(PCOMPVARS pc); | 
|  | #endif | 
|  |  | 
|  | #ifndef NODRAWDIB | 
|  |  | 
|  | typedef HANDLE HDRAWDIB; | 
|  |  | 
|  | #define DDF_0001 0x0001 | 
|  | #define DDF_UPDATE 0x0002 | 
|  | #define DDF_SAME_HDC 0x0004 | 
|  | #define DDF_SAME_DRAW 0x0008 | 
|  | #define DDF_DONTDRAW 0x0010 | 
|  | #define DDF_ANIMATE 0x0020 | 
|  | #define DDF_BUFFER 0x0040 | 
|  | #define DDF_JUSTDRAWIT 0x0080 | 
|  | #define DDF_FULLSCREEN 0x0100 | 
|  | #define DDF_BACKGROUNDPAL 0x0200 | 
|  | #define DDF_NOTKEYFRAME 0x0400 | 
|  | #define DDF_HURRYUP 0x0800 | 
|  | #define DDF_HALFTONE 0x1000 | 
|  | #define DDF_2000 0x2000 | 
|  |  | 
|  | #define DDF_PREROLL DDF_DONTDRAW | 
|  | #define DDF_SAME_DIB DDF_SAME_DRAW | 
|  | #define DDF_SAME_SIZE DDF_SAME_DRAW | 
|  |  | 
|  | extern WINBOOL WINAPI DrawDibInit(void); | 
|  | extern HDRAWDIB WINAPI DrawDibOpen(void); | 
|  | extern WINBOOL WINAPI DrawDibClose(HDRAWDIB hdd); | 
|  | extern LPVOID WINAPI DrawDibGetBuffer(HDRAWDIB hdd,LPBITMAPINFOHEADER lpbi,DWORD dwSize,DWORD dwFlags); | 
|  | extern UINT WINAPI DrawDibError(HDRAWDIB hdd); | 
|  | extern HPALETTE WINAPI DrawDibGetPalette(HDRAWDIB hdd); | 
|  | extern WINBOOL WINAPI DrawDibSetPalette(HDRAWDIB hdd,HPALETTE hpal); | 
|  | extern WINBOOL WINAPI DrawDibChangePalette(HDRAWDIB hdd,int iStart,int iLen,LPPALETTEENTRY lppe); | 
|  | extern UINT WINAPI DrawDibRealize(HDRAWDIB hdd,HDC hdc,WINBOOL fBackground); | 
|  | extern WINBOOL WINAPI DrawDibStart(HDRAWDIB hdd,DWORD rate); | 
|  | extern WINBOOL WINAPI DrawDibStop(HDRAWDIB hdd); | 
|  | extern WINBOOL WINAPI DrawDibBegin(HDRAWDIB hdd,HDC hdc,int dxDst,int dyDst,LPBITMAPINFOHEADER lpbi,int dxSrc,int dySrc,UINT wFlags); | 
|  | extern WINBOOL WINAPI 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); | 
|  |  | 
|  | #define DrawDibUpdate(hdd,hdc,x,y) DrawDibDraw(hdd,hdc,x,y,0,0,NULL,NULL,0,0,0,0,DDF_UPDATE) | 
|  |  | 
|  | extern WINBOOL WINAPI DrawDibEnd(HDRAWDIB hdd); | 
|  |  | 
|  | typedef struct { | 
|  | LONG timeCount; | 
|  | LONG timeDraw; | 
|  | LONG timeDecompress; | 
|  | LONG timeDither; | 
|  | LONG timeStretch; | 
|  | LONG timeBlt; | 
|  | LONG timeSetDIBits; | 
|  | } DRAWDIBTIME,*LPDRAWDIBTIME; | 
|  |  | 
|  | WINBOOL WINAPI DrawDibTime(HDRAWDIB hdd,LPDRAWDIBTIME lpddtime); | 
|  |  | 
|  | #define PD_CAN_DRAW_DIB 0x0001 | 
|  | #define PD_CAN_STRETCHDIB 0x0002 | 
|  | #define PD_STRETCHDIB_1_1_OK 0x0004 | 
|  | #define PD_STRETCHDIB_1_2_OK 0x0008 | 
|  | #define PD_STRETCHDIB_1_N_OK 0x0010 | 
|  |  | 
|  | LRESULT WINAPI DrawDibProfileDisplay(LPBITMAPINFOHEADER lpbi); | 
|  |  | 
|  | #ifdef DRAWDIB_INCLUDE_STRETCHDIB | 
|  | void WINAPI StretchDIB(LPBITMAPINFOHEADER biDst,LPVOID lpDst,int DstX,int DstY,int DstXE,int DstYE,LPBITMAPINFOHEADER biSrc,LPVOID lpSrc,int SrcX,int SrcY,int SrcXE,int SrcYE); | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #ifndef NOAVIFMT | 
|  | #ifndef _INC_MMSYSTEM | 
|  | typedef DWORD FOURCC; | 
|  | #endif | 
|  |  | 
|  | /* This part of the file is duplicated in avifmt.h */ | 
|  | #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 | 
|  |  | 
|  | typedef WORD TWOCC; | 
|  |  | 
|  | #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 __MSABI_LONG(0U) | 
|  | #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 0x00000010 | 
|  | #define AVIF_MUSTUSEINDEX 0x00000020 | 
|  | #define AVIF_ISINTERLEAVED 0x00000100 | 
|  | #define AVIF_TRUSTCKTYPE 0x00000800 | 
|  | #define AVIF_WASCAPTUREFILE 0x00010000 | 
|  | #define AVIF_COPYRIGHTED 0x00020000 | 
|  |  | 
|  | #define AVI_HEADERSIZE 2048 | 
|  |  | 
|  | typedef struct { | 
|  | DWORD dwMicroSecPerFrame; | 
|  | DWORD dwMaxBytesPerSec; | 
|  | DWORD dwPaddingGranularity; | 
|  | DWORD dwFlags; | 
|  | DWORD dwTotalFrames; | 
|  | DWORD dwInitialFrames; | 
|  | DWORD dwStreams; | 
|  | DWORD dwSuggestedBufferSize; | 
|  | DWORD dwWidth; | 
|  | DWORD dwHeight; | 
|  | DWORD dwReserved[4]; | 
|  | } MainAVIHeader; | 
|  |  | 
|  | #define AVISF_DISABLED 0x00000001 | 
|  | #define AVISF_VIDEO_PALCHANGES 0x00010000 | 
|  |  | 
|  | 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; | 
|  |  | 
|  | #define AVIIF_LIST __MSABI_LONG(0x00000001) | 
|  | #define AVIIF_KEYFRAME __MSABI_LONG(0x00000010) | 
|  | #define AVIIF_FIRSTPART __MSABI_LONG(0x00000020) | 
|  | #define AVIIF_LASTPART __MSABI_LONG(0x00000040) | 
|  | #define AVIIF_MIDPART (AVIIF_LASTPART|AVIIF_FIRSTPART) | 
|  |  | 
|  | #define AVIIF_NOTIME __MSABI_LONG(0x00000100) | 
|  | #define AVIIF_COMPUSE __MSABI_LONG(0x0FFF0000) | 
|  |  | 
|  | typedef struct { | 
|  | DWORD ckid; | 
|  | DWORD dwFlags; | 
|  | DWORD dwChunkOffset; | 
|  | DWORD dwChunkLength; | 
|  | } AVIINDEXENTRY; | 
|  |  | 
|  | typedef struct { | 
|  | BYTE bFirstEntry; | 
|  | BYTE bNumEntries; | 
|  | WORD wFlags; | 
|  | PALETTEENTRY peNew[]; | 
|  | } AVIPALCHANGE; | 
|  | #endif | 
|  | /* End of duplication */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #ifndef RC_INVOKED | 
|  | #include "pshpack8.h" | 
|  | #endif | 
|  |  | 
|  | #ifndef NOMMREG | 
|  | #include <mmreg.h> | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #ifndef NOAVIFILE | 
|  | #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 streamtypeVIDEO | 
|  | #define streamtypeANY __MSABI_LONG(0U) | 
|  | #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') | 
|  | #endif | 
|  |  | 
|  | #ifndef AVIIF_KEYFRAME | 
|  | #define AVIIF_KEYFRAME __MSABI_LONG(0x00000010) | 
|  | #endif | 
|  |  | 
|  | #define AVIGETFRAMEF_BESTDISPLAYFMT 1 | 
|  |  | 
|  | 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; | 
|  |  | 
|  | 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; | 
|  |  | 
|  | #define AVISTREAMINFO __MINGW_NAME_AW(AVISTREAMINFO) | 
|  | #define LPAVISTREAMINFO __MINGW_NAME_AW(LPAVISTREAMINFO) | 
|  |  | 
|  | #define AVISTREAMINFO_DISABLED 0x00000001 | 
|  | #define AVISTREAMINFO_FORMATCHANGES 0x00010000 | 
|  |  | 
|  | 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; | 
|  |  | 
|  | 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; | 
|  |  | 
|  | #define AVIFILEINFO __MINGW_NAME_AW(AVIFILEINFO) | 
|  | #define LPAVIFILEINFO __MINGW_NAME_AW(LPAVIFILEINFO) | 
|  |  | 
|  | #define AVIFILEINFO_HASINDEX 0x00000010 | 
|  | #define AVIFILEINFO_MUSTUSEINDEX 0x00000020 | 
|  | #define AVIFILEINFO_ISINTERLEAVED 0x00000100 | 
|  | #define AVIFILEINFO_TRUSTCKTYPE 0x00000800 | 
|  | #define AVIFILEINFO_WASCAPTUREFILE 0x00010000 | 
|  | #define AVIFILEINFO_COPYRIGHTED 0x00020000 | 
|  |  | 
|  | #define AVIFILECAPS_CANREAD 0x00000001 | 
|  | #define AVIFILECAPS_CANWRITE 0x00000002 | 
|  | #define AVIFILECAPS_ALLKEYFRAMES 0x00000010 | 
|  | #define AVIFILECAPS_NOCOMPRESSION 0x00000020 | 
|  |  | 
|  | typedef WINBOOL (WINAPI *AVISAVECALLBACK)(int); | 
|  |  | 
|  | typedef struct { | 
|  | DWORD fccType; | 
|  | DWORD fccHandler; | 
|  | DWORD dwKeyFrameEvery; | 
|  | DWORD dwQuality; | 
|  | DWORD dwBytesPerSecond; | 
|  | DWORD dwFlags; | 
|  | LPVOID lpFormat; | 
|  | DWORD cbFormat; | 
|  | LPVOID lpParms; | 
|  | DWORD cbParms; | 
|  | DWORD dwInterleaveEvery; | 
|  | } AVICOMPRESSOPTIONS, FAR *LPAVICOMPRESSOPTIONS; | 
|  |  | 
|  | #define AVICOMPRESSF_INTERLEAVE 0x00000001 | 
|  | #define AVICOMPRESSF_DATARATE 0x00000002 | 
|  | #define AVICOMPRESSF_KEYFRAMES 0x00000004 | 
|  | #define AVICOMPRESSF_VALID 0x00000008 | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #include <ole2.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #undef INTERFACE | 
|  | #define INTERFACE IAVIStream | 
|  | DECLARE_INTERFACE_(IAVIStream,IUnknown) { | 
|  | STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | 
|  | STDMETHOD_(ULONG,AddRef) (THIS) PURE; | 
|  | STDMETHOD_(ULONG,Release) (THIS) PURE; | 
|  | STDMETHOD(Create) (THIS_ LPARAM lParam1,LPARAM lParam2) PURE; | 
|  | STDMETHOD(Info) (THIS_ AVISTREAMINFOW *psi,LONG lSize) PURE; | 
|  | STDMETHOD_(LONG,FindSample)(THIS_ LONG lPos,LONG lFlags) PURE; | 
|  | STDMETHOD(ReadFormat) (THIS_ LONG lPos,LPVOID lpFormat,LONG *lpcbFormat) PURE; | 
|  | STDMETHOD(SetFormat) (THIS_ LONG lPos,LPVOID lpFormat,LONG cbFormat) PURE; | 
|  | STDMETHOD(Read) (THIS_ LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,LONG *plBytes,LONG *plSamples) PURE; | 
|  | STDMETHOD(Write) (THIS_ LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,DWORD dwFlags,LONG *plSampWritten,LONG *plBytesWritten) PURE; | 
|  | STDMETHOD(Delete) (THIS_ LONG lStart,LONG lSamples) PURE; | 
|  | STDMETHOD(ReadData) (THIS_ DWORD fcc,LPVOID lp,LONG *lpcb) PURE; | 
|  | STDMETHOD(WriteData) (THIS_ DWORD fcc,LPVOID lp,LONG cb) PURE; | 
|  | STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW *lpInfo,LONG cbInfo) PURE; | 
|  | }; | 
|  |  | 
|  | typedef IAVIStream *PAVISTREAM; | 
|  |  | 
|  | #undef INTERFACE | 
|  | #define INTERFACE IAVIStreaming | 
|  | DECLARE_INTERFACE_(IAVIStreaming,IUnknown) { | 
|  | STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | 
|  | STDMETHOD_(ULONG,AddRef) (THIS) PURE; | 
|  | STDMETHOD_(ULONG,Release) (THIS) PURE; | 
|  | STDMETHOD(Begin) (THIS_ LONG lStart,LONG lEnd,LONG lRate) PURE; | 
|  | STDMETHOD(End) (THIS) PURE; | 
|  | }; | 
|  |  | 
|  | typedef IAVIStreaming *PAVISTREAMING; | 
|  |  | 
|  | #undef INTERFACE | 
|  | #define INTERFACE IAVIEditStream | 
|  | DECLARE_INTERFACE_(IAVIEditStream,IUnknown) { | 
|  | STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | 
|  | STDMETHOD_(ULONG,AddRef) (THIS) PURE; | 
|  | STDMETHOD_(ULONG,Release) (THIS) PURE; | 
|  | STDMETHOD(Cut) (THIS_ LONG *plStart,LONG *plLength,PAVISTREAM *ppResult) PURE; | 
|  | STDMETHOD(Copy) (THIS_ LONG *plStart,LONG *plLength,PAVISTREAM *ppResult) PURE; | 
|  | STDMETHOD(Paste) (THIS_ LONG *plPos,LONG *plLength,PAVISTREAM pstream,LONG lStart,LONG lEnd) PURE; | 
|  | STDMETHOD(Clone) (THIS_ PAVISTREAM *ppResult) PURE; | 
|  | STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW *lpInfo,LONG cbInfo) PURE; | 
|  | }; | 
|  |  | 
|  | typedef IAVIEditStream *PAVIEDITSTREAM; | 
|  |  | 
|  | #undef INTERFACE | 
|  | #define INTERFACE IAVIPersistFile | 
|  | DECLARE_INTERFACE_(IAVIPersistFile,IPersistFile) { | 
|  | STDMETHOD(Reserved1)(THIS) PURE; | 
|  | }; | 
|  |  | 
|  | typedef IAVIPersistFile *PAVIPERSISTFILE; | 
|  |  | 
|  | #undef INTERFACE | 
|  | #define INTERFACE IAVIFile | 
|  | #define PAVIFILE IAVIFile * | 
|  | DECLARE_INTERFACE_(IAVIFile,IUnknown) { | 
|  | STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | 
|  | STDMETHOD_(ULONG,AddRef) (THIS) PURE; | 
|  | STDMETHOD_(ULONG,Release) (THIS) PURE; | 
|  | STDMETHOD(Info) (THIS_ AVIFILEINFOW *pfi,LONG lSize) PURE; | 
|  | STDMETHOD(GetStream) (THIS_ PAVISTREAM *ppStream,DWORD fccType,LONG lParam) PURE; | 
|  | STDMETHOD(CreateStream) (THIS_ PAVISTREAM *ppStream,AVISTREAMINFOW *psi) PURE; | 
|  | STDMETHOD(WriteData) (THIS_ DWORD ckid,LPVOID lpData,LONG cbData) PURE; | 
|  | STDMETHOD(ReadData) (THIS_ DWORD ckid,LPVOID lpData,LONG *lpcbData) PURE; | 
|  | STDMETHOD(EndRecord) (THIS) PURE; | 
|  | STDMETHOD(DeleteStream) (THIS_ DWORD fccType,LONG lParam) PURE; | 
|  | }; | 
|  |  | 
|  | #undef PAVIFILE | 
|  | typedef IAVIFile *PAVIFILE; | 
|  |  | 
|  | #undef INTERFACE | 
|  | #define INTERFACE IGetFrame | 
|  | #define PGETFRAME IGetFrame * | 
|  | DECLARE_INTERFACE_(IGetFrame,IUnknown) { | 
|  | STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | 
|  | STDMETHOD_(ULONG,AddRef) (THIS) PURE; | 
|  | STDMETHOD_(ULONG,Release) (THIS) PURE; | 
|  | STDMETHOD_(LPVOID,GetFrame) (THIS_ LONG lPos) PURE; | 
|  | STDMETHOD(Begin) (THIS_ LONG lStart,LONG lEnd,LONG lRate) PURE; | 
|  | STDMETHOD(End) (THIS) PURE; | 
|  | STDMETHOD(SetFormat) (THIS_ LPBITMAPINFOHEADER lpbi,LPVOID lpBits,int x,int y,int dx,int dy) PURE; | 
|  | }; | 
|  |  | 
|  | #undef PGETFRAME | 
|  | typedef IGetFrame *PGETFRAME; | 
|  |  | 
|  | #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(IID_IAVIPersistFile,0x00020025,0,0); | 
|  | #if !defined(UNICODE) | 
|  | DEFINE_AVIGUID(CLSID_AVISimpleUnMarshal,0x00020009,0,0); | 
|  | #endif | 
|  |  | 
|  | DEFINE_AVIGUID(CLSID_AVIFile,0x00020000,0,0); | 
|  |  | 
|  | #define AVIFILEHANDLER_CANREAD 0x0001 | 
|  | #define AVIFILEHANDLER_CANWRITE 0x0002 | 
|  | #define AVIFILEHANDLER_CANACCEPTNONRGB 0x0004 | 
|  |  | 
|  | #define AVIFileOpen __MINGW_NAME_AW(AVIFileOpen) | 
|  | #define AVIFileInfo __MINGW_NAME_AW(AVIFileInfo) | 
|  | #define AVIFileCreateStream __MINGW_NAME_AW(AVIFileCreateStream) | 
|  | #define AVIStreamInfo __MINGW_NAME_AW(AVIStreamInfo) | 
|  | #define AVIStreamOpenFromFile __MINGW_NAME_AW(AVIStreamOpenFromFile) | 
|  |  | 
|  | STDAPI_(void) AVIFileInit(void); | 
|  | STDAPI_(void) AVIFileExit(void); | 
|  | STDAPI_(ULONG) AVIFileAddRef (PAVIFILE pfile); | 
|  | STDAPI_(ULONG) AVIFileRelease (PAVIFILE pfile); | 
|  | STDAPI AVIFileOpenA (PAVIFILE *ppfile,LPCSTR szFile,UINT uMode,LPCLSID lpHandler); | 
|  | STDAPI AVIFileOpenW (PAVIFILE *ppfile,LPCWSTR szFile,UINT uMode,LPCLSID lpHandler); | 
|  | STDAPI AVIFileInfoW (PAVIFILE pfile,LPAVIFILEINFOW pfi,LONG lSize); | 
|  | STDAPI AVIFileInfoA (PAVIFILE pfile,LPAVIFILEINFOA pfi,LONG lSize); | 
|  | STDAPI AVIFileGetStream (PAVIFILE pfile,PAVISTREAM *ppavi,DWORD fccType,LONG lParam); | 
|  | STDAPI AVIFileCreateStreamW (PAVIFILE pfile,PAVISTREAM *ppavi,AVISTREAMINFOW *psi); | 
|  | STDAPI AVIFileCreateStreamA (PAVIFILE pfile,PAVISTREAM *ppavi,AVISTREAMINFOA *psi); | 
|  | STDAPI AVIFileWriteData (PAVIFILE pfile,DWORD ckid,LPVOID lpData,LONG cbData); | 
|  | STDAPI AVIFileReadData (PAVIFILE pfile,DWORD ckid,LPVOID lpData,LONG *lpcbData); | 
|  | STDAPI AVIFileEndRecord (PAVIFILE pfile); | 
|  | STDAPI_(ULONG) AVIStreamAddRef (PAVISTREAM pavi); | 
|  | STDAPI_(ULONG) AVIStreamRelease (PAVISTREAM pavi); | 
|  | STDAPI AVIStreamInfoW (PAVISTREAM pavi,LPAVISTREAMINFOW psi,LONG lSize); | 
|  | STDAPI AVIStreamInfoA (PAVISTREAM pavi,LPAVISTREAMINFOA psi,LONG lSize); | 
|  | STDAPI_(LONG) AVIStreamFindSample(PAVISTREAM pavi,LONG lPos,LONG lFlags); | 
|  | STDAPI AVIStreamReadFormat (PAVISTREAM pavi,LONG lPos,LPVOID lpFormat,LONG *lpcbFormat); | 
|  | STDAPI AVIStreamSetFormat (PAVISTREAM pavi,LONG lPos,LPVOID lpFormat,LONG cbFormat); | 
|  | STDAPI AVIStreamReadData (PAVISTREAM pavi,DWORD fcc,LPVOID lp,LONG *lpcb); | 
|  | STDAPI AVIStreamWriteData (PAVISTREAM pavi,DWORD fcc,LPVOID lp,LONG cb); | 
|  | STDAPI AVIStreamRead (PAVISTREAM pavi,LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,LONG *plBytes,LONG *plSamples); | 
|  | #define AVISTREAMREAD_CONVENIENT (__MSABI_LONG(-1)) | 
|  | STDAPI AVIStreamWrite (PAVISTREAM pavi,LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,DWORD dwFlags,LONG *plSampWritten,LONG *plBytesWritten); | 
|  | STDAPI_(LONG) AVIStreamStart (PAVISTREAM pavi); | 
|  | STDAPI_(LONG) AVIStreamLength (PAVISTREAM pavi); | 
|  | STDAPI_(LONG) AVIStreamTimeToSample (PAVISTREAM pavi,LONG lTime); | 
|  | STDAPI_(LONG) AVIStreamSampleToTime (PAVISTREAM pavi,LONG lSample); | 
|  | STDAPI AVIStreamBeginStreaming(PAVISTREAM pavi,LONG lStart,LONG lEnd,LONG lRate); | 
|  | STDAPI AVIStreamEndStreaming(PAVISTREAM pavi); | 
|  | STDAPI_(PGETFRAME) AVIStreamGetFrameOpen(PAVISTREAM pavi,LPBITMAPINFOHEADER lpbiWanted); | 
|  | STDAPI_(LPVOID) AVIStreamGetFrame(PGETFRAME pg,LONG lPos); | 
|  | STDAPI AVIStreamGetFrameClose(PGETFRAME pg); | 
|  | STDAPI AVIStreamOpenFromFileA(PAVISTREAM *ppavi,LPCSTR szFile,DWORD fccType,LONG lParam,UINT mode,CLSID *pclsidHandler); | 
|  | STDAPI AVIStreamOpenFromFileW(PAVISTREAM *ppavi,LPCWSTR szFile,DWORD fccType,LONG lParam,UINT mode,CLSID *pclsidHandler); | 
|  | STDAPI AVIStreamCreate(PAVISTREAM *ppavi,LONG lParam1,LONG lParam2,CLSID *pclsidHandler); | 
|  |  | 
|  | #define FIND_DIR __MSABI_LONG(0x0000000F) | 
|  | #define FIND_NEXT __MSABI_LONG(0x00000001) | 
|  | #define FIND_PREV __MSABI_LONG(0x00000004) | 
|  | #define FIND_FROM_START __MSABI_LONG(0x00000008) | 
|  |  | 
|  | #define FIND_TYPE __MSABI_LONG(0x000000F0) | 
|  | #define FIND_KEY __MSABI_LONG(0x00000010) | 
|  | #define FIND_ANY __MSABI_LONG(0x00000020) | 
|  | #define FIND_FORMAT __MSABI_LONG(0x00000040) | 
|  |  | 
|  | #define FIND_RET __MSABI_LONG(0x0000F000) | 
|  | #define FIND_POS __MSABI_LONG(0x00000000) | 
|  | #define FIND_LENGTH __MSABI_LONG(0x00001000) | 
|  | #define FIND_OFFSET __MSABI_LONG(0x00002000) | 
|  | #define FIND_SIZE __MSABI_LONG(0x00003000) | 
|  | #define FIND_INDEX __MSABI_LONG(0x00004000) | 
|  |  | 
|  | #define AVIStreamFindKeyFrame AVIStreamFindSample | 
|  | #define FindKeyFrame FindSample | 
|  |  | 
|  | #define AVIStreamClose AVIStreamRelease | 
|  | #define AVIFileClose AVIFileRelease | 
|  | #define AVIStreamInit AVIFileInit | 
|  | #define AVIStreamExit AVIFileExit | 
|  |  | 
|  | #define SEARCH_NEAREST FIND_PREV | 
|  | #define SEARCH_BACKWARD FIND_PREV | 
|  | #define SEARCH_FORWARD FIND_NEXT | 
|  | #define SEARCH_KEY FIND_KEY | 
|  | #define SEARCH_ANY FIND_ANY | 
|  |  | 
|  | #define AVIStreamSampleToSample(pavi1,pavi2,l) AVIStreamTimeToSample(pavi1,AVIStreamSampleToTime(pavi2,l)) | 
|  | #define AVIStreamNextSample(pavi,l) AVIStreamFindSample(pavi,l+1,FIND_NEXT|FIND_ANY) | 
|  | #define AVIStreamPrevSample(pavi,l) AVIStreamFindSample(pavi,l-1,FIND_PREV|FIND_ANY) | 
|  | #define AVIStreamNearestSample(pavi,l) AVIStreamFindSample(pavi,l,FIND_PREV|FIND_ANY) | 
|  | #define AVIStreamNextKeyFrame(pavi,l) AVIStreamFindSample(pavi,l+1,FIND_NEXT|FIND_KEY) | 
|  | #define AVIStreamPrevKeyFrame(pavi,l) AVIStreamFindSample(pavi,l-1,FIND_PREV|FIND_KEY) | 
|  | #define AVIStreamNearestKeyFrame(pavi,l) AVIStreamFindSample(pavi,l,FIND_PREV|FIND_KEY) | 
|  | #define AVIStreamIsKeyFrame(pavi,l) (AVIStreamNearestKeyFrame(pavi,l)==l) | 
|  | #define AVIStreamPrevSampleTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamPrevSample(pavi,AVIStreamTimeToSample(pavi,t))) | 
|  | #define AVIStreamNextSampleTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamNextSample(pavi,AVIStreamTimeToSample(pavi,t))) | 
|  | #define AVIStreamNearestSampleTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamNearestSample(pavi,AVIStreamTimeToSample(pavi,t))) | 
|  | #define AVIStreamNextKeyFrameTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamNextKeyFrame(pavi,AVIStreamTimeToSample(pavi,t))) | 
|  | #define AVIStreamPrevKeyFrameTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamPrevKeyFrame(pavi,AVIStreamTimeToSample(pavi,t))) | 
|  | #define AVIStreamNearestKeyFrameTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamNearestKeyFrame(pavi,AVIStreamTimeToSample(pavi,t))) | 
|  | #define AVIStreamStartTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamStart(pavi)) | 
|  | #define AVIStreamLengthTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamLength(pavi)) | 
|  | #define AVIStreamEnd(pavi) (AVIStreamStart(pavi) + AVIStreamLength(pavi)) | 
|  | #define AVIStreamEndTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamEnd(pavi)) | 
|  | #define AVIStreamSampleSize(pavi,lPos,plSize) AVIStreamRead(pavi,lPos,1,NULL,(LONG)0,plSize,NULL) | 
|  | #define AVIStreamFormatSize(pavi,lPos,plSize) AVIStreamReadFormat(pavi,lPos,NULL,plSize) | 
|  | #define AVIStreamDataSize(pavi,fcc,plSize) AVIStreamReadData(pavi,fcc,NULL,plSize) | 
|  |  | 
|  | #define AVStreamNextKeyFrame(pavi,pos) AVIStreamFindSample(pavi, pos + 1, FIND_NEXT | FIND_KEY) | 
|  | #define AVStreamPrevKeyFrame(pavi,pos) AVIStreamFindSample(pavi, pos - 1, FIND_NEXT | FIND_KEY) | 
|  |  | 
|  | #ifndef comptypeDIB | 
|  | #define comptypeDIB mmioFOURCC('D','I','B',' ') | 
|  | #endif | 
|  |  | 
|  | #define AVISave __MINGW_NAME_AW(AVISave) | 
|  | #define AVISaveV __MINGW_NAME_AW(AVISaveV) | 
|  | #define AVIBuildFilter __MINGW_NAME_AW(AVIBuildFilter) | 
|  | #define EditStreamSetInfo __MINGW_NAME_AW(EditStreamSetInfo) | 
|  | #define EditStreamSetName __MINGW_NAME_AW(EditStreamSetName) | 
|  |  | 
|  | STDAPI AVIMakeCompressedStream(PAVISTREAM *ppsCompressed,PAVISTREAM ppsSource,AVICOMPRESSOPTIONS *lpOptions,CLSID *pclsidHandler); | 
|  | EXTERN_C HRESULT CDECL AVISaveA (LPCSTR szFile,CLSID *pclsidHandler,AVISAVECALLBACK lpfnCallback,int nStreams,PAVISTREAM pfile,LPAVICOMPRESSOPTIONS lpOptions,...); | 
|  | STDAPI AVISaveVA(LPCSTR szFile,CLSID *pclsidHandler,AVISAVECALLBACK lpfnCallback,int nStreams,PAVISTREAM *ppavi,LPAVICOMPRESSOPTIONS *plpOptions); | 
|  | EXTERN_C HRESULT CDECL AVISaveW (LPCWSTR szFile,CLSID *pclsidHandler,AVISAVECALLBACK lpfnCallback,int nStreams,PAVISTREAM pfile,LPAVICOMPRESSOPTIONS lpOptions,...); | 
|  | STDAPI AVISaveVW(LPCWSTR szFile,CLSID *pclsidHandler,AVISAVECALLBACK lpfnCallback,int nStreams,PAVISTREAM *ppavi,LPAVICOMPRESSOPTIONS *plpOptions); | 
|  | STDAPI_(INT_PTR) AVISaveOptions(HWND hwnd,UINT uiFlags,int nStreams,PAVISTREAM *ppavi,LPAVICOMPRESSOPTIONS *plpOptions); | 
|  | STDAPI AVISaveOptionsFree(int nStreams,LPAVICOMPRESSOPTIONS *plpOptions); | 
|  | STDAPI AVIBuildFilterW(LPWSTR lpszFilter,LONG cbFilter,WINBOOL fSaving); | 
|  | STDAPI AVIBuildFilterA(LPSTR lpszFilter,LONG cbFilter,WINBOOL fSaving); | 
|  | STDAPI AVIMakeFileFromStreams(PAVIFILE *ppfile,int nStreams,PAVISTREAM *papStreams); | 
|  | STDAPI AVIMakeStreamFromClipboard(UINT cfFormat,HANDLE hGlobal,PAVISTREAM *ppstream); | 
|  | STDAPI AVIPutFileOnClipboard(PAVIFILE pf); | 
|  | STDAPI AVIGetFromClipboard(PAVIFILE *lppf); | 
|  | STDAPI AVIClearClipboard(void); | 
|  | STDAPI CreateEditableStream(PAVISTREAM *ppsEditable,PAVISTREAM psSource); | 
|  | STDAPI EditStreamCut(PAVISTREAM pavi,LONG *plStart,LONG *plLength,PAVISTREAM *ppResult); | 
|  | STDAPI EditStreamCopy(PAVISTREAM pavi,LONG *plStart,LONG *plLength,PAVISTREAM *ppResult); | 
|  | STDAPI EditStreamPaste(PAVISTREAM pavi,LONG *plPos,LONG *plLength,PAVISTREAM pstream,LONG lStart,LONG lEnd); | 
|  | STDAPI EditStreamClone(PAVISTREAM pavi,PAVISTREAM *ppResult); | 
|  | STDAPI EditStreamSetNameA(PAVISTREAM pavi,LPCSTR lpszName); | 
|  | STDAPI EditStreamSetNameW(PAVISTREAM pavi,LPCWSTR lpszName); | 
|  | STDAPI EditStreamSetInfoW(PAVISTREAM pavi,LPAVISTREAMINFOW lpInfo,LONG cbInfo); | 
|  | STDAPI EditStreamSetInfoA(PAVISTREAM pavi,LPAVISTREAMINFOA lpInfo,LONG cbInfo); | 
|  |  | 
|  | #ifndef AVIERR_OK | 
|  | #define AVIERR_OK __MSABI_LONG(0) | 
|  |  | 
|  | #define MAKE_AVIERR(error) MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000 + error) | 
|  |  | 
|  | #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) | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #ifndef NOMCIWND | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | #define MCIWndSM ::SendMessage | 
|  | #else | 
|  | #define MCIWndSM SendMessage | 
|  | #endif | 
|  |  | 
|  | #define MCIWND_WINDOW_CLASS TEXT("MCIWndClass") | 
|  |  | 
|  | #define MCIWndCreate __MINGW_NAME_AW(MCIWndCreate) | 
|  |  | 
|  | HWND WINAPIV MCIWndCreateA(HWND hwndParent,HINSTANCE hInstance,DWORD dwStyle,LPCSTR szFile); | 
|  | HWND WINAPIV MCIWndCreateW(HWND hwndParent,HINSTANCE hInstance,DWORD dwStyle,LPCWSTR szFile); | 
|  | WINBOOL WINAPIV MCIWndRegisterClass(void); | 
|  |  | 
|  | #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_NOTIFYMEDIA __MINGW_NAME_AW(MCIWNDF_NOTIFYMEDIA) | 
|  |  | 
|  | #define MCIWNDF_RECORD 0x2000 | 
|  | #define MCIWNDF_NOERRORDLG 0x4000 | 
|  | #define MCIWNDF_NOOPEN 0x8000 | 
|  |  | 
|  | #define MCIWndCanPlay(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_PLAY,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndCanRecord(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_RECORD,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndCanSave(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_SAVE,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndCanWindow(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_WINDOW,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndCanEject(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_EJECT,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndCanConfig(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_CONFIG,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndPaletteKick(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_PALETTEKICK,(WPARAM)0,(LPARAM)0) | 
|  |  | 
|  | #define MCIWndSave(hwnd,szFile) (LONG)MCIWndSM(hwnd,MCI_SAVE,(WPARAM)0,(LPARAM)(LPVOID)(szFile)) | 
|  | #define MCIWndSaveDialog(hwnd) MCIWndSave(hwnd,-1) | 
|  |  | 
|  | #define MCIWndNew(hwnd,lp) (LONG)MCIWndSM(hwnd,MCIWNDM_NEW,(WPARAM)0,(LPARAM)(LPVOID)(lp)) | 
|  |  | 
|  | #define MCIWndRecord(hwnd) (LONG)MCIWndSM(hwnd,MCI_RECORD,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndOpen(hwnd,sz,f) (LONG)MCIWndSM(hwnd,MCIWNDM_OPEN,(WPARAM)(UINT)(f),(LPARAM)(LPVOID)(sz)) | 
|  | #define MCIWndOpenDialog(hwnd) MCIWndOpen(hwnd,-1,0) | 
|  | #define MCIWndClose(hwnd) (LONG)MCIWndSM(hwnd,MCI_CLOSE,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndPlay(hwnd) (LONG)MCIWndSM(hwnd,MCI_PLAY,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndStop(hwnd) (LONG)MCIWndSM(hwnd,MCI_STOP,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndPause(hwnd) (LONG)MCIWndSM(hwnd,MCI_PAUSE,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndResume(hwnd) (LONG)MCIWndSM(hwnd,MCI_RESUME,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndSeek(hwnd,lPos) (LONG)MCIWndSM(hwnd,MCI_SEEK,(WPARAM)0,(LPARAM)(LONG)(lPos)) | 
|  | #define MCIWndEject(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_EJECT,(WPARAM)0,(LPARAM)0) | 
|  |  | 
|  | #define MCIWndHome(hwnd) MCIWndSeek(hwnd,MCIWND_START) | 
|  | #define MCIWndEnd(hwnd) MCIWndSeek(hwnd,MCIWND_END) | 
|  |  | 
|  | #define MCIWndGetSource(hwnd,prc) (LONG)MCIWndSM(hwnd,MCIWNDM_GET_SOURCE,(WPARAM)0,(LPARAM)(LPRECT)(prc)) | 
|  | #define MCIWndPutSource(hwnd,prc) (LONG)MCIWndSM(hwnd,MCIWNDM_PUT_SOURCE,(WPARAM)0,(LPARAM)(LPRECT)(prc)) | 
|  |  | 
|  | #define MCIWndGetDest(hwnd,prc) (LONG)MCIWndSM(hwnd,MCIWNDM_GET_DEST,(WPARAM)0,(LPARAM)(LPRECT)(prc)) | 
|  | #define MCIWndPutDest(hwnd,prc) (LONG)MCIWndSM(hwnd,MCIWNDM_PUT_DEST,(WPARAM)0,(LPARAM)(LPRECT)(prc)) | 
|  |  | 
|  | #define MCIWndPlayReverse(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_PLAYREVERSE,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndPlayFrom(hwnd,lPos) (LONG)MCIWndSM(hwnd,MCIWNDM_PLAYFROM,(WPARAM)0,(LPARAM)(LONG)(lPos)) | 
|  | #define MCIWndPlayTo(hwnd,lPos) (LONG)MCIWndSM(hwnd,MCIWNDM_PLAYTO,(WPARAM)0,(LPARAM)(LONG)(lPos)) | 
|  | #define MCIWndPlayFromTo(hwnd,lStart,lEnd) (MCIWndSeek(hwnd,lStart),MCIWndPlayTo(hwnd,lEnd)) | 
|  |  | 
|  | #define MCIWndGetDeviceID(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETDEVICEID,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndGetAlias(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETALIAS,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndGetMode(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETMODE,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp)) | 
|  | #define MCIWndGetPosition(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETPOSITION,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndGetPositionString(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETPOSITION,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp)) | 
|  | #define MCIWndGetStart(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETSTART,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndGetLength(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETLENGTH,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndGetEnd(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETEND,(WPARAM)0,(LPARAM)0) | 
|  |  | 
|  | #define MCIWndStep(hwnd,n) (LONG)MCIWndSM(hwnd,MCI_STEP,(WPARAM)0,(LPARAM)(__LONG32)(n)) | 
|  |  | 
|  | #define MCIWndDestroy(hwnd) (VOID)MCIWndSM(hwnd,WM_CLOSE,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndSetZoom(hwnd,iZoom) (VOID)MCIWndSM(hwnd,MCIWNDM_SETZOOM,(WPARAM)0,(LPARAM)(UINT)(iZoom)) | 
|  | #define MCIWndGetZoom(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETZOOM,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndSetVolume(hwnd,iVol) (LONG)MCIWndSM(hwnd,MCIWNDM_SETVOLUME,(WPARAM)0,(LPARAM)(UINT)(iVol)) | 
|  | #define MCIWndGetVolume(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETVOLUME,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndSetSpeed(hwnd,iSpeed) (LONG)MCIWndSM(hwnd,MCIWNDM_SETSPEED,(WPARAM)0,(LPARAM)(UINT)(iSpeed)) | 
|  | #define MCIWndGetSpeed(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETSPEED,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndSetTimeFormat(hwnd,lp) (LONG)MCIWndSM(hwnd,MCIWNDM_SETTIMEFORMAT,(WPARAM)0,(LPARAM)(LPTSTR)(lp)) | 
|  | #define MCIWndGetTimeFormat(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETTIMEFORMAT,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp)) | 
|  | #define MCIWndValidateMedia(hwnd) (VOID)MCIWndSM(hwnd,MCIWNDM_VALIDATEMEDIA,(WPARAM)0,(LPARAM)0) | 
|  |  | 
|  | #define MCIWndSetRepeat(hwnd,f) (void)MCIWndSM(hwnd,MCIWNDM_SETREPEAT,(WPARAM)0,(LPARAM)(WINBOOL)(f)) | 
|  | #define MCIWndGetRepeat(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_GETREPEAT,(WPARAM)0,(LPARAM)0) | 
|  |  | 
|  | #define MCIWndUseFrames(hwnd) MCIWndSetTimeFormat(hwnd,TEXT("frames")) | 
|  | #define MCIWndUseTime(hwnd) MCIWndSetTimeFormat(hwnd,TEXT("ms")) | 
|  |  | 
|  | #define MCIWndSetActiveTimer(hwnd,active) (VOID)MCIWndSM(hwnd,MCIWNDM_SETACTIVETIMER,(WPARAM)(UINT)(active),(LPARAM)0) | 
|  | #define MCIWndSetInactiveTimer(hwnd,inactive) (VOID)MCIWndSM(hwnd,MCIWNDM_SETINACTIVETIMER,(WPARAM)(UINT)(inactive),(LPARAM)0) | 
|  | #define MCIWndSetTimers(hwnd,active,inactive) (VOID)MCIWndSM(hwnd,MCIWNDM_SETTIMERS,(WPARAM)(UINT)(active),(LPARAM)(UINT)(inactive)) | 
|  | #define MCIWndGetActiveTimer(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETACTIVETIMER,(WPARAM)0,(LPARAM)0); | 
|  | #define MCIWndGetInactiveTimer(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETINACTIVETIMER,(WPARAM)0,(LPARAM)0); | 
|  |  | 
|  | #define MCIWndRealize(hwnd,fBkgnd) (LONG)MCIWndSM(hwnd,MCIWNDM_REALIZE,(WPARAM)(WINBOOL)(fBkgnd),(LPARAM)0) | 
|  |  | 
|  | #define MCIWndSendString(hwnd,sz) (LONG)MCIWndSM(hwnd,MCIWNDM_SENDSTRING,(WPARAM)0,(LPARAM)(LPTSTR)(sz)) | 
|  | #define MCIWndReturnString(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_RETURNSTRING,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp)) | 
|  | #define MCIWndGetError(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETERROR,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp)) | 
|  |  | 
|  | #define MCIWndGetPalette(hwnd) (HPALETTE)MCIWndSM(hwnd,MCIWNDM_GETPALETTE,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndSetPalette(hwnd,hpal) (LONG)MCIWndSM(hwnd,MCIWNDM_SETPALETTE,(WPARAM)(HPALETTE)(hpal),(LPARAM)0) | 
|  |  | 
|  | #define MCIWndGetFileName(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETFILENAME,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp)) | 
|  | #define MCIWndGetDevice(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETDEVICE,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp)) | 
|  |  | 
|  | #define MCIWndGetStyles(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETSTYLES,(WPARAM)0,(LPARAM)0) | 
|  | #define MCIWndChangeStyles(hwnd,mask,value) (LONG)MCIWndSM(hwnd,MCIWNDM_CHANGESTYLES,(WPARAM)(UINT)(mask),(LPARAM)(LONG)(value)) | 
|  |  | 
|  | #define MCIWndOpenInterface(hwnd,pUnk) (LONG)MCIWndSM(hwnd,MCIWNDM_OPENINTERFACE,(WPARAM)0,(LPARAM)(LPUNKNOWN)(pUnk)) | 
|  |  | 
|  | #define MCIWndSetOwner(hwnd,hwndP) (LONG)MCIWndSM(hwnd,MCIWNDM_SETOWNER,(WPARAM)(hwndP),(LPARAM)0) | 
|  |  | 
|  | #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_SENDSTRING __MINGW_NAME_AW(MCIWNDM_SENDSTRING) | 
|  | #define MCIWNDM_GETPOSITION __MINGW_NAME_AW(MCIWNDM_GETPOSITION) | 
|  | #define MCIWNDM_GETMODE __MINGW_NAME_AW(MCIWNDM_GETMODE) | 
|  | #define MCIWNDM_SETTIMEFORMAT __MINGW_NAME_AW(MCIWNDM_SETTIMEFORMAT) | 
|  | #define MCIWNDM_GETTIMEFORMAT __MINGW_NAME_AW(MCIWNDM_GETTIMEFORMAT) | 
|  | #define MCIWNDM_GETFILENAME __MINGW_NAME_AW(MCIWNDM_GETFILENAME) | 
|  | #define MCIWNDM_GETDEVICE __MINGW_NAME_AW(MCIWNDM_GETDEVICE) | 
|  | #define MCIWNDM_GETERROR __MINGW_NAME_AW(MCIWNDM_GETERROR) | 
|  | #define MCIWNDM_NEW __MINGW_NAME_AW(MCIWNDM_NEW) | 
|  | #define MCIWNDM_RETURNSTRING __MINGW_NAME_AW(MCIWNDM_RETURNSTRING) | 
|  | #define MCIWNDM_OPEN __MINGW_NAME_AW(MCIWNDM_OPEN) | 
|  |  | 
|  | #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 | 
|  |  | 
|  | #ifndef MCI_PLAY | 
|  | #define MCI_CLOSE 0x0804 | 
|  | #define MCI_PLAY 0x0806 | 
|  | #define MCI_SEEK 0x0807 | 
|  | #define MCI_STOP 0x0808 | 
|  | #define MCI_PAUSE 0x0809 | 
|  | #define MCI_STEP 0x080E | 
|  | #define MCI_RECORD 0x080F | 
|  | #define MCI_SAVE 0x0813 | 
|  | #define MCI_CUT 0x0851 | 
|  | #define MCI_COPY 0x0852 | 
|  | #define MCI_PASTE 0x0853 | 
|  | #define MCI_RESUME 0x0855 | 
|  | #define MCI_DELETE 0x0856 | 
|  | #endif | 
|  |  | 
|  | #ifndef MCI_MODE_NOT_READY | 
|  |  | 
|  | #define MCI_MODE_NOT_READY (524) | 
|  | #define MCI_MODE_STOP (525) | 
|  | #define MCI_MODE_PLAY (526) | 
|  | #define MCI_MODE_RECORD (527) | 
|  | #define MCI_MODE_SEEK (528) | 
|  | #define MCI_MODE_PAUSE (529) | 
|  | #define MCI_MODE_OPEN (530) | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #if !defined(NOAVICAP) || !defined(NOVIDEO) | 
|  |  | 
|  | #ifndef _RCINVOKED | 
|  |  | 
|  | DECLARE_HANDLE(HVIDEO); | 
|  | typedef HVIDEO *LPHVIDEO; | 
|  | #endif | 
|  |  | 
|  | DWORD WINAPI VideoForWindowsVersion(void); | 
|  |  | 
|  | #define DV_ERR_OK (0) | 
|  | #define DV_ERR_BASE (1) | 
|  | #define DV_ERR_NONSPECIFIC (DV_ERR_BASE) | 
|  | #define DV_ERR_BADFORMAT (DV_ERR_BASE + 1) | 
|  |  | 
|  | #define DV_ERR_STILLPLAYING (DV_ERR_BASE + 2) | 
|  |  | 
|  | #define DV_ERR_UNPREPARED (DV_ERR_BASE + 3) | 
|  |  | 
|  | #define DV_ERR_SYNC (DV_ERR_BASE + 4) | 
|  |  | 
|  | #define DV_ERR_TOOMANYCHANNELS (DV_ERR_BASE + 5) | 
|  |  | 
|  | #define DV_ERR_NOTDETECTED (DV_ERR_BASE + 6) | 
|  | #define DV_ERR_BADINSTALL (DV_ERR_BASE + 7) | 
|  | #define DV_ERR_CREATEPALETTE (DV_ERR_BASE + 8) | 
|  | #define DV_ERR_SIZEFIELD (DV_ERR_BASE + 9) | 
|  | #define DV_ERR_PARAM1 (DV_ERR_BASE + 10) | 
|  | #define DV_ERR_PARAM2 (DV_ERR_BASE + 11) | 
|  | #define DV_ERR_CONFIG1 (DV_ERR_BASE + 12) | 
|  | #define DV_ERR_CONFIG2 (DV_ERR_BASE + 13) | 
|  | #define DV_ERR_FLAGS (DV_ERR_BASE + 14) | 
|  | #define DV_ERR_13 (DV_ERR_BASE + 15) | 
|  |  | 
|  | #define DV_ERR_NOTSUPPORTED (DV_ERR_BASE + 16) | 
|  | #define DV_ERR_NOMEM (DV_ERR_BASE + 17) | 
|  | #define DV_ERR_ALLOCATED (DV_ERR_BASE + 18) | 
|  | #define DV_ERR_BADDEVICEID (DV_ERR_BASE + 19) | 
|  | #define DV_ERR_INVALHANDLE (DV_ERR_BASE + 20) | 
|  | #define DV_ERR_BADERRNUM (DV_ERR_BASE + 21) | 
|  | #define DV_ERR_NO_BUFFERS (DV_ERR_BASE + 22) | 
|  |  | 
|  | #define DV_ERR_MEM_CONFLICT (DV_ERR_BASE + 23) | 
|  | #define DV_ERR_IO_CONFLICT (DV_ERR_BASE + 24) | 
|  | #define DV_ERR_DMA_CONFLICT (DV_ERR_BASE + 25) | 
|  | #define DV_ERR_INT_CONFLICT (DV_ERR_BASE + 26) | 
|  | #define DV_ERR_PROTECT_ONLY (DV_ERR_BASE + 27) | 
|  | #define DV_ERR_LASTERROR (DV_ERR_BASE + 27) | 
|  |  | 
|  | #define DV_ERR_USER_MSG (DV_ERR_BASE + 1000) | 
|  |  | 
|  | #ifndef _RCINVOKED | 
|  |  | 
|  | #ifndef MM_DRVM_OPEN | 
|  | #define MM_DRVM_OPEN 0x3D0 | 
|  | #define MM_DRVM_CLOSE 0x3D1 | 
|  | #define MM_DRVM_DATA 0x3D2 | 
|  | #define MM_DRVM_ERROR 0x3D3 | 
|  | #endif | 
|  |  | 
|  | #define DV_VM_OPEN MM_DRVM_OPEN | 
|  | #define DV_VM_CLOSE MM_DRVM_CLOSE | 
|  | #define DV_VM_DATA MM_DRVM_DATA | 
|  | #define DV_VM_ERROR MM_DRVM_ERROR | 
|  |  | 
|  | typedef struct videohdr_tag { | 
|  | LPBYTE lpData; | 
|  | DWORD dwBufferLength; | 
|  | DWORD dwBytesUsed; | 
|  | DWORD dwTimeCaptured; | 
|  | DWORD_PTR dwUser; | 
|  | DWORD dwFlags; | 
|  | DWORD_PTR dwReserved[4]; | 
|  | } VIDEOHDR, NEAR *PVIDEOHDR, FAR * LPVIDEOHDR; | 
|  |  | 
|  | #define VHDR_DONE 0x00000001 | 
|  | #define VHDR_PREPARED 0x00000002 | 
|  | #define VHDR_INQUEUE 0x00000004 | 
|  | #define VHDR_KEYFRAME 0x00000008 | 
|  | #define VHDR_VALID 0x0000000F | 
|  |  | 
|  | typedef struct channel_caps_tag { | 
|  | DWORD dwFlags; | 
|  | DWORD dwSrcRectXMod; | 
|  | DWORD dwSrcRectYMod; | 
|  | DWORD dwSrcRectWidthMod; | 
|  | DWORD dwSrcRectHeightMod; | 
|  | DWORD dwDstRectXMod; | 
|  | DWORD dwDstRectYMod; | 
|  | DWORD dwDstRectWidthMod; | 
|  | DWORD dwDstRectHeightMod; | 
|  | } CHANNEL_CAPS,NEAR *PCHANNEL_CAPS,*LPCHANNEL_CAPS; | 
|  |  | 
|  | #define VCAPS_OVERLAY 0x00000001 | 
|  | #define VCAPS_SRC_CAN_CLIP 0x00000002 | 
|  | #define VCAPS_DST_CAN_CLIP 0x00000004 | 
|  | #define VCAPS_CAN_SCALE 0x00000008 | 
|  |  | 
|  | #define VIDEO_EXTERNALIN 0x0001 | 
|  | #define VIDEO_EXTERNALOUT 0x0002 | 
|  | #define VIDEO_IN 0x0004 | 
|  | #define VIDEO_OUT 0x0008 | 
|  |  | 
|  | #define VIDEO_DLG_QUERY 0x0010 | 
|  |  | 
|  | #define VIDEO_CONFIGURE_QUERY 0x8000 | 
|  |  | 
|  | #define VIDEO_CONFIGURE_SET 0x1000 | 
|  |  | 
|  | #define VIDEO_CONFIGURE_GET 0x2000 | 
|  | #define VIDEO_CONFIGURE_QUERYSIZE 0x0001 | 
|  |  | 
|  | #define VIDEO_CONFIGURE_CURRENT 0x0010 | 
|  | #define VIDEO_CONFIGURE_NOMINAL 0x0020 | 
|  | #define VIDEO_CONFIGURE_MIN 0x0040 | 
|  | #define VIDEO_CONFIGURE_MAX 0x0080 | 
|  |  | 
|  | #define DVM_USER 0X4000 | 
|  |  | 
|  | #define DVM_CONFIGURE_START 0x1000 | 
|  | #define DVM_CONFIGURE_END 0x1FFF | 
|  |  | 
|  | #define DVM_PALETTE (DVM_CONFIGURE_START + 1) | 
|  | #define DVM_FORMAT (DVM_CONFIGURE_START + 2) | 
|  | #define DVM_PALETTERGB555 (DVM_CONFIGURE_START + 3) | 
|  | #define DVM_SRC_RECT (DVM_CONFIGURE_START + 4) | 
|  | #define DVM_DST_RECT (DVM_CONFIGURE_START + 5) | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #ifndef NOAVICAP | 
|  | #ifdef __cplusplus | 
|  |  | 
|  | #define AVICapSM(hwnd,m,w,l) ((::IsWindow(hwnd)) ? ::SendMessage(hwnd,m,w,l) : 0) | 
|  | #else | 
|  |  | 
|  | #define AVICapSM(hwnd,m,w,l) ((IsWindow(hwnd)) ? SendMessage(hwnd,m,w,l) : 0) | 
|  | #endif | 
|  |  | 
|  | #ifndef RC_INVOKED | 
|  |  | 
|  | #define WM_CAP_START WM_USER | 
|  |  | 
|  | #define WM_CAP_UNICODE_START WM_USER+100 | 
|  |  | 
|  | #define WM_CAP_GET_CAPSTREAMPTR (WM_CAP_START+ 1) | 
|  |  | 
|  | #define WM_CAP_SET_CALLBACK_ERRORW (WM_CAP_UNICODE_START+ 2) | 
|  | #define WM_CAP_SET_CALLBACK_STATUSW (WM_CAP_UNICODE_START+ 3) | 
|  | #define WM_CAP_SET_CALLBACK_ERRORA (WM_CAP_START+ 2) | 
|  | #define WM_CAP_SET_CALLBACK_STATUSA (WM_CAP_START+ 3) | 
|  |  | 
|  | #define WM_CAP_SET_CALLBACK_ERROR __MINGW_NAME_AW(WM_CAP_SET_CALLBACK_ERROR) | 
|  | #define WM_CAP_SET_CALLBACK_STATUS __MINGW_NAME_AW(WM_CAP_SET_CALLBACK_STATUS) | 
|  |  | 
|  | #define WM_CAP_SET_CALLBACK_YIELD (WM_CAP_START+ 4) | 
|  | #define WM_CAP_SET_CALLBACK_FRAME (WM_CAP_START+ 5) | 
|  | #define WM_CAP_SET_CALLBACK_VIDEOSTREAM (WM_CAP_START+ 6) | 
|  | #define WM_CAP_SET_CALLBACK_WAVESTREAM (WM_CAP_START+ 7) | 
|  | #define WM_CAP_GET_USER_DATA (WM_CAP_START+ 8) | 
|  | #define WM_CAP_SET_USER_DATA (WM_CAP_START+ 9) | 
|  |  | 
|  | #define WM_CAP_DRIVER_CONNECT (WM_CAP_START+ 10) | 
|  | #define WM_CAP_DRIVER_DISCONNECT (WM_CAP_START+ 11) | 
|  |  | 
|  | #define WM_CAP_DRIVER_GET_NAMEA (WM_CAP_START+ 12) | 
|  | #define WM_CAP_DRIVER_GET_VERSIONA (WM_CAP_START+ 13) | 
|  | #define WM_CAP_DRIVER_GET_NAMEW (WM_CAP_UNICODE_START+ 12) | 
|  | #define WM_CAP_DRIVER_GET_VERSIONW (WM_CAP_UNICODE_START+ 13) | 
|  |  | 
|  | #define WM_CAP_DRIVER_GET_NAME __MINGW_NAME_AW(WM_CAP_DRIVER_GET_NAME) | 
|  | #define WM_CAP_DRIVER_GET_VERSION __MINGW_NAME_AW(WM_CAP_DRIVER_GET_VERSION) | 
|  |  | 
|  | #define WM_CAP_DRIVER_GET_CAPS (WM_CAP_START+ 14) | 
|  |  | 
|  | #define WM_CAP_FILE_SET_CAPTURE_FILEA (WM_CAP_START+ 20) | 
|  | #define WM_CAP_FILE_GET_CAPTURE_FILEA (WM_CAP_START+ 21) | 
|  | #define WM_CAP_FILE_SAVEASA (WM_CAP_START+ 23) | 
|  | #define WM_CAP_FILE_SAVEDIBA (WM_CAP_START+ 25) | 
|  | #define WM_CAP_FILE_SET_CAPTURE_FILEW (WM_CAP_UNICODE_START+ 20) | 
|  | #define WM_CAP_FILE_GET_CAPTURE_FILEW (WM_CAP_UNICODE_START+ 21) | 
|  | #define WM_CAP_FILE_SAVEASW (WM_CAP_UNICODE_START+ 23) | 
|  | #define WM_CAP_FILE_SAVEDIBW (WM_CAP_UNICODE_START+ 25) | 
|  |  | 
|  | #define WM_CAP_FILE_SET_CAPTURE_FILE __MINGW_NAME_AW(WM_CAP_FILE_SET_CAPTURE_FILE) | 
|  | #define WM_CAP_FILE_GET_CAPTURE_FILE __MINGW_NAME_AW(WM_CAP_FILE_GET_CAPTURE_FILE) | 
|  | #define WM_CAP_FILE_SAVEAS __MINGW_NAME_AW(WM_CAP_FILE_SAVEAS) | 
|  | #define WM_CAP_FILE_SAVEDIB __MINGW_NAME_AW(WM_CAP_FILE_SAVEDIB) | 
|  |  | 
|  | #define WM_CAP_FILE_ALLOCATE (WM_CAP_START+ 22) | 
|  | #define WM_CAP_FILE_SET_INFOCHUNK (WM_CAP_START+ 24) | 
|  |  | 
|  | #define WM_CAP_EDIT_COPY (WM_CAP_START+ 30) | 
|  |  | 
|  | #define WM_CAP_SET_AUDIOFORMAT (WM_CAP_START+ 35) | 
|  | #define WM_CAP_GET_AUDIOFORMAT (WM_CAP_START+ 36) | 
|  |  | 
|  | #define WM_CAP_DLG_VIDEOFORMAT (WM_CAP_START+ 41) | 
|  | #define WM_CAP_DLG_VIDEOSOURCE (WM_CAP_START+ 42) | 
|  | #define WM_CAP_DLG_VIDEODISPLAY (WM_CAP_START+ 43) | 
|  | #define WM_CAP_GET_VIDEOFORMAT (WM_CAP_START+ 44) | 
|  | #define WM_CAP_SET_VIDEOFORMAT (WM_CAP_START+ 45) | 
|  | #define WM_CAP_DLG_VIDEOCOMPRESSION (WM_CAP_START+ 46) | 
|  |  | 
|  | #define WM_CAP_SET_PREVIEW (WM_CAP_START+ 50) | 
|  | #define WM_CAP_SET_OVERLAY (WM_CAP_START+ 51) | 
|  | #define WM_CAP_SET_PREVIEWRATE (WM_CAP_START+ 52) | 
|  | #define WM_CAP_SET_SCALE (WM_CAP_START+ 53) | 
|  | #define WM_CAP_GET_STATUS (WM_CAP_START+ 54) | 
|  | #define WM_CAP_SET_SCROLL (WM_CAP_START+ 55) | 
|  |  | 
|  | #define WM_CAP_GRAB_FRAME (WM_CAP_START+ 60) | 
|  | #define WM_CAP_GRAB_FRAME_NOSTOP (WM_CAP_START+ 61) | 
|  |  | 
|  | #define WM_CAP_SEQUENCE (WM_CAP_START+ 62) | 
|  | #define WM_CAP_SEQUENCE_NOFILE (WM_CAP_START+ 63) | 
|  | #define WM_CAP_SET_SEQUENCE_SETUP (WM_CAP_START+ 64) | 
|  | #define WM_CAP_GET_SEQUENCE_SETUP (WM_CAP_START+ 65) | 
|  |  | 
|  | #define WM_CAP_SET_MCI_DEVICEA (WM_CAP_START+ 66) | 
|  | #define WM_CAP_GET_MCI_DEVICEA (WM_CAP_START+ 67) | 
|  | #define WM_CAP_SET_MCI_DEVICEW (WM_CAP_UNICODE_START+ 66) | 
|  | #define WM_CAP_GET_MCI_DEVICEW (WM_CAP_UNICODE_START+ 67) | 
|  |  | 
|  | #define WM_CAP_SET_MCI_DEVICE __MINGW_NAME_AW(WM_CAP_SET_MCI_DEVICE) | 
|  | #define WM_CAP_GET_MCI_DEVICE __MINGW_NAME_AW(WM_CAP_GET_MCI_DEVICE) | 
|  |  | 
|  | #define WM_CAP_STOP (WM_CAP_START+ 68) | 
|  | #define WM_CAP_ABORT (WM_CAP_START+ 69) | 
|  |  | 
|  | #define WM_CAP_SINGLE_FRAME_OPEN (WM_CAP_START+ 70) | 
|  | #define WM_CAP_SINGLE_FRAME_CLOSE (WM_CAP_START+ 71) | 
|  | #define WM_CAP_SINGLE_FRAME (WM_CAP_START+ 72) | 
|  |  | 
|  | #define WM_CAP_PAL_OPENA (WM_CAP_START+ 80) | 
|  | #define WM_CAP_PAL_SAVEA (WM_CAP_START+ 81) | 
|  | #define WM_CAP_PAL_OPENW (WM_CAP_UNICODE_START+ 80) | 
|  | #define WM_CAP_PAL_SAVEW (WM_CAP_UNICODE_START+ 81) | 
|  |  | 
|  | #define WM_CAP_PAL_OPEN __MINGW_NAME_AW(WM_CAP_PAL_OPEN) | 
|  | #define WM_CAP_PAL_SAVE __MINGW_NAME_AW(WM_CAP_PAL_SAVE) | 
|  |  | 
|  | #define WM_CAP_PAL_PASTE (WM_CAP_START+ 82) | 
|  | #define WM_CAP_PAL_AUTOCREATE (WM_CAP_START+ 83) | 
|  | #define WM_CAP_PAL_MANUALCREATE (WM_CAP_START+ 84) | 
|  |  | 
|  | #define WM_CAP_SET_CALLBACK_CAPCONTROL (WM_CAP_START+ 85) | 
|  |  | 
|  | #define WM_CAP_UNICODE_END WM_CAP_PAL_SAVEW | 
|  | #define WM_CAP_END WM_CAP_UNICODE_END | 
|  |  | 
|  | #define capSetCallbackOnError(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_ERROR,(WPARAM)0,(LPARAM)(LPVOID)(fpProc))) | 
|  | #define capSetCallbackOnStatus(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_STATUS,(WPARAM)0,(LPARAM)(LPVOID)(fpProc))) | 
|  | #define capSetCallbackOnYield(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_YIELD,(WPARAM)0,(LPARAM)(LPVOID)(fpProc))) | 
|  | #define capSetCallbackOnFrame(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_FRAME,(WPARAM)0,(LPARAM)(LPVOID)(fpProc))) | 
|  | #define capSetCallbackOnVideoStream(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_VIDEOSTREAM,(WPARAM)0,(LPARAM)(LPVOID)(fpProc))) | 
|  | #define capSetCallbackOnWaveStream(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_WAVESTREAM,(WPARAM)0,(LPARAM)(LPVOID)(fpProc))) | 
|  | #define capSetCallbackOnCapControl(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_CAPCONTROL,(WPARAM)0,(LPARAM)(LPVOID)(fpProc))) | 
|  |  | 
|  | #define capSetUserData(hwnd,lUser) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_USER_DATA,(WPARAM)0,(LPARAM)lUser)) | 
|  | #define capGetUserData(hwnd) (AVICapSM(hwnd,WM_CAP_GET_USER_DATA,(WPARAM)0,(LPARAM)0)) | 
|  |  | 
|  | #define capDriverConnect(hwnd,i) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_CONNECT,(WPARAM)(i),(LPARAM)0)) | 
|  | #define capDriverDisconnect(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_DISCONNECT,(WPARAM)0,(LPARAM)0)) | 
|  | #define capDriverGetName(hwnd,szName,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_GET_NAME,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szName))) | 
|  | #define capDriverGetVersion(hwnd,szVer,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_GET_VERSION,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szVer))) | 
|  | #define capDriverGetCaps(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_GET_CAPS,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPDRIVERCAPS)(s))) | 
|  |  | 
|  | #define capFileSetCaptureFile(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_SET_CAPTURE_FILE,(WPARAM)0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | 
|  | #define capFileGetCaptureFile(hwnd,szName,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_GET_CAPTURE_FILE,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szName))) | 
|  | #define capFileAlloc(hwnd,dwSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_ALLOCATE,(WPARAM)0,(LPARAM)(DWORD)(dwSize))) | 
|  | #define capFileSaveAs(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_SAVEAS,(WPARAM)0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | 
|  | #define capFileSetInfoChunk(hwnd,lpInfoChunk) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_SET_INFOCHUNK,(WPARAM)0,(LPARAM)(LPCAPINFOCHUNK)(lpInfoChunk))) | 
|  | #define capFileSaveDIB(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_SAVEDIB,(WPARAM)0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | 
|  |  | 
|  | #define capEditCopy(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_EDIT_COPY,(WPARAM)0,(LPARAM)0)) | 
|  |  | 
|  | #define capSetAudioFormat(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_AUDIOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPWAVEFORMATEX)(s))) | 
|  | #define capGetAudioFormat(hwnd,s,wSize) ((DWORD)AVICapSM(hwnd,WM_CAP_GET_AUDIOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPWAVEFORMATEX)(s))) | 
|  | #define capGetAudioFormatSize(hwnd) ((DWORD)AVICapSM(hwnd,WM_CAP_GET_AUDIOFORMAT,(WPARAM)0,(LPARAM)0)) | 
|  |  | 
|  | #define capDlgVideoFormat(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DLG_VIDEOFORMAT,(WPARAM)0,(LPARAM)0)) | 
|  | #define capDlgVideoSource(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DLG_VIDEOSOURCE,(WPARAM)0,(LPARAM)0)) | 
|  | #define capDlgVideoDisplay(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DLG_VIDEODISPLAY,(WPARAM)0,(LPARAM)0)) | 
|  | #define capDlgVideoCompression(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DLG_VIDEOCOMPRESSION,(WPARAM)0,(LPARAM)0)) | 
|  |  | 
|  | #define capGetVideoFormat(hwnd,s,wSize) ((DWORD)AVICapSM(hwnd,WM_CAP_GET_VIDEOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(s))) | 
|  | #define capGetVideoFormatSize(hwnd) ((DWORD)AVICapSM(hwnd,WM_CAP_GET_VIDEOFORMAT,(WPARAM)0,(LPARAM)0)) | 
|  | #define capSetVideoFormat(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_VIDEOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(s))) | 
|  |  | 
|  | #define capPreview(hwnd,f) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_PREVIEW,(WPARAM)(WINBOOL)(f),(LPARAM)0)) | 
|  | #define capPreviewRate(hwnd,wMS) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_PREVIEWRATE,(WPARAM)(wMS),(LPARAM)0)) | 
|  | #define capOverlay(hwnd,f) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_OVERLAY,(WPARAM)(WINBOOL)(f),(LPARAM)0)) | 
|  | #define capPreviewScale(hwnd,f) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_SCALE,(WPARAM)(WINBOOL)f,(LPARAM)0)) | 
|  | #define capGetStatus(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GET_STATUS,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPSTATUS)(s))) | 
|  | #define capSetScrollPos(hwnd,lpP) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_SCROLL,(WPARAM)0,(LPARAM)(LPPOINT)(lpP))) | 
|  |  | 
|  | #define capGrabFrame(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GRAB_FRAME,(WPARAM)0,(LPARAM)0)) | 
|  | #define capGrabFrameNoStop(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GRAB_FRAME_NOSTOP,(WPARAM)0,(LPARAM)0)) | 
|  |  | 
|  | #define capCaptureSequence(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SEQUENCE,(WPARAM)0,(LPARAM)0)) | 
|  | #define capCaptureSequenceNoFile(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SEQUENCE_NOFILE,(WPARAM)0,(LPARAM)0)) | 
|  | #define capCaptureStop(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_STOP,(WPARAM)0,(LPARAM)0)) | 
|  | #define capCaptureAbort(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_ABORT,(WPARAM)0,(LPARAM)0)) | 
|  |  | 
|  | #define capCaptureSingleFrameOpen(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SINGLE_FRAME_OPEN,(WPARAM)0,(LPARAM)0)) | 
|  | #define capCaptureSingleFrameClose(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SINGLE_FRAME_CLOSE,(WPARAM)0,(LPARAM)0)) | 
|  | #define capCaptureSingleFrame(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SINGLE_FRAME,(WPARAM)0,(LPARAM)0)) | 
|  |  | 
|  | #define capCaptureGetSetup(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GET_SEQUENCE_SETUP,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPTUREPARMS)(s))) | 
|  | #define capCaptureSetSetup(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_SEQUENCE_SETUP,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPTUREPARMS)(s))) | 
|  |  | 
|  | #define capSetMCIDeviceName(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_MCI_DEVICE,(WPARAM)0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | 
|  | #define capGetMCIDeviceName(hwnd,szName,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GET_MCI_DEVICE,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szName))) | 
|  |  | 
|  | #define capPaletteOpen(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_OPEN,(WPARAM)0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | 
|  | #define capPaletteSave(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_SAVE,(WPARAM)0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | 
|  | #define capPalettePaste(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_PASTE,(WPARAM) 0,(LPARAM)0)) | 
|  | #define capPaletteAuto(hwnd,iFrames,iColors) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_AUTOCREATE,(WPARAM)(iFrames),(LPARAM)(DWORD)(iColors))) | 
|  | #define capPaletteManual(hwnd,fGrab,iColors) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_MANUALCREATE,(WPARAM)(fGrab),(LPARAM)(DWORD)(iColors))) | 
|  |  | 
|  | typedef struct tagCapDriverCaps { | 
|  | UINT wDeviceIndex; | 
|  | WINBOOL fHasOverlay; | 
|  | WINBOOL fHasDlgVideoSource; | 
|  | WINBOOL fHasDlgVideoFormat; | 
|  | WINBOOL fHasDlgVideoDisplay; | 
|  | WINBOOL fCaptureInitialized; | 
|  | WINBOOL fDriverSuppliesPalettes; | 
|  | HANDLE hVideoIn; | 
|  | HANDLE hVideoOut; | 
|  | HANDLE hVideoExtIn; | 
|  | HANDLE hVideoExtOut; | 
|  | } CAPDRIVERCAPS,*PCAPDRIVERCAPS,*LPCAPDRIVERCAPS; | 
|  |  | 
|  | typedef struct tagCapStatus { | 
|  | UINT uiImageWidth; | 
|  | UINT uiImageHeight; | 
|  | WINBOOL fLiveWindow; | 
|  | WINBOOL fOverlayWindow; | 
|  | WINBOOL fScale; | 
|  | POINT ptScroll; | 
|  | WINBOOL fUsingDefaultPalette; | 
|  | WINBOOL fAudioHardware; | 
|  | WINBOOL fCapFileExists; | 
|  | DWORD dwCurrentVideoFrame; | 
|  | DWORD dwCurrentVideoFramesDropped; | 
|  | DWORD dwCurrentWaveSamples; | 
|  | DWORD dwCurrentTimeElapsedMS; | 
|  | HPALETTE hPalCurrent; | 
|  | WINBOOL fCapturingNow; | 
|  | DWORD dwReturn; | 
|  | UINT wNumVideoAllocated; | 
|  | UINT wNumAudioAllocated; | 
|  | } CAPSTATUS,*PCAPSTATUS,*LPCAPSTATUS; | 
|  |  | 
|  | typedef struct tagCaptureParms { | 
|  | DWORD dwRequestMicroSecPerFrame; | 
|  | WINBOOL fMakeUserHitOKToCapture; | 
|  | UINT wPercentDropForError; | 
|  | WINBOOL fYield; | 
|  | DWORD dwIndexSize; | 
|  | UINT wChunkGranularity; | 
|  | WINBOOL fUsingDOSMemory; | 
|  | UINT wNumVideoRequested; | 
|  | WINBOOL fCaptureAudio; | 
|  | UINT wNumAudioRequested; | 
|  | UINT vKeyAbort; | 
|  | WINBOOL fAbortLeftMouse; | 
|  | WINBOOL fAbortRightMouse; | 
|  | WINBOOL fLimitEnabled; | 
|  | UINT wTimeLimit; | 
|  | WINBOOL fMCIControl; | 
|  | WINBOOL fStepMCIDevice; | 
|  | DWORD dwMCIStartTime; | 
|  | DWORD dwMCIStopTime; | 
|  | WINBOOL fStepCaptureAt2x; | 
|  | UINT wStepCaptureAverageFrames; | 
|  | DWORD dwAudioBufferSize; | 
|  | WINBOOL fDisableWriteCache; | 
|  | UINT AVStreamMaster; | 
|  | } CAPTUREPARMS,*PCAPTUREPARMS,*LPCAPTUREPARMS; | 
|  |  | 
|  | #define AVSTREAMMASTER_AUDIO 0 | 
|  | #define AVSTREAMMASTER_NONE 1 | 
|  |  | 
|  | typedef struct tagCapInfoChunk { | 
|  | FOURCC fccInfoID; | 
|  | LPVOID lpData; | 
|  | LONG cbData; | 
|  | } CAPINFOCHUNK,*PCAPINFOCHUNK,*LPCAPINFOCHUNK; | 
|  |  | 
|  | typedef LRESULT (CALLBACK *CAPYIELDCALLBACK)(HWND hWnd); | 
|  | typedef LRESULT (CALLBACK *CAPSTATUSCALLBACKW)(HWND hWnd,int nID,LPCWSTR lpsz); | 
|  | typedef LRESULT (CALLBACK *CAPERRORCALLBACKW)(HWND hWnd,int nID,LPCWSTR lpsz); | 
|  | typedef LRESULT (CALLBACK *CAPSTATUSCALLBACKA)(HWND hWnd,int nID,LPCSTR lpsz); | 
|  | typedef LRESULT (CALLBACK *CAPERRORCALLBACKA)(HWND hWnd,int nID,LPCSTR lpsz); | 
|  |  | 
|  | #define CAPSTATUSCALLBACK __MINGW_NAME_AW(CAPSTATUSCALLBACK) | 
|  | #define CAPERRORCALLBACK __MINGW_NAME_AW(CAPERRORCALLBACK) | 
|  |  | 
|  | typedef LRESULT (CALLBACK *CAPVIDEOCALLBACK)(HWND hWnd,LPVIDEOHDR lpVHdr); | 
|  | typedef LRESULT (CALLBACK *CAPWAVECALLBACK)(HWND hWnd,LPWAVEHDR lpWHdr); | 
|  | typedef LRESULT (CALLBACK *CAPCONTROLCALLBACK)(HWND hWnd,int nState); | 
|  |  | 
|  | #define CONTROLCALLBACK_PREROLL 1 | 
|  | #define CONTROLCALLBACK_CAPTURING 2 | 
|  |  | 
|  | HWND WINAPI capCreateCaptureWindowA (LPCSTR lpszWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hwndParent,int nID); | 
|  | WINBOOL WINAPI capGetDriverDescriptionA (UINT wDriverIndex,LPSTR lpszName,int cbName,LPSTR lpszVer,int cbVer); | 
|  | HWND WINAPI capCreateCaptureWindowW (LPCWSTR lpszWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hwndParent,int nID); | 
|  | WINBOOL WINAPI capGetDriverDescriptionW (UINT wDriverIndex,LPWSTR lpszName,int cbName,LPWSTR lpszVer,int cbVer); | 
|  |  | 
|  | #define capCreateCaptureWindow __MINGW_NAME_AW(capCreateCaptureWindow) | 
|  | #define capGetDriverDescription __MINGW_NAME_AW(capGetDriverDescription) | 
|  | #endif | 
|  |  | 
|  | #define infotypeDIGITIZATION_TIME mmioFOURCC ('I','D','I','T') | 
|  | #define infotypeSMPTE_TIME mmioFOURCC ('I','S','M','P') | 
|  |  | 
|  | #define IDS_CAP_BEGIN 300 | 
|  | #define IDS_CAP_END 301 | 
|  |  | 
|  | #define IDS_CAP_INFO 401 | 
|  | #define IDS_CAP_OUTOFMEM 402 | 
|  | #define IDS_CAP_FILEEXISTS 403 | 
|  | #define IDS_CAP_ERRORPALOPEN 404 | 
|  | #define IDS_CAP_ERRORPALSAVE 405 | 
|  | #define IDS_CAP_ERRORDIBSAVE 406 | 
|  | #define IDS_CAP_DEFAVIEXT 407 | 
|  | #define IDS_CAP_DEFPALEXT 408 | 
|  | #define IDS_CAP_CANTOPEN 409 | 
|  | #define IDS_CAP_SEQ_MSGSTART 410 | 
|  | #define IDS_CAP_SEQ_MSGSTOP 411 | 
|  |  | 
|  | #define IDS_CAP_VIDEDITERR 412 | 
|  | #define IDS_CAP_READONLYFILE 413 | 
|  | #define IDS_CAP_WRITEERROR 414 | 
|  | #define IDS_CAP_NODISKSPACE 415 | 
|  | #define IDS_CAP_SETFILESIZE 416 | 
|  | #define IDS_CAP_SAVEASPERCENT 417 | 
|  |  | 
|  | #define IDS_CAP_DRIVER_ERROR 418 | 
|  |  | 
|  | #define IDS_CAP_WAVE_OPEN_ERROR 419 | 
|  | #define IDS_CAP_WAVE_ALLOC_ERROR 420 | 
|  | #define IDS_CAP_WAVE_PREPARE_ERROR 421 | 
|  | #define IDS_CAP_WAVE_ADD_ERROR 422 | 
|  | #define IDS_CAP_WAVE_SIZE_ERROR 423 | 
|  |  | 
|  | #define IDS_CAP_VIDEO_OPEN_ERROR 424 | 
|  | #define IDS_CAP_VIDEO_ALLOC_ERROR 425 | 
|  | #define IDS_CAP_VIDEO_PREPARE_ERROR 426 | 
|  | #define IDS_CAP_VIDEO_ADD_ERROR 427 | 
|  | #define IDS_CAP_VIDEO_SIZE_ERROR 428 | 
|  |  | 
|  | #define IDS_CAP_FILE_OPEN_ERROR 429 | 
|  | #define IDS_CAP_FILE_WRITE_ERROR 430 | 
|  | #define IDS_CAP_RECORDING_ERROR 431 | 
|  | #define IDS_CAP_RECORDING_ERROR2 432 | 
|  | #define IDS_CAP_AVI_INIT_ERROR 433 | 
|  | #define IDS_CAP_NO_FRAME_CAP_ERROR 434 | 
|  | #define IDS_CAP_NO_PALETTE_WARN 435 | 
|  | #define IDS_CAP_MCI_CONTROL_ERROR 436 | 
|  | #define IDS_CAP_MCI_CANT_STEP_ERROR 437 | 
|  | #define IDS_CAP_NO_AUDIO_CAP_ERROR 438 | 
|  | #define IDS_CAP_AVI_DRAWDIB_ERROR 439 | 
|  | #define IDS_CAP_COMPRESSOR_ERROR 440 | 
|  | #define IDS_CAP_AUDIO_DROP_ERROR 441 | 
|  | #define IDS_CAP_AUDIO_DROP_COMPERROR 442 | 
|  |  | 
|  | #define IDS_CAP_STAT_LIVE_MODE 500 | 
|  | #define IDS_CAP_STAT_OVERLAY_MODE 501 | 
|  | #define IDS_CAP_STAT_CAP_INIT 502 | 
|  | #define IDS_CAP_STAT_CAP_FINI 503 | 
|  | #define IDS_CAP_STAT_PALETTE_BUILD 504 | 
|  | #define IDS_CAP_STAT_OPTPAL_BUILD 505 | 
|  | #define IDS_CAP_STAT_I_FRAMES 506 | 
|  | #define IDS_CAP_STAT_L_FRAMES 507 | 
|  | #define IDS_CAP_STAT_CAP_L_FRAMES 508 | 
|  | #define IDS_CAP_STAT_CAP_AUDIO 509 | 
|  | #define IDS_CAP_STAT_VIDEOCURRENT 510 | 
|  | #define IDS_CAP_STAT_VIDEOAUDIO 511 | 
|  | #define IDS_CAP_STAT_VIDEOONLY 512 | 
|  | #define IDS_CAP_STAT_FRAMESDROPPED 513 | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #ifndef NOMSACM | 
|  | #include <msacm.h> | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #ifdef OFN_READONLY | 
|  | WINBOOL WINAPI GetOpenFileNamePreviewA(LPOPENFILENAMEA lpofn); | 
|  | WINBOOL WINAPI GetSaveFileNamePreviewA(LPOPENFILENAMEA lpofn); | 
|  | WINBOOL WINAPI GetOpenFileNamePreviewW(LPOPENFILENAMEW lpofn); | 
|  | WINBOOL WINAPI GetSaveFileNamePreviewW(LPOPENFILENAMEW lpofn); | 
|  |  | 
|  | #define GetOpenFileNamePreview __MINGW_NAME_AW(GetOpenFileNamePreview) | 
|  | #define GetSaveFileNamePreview __MINGW_NAME_AW(GetSaveFileNamePreview) | 
|  | #endif | 
|  |  | 
|  | #ifndef RC_INVOKED | 
|  | #include "poppack.h" | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  | #endif |