www.pudn.com > ViewerCarry.rar > xmemfile.h


#if !defined(__xmemfile_h) 
#define __xmemfile_h 
 
#include "xfile.h" 
 
////////////////////////////////////////////////////////// 
class DLL_EXP CxMemFile : public CxFile 
{ 
public: 
	CxMemFile(BYTE* pBuffer = NULL, DWORD size = 0); 
	~CxMemFile(); 
 
	bool Open(); 
	BYTE* GetBuffer(bool bDetachBuffer = true); 
 
	virtual bool	Close(); 
	virtual size_t	Read(void *buffer, size_t size, size_t count); 
	virtual size_t	Write(const void *buffer, size_t size, size_t count); 
	virtual bool	Seek(long offset, int origin); 
	virtual long	Tell(); 
	virtual long	Size(); 
	virtual bool	Flush(); 
	virtual bool	Eof(); 
	virtual long	Error(); 
	virtual bool	PutC(unsigned char c); 
	virtual long	GetC(); 
 
protected: 
	void	Alloc(DWORD nBytes); 
	void	Free(); 
 
	BYTE*	m_pBuffer; 
	DWORD	m_Size; 
	bool	m_bFreeOnClose; 
	long	m_Position;	//current position 
	long	m_Edge;		//buffer size 
}; 
 
#endif