//**********************************// // Modified 2003 // //**********************************// #if !defined(AFX_WRITEAVI_H__9E875356_2D8D_4CA5_9E9B_CEBBB2011FDB__INCLUDED_) #define AFX_WRITEAVI_H__9E875356_2D8D_4CA5_9E9B_CEBBB2011FDB__INCLUDED_ #include #define TEXT_HEIGHT 20 #define AVIIF_KEYFRAME 0x00000010L #define BUFSIZE 260 class CAVIFile : public CObject { public: CAVIFile(); CAVIFile(LPCTSTR lpszFileName, int xdim=-1, int ydim=-1, int rate=50); virtual ~CAVIFile(); public: virtual BOOL AddFrame(CBitmap& bmp); virtual BOOL AddFrame(XString sBitmapFile); virtual BOOL IsOK() const {return m_bOK;}; CString GetFName() const {return m_sFileName;}; void SetHasSaveOptionsDialog(); void Init(LPCTSTR lpszFileName, int xdim, int ydim, int rate); BOOL Compress(); void SetHasSaveOptionsDialog(BOOL bFlag=TRUE); BOOL HasSaveOptionsDialog(); void SetSaveOptionsParentWnd(HWND hWnd=NULL); HWND GetSaveOptionsParentWnd(); void SetColorNum(UINT nColor=8);//用来控制质量 UINT GetColorNum();//8、16、24、32 protected: BOOL LoadBMPImage(const TCHAR *filename,CBitmap& bitmap); HANDLE MakeDib(HBITMAP hbitmap,UINT bits); protected: CString m_sFileName; int m_nColorNum; int m_nRate; int m_nXDim; int m_nYDim; int m_nFrame; BOOL m_bOK; BOOL m_bHasSaveOptionsDialog; HWND m_hSaveOptionsParentWnd; private: AVISTREAMINFO m_strhdr; PAVIFILE m_pfile; PAVISTREAM m_ps; PAVISTREAM m_psCompressed; PAVISTREAM m_psText; DWORD m_dwTextFormat; char m_szText[BUFSIZE]; AVICOMPRESSOPTIONS m_opts; AVICOMPRESSOPTIONS FAR * m_pOpts[1]; }; #endif // !defined(AFX_WRITEAVI_H__9E875356_2D8D_4CA5_9E9B_CEBBB2011FDB__INCLUDED_)