#pragma once class CEtPackingFile; class CEtFileIO { public: enum FileIOType { // ÀÏ¹Ý ÆÄÀÏ ÀÔÃâ·Â ET_STD_FILE = 0, ET_PACK_FILE = 1 }; enum AccessType { ET_READ = 0, ET_WRITE, ET_ALL }; enum SeekType { // winbase.h ¿¡ FILE_BEGIN = 0 À̰Ŷû °°Àº °ªÀε¥ À̸§¸¸ ´Ù¸£´Ù, ¼ýÀÚ ¹Ù²Ù¸é ¾ÈµÊ! ET_SEEK_BEGIN = 0, // ÆÄÀÏ Ã³À½ ±âÁØ ET_SEEK_CURRENT = 1, // ÆÄÀÏ ÇöÀç ±âÁØ ET_SEEK_END = 2 // ÆÄÀÏ ³¡ ±âÁØ }; public: CEtFileIO() { } virtual ~CEtFileIO() { } virtual bool Open(const TCHAR* szFileName, AccessType nAccessMode) = 0; virtual bool Close() = 0; virtual int Read(void* pBuffer, int nLen) = 0; virtual int Write(const void* pBuffer, int nLen ) = 0; virtual int Seek(int nOffset, SeekType nPosition) = 0; virtual int Tell() = 0; public: // ŸÀÔ¿¡ ¸Â´Â ÆÄÀÏÀÔÃâ·Â °´Ã¼¸¦ »ý¼ºÇؼ­ µ¹·ÁÁØ´Ù ( ÇØÁ¦´Â ¾Ë¾Æ¼­.. ) static CEtFileIO* CreateFileIO(FileIOType opt); };