⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avitools.h

📁 超声影像工作站系统可与各种型号的B超、彩超连接
💻 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 + -