?? avitools.h
字號:
// AVITools.h
#ifndef __AVITOOLS_H__
#define __AVITOOLS_H__
#include "vfw.h"
// -> Define Return Value
#define ERR_OK 0 // 操作正確
#define ERR_CANNOT_OPEN_FILE 10 // 打開文件錯誤
#define ERR_READ_FILE_ERROR 11 // 讀文件錯誤
#define ERR_WRITE_FILE_ERROR 12 // 寫文件錯誤
#define ERR_BAD_FORMAT 13 // 錯誤的或無法識別的格式
#define ERR_IMAGE_SIZE_ERROR 14 // 圖象大小錯誤
#define ERR_OUT_OF_MEMORY 20 // 內存溢出
#define ERR_AVI_FILE_ERROR 50 // avi文件錯誤
#define ERR_AVI_OPEN_ERROR 51 // 打開avi文件錯誤
#define ERR_AVI_INFO_ERROR 52 // 讀取avi文件信息錯誤
#define ERR_AVI_GETSTREAM_ERROR 53 // 獲取avi流錯誤
#define ERR_AVI_STREAMINFO_ERROR 54 // 獲取avi流信息錯誤
#define ERR_AVI_GETFRAME_ERROR 55 // 獲取getavi句柄錯誤
#define ERR_FORMAT_NOT_SET 100 // 保留
#define ERR_FORMAT_ALREADY_SET 101 // 保留
#define ERR_AVI_FILE_NOT_CREATE 110 // 文件沒有創建
#define ERR_ARGUMENTS_ERROR 500 // 向函數傳遞的參數錯誤
// <- Define Return Value
#define CONTROL_PLAY 0
#define CONTROL_PAUSE 1
#define CONTROL_STOP 2
struct SHOW_AVI_ARG
{
CHAR sFileName[200];
HWND hWnd;
INT iDelay;
BOOL bLoop;
INT iVideoID;
INT iBeginFrame;
INT iEndFrame;
int xDst, yDst, dxDst, dyDst;
int xSrc, ySrc, dxSrc, dySrc;
INT iControl;
};
UINT ShowAviThread(LPVOID lParam);
class CAVITools
{
public:
CAVITools();
virtual ~CAVITools();
public:
SHOW_AVI_ARG m_ShowAviArg;
BOOL ShowAvi(CHAR *sFileName, HWND hWnd,
INT iVideoID = 0, INT iDelay = 100,
INT iBeginFrame = -1, INT iEndFrame = -1,
int xDst = 0, int yDst = 0, int dxDst = -1, int dyDst = -1,
int xSrc = 0, int ySrc = 0, int dxSrc = -1, int dySrc = -1);
public:
HRESULT SplitAvi(CHAR *sAviFileName, CHAR *sTargetPathint, INT *iCount);
HRESULT SetStreamFormatFromMemory(BITMAPINFOHEADER *pData, BOOL bHasPattle = TRUE);
HRESULT SetStreamFormatFromFile(CHAR *sBmpFile);
HRESULT AddMemFrame(CHAR *pBits);
HRESULT AddFileFrame(CHAR *sBmpFile);
HRESULT CreateAviFile(CHAR *sAviFile, DWORD dwRate);
BOOL CleanUp();
BOOL GetLastError(CString &sDescribe, INT &iErrorNumber);
BOOL GetLastError(CString &sDescribe);
INT m_iCurrentFrameCount; // Current Frame Count In The Avi Stream
protected:
HRESULT SaveBMP(CHAR *sFileName, BITMAPINFOHEADER *pData);
PAVIFILE m_pAviFile;
PAVISTREAM m_pAviStream;
PAVISTREAM m_pCompressedAviStream;
AVISTREAMINFO m_AviStreamInfo;
AVICOMPRESSOPTIONS m_AviCompressOptions;
CHAR* m_pBuffer;
BITMAPINFOHEADER* m_pFormat;
INT m_iFormatLength;
INT m_iFrameSize;
INT m_iLastErrorNumber;
CString m_sLastErrorDescribe;
INT m_iWidth;
INT m_iHeight;
CString m_strAviFileName; // Avi File Name;
};
#endif // __AVITOOLS_H__
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -