X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=utilities%2FCxImage%2Fxmemfile.h;fp=utilities%2FCxImage%2Fxmemfile.h;h=ac4c412007097841b6ee59f7bdc611d73464fd61;hb=19d5db17f1c0e98cf84a6cb83643404a550a12a4;hp=0000000000000000000000000000000000000000;hpb=55d19655c84d7dbad602fa351bd7404cf214c3de;p=clitk.git diff --git a/utilities/CxImage/xmemfile.h b/utilities/CxImage/xmemfile.h new file mode 100644 index 0000000..ac4c412 --- /dev/null +++ b/utilities/CxImage/xmemfile.h @@ -0,0 +1,41 @@ +#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