Guest User

Untitled

a guest
Jun 12th, 2013
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.66 KB | None | 0 0
  1. #pragma once
  2.  
  3. class BinFile
  4. {
  5.     HANDLE mFile;
  6.     LPVOID mFileView;
  7.     HANDLE mMapping;
  8. public:
  9.     BinFile(const std::wstring& fileName);
  10.     ~BinFile();
  11.  
  12.     void read(void* memory, uint64 numBytes);
  13.  
  14.     template<typename T>
  15.     T read() {
  16.         T ret;
  17.         read(&ret, sizeof(T));
  18.         return ret;
  19.     }
  20.  
  21.     template<typename T>
  22.     void read(T& value) {
  23.         read(&value, sizeof(T));
  24.     }
  25.  
  26.     LPBYTE getPointer(uint32 offset);
  27.    
  28.     std::wstring readString();
  29.  
  30.     void seekMod(int64 mod);
  31.     void seek(uint64 offset);
  32.     uint64 tell();
  33.     uint64 getFileSize() {
  34.         LARGE_INTEGER size;
  35.         GetFileSizeEx(mFile, &size);
  36.         return size.QuadPart;
  37.     }
  38. };
  39.  
  40. typedef std::shared_ptr<BinFile> BinFilePtr;
Advertisement
Add Comment
Please, Sign In to add comment