4e2933c620 2015-04-21 kinaba: /***********************************************************************\ 4e2933c620 2015-04-21 kinaba: * vfw.d * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Windows API header module * 4e2933c620 2015-04-21 kinaba: * written in the D programming language * 4e2933c620 2015-04-21 kinaba: * * 4e2933c620 2015-04-21 kinaba: * Placed into public domain * 4e2933c620 2015-04-21 kinaba: \***********************************************************************/ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: module win32.vfw; 9b639cf2d6 2015-05-05 kinaba: pragma(lib, "vfw32"); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: private import 4e2933c620 2015-04-21 kinaba: win32.commdlg, 4e2933c620 2015-04-21 kinaba: win32.wingdi, 4e2933c620 2015-04-21 kinaba: win32.mmsystem, 4e2933c620 2015-04-21 kinaba: win32.unknwn, 4e2933c620 2015-04-21 kinaba: win32.w32api, 4e2933c620 2015-04-21 kinaba: win32.windef, 4e2933c620 2015-04-21 kinaba: win32.winuser; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern(Windows) { 4e2933c620 2015-04-21 kinaba: DWORD VideoForWindowsVersion(); 4e2933c620 2015-04-21 kinaba: LONG InitVFW(); 4e2933c620 2015-04-21 kinaba: LONG TermVFW(); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD MKFOURCC(char ch0, char ch1, char ch2, char ch3) { 4e2933c620 2015-04-21 kinaba: return (cast(DWORD)ch0) | ((cast(DWORD)ch1) << 8) | ((cast(DWORD)ch2) << 16) | ((cast(DWORD)ch3) << 24); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /** 4e2933c620 2015-04-21 kinaba: * COMPMAN - Installable Compression Manager. 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICVERSION = 0x0104; 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: alias TypeDef!(HANDLE) HIC; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const BI_1632 = 0x32333631; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: template aviTWOCC(char c0, char c1) { 4e2933c620 2015-04-21 kinaba: const WORD aviTWOCC = c0 | (c1 << 8); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICTYPE_VIDEO = mmioFOURCC!('v', 'i', 'd', 'c'); 4e2933c620 2015-04-21 kinaba: const ICTYPE_AUDIO = mmioFOURCC!('a', 'u', 'd', 'c'); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICERR_OK = 0, 4e2933c620 2015-04-21 kinaba: ICERR_DONTDRAW = 1, 4e2933c620 2015-04-21 kinaba: ICERR_NEWPALETTE = 2, 4e2933c620 2015-04-21 kinaba: ICERR_GOTOKEYFRAME = 3, 4e2933c620 2015-04-21 kinaba: ICERR_STOPDRAWING = 4, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICERR_UNSUPPORTED = -1; 4e2933c620 2015-04-21 kinaba: const ICERR_BADFORMAT = -2; 4e2933c620 2015-04-21 kinaba: const ICERR_MEMORY = -3; 4e2933c620 2015-04-21 kinaba: const ICERR_INTERNAL = -4; 4e2933c620 2015-04-21 kinaba: const ICERR_BADFLAGS = -5; 4e2933c620 2015-04-21 kinaba: const ICERR_BADPARAM = -6; 4e2933c620 2015-04-21 kinaba: const ICERR_BADSIZE = -7; 4e2933c620 2015-04-21 kinaba: const ICERR_BADHANDLE = -8; 4e2933c620 2015-04-21 kinaba: const ICERR_CANTUPDATE = -9; 4e2933c620 2015-04-21 kinaba: const ICERR_ABORT = -10; 4e2933c620 2015-04-21 kinaba: const ICERR_ERROR = -100; 4e2933c620 2015-04-21 kinaba: const ICERR_BADBITDEPTH = -200; 4e2933c620 2015-04-21 kinaba: const ICERR_BADIMAGESIZE = -201; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICERR_CUSTOM = -400; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICMODE_COMPRESS = 1, 4e2933c620 2015-04-21 kinaba: ICMODE_DECOMPRESS, 4e2933c620 2015-04-21 kinaba: ICMODE_FASTDECOMPRESS, 4e2933c620 2015-04-21 kinaba: ICMODE_QUERY, 4e2933c620 2015-04-21 kinaba: ICMODE_FASTCOMPRESS, 4e2933c620 2015-04-21 kinaba: ICMODE_DRAW = 8, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICMODE_INTERNALF_FUNCTION32 = 0x8000; 4e2933c620 2015-04-21 kinaba: const ICMODE_INTERNALF_MASK = 0x8000; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: AVIIF_LIST = 0x00000001, 4e2933c620 2015-04-21 kinaba: AVIIF_TWOCC = 0x00000002, 4e2933c620 2015-04-21 kinaba: AVIIF_KEYFRAME = 0x00000010, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICQUALITY_LOW = 0; 4e2933c620 2015-04-21 kinaba: const ICQUALITY_HIGH = 10000; 4e2933c620 2015-04-21 kinaba: const ICQUALITY_DEFAULT = -1; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICM_USER = DRV_USER + 0x0000, 4e2933c620 2015-04-21 kinaba: ICM_RESERVED_LOW = DRV_USER + 0x1000, 4e2933c620 2015-04-21 kinaba: ICM_RESERVED_HIGH = DRV_USER + 0x2000, 4e2933c620 2015-04-21 kinaba: ICM_RESERVED = ICM_RESERVED_LOW, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // messages 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICM_GETSTATE = ICM_RESERVED + 0, 4e2933c620 2015-04-21 kinaba: ICM_SETSTATE = ICM_RESERVED + 1, 4e2933c620 2015-04-21 kinaba: ICM_GETINFO = ICM_RESERVED + 2, 4e2933c620 2015-04-21 kinaba: ICM_CONFIGURE = ICM_RESERVED + 10, 4e2933c620 2015-04-21 kinaba: ICM_ABOUT = ICM_RESERVED + 11, 4e2933c620 2015-04-21 kinaba: ICM_GETERRORTEXT = ICM_RESERVED + 12, 4e2933c620 2015-04-21 kinaba: ICM_GETFORMATNAME = ICM_RESERVED + 20, 4e2933c620 2015-04-21 kinaba: ICM_ENUMFORMATS = ICM_RESERVED + 21, 4e2933c620 2015-04-21 kinaba: ICM_GETDEFAULTQUALITY = ICM_RESERVED + 30, 4e2933c620 2015-04-21 kinaba: ICM_GETQUALITY = ICM_RESERVED + 31, 4e2933c620 2015-04-21 kinaba: ICM_SETQUALITY = ICM_RESERVED + 32, 4e2933c620 2015-04-21 kinaba: ICM_SET = ICM_RESERVED + 40, 4e2933c620 2015-04-21 kinaba: ICM_GET = ICM_RESERVED + 41, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICM_FRAMERATE = mmioFOURCC!('F','r','m','R'); 4e2933c620 2015-04-21 kinaba: const ICM_KEYFRAMERATE = mmioFOURCC!('K','e','y','R'); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // ICM specific messages. 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICM_COMPRESS_GET_FORMAT = ICM_USER + 4, 4e2933c620 2015-04-21 kinaba: ICM_COMPRESS_GET_SIZE = ICM_USER + 5, 4e2933c620 2015-04-21 kinaba: ICM_COMPRESS_QUERY = ICM_USER + 6, 4e2933c620 2015-04-21 kinaba: ICM_COMPRESS_BEGIN = ICM_USER + 7, 4e2933c620 2015-04-21 kinaba: ICM_COMPRESS = ICM_USER + 8, 4e2933c620 2015-04-21 kinaba: ICM_COMPRESS_END = ICM_USER + 9, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESS_GET_FORMAT = ICM_USER + 10, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESS_QUERY = ICM_USER + 11, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESS_BEGIN = ICM_USER + 12, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESS = ICM_USER + 13, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESS_END = ICM_USER + 14, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESS_SET_PALETTE = ICM_USER + 29, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESS_GET_PALETTE = ICM_USER + 30, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_QUERY = ICM_USER + 31, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_BEGIN = ICM_USER + 15, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_GET_PALETTE = ICM_USER + 16, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_UPDATE = ICM_USER + 17, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_START = ICM_USER + 18, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_STOP = ICM_USER + 19, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_BITS = ICM_USER + 20, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_END = ICM_USER + 21, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_GETTIME = ICM_USER + 32, 4e2933c620 2015-04-21 kinaba: ICM_DRAW = ICM_USER + 33, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_WINDOW = ICM_USER + 34, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_SETTIME = ICM_USER + 35, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_REALIZE = ICM_USER + 36, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_FLUSH = ICM_USER + 37, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_RENDERBUFFER = ICM_USER + 38, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_START_PLAY = ICM_USER + 39, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_STOP_PLAY = ICM_USER + 40, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_SUGGESTFORMAT = ICM_USER + 50, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_CHANGEPALETTE = ICM_USER + 51, 4e2933c620 2015-04-21 kinaba: ICM_DRAW_IDLE = ICM_USER + 52, 4e2933c620 2015-04-21 kinaba: ICM_GETBUFFERSWANTED = ICM_USER + 41, 4e2933c620 2015-04-21 kinaba: ICM_GETDEFAULTKEYFRAMERATE = ICM_USER + 42, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESSEX_BEGIN = ICM_USER + 60, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESSEX_QUERY = ICM_USER + 61, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESSEX = ICM_USER + 62, 4e2933c620 2015-04-21 kinaba: ICM_DECOMPRESSEX_END = ICM_USER + 63, 4e2933c620 2015-04-21 kinaba: ICM_COMPRESS_FRAMES_INFO = ICM_USER + 70, 4e2933c620 2015-04-21 kinaba: ICM_COMPRESS_FRAMES = ICM_USER + 71, 4e2933c620 2015-04-21 kinaba: ICM_SET_STATUS_PROC = ICM_USER + 72, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICOPEN { 4e2933c620 2015-04-21 kinaba: DWORD dwSize; 4e2933c620 2015-04-21 kinaba: DWORD fccType; 4e2933c620 2015-04-21 kinaba: DWORD fccHandler; 4e2933c620 2015-04-21 kinaba: DWORD dwVersion; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: LRESULT dwError; 4e2933c620 2015-04-21 kinaba: LPVOID pV1Reserved; 4e2933c620 2015-04-21 kinaba: LPVOID pV2Reserved; 4e2933c620 2015-04-21 kinaba: DWORD dnDevNode; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICINFO { 4e2933c620 2015-04-21 kinaba: DWORD dwSize; 4e2933c620 2015-04-21 kinaba: DWORD fccType; 4e2933c620 2015-04-21 kinaba: DWORD fccHandler; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: DWORD dwVersion; 4e2933c620 2015-04-21 kinaba: DWORD dwVersionICM; 9b639cf2d6 2015-05-05 kinaba: WCHAR[16] szName; 9b639cf2d6 2015-05-05 kinaba: WCHAR[128] szDescription; 9b639cf2d6 2015-05-05 kinaba: WCHAR[128] szDriver; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: VIDCF_QUALITY = 0x0001, 4e2933c620 2015-04-21 kinaba: VIDCF_CRUNCH = 0x0002, 4e2933c620 2015-04-21 kinaba: VIDCF_TEMPORAL = 0x0004, 4e2933c620 2015-04-21 kinaba: VIDCF_COMPRESSFRAMES = 0x0008, 4e2933c620 2015-04-21 kinaba: VIDCF_DRAW = 0x0010, 4e2933c620 2015-04-21 kinaba: VIDCF_FASTTEMPORALC = 0x0020, 4e2933c620 2015-04-21 kinaba: VIDCF_FASTTEMPORALD = 0x0080, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICCOMPRESS_KEYFRAME = 0x00000001L; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICCOMPRESS { 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiOutput; 4e2933c620 2015-04-21 kinaba: LPVOID lpOutput; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiInput; 4e2933c620 2015-04-21 kinaba: LPVOID lpInput; 4e2933c620 2015-04-21 kinaba: LPDWORD lpckid; 4e2933c620 2015-04-21 kinaba: LPDWORD lpdwFlags; 4e2933c620 2015-04-21 kinaba: LONG lFrameNum; 4e2933c620 2015-04-21 kinaba: DWORD dwFrameSize; 4e2933c620 2015-04-21 kinaba: DWORD dwQuality; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiPrev; 4e2933c620 2015-04-21 kinaba: LPVOID lpPrev; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICCOMPRESSFRAMES_PADDING = 0x00000001; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICCOMPRESSFRAMES { 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiOutput; 4e2933c620 2015-04-21 kinaba: LPARAM lOutput; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiInput; 4e2933c620 2015-04-21 kinaba: LPARAM lInput; 4e2933c620 2015-04-21 kinaba: LONG lStartFrame; 4e2933c620 2015-04-21 kinaba: LONG lFrameCount; 4e2933c620 2015-04-21 kinaba: LONG lQuality; 4e2933c620 2015-04-21 kinaba: LONG lDataRate; 4e2933c620 2015-04-21 kinaba: LONG lKeyRate; 4e2933c620 2015-04-21 kinaba: DWORD dwRate; 4e2933c620 2015-04-21 kinaba: DWORD dwScale; DWORD dwOverheadPerFrame; 4e2933c620 2015-04-21 kinaba: DWORD dwReserved2; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LONG function(LPARAM lInput, LONG lFrame, LPVOID lpBits, LONG len) GetData; 4e2933c620 2015-04-21 kinaba: LONG function(LPARAM lOutput, LONG lFrame, LPVOID lpBits, LONG len) PutData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICSTATUS_START = 0, 4e2933c620 2015-04-21 kinaba: ICSTATUS_STATUS = 1, 4e2933c620 2015-04-21 kinaba: ICSTATUS_END = 2, 4e2933c620 2015-04-21 kinaba: ICSTATUS_ERROR = 3, 4e2933c620 2015-04-21 kinaba: ICSTATUS_YIELD = 4, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICSETSTATUSPROC { 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: LPARAM lParam; 4e2933c620 2015-04-21 kinaba: LONG function(LPARAM lParam, UINT message, LONG l) Status; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICDECOMPRESS_NOTKEYFRAME = 0x08000000, 4e2933c620 2015-04-21 kinaba: ICDECOMPRESS_NULLFRAME = 0x10000000, 4e2933c620 2015-04-21 kinaba: ICDECOMPRESS_PREROLL = 0x20000000, 4e2933c620 2015-04-21 kinaba: ICDECOMPRESS_UPDATE = 0x40000000, 4e2933c620 2015-04-21 kinaba: ICDECOMPRESS_HURRYUP = 0x80000000, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICDECOMPRESS { 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiInput; 4e2933c620 2015-04-21 kinaba: LPVOID lpInput; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiOutput; 4e2933c620 2015-04-21 kinaba: LPVOID lpOutput; 4e2933c620 2015-04-21 kinaba: DWORD ckid; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICDECOMPRESSEX { 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiSrc; 4e2933c620 2015-04-21 kinaba: LPVOID lpSrc; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiDst; 4e2933c620 2015-04-21 kinaba: LPVOID lpDst; 4e2933c620 2015-04-21 kinaba: int xDst; 4e2933c620 2015-04-21 kinaba: int yDst; 4e2933c620 2015-04-21 kinaba: int dxDst; 4e2933c620 2015-04-21 kinaba: int dyDst; 4e2933c620 2015-04-21 kinaba: int xSrc; 4e2933c620 2015-04-21 kinaba: int ySrc; 4e2933c620 2015-04-21 kinaba: int dxSrc; 4e2933c620 2015-04-21 kinaba: int dySrc; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICDRAW_QUERY = 0x00000001, 4e2933c620 2015-04-21 kinaba: ICDRAW_FULLSCREEN = 0x00000002, 4e2933c620 2015-04-21 kinaba: ICDRAW_HDC = 0x00000004, 4e2933c620 2015-04-21 kinaba: ICDRAW_ANIMATE = 0x00000008, 4e2933c620 2015-04-21 kinaba: ICDRAW_CONTINUE = 0x00000010, 4e2933c620 2015-04-21 kinaba: ICDRAW_MEMORYDC = 0x00000020, 4e2933c620 2015-04-21 kinaba: ICDRAW_UPDATING = 0x00000040, 4e2933c620 2015-04-21 kinaba: ICDRAW_RENDER = 0x00000080, 4e2933c620 2015-04-21 kinaba: ICDRAW_BUFFER = 0x00000100, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICDRAWBEGIN { 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: HPALETTE hpal; 4e2933c620 2015-04-21 kinaba: HWND hwnd; 4e2933c620 2015-04-21 kinaba: HDC hdc; 4e2933c620 2015-04-21 kinaba: int xDst; 4e2933c620 2015-04-21 kinaba: int yDst; 4e2933c620 2015-04-21 kinaba: int dxDst; 4e2933c620 2015-04-21 kinaba: int dyDst; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbi; 4e2933c620 2015-04-21 kinaba: int xSrc; 4e2933c620 2015-04-21 kinaba: int ySrc; 4e2933c620 2015-04-21 kinaba: int dxSrc; 4e2933c620 2015-04-21 kinaba: int dySrc; 4e2933c620 2015-04-21 kinaba: DWORD dwRate; 4e2933c620 2015-04-21 kinaba: DWORD dwScale; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICDRAW_NOTKEYFRAME = 0x08000000, 4e2933c620 2015-04-21 kinaba: ICDRAW_NULLFRAME = 0x10000000, 4e2933c620 2015-04-21 kinaba: ICDRAW_PREROLL = 0x20000000, 4e2933c620 2015-04-21 kinaba: ICDRAW_UPDATE = 0x40000000, 4e2933c620 2015-04-21 kinaba: ICDRAW_HURRYUP = 0x80000000, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICDRAW { 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: LPVOID lpFormat; 4e2933c620 2015-04-21 kinaba: LPVOID lpData; 4e2933c620 2015-04-21 kinaba: DWORD cbData; 4e2933c620 2015-04-21 kinaba: LONG lTime; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICDRAWSUGGEST { 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiIn; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiSuggest; 4e2933c620 2015-04-21 kinaba: int dxSrc; 4e2933c620 2015-04-21 kinaba: int dySrc; 4e2933c620 2015-04-21 kinaba: int dxDst; 4e2933c620 2015-04-21 kinaba: int dyDst; 4e2933c620 2015-04-21 kinaba: HIC hicDecompressor; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct ICPALETTE { 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: int iStart; 4e2933c620 2015-04-21 kinaba: int iLen; 4e2933c620 2015-04-21 kinaba: LPPALETTEENTRY lppe; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /** 4e2933c620 2015-04-21 kinaba: * ICM function declarations 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: BOOL ICInfo(DWORD fccType, DWORD fccHandler, ICINFO *lpicinfo); 4e2933c620 2015-04-21 kinaba: BOOL ICInstall(DWORD fccType, DWORD fccHandler, LPARAM lParam, LPSTR szDesc, UINT wFlags); 4e2933c620 2015-04-21 kinaba: BOOL ICRemove(DWORD fccType, DWORD fccHandler, UINT wFlags); 4e2933c620 2015-04-21 kinaba: LRESULT ICGetInfo(HIC hic, ICINFO *picinfo, DWORD cb); 4e2933c620 2015-04-21 kinaba: HIC ICOpen(DWORD fccType, DWORD fccHandler, UINT wMode); 4e2933c620 2015-04-21 kinaba: HIC ICOpenFunction(DWORD fccType, DWORD fccHandler, UINT wMode, FARPROC lpfnHandler); 4e2933c620 2015-04-21 kinaba: LRESULT ICClose(HIC hic); 4e2933c620 2015-04-21 kinaba: LRESULT ICSendMessage(HIC hic, UINT msg, DWORD_PTR dw1, DWORD_PTR dw2); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICINSTALL_FUNCTION = 0x0001, 4e2933c620 2015-04-21 kinaba: ICINSTALL_DRIVER = 0x0002, 4e2933c620 2015-04-21 kinaba: ICINSTALL_HDRV = 0x0004, 4e2933c620 2015-04-21 kinaba: ICINSTALL_UNICODE = 0x8000, 4e2933c620 2015-04-21 kinaba: ICINSTALL_DRIVERW = 0x8002, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // query macros 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICMF_CONFIGURE_QUERY = 0x00000001; 4e2933c620 2015-04-21 kinaba: const ICMF_ABOUT_QUERY = 0x00000001; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICQueryAbout(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_ABOUT, -1, ICMF_ABOUT_QUERY) == ICERR_OK; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICAbout(HIC hic, HWND hwnd) { 9b639cf2d6 2015-05-05 kinaba: return cast(DWORD) ICSendMessage(hic, ICM_ABOUT, cast(DWORD_PTR) cast(UINT_PTR) hwnd, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICQueryConfigure(HIC hic) { 4e2933c620 2015-04-21 kinaba: return (ICSendMessage(hic, ICM_CONFIGURE, -1, ICMF_CONFIGURE_QUERY) == ICERR_OK); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICConfigure(HIC hic, HWND hwnd) { 9b639cf2d6 2015-05-05 kinaba: return cast(DWORD) ICSendMessage(hic, ICM_CONFIGURE, cast(DWORD_PTR) cast(UINT_PTR) hwnd, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICGetState(HIC hic, LPVOID pv, DWORD_PTR cb) { 9b639cf2d6 2015-05-05 kinaba: return cast(DWORD) ICSendMessage(hic, ICM_GETSTATE, cast(DWORD_PTR) pv, cb); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICSetState(HIC hic, LPVOID pv, DWORD_PTR cb) { 9b639cf2d6 2015-05-05 kinaba: return cast(DWORD) ICSendMessage(hic, ICM_SETSTATE, cast(DWORD_PTR) pv, cb); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICGetStateSize(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICGetState(hic, null, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD dwICValue; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICGetDefaultQuality(HIC hic) { 4e2933c620 2015-04-21 kinaba: ICSendMessage(hic, ICM_GETDEFAULTQUALITY, cast(DWORD_PTR)&dwICValue, DWORD.sizeof); 4e2933c620 2015-04-21 kinaba: return dwICValue; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICGetDefaultKeyFrameRate(HIC hic) { 4e2933c620 2015-04-21 kinaba: ICSendMessage(hic, ICM_GETDEFAULTKEYFRAMERATE, cast(DWORD_PTR)&dwICValue, DWORD.sizeof); 4e2933c620 2015-04-21 kinaba: return dwICValue; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD ICDrawWindow(HIC hic, LPVOID prc) { 9b639cf2d6 2015-05-05 kinaba: return cast(DWORD) ICSendMessage(hic, ICM_DRAW_WINDOW, cast(DWORD_PTR) prc, RECT.sizeof); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: DWORD ICCompress(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiOutput, LPVOID lpData, 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiInput, LPVOID lpBits, LPDWORD lpckid, LPDWORD lpdwFlags, 4e2933c620 2015-04-21 kinaba: LONG lFrameNum, DWORD dwFrameSize, DWORD dwQuality, LPBITMAPINFOHEADER lpbiPrev, LPVOID lpPrev); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT ICCompressBegin(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_COMPRESS_BEGIN, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICCompressQuery(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_COMPRESS_QUERY, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICCompressGetFormat(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_COMPRESS_GET_FORMAT, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: DWORD ICCompressGetFormatSize(HIC hic, LPVOID lpbi) { 4e2933c620 2015-04-21 kinaba: return cast(DWORD)ICCompressGetFormat(hic, lpbi, null); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: DWORD ICCompressGetSize(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { 4e2933c620 2015-04-21 kinaba: return cast(DWORD)ICSendMessage(hic, ICM_COMPRESS_GET_SIZE, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICCompressEnd(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_COMPRESS_END, 0, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: DWORD ICDecompress(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiFormat, LPVOID lpData, LPBITMAPINFOHEADER lpbi, LPVOID lpBits); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT ICDecompressBegin(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DECOMPRESS_BEGIN, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDecompressQuery(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DECOMPRESS_QUERY, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LONG ICDecompressGetFormat(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { 4e2933c620 2015-04-21 kinaba: return cast(LONG)ICSendMessage(hic, ICM_DECOMPRESS_GET_FORMAT, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LONG ICDecompressGetFormatSize(HIC hic, LPVOID lpbi) { 4e2933c620 2015-04-21 kinaba: return ICDecompressGetFormat(hic, lpbi, null); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDecompressGetPalette(HIC hic, LPVOID lpbiInput, LPVOID lpbiOutput) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DECOMPRESS_GET_PALETTE, cast(DWORD_PTR)lpbiInput, cast(DWORD_PTR)lpbiOutput); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDecompressSetPalette(HIC hic, LPVOID lpbiPalette) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DECOMPRESS_SET_PALETTE, cast(DWORD_PTR)lpbiPalette, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDecompressEnd(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DECOMPRESS_END, 0, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT ICDecompressEx(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, 4e2933c620 2015-04-21 kinaba: LPVOID lpSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, 4e2933c620 2015-04-21 kinaba: LPVOID lpDst, int xDst, int yDst, int dxDst, int dyDst) { 4e2933c620 2015-04-21 kinaba: ICDECOMPRESSEX ic; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ic.dwFlags = dwFlags; 4e2933c620 2015-04-21 kinaba: ic.lpbiSrc = lpbiSrc; 4e2933c620 2015-04-21 kinaba: ic.lpSrc = lpSrc; 4e2933c620 2015-04-21 kinaba: ic.xSrc = xSrc; 4e2933c620 2015-04-21 kinaba: ic.ySrc = ySrc; 4e2933c620 2015-04-21 kinaba: ic.dxSrc = dxSrc; 4e2933c620 2015-04-21 kinaba: ic.dySrc = dySrc; 4e2933c620 2015-04-21 kinaba: ic.lpbiDst = lpbiDst; 4e2933c620 2015-04-21 kinaba: ic.lpDst = lpDst; 4e2933c620 2015-04-21 kinaba: ic.xDst = xDst; 4e2933c620 2015-04-21 kinaba: ic.yDst = yDst; 4e2933c620 2015-04-21 kinaba: ic.dxDst = dxDst; 4e2933c620 2015-04-21 kinaba: ic.dyDst = dyDst; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DECOMPRESSEX, cast(DWORD_PTR)&ic, ic.sizeof); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT ICDecompressExBegin(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, 4e2933c620 2015-04-21 kinaba: LPVOID lpSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, 4e2933c620 2015-04-21 kinaba: LPVOID lpDst, int xDst, int yDst, int dxDst, int dyDst) { 4e2933c620 2015-04-21 kinaba: ICDECOMPRESSEX ic; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ic.dwFlags = dwFlags; 4e2933c620 2015-04-21 kinaba: ic.lpbiSrc = lpbiSrc; 4e2933c620 2015-04-21 kinaba: ic.lpSrc = lpSrc; 4e2933c620 2015-04-21 kinaba: ic.xSrc = xSrc; 4e2933c620 2015-04-21 kinaba: ic.ySrc = ySrc; 4e2933c620 2015-04-21 kinaba: ic.dxSrc = dxSrc; 4e2933c620 2015-04-21 kinaba: ic.dySrc = dySrc; 4e2933c620 2015-04-21 kinaba: ic.lpbiDst = lpbiDst; 4e2933c620 2015-04-21 kinaba: ic.lpDst = lpDst; 4e2933c620 2015-04-21 kinaba: ic.xDst = xDst; 4e2933c620 2015-04-21 kinaba: ic.yDst = yDst; 4e2933c620 2015-04-21 kinaba: ic.dxDst = dxDst; 4e2933c620 2015-04-21 kinaba: ic.dyDst = dyDst; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DECOMPRESSEX_BEGIN, cast(DWORD_PTR)&ic, ic.sizeof); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT ICDecompressExQuery(HIC hic, DWORD dwFlags, LPBITMAPINFOHEADER lpbiSrc, 4e2933c620 2015-04-21 kinaba: LPVOID lpSrc, int xSrc, int ySrc, int dxSrc, int dySrc, LPBITMAPINFOHEADER lpbiDst, 4e2933c620 2015-04-21 kinaba: LPVOID lpDst, int xDst, int yDst, int dxDst, int dyDst) { 4e2933c620 2015-04-21 kinaba: ICDECOMPRESSEX ic; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ic.dwFlags = dwFlags; 4e2933c620 2015-04-21 kinaba: ic.lpbiSrc = lpbiSrc; 4e2933c620 2015-04-21 kinaba: ic.lpSrc = lpSrc; 4e2933c620 2015-04-21 kinaba: ic.xSrc = xSrc; 4e2933c620 2015-04-21 kinaba: ic.ySrc = ySrc; 4e2933c620 2015-04-21 kinaba: ic.dxSrc = dxSrc; 4e2933c620 2015-04-21 kinaba: ic.dySrc = dySrc; 4e2933c620 2015-04-21 kinaba: ic.lpbiDst = lpbiDst; 4e2933c620 2015-04-21 kinaba: ic.lpDst = lpDst; 4e2933c620 2015-04-21 kinaba: ic.xDst = xDst; 4e2933c620 2015-04-21 kinaba: ic.yDst = yDst; 4e2933c620 2015-04-21 kinaba: ic.dxDst = dxDst; 4e2933c620 2015-04-21 kinaba: ic.dyDst = dyDst; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DECOMPRESSEX_QUERY, cast(DWORD_PTR)&ic, ic.sizeof); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT ICDecompressExEnd(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DECOMPRESSEX_END, 0, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: DWORD ICDrawBegin(HIC hic, DWORD dwFlags, HPALETTE hpal, HWND hwnd, HDC hdc, 4e2933c620 2015-04-21 kinaba: int xDst, int yDst, int dxDst, int dyDst, LPBITMAPINFOHEADER lpbi, 4e2933c620 2015-04-21 kinaba: int xSrc, int ySrc, int dxSrc, int dySrc, DWORD dwRate, DWORD dwScale); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: DWORD ICDraw(HIC hic, DWORD dwFlags, LPVOID lpFormat, LPVOID lpData, DWORD cbData, LONG lTime); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawSuggestFormat(HIC hic, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, 4e2933c620 2015-04-21 kinaba: int dxSrc, int dySrc, int dxDst, int dyDst, HIC hicDecomp) { 4e2933c620 2015-04-21 kinaba: ICDRAWSUGGEST ic; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ic.lpbiIn = lpbiIn; 4e2933c620 2015-04-21 kinaba: ic.lpbiSuggest = lpbiOut; 4e2933c620 2015-04-21 kinaba: ic.dxSrc = dxSrc; 4e2933c620 2015-04-21 kinaba: ic.dySrc = dySrc; 4e2933c620 2015-04-21 kinaba: ic.dxDst = dxDst; 4e2933c620 2015-04-21 kinaba: ic.dyDst = dyDst; 4e2933c620 2015-04-21 kinaba: ic.hicDecompressor = hicDecomp; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_SUGGESTFORMAT, cast(DWORD_PTR)&ic, ic.sizeof); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawQuery(HIC hic, LPVOID lpbiInput) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_QUERY, cast(DWORD_PTR)lpbiInput, 0L); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawChangePalette(HIC hic, LPVOID lpbiInput) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_CHANGEPALETTE, cast(DWORD_PTR)lpbiInput, 0L); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICGetBuffersWanted(HIC hic, LPVOID lpdwBuffers) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_GETBUFFERSWANTED, cast(DWORD_PTR)lpdwBuffers, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawEnd(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_END, 0, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawStart(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_START, 0, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawStartPlay(HIC hic, DWORD lFrom, DWORD lTo) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_START_PLAY, cast(DWORD_PTR)lFrom, cast(DWORD_PTR)lTo); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawStop(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_STOP, 0, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawStopPlay(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_STOP_PLAY, 0, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawGetTime(HIC hic, LPVOID lplTime) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_GETTIME, cast(DWORD_PTR)lplTime, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawSetTime(HIC hic, DWORD lTime) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_SETTIME, cast(DWORD_PTR)lTime, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawRealize(HIC hic, HDC hdc, BOOL fBackground) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_REALIZE, cast(DWORD_PTR)hdc, cast(DWORD_PTR)fBackground); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawFlush(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_FLUSH, 0, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: LRESULT ICDrawRenderBuffer(HIC hic) { 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_DRAW_RENDERBUFFER, 0, 0); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT ICSetStatusProc(HIC hic, DWORD dwFlags, LRESULT lParam, LONG function(LPARAM, UINT, LONG) fpfnStatus) { 4e2933c620 2015-04-21 kinaba: ICSETSTATUSPROC ic; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: ic.dwFlags = dwFlags; 4e2933c620 2015-04-21 kinaba: ic.lParam = lParam; 4e2933c620 2015-04-21 kinaba: ic.Status = fpfnStatus; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: return ICSendMessage(hic, ICM_SET_STATUS_PROC, cast(DWORD_PTR)&ic, ic.sizeof); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: HIC ICDecompressOpen(DWORD fccType, DWORD fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut) { 4e2933c620 2015-04-21 kinaba: return ICLocate(fccType, fccHandler, lpbiIn, lpbiOut, ICMODE_DECOMPRESS); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: HIC ICDrawOpen(DWORD fccType, DWORD fccHandler, LPBITMAPINFOHEADER lpbiIn) { 4e2933c620 2015-04-21 kinaba: return ICLocate(fccType, fccHandler, lpbiIn, null, ICMODE_DRAW); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: HIC ICLocate(DWORD fccType, DWORD fccHandler, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, WORD wFlags); 4e2933c620 2015-04-21 kinaba: HIC ICGetDisplayFormat(HIC hic, LPBITMAPINFOHEADER lpbiIn, LPBITMAPINFOHEADER lpbiOut, int BitDepth, int dx, int dy); 4e2933c620 2015-04-21 kinaba: HANDLE ICImageCompress(HIC hic, UINT uiFlags, LPBITMAPINFO lpbiIn, LPVOID lpBits, LPBITMAPINFO lpbiOut, LONG lQuality, LONG* plSize); 4e2933c620 2015-04-21 kinaba: HANDLE ICImageDecompress(HIC hic, UINT uiFlags, LPBITMAPINFO lpbiIn, LPVOID lpBits, LPBITMAPINFO lpbiOut); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct COMPVARS { 4e2933c620 2015-04-21 kinaba: LONG cbSize = this.sizeof; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: HIC hic; 4e2933c620 2015-04-21 kinaba: DWORD fccType; 4e2933c620 2015-04-21 kinaba: DWORD fccHandler; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFO lpbiIn; 4e2933c620 2015-04-21 kinaba: LPBITMAPINFO lpbiOut; 4e2933c620 2015-04-21 kinaba: LPVOID lpBitsOut; 4e2933c620 2015-04-21 kinaba: LPVOID lpBitsPrev; 4e2933c620 2015-04-21 kinaba: LONG lFrame; 4e2933c620 2015-04-21 kinaba: LONG lKey; 4e2933c620 2015-04-21 kinaba: LONG lDataRate; 4e2933c620 2015-04-21 kinaba: LONG lQ; 4e2933c620 2015-04-21 kinaba: LONG lKeyCount; 4e2933c620 2015-04-21 kinaba: LPVOID lpState; 4e2933c620 2015-04-21 kinaba: LONG cbState; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias COMPVARS* PCOMPVARS; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ICMF_COMPVARS_VALID = 0x00000001; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: BOOL ICCompressorChoose(HWND hwnd, UINT uiFlags, LPVOID pvIn, LPVOID lpData, PCOMPVARS pc, LPSTR lpszTitle); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: ICMF_CHOOSE_KEYFRAME = 0x0001, 4e2933c620 2015-04-21 kinaba: ICMF_CHOOSE_DATARATE = 0x0002, 4e2933c620 2015-04-21 kinaba: ICMF_CHOOSE_PREVIEW = 0x0004, 4e2933c620 2015-04-21 kinaba: ICMF_CHOOSE_ALLCOMPRESSORS = 0x0008, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: BOOL ICSeqCompressFrameStart(PCOMPVARS pc, LPBITMAPINFO lpbiIn); 4e2933c620 2015-04-21 kinaba: void ICSeqCompressFrameEnd(PCOMPVARS pc); 4e2933c620 2015-04-21 kinaba: LPVOID ICSeqCompressFrame(PCOMPVARS pc, UINT uiFlags, LPVOID lpBits, BOOL* pfKey, LONG* plSize); 4e2933c620 2015-04-21 kinaba: void ICCompressorFree(PCOMPVARS pc); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: mixin DECLARE_HANDLE!("HDRAWDIB"); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: DDF_0001 = 0x0001, 4e2933c620 2015-04-21 kinaba: DDF_UPDATE = 0x0002, 4e2933c620 2015-04-21 kinaba: DDF_SAME_HDC = 0x0004, 4e2933c620 2015-04-21 kinaba: DDF_SAME_DRAW = 0x0008, 4e2933c620 2015-04-21 kinaba: DDF_DONTDRAW = 0x0010, 4e2933c620 2015-04-21 kinaba: DDF_ANIMATE = 0x0020, 4e2933c620 2015-04-21 kinaba: DDF_BUFFER = 0x0040, 4e2933c620 2015-04-21 kinaba: DDF_JUSTDRAWIT = 0x0080, 4e2933c620 2015-04-21 kinaba: DDF_FULLSCREEN = 0x0100, 4e2933c620 2015-04-21 kinaba: DDF_BACKGROUNDPAL = 0x0200, 4e2933c620 2015-04-21 kinaba: DDF_NOTKEYFRAME = 0x0400, 4e2933c620 2015-04-21 kinaba: DDF_HURRYUP = 0x0800, 4e2933c620 2015-04-21 kinaba: DDF_HALFTONE = 0x1000, 4e2933c620 2015-04-21 kinaba: DDF_2000 = 0x2000, 4e2933c620 2015-04-21 kinaba: DDF_PREROLL = DDF_DONTDRAW, 4e2933c620 2015-04-21 kinaba: DDF_SAME_DIB = DDF_SAME_DRAW, 4e2933c620 2015-04-21 kinaba: DDF_SAME_SIZE = DDF_SAME_DRAW, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: BOOL DrawDibInit(); 4e2933c620 2015-04-21 kinaba: HDRAWDIB DrawDibOpen(); 4e2933c620 2015-04-21 kinaba: BOOL DrawDibClose(HDRAWDIB hdd); 4e2933c620 2015-04-21 kinaba: LPVOID DrawDibGetBuffer(HDRAWDIB hdd, LPBITMAPINFOHEADER lpbi, DWORD dwSize, DWORD dwFlags); 4e2933c620 2015-04-21 kinaba: UINT DrawDibError(HDRAWDIB hdd); 4e2933c620 2015-04-21 kinaba: HPALETTE DrawDibGetPalette(HDRAWDIB hdd); 4e2933c620 2015-04-21 kinaba: BOOL DrawDibSetPalette(HDRAWDIB hdd, HPALETTE hpal); 4e2933c620 2015-04-21 kinaba: BOOL DrawDibChangePalette(HDRAWDIB hdd, int iStart, int iLen, LPPALETTEENTRY lppe); 4e2933c620 2015-04-21 kinaba: UINT DrawDibRealize(HDRAWDIB hdd, HDC hdc, BOOL fBackground); 4e2933c620 2015-04-21 kinaba: BOOL DrawDibStart(HDRAWDIB hdd, DWORD rate); 4e2933c620 2015-04-21 kinaba: BOOL DrawDibStop(HDRAWDIB hdd); 4e2933c620 2015-04-21 kinaba: BOOL DrawDibBegin(HDRAWDIB hdd, HDC hdc, int dxDst, int dyDst, LPBITMAPINFOHEADER lpbi, int dxSrc, int dySrc, UINT wFlags); 4e2933c620 2015-04-21 kinaba: BOOL DrawDibDraw(HDRAWDIB hdd, HDC hdc, int xDst, int yDst, int dxDst, int dyDst, LPBITMAPINFOHEADER lpbi, 4e2933c620 2015-04-21 kinaba: LPVOID lpBits, int xSrc, int ySrc, int dxSrc, int dySrc, UINT wFlags); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL DrawDibUpdate(HDRAWDIB hdd, HDC hdc, int x, int y) { 4e2933c620 2015-04-21 kinaba: return DrawDibDraw(hdd, hdc, x, y, 0, 0, null, null, 0, 0, 0, 0, DDF_UPDATE); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: BOOL DrawDibEnd(HDRAWDIB hdd); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct DRAWDIBTIME { 4e2933c620 2015-04-21 kinaba: LONG timeCount; 4e2933c620 2015-04-21 kinaba: LONG timeDraw; 4e2933c620 2015-04-21 kinaba: LONG timeDecompress; 4e2933c620 2015-04-21 kinaba: LONG timeDither; 4e2933c620 2015-04-21 kinaba: LONG timeStretch; 4e2933c620 2015-04-21 kinaba: LONG timeBlt; 4e2933c620 2015-04-21 kinaba: LONG timeSetDIBits; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias DRAWDIBTIME* LPDRAWDIBTIME; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: BOOL DrawDibTime(HDRAWDIB hdd, LPDRAWDIBTIME lpddtime); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: PD_CAN_DRAW_DIB = 0x0001, 4e2933c620 2015-04-21 kinaba: PD_CAN_STRETCHDIB = 0x0002, 4e2933c620 2015-04-21 kinaba: PD_STRETCHDIB_1_1_OK = 0x0004, 4e2933c620 2015-04-21 kinaba: PD_STRETCHDIB_1_2_OK = 0x0008, 4e2933c620 2015-04-21 kinaba: PD_STRETCHDIB_1_N_OK = 0x0010, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: LRESULT DrawDibProfileDisplay(LPBITMAPINFOHEADER lpbi); 4e2933c620 2015-04-21 kinaba: void StretchDIB(LPBITMAPINFOHEADER biDst, LPVOID lpDst, int DstX, int DstY, 4e2933c620 2015-04-21 kinaba: int DstXE, int DstYE, LPBITMAPINFOHEADER biSrc, LPVOID lpSrc, 4e2933c620 2015-04-21 kinaba: int SrcX, int SrcY, int SrcXE, int SrcYE); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias DWORD FOURCC; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: alias WORD TWOCC; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const formtypeAVI = mmioFOURCC!('A', 'V', 'I', ' '); 4e2933c620 2015-04-21 kinaba: const listtypeAVIHEADER = mmioFOURCC!('h', 'd', 'r', 'l'); 4e2933c620 2015-04-21 kinaba: const ckidAVIMAINHDR = mmioFOURCC!('a', 'v', 'i', 'h'); 4e2933c620 2015-04-21 kinaba: const listtypeSTREAMHEADER = mmioFOURCC!('s', 't', 'r', 'l'); 4e2933c620 2015-04-21 kinaba: const ckidSTREAMHEADER = mmioFOURCC!('s', 't', 'r', 'h'); 4e2933c620 2015-04-21 kinaba: const ckidSTREAMFORMAT = mmioFOURCC!('s', 't', 'r', 'f'); 4e2933c620 2015-04-21 kinaba: const ckidSTREAMHANDLERDATA = mmioFOURCC!('s', 't', 'r', 'd'); 4e2933c620 2015-04-21 kinaba: const ckidSTREAMNAME = mmioFOURCC!('s', 't', 'r', 'n'); 4e2933c620 2015-04-21 kinaba: const listtypeAVIMOVIE = mmioFOURCC!('m', 'o', 'v', 'i'); 4e2933c620 2015-04-21 kinaba: const listtypeAVIRECORD = mmioFOURCC!('r', 'e', 'c', ' '); 4e2933c620 2015-04-21 kinaba: const ckidAVINEWINDEX = mmioFOURCC!('i', 'd', 'x', '1'); 4e2933c620 2015-04-21 kinaba: const streamtypeVIDEO = mmioFOURCC!('v', 'i', 'd', 's'); 4e2933c620 2015-04-21 kinaba: const streamtypeAUDIO = mmioFOURCC!('a', 'u', 'd', 's'); 4e2933c620 2015-04-21 kinaba: const streamtypeMIDI = mmioFOURCC!('m', 'i', 'd', 's'); 4e2933c620 2015-04-21 kinaba: const streamtypeTEXT = mmioFOURCC!('t', 'x', 't', 's'); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const cktypeDIBbits = aviTWOCC!('d', 'b'); 4e2933c620 2015-04-21 kinaba: const cktypeDIBcompressed = aviTWOCC!('d', 'c'); 4e2933c620 2015-04-21 kinaba: const cktypePALchange = aviTWOCC!('p', 'c'); 4e2933c620 2015-04-21 kinaba: const cktypeWAVEbytes = aviTWOCC!('w', 'b'); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const ckidAVIPADDING = mmioFOURCC!('J', 'U', 'N', 'K'); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD FromHex(char n) { 4e2933c620 2015-04-21 kinaba: return (n >= 'A') ? n + 10 - 'A' : n - '0'; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: WORD StreamFromFOURCC(DWORD fcc) { 4e2933c620 2015-04-21 kinaba: return cast(WORD)((FromHex(LOBYTE(LOWORD(fcc))) << 4) + (FromHex(HIBYTE(LOWORD(fcc))))); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: WORD TWOCCFromFOURCC(DWORD fcc) { 4e2933c620 2015-04-21 kinaba: return HIWORD(fcc); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BYTE ToHex(DWORD n) { 4e2933c620 2015-04-21 kinaba: return cast(BYTE)((n > 9) ? n - 10 + 'A' : n + '0'); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD MAKEAVICKID(WORD tcc, WORD stream) { 4e2933c620 2015-04-21 kinaba: return MAKELONG(cast(WORD)((ToHex(stream & 0x0f) << 8) | (ToHex((stream & 0xf0) >> 4))), tcc); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: AVIF_HASINDEX = 0x00000010, 4e2933c620 2015-04-21 kinaba: AVIF_MUSTUSEINDEX = 0x00000020, 4e2933c620 2015-04-21 kinaba: AVIF_ISINTERLEAVED = 0x00000100, 4e2933c620 2015-04-21 kinaba: AVIF_WASCAPTUREFILE = 0x00010000, 4e2933c620 2015-04-21 kinaba: AVIF_COPYRIGHTED = 0x00020000, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const AVI_HEADERSIZE = 2048; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct MainAVIHeader { 4e2933c620 2015-04-21 kinaba: DWORD dwMicroSecPerFrame; 4e2933c620 2015-04-21 kinaba: DWORD dwMaxBytesPerSec; 4e2933c620 2015-04-21 kinaba: DWORD dwPaddingGranularity; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: DWORD dwTotalFrames; 4e2933c620 2015-04-21 kinaba: DWORD dwInitialFrames; 4e2933c620 2015-04-21 kinaba: DWORD dwStreams; 4e2933c620 2015-04-21 kinaba: DWORD dwSuggestedBufferSize; 4e2933c620 2015-04-21 kinaba: DWORD dwWidth; 4e2933c620 2015-04-21 kinaba: DWORD dwHeight; 9b639cf2d6 2015-05-05 kinaba: DWORD[4] dwReserved; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const AVISF_DISABLED = 0x00000001; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const AVISF_VIDEO_PALCHANGES = 0x00010000; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct AVIStreamHeader { 4e2933c620 2015-04-21 kinaba: FOURCC fccType; 4e2933c620 2015-04-21 kinaba: FOURCC fccHandler; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: WORD wPriority; 4e2933c620 2015-04-21 kinaba: WORD wLanguage; 4e2933c620 2015-04-21 kinaba: DWORD dwInitialFrames; 4e2933c620 2015-04-21 kinaba: DWORD dwScale; 4e2933c620 2015-04-21 kinaba: DWORD dwRate; 4e2933c620 2015-04-21 kinaba: DWORD dwStart; 4e2933c620 2015-04-21 kinaba: DWORD dwLength; 4e2933c620 2015-04-21 kinaba: DWORD dwSuggestedBufferSize; 4e2933c620 2015-04-21 kinaba: DWORD dwQuality; 4e2933c620 2015-04-21 kinaba: DWORD dwSampleSize; 4e2933c620 2015-04-21 kinaba: RECT rcFrame; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: AVIIF_FIRSTPART = 0x00000020L, 4e2933c620 2015-04-21 kinaba: AVIIF_LASTPART = 0x00000040L, 4e2933c620 2015-04-21 kinaba: AVIIF_MIDPART = (AVIIF_LASTPART|AVIIF_FIRSTPART), 4e2933c620 2015-04-21 kinaba: AVIIF_NOTIME = 0x00000100L, 4e2933c620 2015-04-21 kinaba: AVIIF_COMPUSE = 0x0FFF0000L, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct AVIINDEXENTRY { 4e2933c620 2015-04-21 kinaba: DWORD ckid; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: DWORD dwChunkOffset; 4e2933c620 2015-04-21 kinaba: DWORD dwChunkLength; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct AVIPALCHANGE { 4e2933c620 2015-04-21 kinaba: BYTE bFirstEntry; 4e2933c620 2015-04-21 kinaba: BYTE bNumEntries; 4e2933c620 2015-04-21 kinaba: WORD wFlags; 9b639cf2d6 2015-05-05 kinaba: PALETTEENTRY[1] _peNew; 9b639cf2d6 2015-05-05 kinaba: PALETTEENTRY* peNew() { return _peNew.ptr; } 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const AVIGETFRAMEF_BESTDISPLAYFMT = 1; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct AVISTREAMINFOW { 4e2933c620 2015-04-21 kinaba: DWORD fccType; 4e2933c620 2015-04-21 kinaba: DWORD fccHandler; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: DWORD dwCaps; 4e2933c620 2015-04-21 kinaba: WORD wPriority; 4e2933c620 2015-04-21 kinaba: WORD wLanguage; 4e2933c620 2015-04-21 kinaba: DWORD dwScale; 4e2933c620 2015-04-21 kinaba: DWORD dwRate; 4e2933c620 2015-04-21 kinaba: DWORD dwStart; 4e2933c620 2015-04-21 kinaba: DWORD dwLength; 4e2933c620 2015-04-21 kinaba: DWORD dwInitialFrames; 4e2933c620 2015-04-21 kinaba: DWORD dwSuggestedBufferSize; 4e2933c620 2015-04-21 kinaba: DWORD dwQuality; 4e2933c620 2015-04-21 kinaba: DWORD dwSampleSize; 4e2933c620 2015-04-21 kinaba: RECT rcFrame; 4e2933c620 2015-04-21 kinaba: DWORD dwEditCount; 4e2933c620 2015-04-21 kinaba: DWORD dwFormatChangeCount; 9b639cf2d6 2015-05-05 kinaba: WCHAR[64] szName; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias AVISTREAMINFOW* LPAVISTREAMINFOW; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct AVISTREAMINFOA { 4e2933c620 2015-04-21 kinaba: DWORD fccType; 4e2933c620 2015-04-21 kinaba: DWORD fccHandler; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: DWORD dwCaps; 4e2933c620 2015-04-21 kinaba: WORD wPriority; 4e2933c620 2015-04-21 kinaba: WORD wLanguage; 4e2933c620 2015-04-21 kinaba: DWORD dwScale; 4e2933c620 2015-04-21 kinaba: DWORD dwRate; 4e2933c620 2015-04-21 kinaba: DWORD dwStart; 4e2933c620 2015-04-21 kinaba: DWORD dwLength; 4e2933c620 2015-04-21 kinaba: DWORD dwInitialFrames; 4e2933c620 2015-04-21 kinaba: DWORD dwSuggestedBufferSize; 4e2933c620 2015-04-21 kinaba: DWORD dwQuality; 4e2933c620 2015-04-21 kinaba: DWORD dwSampleSize; 4e2933c620 2015-04-21 kinaba: RECT rcFrame; 4e2933c620 2015-04-21 kinaba: DWORD dwEditCount; 4e2933c620 2015-04-21 kinaba: DWORD dwFormatChangeCount; 9b639cf2d6 2015-05-05 kinaba: char[64] szName; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias AVISTREAMINFOA* LPAVISTREAMINFOA; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias AVISTREAMINFOW AVISTREAMINFO; 4e2933c620 2015-04-21 kinaba: alias LPAVISTREAMINFOW LPAVISTREAMINFO; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias AVISTREAMINFOA AVISTREAMINFO; 4e2933c620 2015-04-21 kinaba: alias LPAVISTREAMINFOA LPAVISTREAMINFO; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const AVISTREAMINFO_DISABLED = 0x00000001; 4e2933c620 2015-04-21 kinaba: const AVISTREAMINFO_FORMATCHANGES = 0x00010000; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct AVIFILEINFOW { 4e2933c620 2015-04-21 kinaba: DWORD dwMaxBytesPerSec; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: DWORD dwCaps; 4e2933c620 2015-04-21 kinaba: DWORD dwStreams; 4e2933c620 2015-04-21 kinaba: DWORD dwSuggestedBufferSize; 4e2933c620 2015-04-21 kinaba: DWORD dwWidth; 4e2933c620 2015-04-21 kinaba: DWORD dwHeight; 4e2933c620 2015-04-21 kinaba: DWORD dwScale; 4e2933c620 2015-04-21 kinaba: DWORD dwRate; 4e2933c620 2015-04-21 kinaba: DWORD dwLength; 4e2933c620 2015-04-21 kinaba: DWORD dwEditCount; 9b639cf2d6 2015-05-05 kinaba: WCHAR[64] szFileType; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias AVIFILEINFOW* LPAVIFILEINFOW; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct AVIFILEINFOA { 4e2933c620 2015-04-21 kinaba: DWORD dwMaxBytesPerSec; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: DWORD dwCaps; 4e2933c620 2015-04-21 kinaba: DWORD dwStreams; 4e2933c620 2015-04-21 kinaba: DWORD dwSuggestedBufferSize; 4e2933c620 2015-04-21 kinaba: DWORD dwWidth; 4e2933c620 2015-04-21 kinaba: DWORD dwHeight; 4e2933c620 2015-04-21 kinaba: DWORD dwScale; 4e2933c620 2015-04-21 kinaba: DWORD dwRate; 4e2933c620 2015-04-21 kinaba: DWORD dwLength; 4e2933c620 2015-04-21 kinaba: DWORD dwEditCount; 9b639cf2d6 2015-05-05 kinaba: char[64] szFileType; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias AVIFILEINFOA* LPAVIFILEINFOA; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias AVIFILEINFOW AVIFILEINFO; 4e2933c620 2015-04-21 kinaba: alias LPAVIFILEINFOW LPAVIFILEINFO; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias AVIFILEINFOA AVIFILEINFO; 4e2933c620 2015-04-21 kinaba: alias LPAVIFILEINFOA LPAVIFILEINFO; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: AVIFILEINFO_HASINDEX = 0x00000010, 4e2933c620 2015-04-21 kinaba: AVIFILEINFO_MUSTUSEINDEX = 0x00000020, 4e2933c620 2015-04-21 kinaba: AVIFILEINFO_ISINTERLEAVED = 0x00000100, 4e2933c620 2015-04-21 kinaba: AVIFILEINFO_WASCAPTUREFILE = 0x00010000, 4e2933c620 2015-04-21 kinaba: AVIFILEINFO_COPYRIGHTED = 0x00020000, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: AVIFILECAPS_CANREAD = 0x00000001, 4e2933c620 2015-04-21 kinaba: AVIFILECAPS_CANWRITE = 0x00000002, 4e2933c620 2015-04-21 kinaba: AVIFILECAPS_ALLKEYFRAMES = 0x00000010, 4e2933c620 2015-04-21 kinaba: AVIFILECAPS_NOCOMPRESSION = 0x00000020, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: alias BOOL function(int) AVISAVECALLBACK; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct AVICOMPRESSOPTIONS { 4e2933c620 2015-04-21 kinaba: DWORD fccType; 4e2933c620 2015-04-21 kinaba: DWORD fccHandler; 4e2933c620 2015-04-21 kinaba: DWORD dwKeyFrameEvery; 4e2933c620 2015-04-21 kinaba: DWORD dwQuality; 4e2933c620 2015-04-21 kinaba: DWORD dwBytesPerSecond; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: LPVOID lpFormat; 4e2933c620 2015-04-21 kinaba: DWORD cbFormat; 4e2933c620 2015-04-21 kinaba: LPVOID lpParms; 4e2933c620 2015-04-21 kinaba: DWORD cbParms; 4e2933c620 2015-04-21 kinaba: DWORD dwInterleaveEvery; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias AVICOMPRESSOPTIONS* LPAVICOMPRESSOPTIONS; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: AVICOMPRESSF_INTERLEAVE = 0x00000001, 4e2933c620 2015-04-21 kinaba: AVICOMPRESSF_DATARATE = 0x00000002, 4e2933c620 2015-04-21 kinaba: AVICOMPRESSF_KEYFRAMES = 0x00000004, 4e2933c620 2015-04-21 kinaba: AVICOMPRESSF_VALID = 0x00000008, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /+ TODO: 4e2933c620 2015-04-21 kinaba: DECLARE_INTERFACE_(IAVIStream, IUnknown) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,AddRef) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,Release) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDMETHOD(Create) (THIS_ LPARAM lParam1, LPARAM lParam2) PURE ; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Info) (THIS_ AVISTREAMINFOW FAR * psi, LONG lSize) PURE ; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(LONG, FindSample)(THIS_ LONG lPos, LONG lFlags) PURE ; 4e2933c620 2015-04-21 kinaba: STDMETHOD(ReadFormat) (THIS_ LONG lPos, 4e2933c620 2015-04-21 kinaba: LPVOID lpFormat, LONG FAR *lpcbFormat) PURE ; 4e2933c620 2015-04-21 kinaba: STDMETHOD(SetFormat) (THIS_ LONG lPos, 4e2933c620 2015-04-21 kinaba: LPVOID lpFormat, LONG cbFormat) PURE ; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Read) (THIS_ LONG lStart, LONG lSamples, 4e2933c620 2015-04-21 kinaba: LPVOID lpBuffer, LONG cbBuffer, 4e2933c620 2015-04-21 kinaba: LONG FAR * plBytes, LONG FAR * plSamples) PURE ; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Write) (THIS_ LONG lStart, LONG lSamples, 4e2933c620 2015-04-21 kinaba: LPVOID lpBuffer, LONG cbBuffer, 4e2933c620 2015-04-21 kinaba: DWORD dwFlags, 4e2933c620 2015-04-21 kinaba: LONG FAR *plSampWritten, 4e2933c620 2015-04-21 kinaba: LONG FAR *plBytesWritten) PURE ; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Delete) (THIS_ LONG lStart, LONG lSamples) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(ReadData) (THIS_ DWORD fcc, LPVOID lp, LONG FAR *lpcb) PURE ; 4e2933c620 2015-04-21 kinaba: STDMETHOD(WriteData) (THIS_ DWORD fcc, LPVOID lp, LONG cb) PURE ; 4e2933c620 2015-04-21 kinaba: #ifdef _WIN32 4e2933c620 2015-04-21 kinaba: STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW FAR * lpInfo, 4e2933c620 2015-04-21 kinaba: LONG cbInfo) PURE; 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: STDMETHOD(Reserved1) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Reserved2) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Reserved3) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Reserved4) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Reserved5) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: }; 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: alias TypeDef!(IAVIStream FAR*) PAVISTREAM; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #undef INTERFACE 4e2933c620 2015-04-21 kinaba: #define INTERFACE IAVIStreaming 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DECLARE_INTERFACE_(IAVIStreaming, IUnknown) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,AddRef) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,Release) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDMETHOD(Begin) (THIS_ 4e2933c620 2015-04-21 kinaba: LONG lStart, 4e2933c620 2015-04-21 kinaba: LONG lEnd, 4e2933c620 2015-04-21 kinaba: LONG lRate) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(End) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: }; 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: alias TypeDef!(IAVIStreaming FAR*) PAVISTREAMING; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #undef INTERFACE 4e2933c620 2015-04-21 kinaba: #define INTERFACE IAVIEditStream 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DECLARE_INTERFACE_(IAVIEditStream, IUnknown) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,AddRef) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,Release) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDMETHOD(Cut) (THIS_ LONG FAR *plStart, 4e2933c620 2015-04-21 kinaba: LONG FAR *plLength, 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR * ppResult) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Copy) (THIS_ LONG FAR *plStart, 4e2933c620 2015-04-21 kinaba: LONG FAR *plLength, 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR * ppResult) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Paste) (THIS_ LONG FAR *plPos, 4e2933c620 2015-04-21 kinaba: LONG FAR *plLength, 4e2933c620 2015-04-21 kinaba: PAVISTREAM pstream, 4e2933c620 2015-04-21 kinaba: LONG lStart, 4e2933c620 2015-04-21 kinaba: LONG lEnd) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(Clone) (THIS_ PAVISTREAM FAR *ppResult) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW FAR * lpInfo, 4e2933c620 2015-04-21 kinaba: LONG cbInfo) PURE; 4e2933c620 2015-04-21 kinaba: }; 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: alias TypeDef!(IAVIEditStream FAR*) PAVIEDITSTREAM; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #undef INTERFACE 4e2933c620 2015-04-21 kinaba: #define INTERFACE IAVIPersistFile 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DECLARE_INTERFACE_(IAVIPersistFile, IPersistFile) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: STDMETHOD(Reserved1)(THIS) PURE; 4e2933c620 2015-04-21 kinaba: }; 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: alias TypeDef!(IAVIPersistFile FAR*) PAVIPERSISTFILE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #undef INTERFACE 4e2933c620 2015-04-21 kinaba: #define INTERFACE IAVIFile 4e2933c620 2015-04-21 kinaba: #define PAVIFILE IAVIFile FAR* 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DECLARE_INTERFACE_(IAVIFile, IUnknown) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,AddRef) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,Release) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDMETHOD(Info) (THIS_ 4e2933c620 2015-04-21 kinaba: AVIFILEINFOW FAR * pfi, 4e2933c620 2015-04-21 kinaba: LONG lSize) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(GetStream) (THIS_ 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR * ppStream, 4e2933c620 2015-04-21 kinaba: DWORD fccType, 4e2933c620 2015-04-21 kinaba: LONG lParam) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(CreateStream) (THIS_ 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR * ppStream, 4e2933c620 2015-04-21 kinaba: AVISTREAMINFOW FAR * psi) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(WriteData) (THIS_ 4e2933c620 2015-04-21 kinaba: DWORD ckid, 4e2933c620 2015-04-21 kinaba: LPVOID lpData, 4e2933c620 2015-04-21 kinaba: LONG cbData) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(ReadData) (THIS_ 4e2933c620 2015-04-21 kinaba: DWORD ckid, 4e2933c620 2015-04-21 kinaba: LPVOID lpData, 4e2933c620 2015-04-21 kinaba: LONG FAR *lpcbData) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(EndRecord) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(DeleteStream) (THIS_ 4e2933c620 2015-04-21 kinaba: DWORD fccType, 4e2933c620 2015-04-21 kinaba: LONG lParam) PURE; 4e2933c620 2015-04-21 kinaba: }; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #undef PAVIFILE 9b639cf2d6 2015-05-05 kinaba: alias TypeDef!(IAVIFile FAR*) PAVIFILE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #undef INTERFACE 4e2933c620 2015-04-21 kinaba: #define INTERFACE IGetFrame 4e2933c620 2015-04-21 kinaba: #define PGETFRAME IGetFrame FAR* 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DECLARE_INTERFACE_(IGetFrame, IUnknown) 4e2933c620 2015-04-21 kinaba: { 4e2933c620 2015-04-21 kinaba: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,AddRef) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD_(ULONG,Release) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDMETHOD_(LPVOID,GetFrame) (THIS_ LONG lPos) PURE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDMETHOD(Begin) (THIS_ LONG lStart, LONG lEnd, LONG lRate) PURE; 4e2933c620 2015-04-21 kinaba: STDMETHOD(End) (THIS) PURE; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDMETHOD(SetFormat) (THIS_ LPBITMAPINFOHEADER lpbi, LPVOID lpBits, int x, int y, int dx, int dy) PURE; 4e2933c620 2015-04-21 kinaba: }; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #undef PGETFRAME 9b639cf2d6 2015-05-05 kinaba: alias TypeDef!(IGetFrame FAR*) PGETFRAME; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define DEFINE_AVIGUID(name, l, w1, w2) DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DEFINE_AVIGUID(IID_IAVIFile, 0x00020020, 0, 0); 4e2933c620 2015-04-21 kinaba: DEFINE_AVIGUID(IID_IAVIStream, 0x00020021, 0, 0); 4e2933c620 2015-04-21 kinaba: DEFINE_AVIGUID(IID_IAVIStreaming, 0x00020022, 0, 0); 4e2933c620 2015-04-21 kinaba: DEFINE_AVIGUID(IID_IGetFrame, 0x00020023, 0, 0); 4e2933c620 2015-04-21 kinaba: DEFINE_AVIGUID(IID_IAVIEditStream, 0x00020024, 0, 0); 4e2933c620 2015-04-21 kinaba: DEFINE_AVIGUID(IID_IAVIPersistFile, 0x00020025, 0, 0); 4e2933c620 2015-04-21 kinaba: #ifndef UNICODE 4e2933c620 2015-04-21 kinaba: DEFINE_AVIGUID(CLSID_AVISimpleUnMarshal, 0x00020009, 0, 0); 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DEFINE_AVIGUID(CLSID_AVIFile, 0x00020000, 0, 0); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIFILEHANDLER_CANREAD 0x0001 4e2933c620 2015-04-21 kinaba: #define AVIFILEHANDLER_CANWRITE 0x0002 4e2933c620 2015-04-21 kinaba: #define AVIFILEHANDLER_CANACCEPTNONRGB 0x0004 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI_(void) AVIFileInit(void); 4e2933c620 2015-04-21 kinaba: STDAPI_(void) AVIFileExit(void); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI_(ULONG) AVIFileAddRef (PAVIFILE pfile); 4e2933c620 2015-04-21 kinaba: STDAPI_(ULONG) AVIFileRelease (PAVIFILE pfile); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #ifdef _WIN32 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileOpenA (PAVIFILE FAR * ppfile, LPCSTR szFile, 4e2933c620 2015-04-21 kinaba: UINT uMode, LPCLSID lpHandler); 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileOpenW (PAVIFILE FAR * ppfile, LPCWSTR szFile, 4e2933c620 2015-04-21 kinaba: UINT uMode, LPCLSID lpHandler); 4e2933c620 2015-04-21 kinaba: #ifdef UNICODE 4e2933c620 2015-04-21 kinaba: #define AVIFileOpen AVIFileOpenW 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: #define AVIFileOpen AVIFileOpenA 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileOpen (PAVIFILE FAR * ppfile, LPCSTR szFile, 4e2933c620 2015-04-21 kinaba: UINT uMode, LPCLSID lpHandler); 4e2933c620 2015-04-21 kinaba: #define AVIFileOpenW AVIFileOpen 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #ifdef _WIN32 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileInfoW (PAVIFILE pfile, LPAVIFILEINFOW pfi, LONG lSize); 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileInfoA (PAVIFILE pfile, LPAVIFILEINFOA pfi, LONG lSize); 4e2933c620 2015-04-21 kinaba: #ifdef UNICODE 4e2933c620 2015-04-21 kinaba: #define AVIFileInfo AVIFileInfoW 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: #define AVIFileInfo AVIFileInfoA 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileInfo (PAVIFILE pfile, LPAVIFILEINFO pfi, LONG lSize); 4e2933c620 2015-04-21 kinaba: #define AVIFileInfoW AVIFileInfo 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileGetStream (PAVIFILE pfile, PAVISTREAM FAR * ppavi, DWORD fccType, LONG lParam); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #ifdef _WIN32 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileCreateStreamW (PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINFOW FAR * psi); 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileCreateStreamA (PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINFOA FAR * psi); 4e2933c620 2015-04-21 kinaba: #ifdef UNICODE 4e2933c620 2015-04-21 kinaba: #define AVIFileCreateStream AVIFileCreateStreamW 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: #define AVIFileCreateStream AVIFileCreateStreamA 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileCreateStream(PAVIFILE pfile, PAVISTREAM FAR *ppavi, AVISTREAMINFO FAR * psi); 4e2933c620 2015-04-21 kinaba: #define AVIFileCreateStreamW AVIFileCreateStream 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileWriteData (PAVIFILE pfile, 4e2933c620 2015-04-21 kinaba: DWORD ckid, 4e2933c620 2015-04-21 kinaba: LPVOID lpData, 4e2933c620 2015-04-21 kinaba: LONG cbData); 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileReadData (PAVIFILE pfile, 4e2933c620 2015-04-21 kinaba: DWORD ckid, 4e2933c620 2015-04-21 kinaba: LPVOID lpData, 4e2933c620 2015-04-21 kinaba: LONG FAR *lpcbData); 4e2933c620 2015-04-21 kinaba: STDAPI AVIFileEndRecord (PAVIFILE pfile); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI_(ULONG) AVIStreamAddRef (PAVISTREAM pavi); 4e2933c620 2015-04-21 kinaba: STDAPI_(ULONG) AVIStreamRelease (PAVISTREAM pavi); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamInfoW (PAVISTREAM pavi, LPAVISTREAMINFOW psi, LONG lSize); 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamInfoA (PAVISTREAM pavi, LPAVISTREAMINFOA psi, LONG lSize); 4e2933c620 2015-04-21 kinaba: #ifdef UNICODE 4e2933c620 2015-04-21 kinaba: #define AVIStreamInfo AVIStreamInfoW 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: #define AVIStreamInfo AVIStreamInfoA 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI_(LONG) AVIStreamFindSample(PAVISTREAM pavi, LONG lPos, LONG lFlags); 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamReadFormat (PAVISTREAM pavi, LONG lPos,LPVOID lpFormat,LONG FAR *lpcbFormat); 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamSetFormat (PAVISTREAM pavi, LONG lPos,LPVOID lpFormat,LONG cbFormat); 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamReadData (PAVISTREAM pavi, DWORD fcc, LPVOID lp, LONG FAR *lpcb); 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamWriteData (PAVISTREAM pavi, DWORD fcc, LPVOID lp, LONG cb); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamRead (PAVISTREAM pavi, 4e2933c620 2015-04-21 kinaba: LONG lStart, 4e2933c620 2015-04-21 kinaba: LONG lSamples, 4e2933c620 2015-04-21 kinaba: LPVOID lpBuffer, 4e2933c620 2015-04-21 kinaba: LONG cbBuffer, 4e2933c620 2015-04-21 kinaba: LONG FAR * plBytes, 4e2933c620 2015-04-21 kinaba: LONG FAR * plSamples); 4e2933c620 2015-04-21 kinaba: #define AVISTREAMREAD_CONVENIENT (-1L) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamWrite (PAVISTREAM pavi, 4e2933c620 2015-04-21 kinaba: LONG lStart, LONG lSamples, 4e2933c620 2015-04-21 kinaba: LPVOID lpBuffer, LONG cbBuffer, DWORD dwFlags, 4e2933c620 2015-04-21 kinaba: LONG FAR *plSampWritten, 4e2933c620 2015-04-21 kinaba: LONG FAR *plBytesWritten); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI_(LONG) AVIStreamStart (PAVISTREAM pavi); 4e2933c620 2015-04-21 kinaba: STDAPI_(LONG) AVIStreamLength (PAVISTREAM pavi); 4e2933c620 2015-04-21 kinaba: STDAPI_(LONG) AVIStreamTimeToSample (PAVISTREAM pavi, LONG lTime); 4e2933c620 2015-04-21 kinaba: STDAPI_(LONG) AVIStreamSampleToTime (PAVISTREAM pavi, LONG lSample); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamBeginStreaming(PAVISTREAM pavi, LONG lStart, LONG lEnd, LONG lRate); 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamEndStreaming(PAVISTREAM pavi); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI_(PGETFRAME) AVIStreamGetFrameOpen(PAVISTREAM pavi, 4e2933c620 2015-04-21 kinaba: LPBITMAPINFOHEADER lpbiWanted); 4e2933c620 2015-04-21 kinaba: STDAPI_(LPVOID) AVIStreamGetFrame(PGETFRAME pg, LONG lPos); 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamGetFrameClose(PGETFRAME pg); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamOpenFromFileA(PAVISTREAM FAR *ppavi, LPCSTR szFile, 4e2933c620 2015-04-21 kinaba: DWORD fccType, LONG lParam, 4e2933c620 2015-04-21 kinaba: UINT mode, CLSID FAR *pclsidHandler); 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamOpenFromFileW(PAVISTREAM FAR *ppavi, LPCWSTR szFile, 4e2933c620 2015-04-21 kinaba: DWORD fccType, LONG lParam, 4e2933c620 2015-04-21 kinaba: UINT mode, CLSID FAR *pclsidHandler); 4e2933c620 2015-04-21 kinaba: #ifdef UNICODE 4e2933c620 2015-04-21 kinaba: #define AVIStreamOpenFromFile AVIStreamOpenFromFileW 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: #define AVIStreamOpenFromFile AVIStreamOpenFromFileA 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIStreamCreate(PAVISTREAM FAR *ppavi, LONG lParam1, LONG lParam2, 4e2933c620 2015-04-21 kinaba: CLSID FAR *pclsidHandler); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define FIND_DIR 0x0000000FL 4e2933c620 2015-04-21 kinaba: #define FIND_NEXT 0x00000001L 4e2933c620 2015-04-21 kinaba: #define FIND_PREV 0x00000004L 4e2933c620 2015-04-21 kinaba: #define FIND_FROM_START 0x00000008L 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define FIND_TYPE 0x000000F0L 4e2933c620 2015-04-21 kinaba: #define FIND_KEY 0x00000010L 4e2933c620 2015-04-21 kinaba: #define FIND_ANY 0x00000020L 4e2933c620 2015-04-21 kinaba: #define FIND_FORMAT 0x00000040L 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define FIND_RET 0x0000F000L 4e2933c620 2015-04-21 kinaba: #define FIND_POS 0x00000000L 4e2933c620 2015-04-21 kinaba: #define FIND_LENGTH 0x00001000L 4e2933c620 2015-04-21 kinaba: #define FIND_OFFSET 0x00002000L 4e2933c620 2015-04-21 kinaba: #define FIND_SIZE 0x00003000L 4e2933c620 2015-04-21 kinaba: #define FIND_INDEX 0x00004000L 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamFindKeyFrame AVIStreamFindSample 4e2933c620 2015-04-21 kinaba: #define FindKeyFrame FindSample 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamClose AVIStreamRelease 4e2933c620 2015-04-21 kinaba: #define AVIFileClose AVIFileRelease 4e2933c620 2015-04-21 kinaba: #define AVIStreamInit AVIFileInit 4e2933c620 2015-04-21 kinaba: #define AVIStreamExit AVIFileExit 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define SEARCH_NEAREST FIND_PREV 4e2933c620 2015-04-21 kinaba: #define SEARCH_BACKWARD FIND_PREV 4e2933c620 2015-04-21 kinaba: #define SEARCH_FORWARD FIND_NEXT 4e2933c620 2015-04-21 kinaba: #define SEARCH_KEY FIND_KEY 4e2933c620 2015-04-21 kinaba: #define SEARCH_ANY FIND_ANY 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamSampleToSample(pavi1, pavi2, l) AVIStreamTimeToSample(pavi1,AVIStreamSampleToTime(pavi2, l)) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamNextSample(pavi, l) AVIStreamFindSample(pavi,l+1,FIND_NEXT|FIND_ANY) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamPrevSample(pavi, l) AVIStreamFindSample(pavi,l-1,FIND_PREV|FIND_ANY) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamNearestSample(pavi, l) AVIStreamFindSample(pavi,l,FIND_PREV|FIND_ANY) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamNextKeyFrame(pavi,l) AVIStreamFindSample(pavi,l+1,FIND_NEXT|FIND_KEY) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamPrevKeyFrame(pavi, l) AVIStreamFindSample(pavi,l-1,FIND_PREV|FIND_KEY) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamNearestKeyFrame(pavi, l) AVIStreamFindSample(pavi,l,FIND_PREV|FIND_KEY) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamIsKeyFrame(pavi, l) (AVIStreamNearestKeyFrame(pavi,l) == l) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamPrevSampleTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamPrevSample(pavi,AVIStreamTimeToSample(pavi,t))) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamNextSampleTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamNextSample(pavi,AVIStreamTimeToSample(pavi,t))) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamNearestSampleTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamNearestSample(pavi,AVIStreamTimeToSample(pavi,t))) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamNextKeyFrameTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamNextKeyFrame(pavi,AVIStreamTimeToSample(pavi, t))) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamPrevKeyFrameTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamPrevKeyFrame(pavi,AVIStreamTimeToSample(pavi, t))) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamNearestKeyFrameTime(pavi, t) AVIStreamSampleToTime(pavi, AVIStreamNearestKeyFrame(pavi,AVIStreamTimeToSample(pavi, t))) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamStartTime(pavi) AVIStreamSampleToTime(pavi, AVIStreamStart(pavi)) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamLengthTime(pavi) AVIStreamSampleToTime(pavi, AVIStreamLength(pavi)) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamEnd(pavi) (AVIStreamStart(pavi) + AVIStreamLength(pavi)) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamEndTime(pavi) AVIStreamSampleToTime(pavi, AVIStreamEnd(pavi)) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamSampleSize(pavi, lPos, plSize) AVIStreamRead(pavi,lPos,1,NULL,0,plSize,NULL) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamFormatSize(pavi, lPos, plSize) AVIStreamReadFormat(pavi,lPos,NULL,plSize) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #define AVIStreamDataSize(pavi, fcc, plSize) AVIStreamReadData(pavi,fcc,NULL,plSize) 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: #ifndef comptypeDIB 4e2933c620 2015-04-21 kinaba: #define comptypeDIB mmioFOURCC('D', 'I', 'B', ' ') 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIMakeCompressedStream( 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR * ppsCompressed, 4e2933c620 2015-04-21 kinaba: PAVISTREAM ppsSource, 4e2933c620 2015-04-21 kinaba: AVICOMPRESSOPTIONS FAR * lpOptions, 4e2933c620 2015-04-21 kinaba: CLSID FAR *pclsidHandler); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: EXTERN_C HRESULT CDECL AVISaveA (LPCSTR szFile, 4e2933c620 2015-04-21 kinaba: CLSID FAR *pclsidHandler, 4e2933c620 2015-04-21 kinaba: AVISAVECALLBACK lpfnCallback, 4e2933c620 2015-04-21 kinaba: int nStreams, 4e2933c620 2015-04-21 kinaba: PAVISTREAM pfile, 4e2933c620 2015-04-21 kinaba: LPAVICOMPRESSOPTIONS lpOptions, 4e2933c620 2015-04-21 kinaba: ...); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVISaveVA(LPCSTR szFile, 4e2933c620 2015-04-21 kinaba: CLSID FAR *pclsidHandler, 4e2933c620 2015-04-21 kinaba: AVISAVECALLBACK lpfnCallback, 4e2933c620 2015-04-21 kinaba: int nStreams, 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR * ppavi, 4e2933c620 2015-04-21 kinaba: LPAVICOMPRESSOPTIONS FAR *plpOptions); 4e2933c620 2015-04-21 kinaba: EXTERN_C HRESULT CDECL AVISaveW (LPCWSTR szFile, 4e2933c620 2015-04-21 kinaba: CLSID FAR *pclsidHandler, 4e2933c620 2015-04-21 kinaba: AVISAVECALLBACK lpfnCallback, 4e2933c620 2015-04-21 kinaba: int nStreams, 4e2933c620 2015-04-21 kinaba: PAVISTREAM pfile, 4e2933c620 2015-04-21 kinaba: LPAVICOMPRESSOPTIONS lpOptions, 4e2933c620 2015-04-21 kinaba: ...); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVISaveVW(LPCWSTR szFile, 4e2933c620 2015-04-21 kinaba: CLSID FAR *pclsidHandler, 4e2933c620 2015-04-21 kinaba: AVISAVECALLBACK lpfnCallback, 4e2933c620 2015-04-21 kinaba: int nStreams, 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR * ppavi, 4e2933c620 2015-04-21 kinaba: LPAVICOMPRESSOPTIONS FAR *plpOptions); 4e2933c620 2015-04-21 kinaba: #ifdef UNICODE 4e2933c620 2015-04-21 kinaba: #define AVISave AVISaveW 4e2933c620 2015-04-21 kinaba: #define AVISaveV AVISaveVW 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: #define AVISave AVISaveA 4e2933c620 2015-04-21 kinaba: #define AVISaveV AVISaveVA 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI_(INT_PTR) AVISaveOptions(HWND hwnd, 4e2933c620 2015-04-21 kinaba: UINT uiFlags, 4e2933c620 2015-04-21 kinaba: int nStreams, 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR *ppavi, 4e2933c620 2015-04-21 kinaba: LPAVICOMPRESSOPTIONS FAR *plpOptions); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVISaveOptionsFree(int nStreams, 4e2933c620 2015-04-21 kinaba: LPAVICOMPRESSOPTIONS FAR *plpOptions); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIBuildFilterW(LPWSTR lpszFilter, LONG cbFilter, BOOL fSaving); 4e2933c620 2015-04-21 kinaba: STDAPI AVIBuildFilterA(LPSTR lpszFilter, LONG cbFilter, BOOL fSaving); 4e2933c620 2015-04-21 kinaba: #ifdef UNICODE 4e2933c620 2015-04-21 kinaba: #define AVIBuildFilter AVIBuildFilterW 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: #define AVIBuildFilter AVIBuildFilterA 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: STDAPI AVIMakeFileFromStreams(PAVIFILE FAR * ppfile, 4e2933c620 2015-04-21 kinaba: int nStreams, 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR * papStreams); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIMakeStreamFromClipboard(UINT cfFormat, HANDLE hGlobal, PAVISTREAM FAR *ppstream); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIPutFileOnClipboard(PAVIFILE pf); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIGetFromClipboard(PAVIFILE FAR * lppf); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI AVIClearClipboard(void); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI CreateEditableStream( 4e2933c620 2015-04-21 kinaba: PAVISTREAM FAR * ppsEditable, 4e2933c620 2015-04-21 kinaba: PAVISTREAM psSource); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI EditStreamCut(PAVISTREAM pavi, LONG FAR *plStart, LONG FAR *plLength, PAVISTREAM FAR * ppResult); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI EditStreamCopy(PAVISTREAM pavi, LONG FAR *plStart, LONG FAR *plLength, PAVISTREAM FAR * ppResult); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI EditStreamPaste(PAVISTREAM pavi, LONG FAR *plPos, LONG FAR *plLength, PAVISTREAM pstream, LONG lStart, LONG lEnd); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI EditStreamClone(PAVISTREAM pavi, PAVISTREAM FAR *ppResult); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: STDAPI EditStreamSetNameA(PAVISTREAM pavi, LPCSTR lpszName); 4e2933c620 2015-04-21 kinaba: STDAPI EditStreamSetNameW(PAVISTREAM pavi, LPCWSTR lpszName); 4e2933c620 2015-04-21 kinaba: STDAPI EditStreamSetInfoW(PAVISTREAM pavi, LPAVISTREAMINFOW lpInfo, LONG cbInfo); 4e2933c620 2015-04-21 kinaba: STDAPI EditStreamSetInfoA(PAVISTREAM pavi, LPAVISTREAMINFOA lpInfo, LONG cbInfo); 4e2933c620 2015-04-21 kinaba: #ifdef UNICODE 4e2933c620 2015-04-21 kinaba: #define EditStreamSetInfo EditStreamSetInfoW 4e2933c620 2015-04-21 kinaba: #define EditStreamSetName EditStreamSetNameW 4e2933c620 2015-04-21 kinaba: #else 4e2933c620 2015-04-21 kinaba: #define EditStreamSetInfo EditStreamSetInfoA 4e2933c620 2015-04-21 kinaba: #define EditStreamSetName EditStreamSetNameA 4e2933c620 2015-04-21 kinaba: #endif 4e2933c620 2015-04-21 kinaba: +/ 4e2933c620 2015-04-21 kinaba: const AVIERR_OK = 0L; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: SCODE MAKE_AVIERR(DWORD error) { 4e2933c620 2015-04-21 kinaba: return MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x4000 + error); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const AVIERR_UNSUPPORTED = MAKE_AVIERR(101); 4e2933c620 2015-04-21 kinaba: const AVIERR_BADFORMAT = MAKE_AVIERR(102); 4e2933c620 2015-04-21 kinaba: const AVIERR_MEMORY = MAKE_AVIERR(103); 4e2933c620 2015-04-21 kinaba: const AVIERR_INTERNAL = MAKE_AVIERR(104); 4e2933c620 2015-04-21 kinaba: const AVIERR_BADFLAGS = MAKE_AVIERR(105); 4e2933c620 2015-04-21 kinaba: const AVIERR_BADPARAM = MAKE_AVIERR(106); 4e2933c620 2015-04-21 kinaba: const AVIERR_BADSIZE = MAKE_AVIERR(107); 4e2933c620 2015-04-21 kinaba: const AVIERR_BADHANDLE = MAKE_AVIERR(108); 4e2933c620 2015-04-21 kinaba: const AVIERR_FILEREAD = MAKE_AVIERR(109); 4e2933c620 2015-04-21 kinaba: const AVIERR_FILEWRITE = MAKE_AVIERR(110); 4e2933c620 2015-04-21 kinaba: const AVIERR_FILEOPEN = MAKE_AVIERR(111); 4e2933c620 2015-04-21 kinaba: const AVIERR_COMPRESSOR = MAKE_AVIERR(112); 4e2933c620 2015-04-21 kinaba: const AVIERR_NOCOMPRESSOR = MAKE_AVIERR(113); 4e2933c620 2015-04-21 kinaba: const AVIERR_READONLY = MAKE_AVIERR(114); 4e2933c620 2015-04-21 kinaba: const AVIERR_NODATA = MAKE_AVIERR(115); 4e2933c620 2015-04-21 kinaba: const AVIERR_BUFFERTOOSMALL = MAKE_AVIERR(116); 4e2933c620 2015-04-21 kinaba: const AVIERR_CANTCOMPRESS = MAKE_AVIERR(117); 4e2933c620 2015-04-21 kinaba: const AVIERR_USERABORT = MAKE_AVIERR(198); 4e2933c620 2015-04-21 kinaba: const AVIERR_ERROR = MAKE_AVIERR(199); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const TCHAR[] MCIWND_WINDOW_CLASS = "MCIWndClass"; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: HWND MCIWndCreateA(HWND hwndParent, HINSTANCE hInstance, DWORD dwStyle, LPCSTR szFile); 4e2933c620 2015-04-21 kinaba: HWND MCIWndCreateW(HWND hwndParent, HINSTANCE hInstance, DWORD dwStyle, LPCWSTR szFile); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias MCIWndCreateW MCIWndCreate; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias MCIWndCreateA MCIWndCreate; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern(Windows) { 4e2933c620 2015-04-21 kinaba: BOOL MCIWndRegisterClass(); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: MCIWNDOPENF_NEW = 0x0001, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOAUTOSIZEWINDOW = 0x0001, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOPLAYBAR = 0x0002, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOAUTOSIZEMOVIE = 0x0004, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOMENU = 0x0008, 4e2933c620 2015-04-21 kinaba: MCIWNDF_SHOWNAME = 0x0010, 4e2933c620 2015-04-21 kinaba: MCIWNDF_SHOWPOS = 0x0020, 4e2933c620 2015-04-21 kinaba: MCIWNDF_SHOWMODE = 0x0040, 4e2933c620 2015-04-21 kinaba: MCIWNDF_SHOWALL = 0x0070, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOTIFYMODE = 0x0100, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOTIFYPOS = 0x0200, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOTIFYSIZE = 0x0400, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOTIFYERROR = 0x1000, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOTIFYALL = 0x1F00, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOTIFYANSI = 0x0080, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOTIFYMEDIAA = 0x0880, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOTIFYMEDIAW = 0x0800, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias MCIWNDF_NOTIFYMEDIAW MCIWNDF_NOTIFYMEDIA; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias MCIWNDF_NOTIFYMEDIAA MCIWNDF_NOTIFYMEDIA; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: MCIWNDF_RECORD = 0x2000, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOERRORDLG = 0x4000, 4e2933c620 2015-04-21 kinaba: MCIWNDF_NOOPEN = 0x8000, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // can macros 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL MCIWndCanPlay(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_PLAY, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL MCIWndCanRecord(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_RECORD, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL MCIWndCanSave(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_SAVE, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL MCIWndCanWindow(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_WINDOW, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL MCIWndCanEject(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_EJECT, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL MCIWndCanConfig(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(BOOL)SendMessage(hwnd, MCIWNDM_CAN_CONFIG, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL MCIWndPaletteKick(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(BOOL)SendMessage(hwnd, MCIWNDM_PALETTEKICK, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndSave(HWND hwnd, LPVOID szFile) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCI_SAVE, 0, cast(LPARAM)szFile); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndSaveDialog(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return MCIWndSave(hwnd, cast(LPVOID)-1); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndNew(HWND hwnd, LPVOID lp) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_NEW, 0, cast(LPARAM)lp); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndRecord(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCI_RECORD, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndOpen(HWND hwnd, LPVOID sz, UINT f) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_OPEN, cast(WPARAM)f, cast(LPARAM)sz); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndOpenDialog(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return MCIWndOpen(hwnd, cast(LPVOID)-1, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndClose(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCI_CLOSE, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndPlay(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCI_PLAY, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndStop(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCI_STOP, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndPause(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCI_PAUSE, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndResume(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCI_RESUME, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndSeek(HWND hwnd, LONG lPos) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCI_SEEK, 0, cast(LPARAM)lPos); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndHome(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return MCIWndSeek(hwnd, MCIWND_START); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndEnd(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return MCIWndSeek(hwnd, MCIWND_END); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndEject(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_EJECT, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetSource(HWND hwnd, LPRECT prc) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GET_SOURCE, 0, cast(LPARAM)prc); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndPutSource(HWND hwnd, LPRECT prc) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_PUT_SOURCE, 0, cast(LPARAM)prc); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetDest(HWND hwnd, LPRECT prc) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GET_DEST, 0, cast(LPARAM)prc); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndPutDest(HWND hwnd, LPRECT prc) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_PUT_DEST, 0, cast(LPARAM)prc); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndPlayReverse(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_PLAYREVERSE, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndPlayFrom(HWND hwnd, LONG lPos) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_PLAYFROM, 0, cast(LPARAM)lPos); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndPlayTo(HWND hwnd, LONG lPos) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_PLAYTO, 0, cast(LPARAM)lPos); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndPlayFromTo(HWND hwnd, LONG lStart, LONG lEnd) 4e2933c620 2015-04-21 kinaba: { MCIWndSeek(hwnd, lStart); return MCIWndPlayTo(hwnd, lEnd); } 4e2933c620 2015-04-21 kinaba: UINT MCIWndGetDeviceID(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETDEVICEID, 0, 0); } 4e2933c620 2015-04-21 kinaba: UINT MCIWndGetAlias(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETALIAS, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetMode(HWND hwnd, LPTSTR lp, UINT len) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETMODE, cast(WPARAM)len, cast(LPARAM)lp); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetPosition(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETPOSITION, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetPositionString(HWND hwnd, LPTSTR lp, UINT len) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETPOSITION, cast(WPARAM)len, cast(LPARAM)lp); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetStart(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETSTART, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetLength(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETLENGTH, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetEnd(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETEND, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndStep(HWND hwnd, LONG n) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCI_STEP, 0, cast(LPARAM)n); } 4e2933c620 2015-04-21 kinaba: void MCIWndDestroy(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { SendMessage(hwnd, WM_CLOSE, 0, 0); } 4e2933c620 2015-04-21 kinaba: void MCIWndSetZoom(HWND hwnd, UINT iZoom) 4e2933c620 2015-04-21 kinaba: { SendMessage(hwnd, MCIWNDM_SETZOOM, 0, cast(LPARAM)iZoom); } 4e2933c620 2015-04-21 kinaba: UINT MCIWndGetZoom(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETZOOM, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndSetVolume(HWND hwnd, UINT iVol) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_SETVOLUME, 0, cast(LPARAM)iVol); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetVolume(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETVOLUME, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndSetSpeed(HWND hwnd, UINT iSpeed) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_SETSPEED, 0, cast(LPARAM)iSpeed); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetSpeed(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETSPEED, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndSetTimeFormat(HWND hwnd, LPTSTR lp) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_SETTIMEFORMAT, 0, cast(LPARAM)lp); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndUseFrames(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return MCIWndSetTimeFormat(hwnd, (cast(TCHAR[])"frames").ptr); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndUseTime(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return MCIWndSetTimeFormat(hwnd, (cast(TCHAR[])"ms").ptr); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetTimeFormat(HWND hwnd, LPTSTR lp, UINT len) 4e2933c620 2015-04-21 kinaba: { return cast(LONG)SendMessage(hwnd, MCIWNDM_GETTIMEFORMAT, cast(WPARAM)len, cast(LPARAM)lp); } 4e2933c620 2015-04-21 kinaba: void MCIWndValidateMedia(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { SendMessage(hwnd, MCIWNDM_VALIDATEMEDIA, 0, 0); } 4e2933c620 2015-04-21 kinaba: void MCIWndSetRepeat(HWND hwnd, BOOL f) 4e2933c620 2015-04-21 kinaba: { SendMessage(hwnd, MCIWNDM_SETREPEAT, 0, cast(LPARAM)f); } 4e2933c620 2015-04-21 kinaba: BOOL MCIWndGetRepeat(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(BOOL)SendMessage(hwnd, MCIWNDM_GETREPEAT, 0, 0); } 4e2933c620 2015-04-21 kinaba: void MCIWndSetActiveTimer(HWND hwnd, UINT active) 4e2933c620 2015-04-21 kinaba: { SendMessage(hwnd, MCIWNDM_SETACTIVETIMER, cast(WPARAM)active, 0); } 4e2933c620 2015-04-21 kinaba: void MCIWndSetInactiveTimer(HWND hwnd, UINT inactive) 4e2933c620 2015-04-21 kinaba: { SendMessage(hwnd, MCIWNDM_SETINACTIVETIMER, cast(WPARAM)inactive, 0); } 4e2933c620 2015-04-21 kinaba: void MCIWndSetTimers(HWND hwnd, UINT active, UINT inactive) 4e2933c620 2015-04-21 kinaba: { SendMessage(hwnd, MCIWNDM_SETTIMERS, cast(WPARAM)active, cast(LPARAM)inactive); } 4e2933c620 2015-04-21 kinaba: UINT MCIWndGetActiveTimer(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETACTIVETIMER, 0, 0); } 4e2933c620 2015-04-21 kinaba: UINT MCIWndGetInactiveTimer(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(UINT)SendMessage(hwnd, MCIWNDM_GETINACTIVETIMER, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndRealize(HWND hwnd, BOOL fBkgnd) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_REALIZE, cast(WPARAM)fBkgnd, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndSendString(HWND hwnd, LPTSTR sz) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_SENDSTRING, 0, cast(LPARAM)sz); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndReturnString(HWND hwnd, LPVOID lp, UINT len) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_RETURNSTRING, cast(WPARAM)len, cast(LPARAM)lp); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetError(HWND hwnd, LPVOID lp, UINT len) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_GETERROR, cast(WPARAM)len, cast(LPARAM)lp); } 4e2933c620 2015-04-21 kinaba: HPALETTE MCIWndGetPalette(HWND hwnd) 4e2933c620 2015-04-21 kinaba: { return cast(HPALETTE)SendMessage(hwnd, MCIWNDM_GETPALETTE, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndSetPalette(HWND hwnd, HPALETTE hpal) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_SETPALETTE, cast(WPARAM)hpal, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetFileName(HWND hwnd, LPVOID lp, UINT len) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_GETFILENAME, cast(WPARAM)len, cast(LPARAM)lp); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndGetDevice(HWND hwnd, LPVOID lp, UINT len) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_GETDEVICE, cast(WPARAM)len, cast(LPARAM)lp); } 4e2933c620 2015-04-21 kinaba: UINT MCIWndGetStyles(HWND hwnd) 9b639cf2d6 2015-05-05 kinaba: { return cast(UINT) SendMessage(hwnd, MCIWNDM_GETSTYLES, 0, 0); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndChangeStyles(HWND hwnd, UINT mask, LONG value) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_CHANGESTYLES, cast(WPARAM)mask, cast(LPARAM)value); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndOpenInterface(HWND hwnd, LPUNKNOWN pUnk) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_OPENINTERFACE, 0, cast(LPARAM)cast(void*)pUnk); } 4e2933c620 2015-04-21 kinaba: LONG MCIWndSetOwner(HWND hwnd, HWND hwndP) 9b639cf2d6 2015-05-05 kinaba: { return cast(LONG) SendMessage(hwnd, MCIWNDM_SETOWNER, cast(WPARAM)hwndP, 0); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETDEVICEID = WM_USER + 100, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SENDSTRINGA = WM_USER + 101, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETPOSITIONA = WM_USER + 102, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETSTART = WM_USER + 103, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETLENGTH = WM_USER + 104, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETEND = WM_USER + 105, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETMODEA = WM_USER + 106, 4e2933c620 2015-04-21 kinaba: MCIWNDM_EJECT = WM_USER + 107, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETZOOM = WM_USER + 108, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETZOOM = WM_USER + 109, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETVOLUME = WM_USER + 110, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETVOLUME = WM_USER + 111, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETSPEED = WM_USER + 112, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETSPEED = WM_USER + 113, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETREPEAT = WM_USER + 114, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETREPEAT = WM_USER + 115, 4e2933c620 2015-04-21 kinaba: MCIWNDM_REALIZE = WM_USER + 118, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETTIMEFORMATA = WM_USER + 119, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETTIMEFORMATA = WM_USER + 120, 4e2933c620 2015-04-21 kinaba: MCIWNDM_VALIDATEMEDIA = WM_USER + 121, 4e2933c620 2015-04-21 kinaba: MCIWNDM_PLAYFROM = WM_USER + 122, 4e2933c620 2015-04-21 kinaba: MCIWNDM_PLAYTO = WM_USER + 123, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETFILENAMEA = WM_USER + 124, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETDEVICEA = WM_USER + 125, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETPALETTE = WM_USER + 126, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETPALETTE = WM_USER + 127, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETERRORA = WM_USER + 128, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETTIMERS = WM_USER + 129, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETACTIVETIMER = WM_USER + 130, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETINACTIVETIMER = WM_USER + 131, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETACTIVETIMER = WM_USER + 132, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETINACTIVETIMER = WM_USER + 133, 4e2933c620 2015-04-21 kinaba: MCIWNDM_NEWA = WM_USER + 134, 4e2933c620 2015-04-21 kinaba: MCIWNDM_CHANGESTYLES = WM_USER + 135, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETSTYLES = WM_USER + 136, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETALIAS = WM_USER + 137, 4e2933c620 2015-04-21 kinaba: MCIWNDM_RETURNSTRINGA = WM_USER + 138, 4e2933c620 2015-04-21 kinaba: MCIWNDM_PLAYREVERSE = WM_USER + 139, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GET_SOURCE = WM_USER + 140, 4e2933c620 2015-04-21 kinaba: MCIWNDM_PUT_SOURCE = WM_USER + 141, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GET_DEST = WM_USER + 142, 4e2933c620 2015-04-21 kinaba: MCIWNDM_PUT_DEST = WM_USER + 143, 4e2933c620 2015-04-21 kinaba: MCIWNDM_CAN_PLAY = WM_USER + 144, 4e2933c620 2015-04-21 kinaba: MCIWNDM_CAN_WINDOW = WM_USER + 145, 4e2933c620 2015-04-21 kinaba: MCIWNDM_CAN_RECORD = WM_USER + 146, 4e2933c620 2015-04-21 kinaba: MCIWNDM_CAN_SAVE = WM_USER + 147, 4e2933c620 2015-04-21 kinaba: MCIWNDM_CAN_EJECT = WM_USER + 148, 4e2933c620 2015-04-21 kinaba: MCIWNDM_CAN_CONFIG = WM_USER + 149, 4e2933c620 2015-04-21 kinaba: MCIWNDM_PALETTEKICK = WM_USER + 150, 4e2933c620 2015-04-21 kinaba: MCIWNDM_OPENINTERFACE = WM_USER + 151, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETOWNER = WM_USER + 152, 4e2933c620 2015-04-21 kinaba: MCIWNDM_OPENA = WM_USER + 153, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SENDSTRINGW = WM_USER + 201, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETPOSITIONW = WM_USER + 202, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETMODEW = WM_USER + 206, 4e2933c620 2015-04-21 kinaba: MCIWNDM_SETTIMEFORMATW = WM_USER + 219, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETTIMEFORMATW = WM_USER + 220, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETFILENAMEW = WM_USER + 224, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETDEVICEW = WM_USER + 225, 4e2933c620 2015-04-21 kinaba: MCIWNDM_GETERRORW = WM_USER + 228, 4e2933c620 2015-04-21 kinaba: MCIWNDM_NEWW = WM_USER + 234, 4e2933c620 2015-04-21 kinaba: MCIWNDM_RETURNSTRINGW = WM_USER + 238, 4e2933c620 2015-04-21 kinaba: MCIWNDM_OPENW = WM_USER + 252, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_SENDSTRINGW MCIWNDM_SENDSTRING; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETPOSITIONW MCIWNDM_GETPOSITION; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETMODEW MCIWNDM_GETMODE; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_SETTIMEFORMATW MCIWNDM_SETTIMEFORMAT; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETTIMEFORMATW MCIWNDM_GETTIMEFORMAT; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETFILENAMEW MCIWNDM_GETFILENAME; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETDEVICEW MCIWNDM_GETDEVICE; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETERRORW MCIWNDM_GETERROR; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_NEWW MCIWNDM_NEW; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_RETURNSTRINGW MCIWNDM_RETURNSTRING; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_OPENW MCIWNDM_OPEN; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_SENDSTRINGA MCIWNDM_SENDSTRING; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETPOSITIONA MCIWNDM_GETPOSITION; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETMODEA MCIWNDM_GETMODE; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_SETTIMEFORMATA MCIWNDM_SETTIMEFORMAT; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETTIMEFORMATA MCIWNDM_GETTIMEFORMAT; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETFILENAMEA MCIWNDM_GETFILENAME; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETDEVICEA MCIWNDM_GETDEVICE; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_GETERRORA MCIWNDM_GETERROR; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_NEWA MCIWNDM_NEW; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_RETURNSTRINGA MCIWNDM_RETURNSTRING; 4e2933c620 2015-04-21 kinaba: alias MCIWNDM_OPENA MCIWNDM_OPEN; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: MCIWNDM_NOTIFYMODE = WM_USER + 200, 4e2933c620 2015-04-21 kinaba: MCIWNDM_NOTIFYPOS = WM_USER + 201, 4e2933c620 2015-04-21 kinaba: MCIWNDM_NOTIFYSIZE = WM_USER + 202, 4e2933c620 2015-04-21 kinaba: MCIWNDM_NOTIFYMEDIA = WM_USER + 203, 4e2933c620 2015-04-21 kinaba: MCIWNDM_NOTIFYERROR = WM_USER + 205, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const MCIWND_START = -1; 4e2933c620 2015-04-21 kinaba: const MCIWND_END = -2; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: MCI_CLOSE = 0x0804, 4e2933c620 2015-04-21 kinaba: MCI_PLAY = 0x0806, 4e2933c620 2015-04-21 kinaba: MCI_SEEK = 0x0807, 4e2933c620 2015-04-21 kinaba: MCI_STOP = 0x0808, 4e2933c620 2015-04-21 kinaba: MCI_PAUSE = 0x0809, 4e2933c620 2015-04-21 kinaba: MCI_STEP = 0x080E, 4e2933c620 2015-04-21 kinaba: MCI_RECORD = 0x080F, 4e2933c620 2015-04-21 kinaba: MCI_SAVE = 0x0813, 4e2933c620 2015-04-21 kinaba: MCI_CUT = 0x0851, 4e2933c620 2015-04-21 kinaba: MCI_COPY = 0x0852, 4e2933c620 2015-04-21 kinaba: MCI_PASTE = 0x0853, 4e2933c620 2015-04-21 kinaba: MCI_RESUME = 0x0855, 4e2933c620 2015-04-21 kinaba: MCI_DELETE = 0x0856, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: MCI_MODE_NOT_READY = 524, 4e2933c620 2015-04-21 kinaba: MCI_MODE_STOP, 4e2933c620 2015-04-21 kinaba: MCI_MODE_PLAY, 4e2933c620 2015-04-21 kinaba: MCI_MODE_RECORD, 4e2933c620 2015-04-21 kinaba: MCI_MODE_SEEK, 4e2933c620 2015-04-21 kinaba: MCI_MODE_PAUSE, 4e2933c620 2015-04-21 kinaba: MCI_MODE_OPEN, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 9b639cf2d6 2015-05-05 kinaba: alias TypeDef!(HANDLE) HVIDEO; 4e2933c620 2015-04-21 kinaba: alias HVIDEO* LPHVIDEO; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // Error Return Values 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: DV_ERR_OK = 0, 4e2933c620 2015-04-21 kinaba: DV_ERR_BASE = 1, 4e2933c620 2015-04-21 kinaba: DV_ERR_NONSPECIFIC = DV_ERR_BASE, 4e2933c620 2015-04-21 kinaba: DV_ERR_BADFORMAT = DV_ERR_BASE + 1, 4e2933c620 2015-04-21 kinaba: DV_ERR_STILLPLAYING = DV_ERR_BASE + 2, 4e2933c620 2015-04-21 kinaba: DV_ERR_UNPREPARED = DV_ERR_BASE + 3, 4e2933c620 2015-04-21 kinaba: DV_ERR_SYNC = DV_ERR_BASE + 4, 4e2933c620 2015-04-21 kinaba: DV_ERR_TOOMANYCHANNELS = DV_ERR_BASE + 5, 4e2933c620 2015-04-21 kinaba: DV_ERR_NOTDETECTED = DV_ERR_BASE + 6, 4e2933c620 2015-04-21 kinaba: DV_ERR_BADINSTALL = DV_ERR_BASE + 7, 4e2933c620 2015-04-21 kinaba: DV_ERR_CREATEPALETTE = DV_ERR_BASE + 8, 4e2933c620 2015-04-21 kinaba: DV_ERR_SIZEFIELD = DV_ERR_BASE + 9, 4e2933c620 2015-04-21 kinaba: DV_ERR_PARAM1 = DV_ERR_BASE + 10, 4e2933c620 2015-04-21 kinaba: DV_ERR_PARAM2 = DV_ERR_BASE + 11, 4e2933c620 2015-04-21 kinaba: DV_ERR_CONFIG1 = DV_ERR_BASE + 12, 4e2933c620 2015-04-21 kinaba: DV_ERR_CONFIG2 = DV_ERR_BASE + 13, 4e2933c620 2015-04-21 kinaba: DV_ERR_FLAGS = DV_ERR_BASE + 14, 4e2933c620 2015-04-21 kinaba: DV_ERR_13 = DV_ERR_BASE + 15, 4e2933c620 2015-04-21 kinaba: DV_ERR_NOTSUPPORTED = DV_ERR_BASE + 16, 4e2933c620 2015-04-21 kinaba: DV_ERR_NOMEM = DV_ERR_BASE + 17, 4e2933c620 2015-04-21 kinaba: DV_ERR_ALLOCATED = DV_ERR_BASE + 18, 4e2933c620 2015-04-21 kinaba: DV_ERR_BADDEVICEID = DV_ERR_BASE + 19, 4e2933c620 2015-04-21 kinaba: DV_ERR_INVALHANDLE = DV_ERR_BASE + 20, 4e2933c620 2015-04-21 kinaba: DV_ERR_BADERRNUM = DV_ERR_BASE + 21, 4e2933c620 2015-04-21 kinaba: DV_ERR_NO_BUFFERS = DV_ERR_BASE + 22, 4e2933c620 2015-04-21 kinaba: DV_ERR_MEM_CONFLICT = DV_ERR_BASE + 23, 4e2933c620 2015-04-21 kinaba: DV_ERR_IO_CONFLICT = DV_ERR_BASE + 24, 4e2933c620 2015-04-21 kinaba: DV_ERR_DMA_CONFLICT = DV_ERR_BASE + 25, 4e2933c620 2015-04-21 kinaba: DV_ERR_INT_CONFLICT = DV_ERR_BASE + 26, 4e2933c620 2015-04-21 kinaba: DV_ERR_PROTECT_ONLY = DV_ERR_BASE + 27, 4e2933c620 2015-04-21 kinaba: DV_ERR_LASTERROR = DV_ERR_BASE + 27, 4e2933c620 2015-04-21 kinaba: DV_ERR_USER_MSG = DV_ERR_BASE + 1000, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // Callback Messages 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: MM_DRVM_OPEN = 0x3D0, 4e2933c620 2015-04-21 kinaba: MM_DRVM_CLOSE, 4e2933c620 2015-04-21 kinaba: MM_DRVM_DATA, 4e2933c620 2015-04-21 kinaba: MM_DRVM_ERROR, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: DV_VM_OPEN = MM_DRVM_OPEN, 4e2933c620 2015-04-21 kinaba: DV_VM_CLOSE = MM_DRVM_CLOSE, 4e2933c620 2015-04-21 kinaba: DV_VM_DATA = MM_DRVM_DATA, 4e2933c620 2015-04-21 kinaba: DV_VM_ERROR = MM_DRVM_ERROR, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /** 4e2933c620 2015-04-21 kinaba: * Structures 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct VIDEOHDR { 4e2933c620 2015-04-21 kinaba: LPBYTE lpData; 4e2933c620 2015-04-21 kinaba: DWORD dwBufferLength; 4e2933c620 2015-04-21 kinaba: DWORD dwBytesUsed; 4e2933c620 2015-04-21 kinaba: DWORD dwTimeCaptured; 4e2933c620 2015-04-21 kinaba: DWORD_PTR dwUser; 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 9b639cf2d6 2015-05-05 kinaba: DWORD_PTR[4]dwReserved; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias VIDEOHDR* PVIDEOHDR, LPVIDEOHDR; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: VHDR_DONE = 0x00000001, 4e2933c620 2015-04-21 kinaba: VHDR_PREPARED = 0x00000002, 4e2933c620 2015-04-21 kinaba: VHDR_INQUEUE = 0x00000004, 4e2933c620 2015-04-21 kinaba: VHDR_KEYFRAME = 0x00000008, 4e2933c620 2015-04-21 kinaba: VHDR_VALID = 0x0000000F, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CHANNEL_CAPS { 4e2933c620 2015-04-21 kinaba: DWORD dwFlags; 4e2933c620 2015-04-21 kinaba: DWORD dwSrcRectXMod; 4e2933c620 2015-04-21 kinaba: DWORD dwSrcRectYMod; 4e2933c620 2015-04-21 kinaba: DWORD dwSrcRectWidthMod; 4e2933c620 2015-04-21 kinaba: DWORD dwSrcRectHeightMod; 4e2933c620 2015-04-21 kinaba: DWORD dwDstRectXMod; 4e2933c620 2015-04-21 kinaba: DWORD dwDstRectYMod; 4e2933c620 2015-04-21 kinaba: DWORD dwDstRectWidthMod; 4e2933c620 2015-04-21 kinaba: DWORD dwDstRectHeightMod; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CHANNEL_CAPS* PCHANNEL_CAPS, LPCHANNEL_CAPS; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: VCAPS_OVERLAY = 0x00000001, 4e2933c620 2015-04-21 kinaba: VCAPS_SRC_CAN_CLIP = 0x00000002, 4e2933c620 2015-04-21 kinaba: VCAPS_DST_CAN_CLIP = 0x00000004, 4e2933c620 2015-04-21 kinaba: VCAPS_CAN_SCALE = 0x00000008, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /** 4e2933c620 2015-04-21 kinaba: * API Flags 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: VIDEO_EXTERNALIN = 0x0001, 4e2933c620 2015-04-21 kinaba: VIDEO_EXTERNALOUT = 0x0002, 4e2933c620 2015-04-21 kinaba: VIDEO_IN = 0x0004, 4e2933c620 2015-04-21 kinaba: VIDEO_OUT = 0x0008, 4e2933c620 2015-04-21 kinaba: VIDEO_DLG_QUERY = 0x0010, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: VIDEO_CONFIGURE_QUERYSIZE = 0x0001, 4e2933c620 2015-04-21 kinaba: VIDEO_CONFIGURE_CURRENT = 0x0010, 4e2933c620 2015-04-21 kinaba: VIDEO_CONFIGURE_NOMINAL = 0x0020, 4e2933c620 2015-04-21 kinaba: VIDEO_CONFIGURE_MIN = 0x0040, 4e2933c620 2015-04-21 kinaba: VIDEO_CONFIGURE_MAX = 0x0080, 4e2933c620 2015-04-21 kinaba: VIDEO_CONFIGURE_SET = 0x1000, 4e2933c620 2015-04-21 kinaba: VIDEO_CONFIGURE_GET = 0x2000, 4e2933c620 2015-04-21 kinaba: VIDEO_CONFIGURE_QUERY = 0x8000, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /** 4e2933c620 2015-04-21 kinaba: * CONFIGURE MESSAGES 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: DVM_USER = 0x4000, 4e2933c620 2015-04-21 kinaba: DVM_CONFIGURE_START = 0x1000, 4e2933c620 2015-04-21 kinaba: DVM_CONFIGURE_END = 0x1FFF, 4e2933c620 2015-04-21 kinaba: DVM_PALETTE = DVM_CONFIGURE_START + 1, 4e2933c620 2015-04-21 kinaba: DVM_FORMAT = DVM_CONFIGURE_START + 2, 4e2933c620 2015-04-21 kinaba: DVM_PALETTERGB555 = DVM_CONFIGURE_START + 3, 4e2933c620 2015-04-21 kinaba: DVM_SRC_RECT = DVM_CONFIGURE_START + 4, 4e2933c620 2015-04-21 kinaba: DVM_DST_RECT = DVM_CONFIGURE_START + 5, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /** 4e2933c620 2015-04-21 kinaba: * AVICap window class 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: LRESULT AVICapSM(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { 4e2933c620 2015-04-21 kinaba: if (IsWindow(hWnd)) { 4e2933c620 2015-04-21 kinaba: return SendMessage(hWnd, msg, wParam, lParam); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: return 0; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: WM_CAP_START = WM_USER, 4e2933c620 2015-04-21 kinaba: WM_CAP_UNICODE_START = WM_USER + 100, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: WM_CAP_GET_CAPSTREAMPTR = WM_CAP_START + 1, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_CALLBACK_ERRORA = WM_CAP_START + 2, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_CALLBACK_STATUSA = WM_CAP_START + 3, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_CALLBACK_ERRORW = WM_CAP_UNICODE_START + 2, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_CALLBACK_STATUSW = WM_CAP_UNICODE_START + 3, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias WM_CAP_SET_CALLBACK_ERRORW WM_CAP_SET_CALLBACK_ERROR; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_SET_CALLBACK_STATUSW WM_CAP_SET_CALLBACK_STATUS; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias WM_CAP_SET_CALLBACK_ERRORA WM_CAP_SET_CALLBACK_ERROR; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_SET_CALLBACK_STATUSA WM_CAP_SET_CALLBACK_STATUS; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_CALLBACK_WAVESTREAM = WM_CAP_START + 7, 4e2933c620 2015-04-21 kinaba: WM_CAP_GET_USER_DATA = WM_CAP_START + 8, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_USER_DATA = WM_CAP_START + 9, 4e2933c620 2015-04-21 kinaba: WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10, 4e2933c620 2015-04-21 kinaba: WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11, 4e2933c620 2015-04-21 kinaba: WM_CAP_DRIVER_GET_NAMEA = WM_CAP_START + 12, 4e2933c620 2015-04-21 kinaba: WM_CAP_DRIVER_GET_VERSIONA = WM_CAP_START + 13, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: WM_CAP_DRIVER_GET_NAMEW = WM_CAP_UNICODE_START + 12, 4e2933c620 2015-04-21 kinaba: WM_CAP_DRIVER_GET_VERSIONW = WM_CAP_UNICODE_START + 13, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias WM_CAP_DRIVER_GET_NAMEW WM_CAP_DRIVER_GET_NAME; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_DRIVER_GET_VERSIONW WM_CAP_DRIVER_GET_VERSION; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias WM_CAP_DRIVER_GET_NAMEA WM_CAP_DRIVER_GET_NAME; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_DRIVER_GET_VERSIONA WM_CAP_DRIVER_GET_VERSION; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: WM_CAP_DRIVER_GET_CAPS = WM_CAP_START + 14, 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20, 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_GET_CAPTURE_FILEA = WM_CAP_START + 21, 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_SAVEASA = WM_CAP_START + 23, 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_SAVEDIBA = WM_CAP_START + 25, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_SET_CAPTURE_FILEW = WM_CAP_UNICODE_START + 20, 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_GET_CAPTURE_FILEW = WM_CAP_UNICODE_START + 21, 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_SAVEASW = WM_CAP_UNICODE_START + 23, 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_SAVEDIBW = WM_CAP_UNICODE_START + 25, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias WM_CAP_FILE_SET_CAPTURE_FILEW WM_CAP_FILE_SET_CAPTURE_FILE; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_FILE_GET_CAPTURE_FILEW WM_CAP_FILE_GET_CAPTURE_FILE; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_FILE_SAVEASW WM_CAP_FILE_SAVEAS; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_FILE_SAVEDIBW WM_CAP_FILE_SAVEDIB; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias WM_CAP_FILE_SET_CAPTURE_FILEA WM_CAP_FILE_SET_CAPTURE_FILE; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_FILE_GET_CAPTURE_FILEA WM_CAP_FILE_GET_CAPTURE_FILE; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_FILE_SAVEASA WM_CAP_FILE_SAVEAS; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_FILE_SAVEDIBA WM_CAP_FILE_SAVEDIB; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_ALLOCATE = WM_CAP_START + 22, 4e2933c620 2015-04-21 kinaba: WM_CAP_FILE_SET_INFOCHUNK = WM_CAP_START + 24, 4e2933c620 2015-04-21 kinaba: WM_CAP_EDIT_COPY = WM_CAP_START + 30, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_AUDIOFORMAT = WM_CAP_START + 35, 4e2933c620 2015-04-21 kinaba: WM_CAP_GET_AUDIOFORMAT = WM_CAP_START + 36, 4e2933c620 2015-04-21 kinaba: WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41, 4e2933c620 2015-04-21 kinaba: WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42, 4e2933c620 2015-04-21 kinaba: WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43, 4e2933c620 2015-04-21 kinaba: WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45, 4e2933c620 2015-04-21 kinaba: WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_PREVIEW = WM_CAP_START + 50, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_OVERLAY = WM_CAP_START + 51, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_SCALE = WM_CAP_START + 53, 4e2933c620 2015-04-21 kinaba: WM_CAP_GET_STATUS = WM_CAP_START + 54, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_SCROLL = WM_CAP_START + 55, 4e2933c620 2015-04-21 kinaba: WM_CAP_GRAB_FRAME = WM_CAP_START + 60, 4e2933c620 2015-04-21 kinaba: WM_CAP_GRAB_FRAME_NOSTOP = WM_CAP_START + 61, 4e2933c620 2015-04-21 kinaba: WM_CAP_SEQUENCE = WM_CAP_START + 62, 4e2933c620 2015-04-21 kinaba: WM_CAP_SEQUENCE_NOFILE = WM_CAP_START + 63, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_SEQUENCE_SETUP = WM_CAP_START + 64, 4e2933c620 2015-04-21 kinaba: WM_CAP_GET_SEQUENCE_SETUP = WM_CAP_START + 65, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_MCI_DEVICEA = WM_CAP_START + 66, 4e2933c620 2015-04-21 kinaba: WM_CAP_GET_MCI_DEVICEA = WM_CAP_START + 67, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_MCI_DEVICEW = WM_CAP_UNICODE_START + 66, 4e2933c620 2015-04-21 kinaba: WM_CAP_GET_MCI_DEVICEW = WM_CAP_UNICODE_START + 67, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias WM_CAP_SET_MCI_DEVICEW WM_CAP_SET_MCI_DEVICE; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_GET_MCI_DEVICEW WM_CAP_GET_MCI_DEVICE; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias WM_CAP_SET_MCI_DEVICEA WM_CAP_SET_MCI_DEVICE; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_GET_MCI_DEVICEA WM_CAP_GET_MCI_DEVICE; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: WM_CAP_STOP = WM_CAP_START + 68, 4e2933c620 2015-04-21 kinaba: WM_CAP_ABORT = WM_CAP_START + 69, 4e2933c620 2015-04-21 kinaba: WM_CAP_SINGLE_FRAME_OPEN = WM_CAP_START + 70, 4e2933c620 2015-04-21 kinaba: WM_CAP_SINGLE_FRAME_CLOSE = WM_CAP_START + 71, 4e2933c620 2015-04-21 kinaba: WM_CAP_SINGLE_FRAME = WM_CAP_START + 72, 4e2933c620 2015-04-21 kinaba: WM_CAP_PAL_OPENA = WM_CAP_START + 80, 4e2933c620 2015-04-21 kinaba: WM_CAP_PAL_SAVEA = WM_CAP_START + 81, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: WM_CAP_PAL_OPENW = WM_CAP_UNICODE_START + 80, 4e2933c620 2015-04-21 kinaba: WM_CAP_PAL_SAVEW = WM_CAP_UNICODE_START + 81, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias WM_CAP_PAL_OPENW WM_CAP_PAL_OPEN; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_PAL_SAVEW WM_CAP_PAL_SAVE; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias WM_CAP_PAL_OPENA WM_CAP_PAL_OPEN; 4e2933c620 2015-04-21 kinaba: alias WM_CAP_PAL_SAVEA WM_CAP_PAL_SAVE; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: WM_CAP_PAL_PASTE = WM_CAP_START + 82, 4e2933c620 2015-04-21 kinaba: WM_CAP_PAL_AUTOCREATE = WM_CAP_START + 83, 4e2933c620 2015-04-21 kinaba: WM_CAP_PAL_MANUALCREATE = WM_CAP_START + 84, 4e2933c620 2015-04-21 kinaba: WM_CAP_SET_CALLBACK_CAPCONTROL = WM_CAP_START + 85, 4e2933c620 2015-04-21 kinaba: WM_CAP_UNICODE_END = WM_CAP_PAL_SAVEW, 4e2933c620 2015-04-21 kinaba: WM_CAP_END = WM_CAP_UNICODE_END, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /** 4e2933c620 2015-04-21 kinaba: * message wrapper 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capSetCallbackOnError(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_ERROR, 0, cast(LPARAM)fpProc); } 4e2933c620 2015-04-21 kinaba: BOOL capSetCallbackOnStatus(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_STATUS, 0, cast(LPARAM)fpProc); } 4e2933c620 2015-04-21 kinaba: BOOL capSetCallbackOnYield(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_YIELD, 0, cast(LPARAM)fpProc); } 4e2933c620 2015-04-21 kinaba: BOOL capSetCallbackOnFrame(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_FRAME, 0, cast(LPARAM)fpProc); } 4e2933c620 2015-04-21 kinaba: BOOL capSetCallbackOnVideoStream(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, cast(LPARAM)fpProc); } 4e2933c620 2015-04-21 kinaba: BOOL capSetCallbackOnWaveStream(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_WAVESTREAM, 0, cast(LPARAM)fpProc); } 4e2933c620 2015-04-21 kinaba: BOOL capSetCallbackOnCapControl(HWND hWnd, LPVOID fpProc) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_CALLBACK_CAPCONTROL, 0, cast(LPARAM)fpProc); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capSetUserData(HWND hWnd, LPARAM lUser) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_USER_DATA, 0, lUser); } 4e2933c620 2015-04-21 kinaba: BOOL capGetUserData(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GET_USER_DATA, 0, 0); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capDriverConnect(HWND hWnd, WPARAM i) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_CONNECT, i, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capDriverDisconnect(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_DISCONNECT, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capDriverGetName(HWND hWnd, LPTSTR szName, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_GET_NAME, wSize, cast(LPARAM)szName); } 4e2933c620 2015-04-21 kinaba: BOOL capDriverGetVersion(HWND hWnd, LPTSTR szVer, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_GET_VERSION, wSize, cast(LPARAM)szVer); } 4e2933c620 2015-04-21 kinaba: BOOL capDriverGetCaps(HWND hWnd, LPCAPDRIVERCAPS s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DRIVER_GET_CAPS, wSize, cast(LPARAM)s); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capFileSetCaptureFile(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_SET_CAPTURE_FILE, 0, cast(LPARAM)szName); } 4e2933c620 2015-04-21 kinaba: BOOL capFileGetCaptureFile(HWND hWnd, LPTSTR szName, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_GET_CAPTURE_FILE, wSize, cast(LPARAM)szName); } 4e2933c620 2015-04-21 kinaba: BOOL capFileAlloc(HWND hWnd, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_ALLOCATE, wSize, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capFileSaveAs(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_SAVEAS, 0, cast(LPARAM)szName); } 4e2933c620 2015-04-21 kinaba: BOOL capFileSetInfoChunk(HWND hWnd, LPCAPINFOCHUNK lpInfoChunk) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_SET_INFOCHUNK, 0, cast(LPARAM)lpInfoChunk); } 4e2933c620 2015-04-21 kinaba: BOOL capFileSaveDIB(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_FILE_SAVEDIB, 0, cast(LPARAM)szName); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capEditCopy(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_EDIT_COPY, 0, 0); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capSetAudioFormat(HWND hWnd, LPWAVEFORMATEX s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_AUDIOFORMAT, wSize, cast(LPARAM)s); } 4e2933c620 2015-04-21 kinaba: DWORD capGetAudioFormat(HWND hWnd, LPWAVEFORMATEX s, WPARAM wSize) { return cast(DWORD)AVICapSM(hWnd, WM_CAP_GET_AUDIOFORMAT, wSize, cast(LPARAM)s); } 4e2933c620 2015-04-21 kinaba: DWORD capGetAudioFormatSize(HWND hWnd) { return cast(DWORD)AVICapSM(hWnd, WM_CAP_GET_AUDIOFORMAT, 0, 0); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capDlgVideoFormat(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DLG_VIDEOFORMAT, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capDlgVideoSource(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DLG_VIDEOSOURCE, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capDlgVideoDisplay(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DLG_VIDEODISPLAY, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capDlgVideoCompression(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_DLG_VIDEOCOMPRESSION, 0, 0); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: DWORD capGetVideoFormat(HWND hWnd, void* s, WPARAM wSize) { return cast(DWORD)AVICapSM(hWnd, WM_CAP_GET_VIDEOFORMAT, wSize, cast(LPARAM)s); } 4e2933c620 2015-04-21 kinaba: DWORD capGetVideoFormatSize(HWND hWnd) { return cast(DWORD)AVICapSM(hWnd, WM_CAP_GET_VIDEOFORMAT, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capSetVideoFormat(HWND hWnd, void* s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_VIDEOFORMAT, wSize, cast(LPARAM)s); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capPreview(HWND hWnd, BOOL f) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_PREVIEW, cast(WPARAM)f, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capPreviewRate(HWND hWnd, WPARAM wMS) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_PREVIEWRATE, wMS, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capOverlay(HWND hWnd, BOOL f) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_OVERLAY, cast(WPARAM)f, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capPreviewScale(HWND hWnd, BOOL f) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_SCALE, cast(WPARAM)f, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capGetStatus(HWND hWnd, LPCAPSTATUS s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GET_STATUS, wSize, cast(LPARAM)s); } 4e2933c620 2015-04-21 kinaba: BOOL capSetScrollPos(HWND hWnd, LPPOINT lpP) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_SCROLL, 0, cast(LPARAM)lpP); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capGrabFrame(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GRAB_FRAME, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capGrabFrameNoStop(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GRAB_FRAME_NOSTOP, 0, 0); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capCaptureSequence(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SEQUENCE, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capCaptureSequenceNoFile(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SEQUENCE_NOFILE, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capCaptureStop(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_STOP, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capCaptureAbort(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_ABORT, 0, 0); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capCaptureSingleFrameOpen(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SINGLE_FRAME_OPEN, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capCaptureSingleFrameClose(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SINGLE_FRAME_CLOSE, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capCaptureSingleFrame(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SINGLE_FRAME, 0, 0); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capCaptureGetSetup(HWND hWnd, LPCAPTUREPARMS s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GET_SEQUENCE_SETUP, wSize, cast(LPARAM)s); } 4e2933c620 2015-04-21 kinaba: BOOL capCaptureSetSetup(HWND hWnd, LPCAPTUREPARMS s, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_SEQUENCE_SETUP, wSize, cast(LPARAM)s); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capSetMCIDeviceName(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_SET_MCI_DEVICE, 0, cast(LPARAM)szName); } 4e2933c620 2015-04-21 kinaba: BOOL capGetMCIDeviceName(HWND hWnd, LPTSTR szName, WPARAM wSize) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_GET_MCI_DEVICE, wSize, cast(LPARAM)szName); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: BOOL capPaletteOpen(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_OPEN, 0, cast(LPARAM)szName); } 4e2933c620 2015-04-21 kinaba: BOOL capPaletteSave(HWND hWnd, LPTSTR szName) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_SAVE, 0, cast(LPARAM)szName); } 4e2933c620 2015-04-21 kinaba: BOOL capPalettePaste(HWND hWnd) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_PASTE, 0, 0); } 4e2933c620 2015-04-21 kinaba: BOOL capPaletteAuto(HWND hWnd, WPARAM iFrames, LPARAM iColors) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_AUTOCREATE, iFrames, iColors); } 4e2933c620 2015-04-21 kinaba: BOOL capPaletteManual(HWND hWnd, WPARAM fGrab, LPARAM iColors) { return cast(BOOL)AVICapSM(hWnd, WM_CAP_PAL_MANUALCREATE, fGrab, iColors); } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /** 4e2933c620 2015-04-21 kinaba: * structs 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CAPDRIVERCAPS { 4e2933c620 2015-04-21 kinaba: UINT wDeviceIndex; 4e2933c620 2015-04-21 kinaba: BOOL fHasOverlay; 4e2933c620 2015-04-21 kinaba: BOOL fHasDlgVideoSource; 4e2933c620 2015-04-21 kinaba: BOOL fHasDlgVideoFormat; 4e2933c620 2015-04-21 kinaba: BOOL fHasDlgVideoDisplay; 4e2933c620 2015-04-21 kinaba: BOOL fCaptureInitialized; 4e2933c620 2015-04-21 kinaba: BOOL fDriverSuppliesPalettes; 4e2933c620 2015-04-21 kinaba: HANDLE hVideoIn; 4e2933c620 2015-04-21 kinaba: HANDLE hVideoOut; 4e2933c620 2015-04-21 kinaba: HANDLE hVideoExtIn; 4e2933c620 2015-04-21 kinaba: HANDLE hVideoExtOut; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CAPDRIVERCAPS* PCAPDRIVERCAPS, LPCAPDRIVERCAPS; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CAPSTATUS { 4e2933c620 2015-04-21 kinaba: UINT uiImageWidth; 4e2933c620 2015-04-21 kinaba: UINT uiImageHeight; 4e2933c620 2015-04-21 kinaba: BOOL fLiveWindow; 4e2933c620 2015-04-21 kinaba: BOOL fOverlayWindow; 4e2933c620 2015-04-21 kinaba: BOOL fScale; 4e2933c620 2015-04-21 kinaba: POINT ptScroll; 4e2933c620 2015-04-21 kinaba: BOOL fUsingDefaultPalette; 4e2933c620 2015-04-21 kinaba: BOOL fAudioHardware; 4e2933c620 2015-04-21 kinaba: BOOL fCapFileExists; 4e2933c620 2015-04-21 kinaba: DWORD dwCurrentVideoFrame; 4e2933c620 2015-04-21 kinaba: DWORD dwCurrentVideoFramesDropped; 4e2933c620 2015-04-21 kinaba: DWORD dwCurrentWaveSamples; 4e2933c620 2015-04-21 kinaba: DWORD dwCurrentTimeElapsedMS; 4e2933c620 2015-04-21 kinaba: HPALETTE hPalCurrent; 4e2933c620 2015-04-21 kinaba: BOOL fCapturingNow; 4e2933c620 2015-04-21 kinaba: DWORD dwReturn; 4e2933c620 2015-04-21 kinaba: UINT wNumVideoAllocated; 4e2933c620 2015-04-21 kinaba: UINT wNumAudioAllocated; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CAPSTATUS* PCAPSTATUS, LPCAPSTATUS; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CAPTUREPARMS { 4e2933c620 2015-04-21 kinaba: DWORD dwRequestMicroSecPerFrame; 4e2933c620 2015-04-21 kinaba: BOOL fMakeUserHitOKToCapture; 4e2933c620 2015-04-21 kinaba: UINT wPercentDropForError; 4e2933c620 2015-04-21 kinaba: BOOL fYield; 4e2933c620 2015-04-21 kinaba: DWORD dwIndexSize; 4e2933c620 2015-04-21 kinaba: UINT wChunkGranularity; 4e2933c620 2015-04-21 kinaba: BOOL fUsingDOSMemory; 4e2933c620 2015-04-21 kinaba: UINT wNumVideoRequested; 4e2933c620 2015-04-21 kinaba: BOOL fCaptureAudio; 4e2933c620 2015-04-21 kinaba: UINT wNumAudioRequested; 4e2933c620 2015-04-21 kinaba: UINT vKeyAbort; 4e2933c620 2015-04-21 kinaba: BOOL fAbortLeftMouse; 4e2933c620 2015-04-21 kinaba: BOOL fAbortRightMouse; 4e2933c620 2015-04-21 kinaba: BOOL fLimitEnabled; 4e2933c620 2015-04-21 kinaba: UINT wTimeLimit; 4e2933c620 2015-04-21 kinaba: BOOL fMCIControl; 4e2933c620 2015-04-21 kinaba: BOOL fStepMCIDevice; 4e2933c620 2015-04-21 kinaba: DWORD dwMCIStartTime; 4e2933c620 2015-04-21 kinaba: DWORD dwMCIStopTime; 4e2933c620 2015-04-21 kinaba: BOOL fStepCaptureAt2x; 4e2933c620 2015-04-21 kinaba: UINT wStepCaptureAverageFrames; 4e2933c620 2015-04-21 kinaba: DWORD dwAudioBufferSize; 4e2933c620 2015-04-21 kinaba: BOOL fDisableWriteCache; 4e2933c620 2015-04-21 kinaba: UINT AVStreamMaster; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CAPTUREPARMS* PCAPTUREPARMS, LPCAPTUREPARMS; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: const AVSTREAMMASTER_AUDIO = 0; 4e2933c620 2015-04-21 kinaba: const AVSTREAMMASTER_NONE = 1; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: struct CAPINFOCHUNK { 4e2933c620 2015-04-21 kinaba: FOURCC fccInfoID; 4e2933c620 2015-04-21 kinaba: LPVOID lpData; 4e2933c620 2015-04-21 kinaba: LONG cbData; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: alias CAPINFOCHUNK* PCAPINFOCHUNK, LPCAPINFOCHUNK; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // Callback Definitions 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: alias LRESULT function(HWND hWnd) CAPYIELDCALLBACK; 4e2933c620 2015-04-21 kinaba: alias LRESULT function(HWND hWnd, int nID, LPCWSTR lpsz) CAPSTATUSCALLBACKW; 4e2933c620 2015-04-21 kinaba: alias LRESULT function(HWND hWnd, int nID, LPCWSTR lpsz) CAPERRORCALLBACKW; 4e2933c620 2015-04-21 kinaba: alias LRESULT function(HWND hWnd, int nID, LPCSTR lpsz) CAPSTATUSCALLBACKA; 4e2933c620 2015-04-21 kinaba: alias LRESULT function(HWND hWnd, int nID, LPCSTR lpsz) CAPERRORCALLBACKA; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias CAPSTATUSCALLBACKW CAPSTATUSCALLBACK; 4e2933c620 2015-04-21 kinaba: alias CAPERRORCALLBACKW CAPERRORCALLBACK; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias CAPSTATUSCALLBACKA CAPSTATUSCALLBACK; 4e2933c620 2015-04-21 kinaba: alias CAPERRORCALLBACKA CAPERRORCALLBACK; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: alias LRESULT function(HWND hWnd, LPVIDEOHDR lpVHdr) CAPVIDEOCALLBACK; 4e2933c620 2015-04-21 kinaba: alias LRESULT function(HWND hWnd, LPWAVEHDR lpWHdr) CAPWAVECALLBACK; 4e2933c620 2015-04-21 kinaba: alias LRESULT function(HWND hWnd, int nState) CAPCONTROLCALLBACK; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // CapControlCallback states 4e2933c620 2015-04-21 kinaba: const CONTROLCALLBACK_PREROLL = 1; 4e2933c620 2015-04-21 kinaba: const CONTROLCALLBACK_CAPTURING = 2; 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: HWND capCreateCaptureWindowA(LPCSTR lpszWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hwndParent, int nID); 4e2933c620 2015-04-21 kinaba: BOOL capGetDriverDescriptionA(UINT wDriverIndex, LPSTR lpszName, int cbName, LPSTR lpszVer, int cbVer); 4e2933c620 2015-04-21 kinaba: HWND capCreateCaptureWindowW(LPCWSTR lpszWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hwndParent, int nID); 4e2933c620 2015-04-21 kinaba: BOOL capGetDriverDescriptionW(UINT wDriverIndex, LPWSTR lpszName, int cbName, LPWSTR lpszVer, int cbVer); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias capCreateCaptureWindowW capCreateCaptureWindow; 4e2933c620 2015-04-21 kinaba: alias capGetDriverDescriptionW capGetDriverDescription; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias capCreateCaptureWindowA capCreateCaptureWindow; 4e2933c620 2015-04-21 kinaba: alias capGetDriverDescriptionA capGetDriverDescription; 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // New Information chunk IDs 4e2933c620 2015-04-21 kinaba: const infotypeDIGITIZATION_TIME = mmioFOURCC!('I', 'D', 'I', 'T'); 4e2933c620 2015-04-21 kinaba: const infotypeSMPTE_TIME = mmioFOURCC!('I', 'S', 'M', 'P'); 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: // status and error callbacks 4e2933c620 2015-04-21 kinaba: enum { 4e2933c620 2015-04-21 kinaba: IDS_CAP_BEGIN = 300, 4e2933c620 2015-04-21 kinaba: IDS_CAP_END = 301, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: IDS_CAP_INFO = 401, 4e2933c620 2015-04-21 kinaba: IDS_CAP_OUTOFMEM = 402, 4e2933c620 2015-04-21 kinaba: IDS_CAP_FILEEXISTS = 403, 4e2933c620 2015-04-21 kinaba: IDS_CAP_ERRORPALOPEN = 404, 4e2933c620 2015-04-21 kinaba: IDS_CAP_ERRORPALSAVE = 405, 4e2933c620 2015-04-21 kinaba: IDS_CAP_ERRORDIBSAVE = 406, 4e2933c620 2015-04-21 kinaba: IDS_CAP_DEFAVIEXT = 407, 4e2933c620 2015-04-21 kinaba: IDS_CAP_DEFPALEXT = 408, 4e2933c620 2015-04-21 kinaba: IDS_CAP_CANTOPEN = 409, 4e2933c620 2015-04-21 kinaba: IDS_CAP_SEQ_MSGSTART = 410, 4e2933c620 2015-04-21 kinaba: IDS_CAP_SEQ_MSGSTOP = 411, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: IDS_CAP_VIDEDITERR = 412, 4e2933c620 2015-04-21 kinaba: IDS_CAP_READONLYFILE = 413, 4e2933c620 2015-04-21 kinaba: IDS_CAP_WRITEERROR = 414, 4e2933c620 2015-04-21 kinaba: IDS_CAP_NODISKSPACE = 415, 4e2933c620 2015-04-21 kinaba: IDS_CAP_SETFILESIZE = 416, 4e2933c620 2015-04-21 kinaba: IDS_CAP_SAVEASPERCENT = 417, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: IDS_CAP_DRIVER_ERROR = 418, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: IDS_CAP_WAVE_OPEN_ERROR = 419, 4e2933c620 2015-04-21 kinaba: IDS_CAP_WAVE_ALLOC_ERROR = 420, 4e2933c620 2015-04-21 kinaba: IDS_CAP_WAVE_PREPARE_ERROR = 421, 4e2933c620 2015-04-21 kinaba: IDS_CAP_WAVE_ADD_ERROR = 422, 4e2933c620 2015-04-21 kinaba: IDS_CAP_WAVE_SIZE_ERROR = 423, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: IDS_CAP_VIDEO_OPEN_ERROR = 424, 4e2933c620 2015-04-21 kinaba: IDS_CAP_VIDEO_ALLOC_ERROR = 425, 4e2933c620 2015-04-21 kinaba: IDS_CAP_VIDEO_PREPARE_ERROR = 426, 4e2933c620 2015-04-21 kinaba: IDS_CAP_VIDEO_ADD_ERROR = 427, 4e2933c620 2015-04-21 kinaba: IDS_CAP_VIDEO_SIZE_ERROR = 428, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: IDS_CAP_FILE_OPEN_ERROR = 429, 4e2933c620 2015-04-21 kinaba: IDS_CAP_FILE_WRITE_ERROR = 430, 4e2933c620 2015-04-21 kinaba: IDS_CAP_RECORDING_ERROR = 431, 4e2933c620 2015-04-21 kinaba: IDS_CAP_RECORDING_ERROR2 = 432, 4e2933c620 2015-04-21 kinaba: IDS_CAP_AVI_INIT_ERROR = 433, 4e2933c620 2015-04-21 kinaba: IDS_CAP_NO_FRAME_CAP_ERROR = 434, 4e2933c620 2015-04-21 kinaba: IDS_CAP_NO_PALETTE_WARN = 435, 4e2933c620 2015-04-21 kinaba: IDS_CAP_MCI_CONTROL_ERROR = 436, 4e2933c620 2015-04-21 kinaba: IDS_CAP_MCI_CANT_STEP_ERROR = 437, 4e2933c620 2015-04-21 kinaba: IDS_CAP_NO_AUDIO_CAP_ERROR = 438, 4e2933c620 2015-04-21 kinaba: IDS_CAP_AVI_DRAWDIB_ERROR = 439, 4e2933c620 2015-04-21 kinaba: IDS_CAP_COMPRESSOR_ERROR = 440, 4e2933c620 2015-04-21 kinaba: IDS_CAP_AUDIO_DROP_ERROR = 441, 4e2933c620 2015-04-21 kinaba: IDS_CAP_AUDIO_DROP_COMPERROR = 442, 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_LIVE_MODE = 500, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_OVERLAY_MODE = 501, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_CAP_INIT = 502, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_CAP_FINI = 503, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_PALETTE_BUILD = 504, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_OPTPAL_BUILD = 505, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_I_FRAMES = 506, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_L_FRAMES = 507, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_CAP_L_FRAMES = 508, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_CAP_AUDIO = 509, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_VIDEOCURRENT = 510, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_VIDEOAUDIO = 511, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_VIDEOONLY = 512, 4e2933c620 2015-04-21 kinaba: IDS_CAP_STAT_FRAMESDROPPED = 513, 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: /** 4e2933c620 2015-04-21 kinaba: * FilePreview dialog. 4e2933c620 2015-04-21 kinaba: */ 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: extern (Windows) { 4e2933c620 2015-04-21 kinaba: BOOL GetOpenFileNamePreviewA(LPOPENFILENAMEA lpofn); 4e2933c620 2015-04-21 kinaba: BOOL GetSaveFileNamePreviewA(LPOPENFILENAMEA lpofn); 4e2933c620 2015-04-21 kinaba: BOOL GetOpenFileNamePreviewW(LPOPENFILENAMEW lpofn); 4e2933c620 2015-04-21 kinaba: BOOL GetSaveFileNamePreviewW(LPOPENFILENAMEW lpofn); 4e2933c620 2015-04-21 kinaba: } 4e2933c620 2015-04-21 kinaba: 4e2933c620 2015-04-21 kinaba: version(Unicode) { 4e2933c620 2015-04-21 kinaba: alias GetOpenFileNamePreviewW GetOpenFileNamePreview; 4e2933c620 2015-04-21 kinaba: alias GetSaveFileNamePreviewW GetSaveFileNamePreview; 4e2933c620 2015-04-21 kinaba: } else { // Unicode 4e2933c620 2015-04-21 kinaba: alias GetOpenFileNamePreviewA GetOpenFileNamePreview; 4e2933c620 2015-04-21 kinaba: alias GetSaveFileNamePreviewA GetSaveFileNamePreview; 4e2933c620 2015-04-21 kinaba: }