42 lines
959 B
C++
42 lines
959 B
C++
#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();
|
|
virtual char * GetS(char *string, int n);
|
|
virtual long Scanf(const char *format, void* output);
|
|
|
|
protected:
|
|
bool 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
|