00001
00002
00003
00004
00005
00006 #if !defined(AFX_VMSFILE_H__88D636C1_5B75_4644_A165_E88280A83CBA__INCLUDED_)
00007 #define AFX_VMSFILE_H__88D636C1_5B75_4644_A165_E88280A83CBA__INCLUDED_
00008
00009 #if _MSC_VER > 1000
00010 #pragma once
00011 #endif
00012
00013 namespace vmsFDM
00014 {
00015
00016 class vmsFile
00017 {
00018 public:
00019
00020 void ReadDouble (double &f);
00021 void ReadInt64(__int64 &i);
00022 void ReadInt (int &i);
00023 void WriteInt (int i);
00024 void WriteInt64 (__int64 i);
00025 void WriteDouble (double f);
00026 void ReadString(fsString& str);
00027 void WriteString (LPCSTR psz);
00028
00029 void Seek (DWORD dwDistance, DWORD dwMethod = FILE_BEGIN);
00030
00031 DWORD GetSize();
00032
00033 void Create (LPCTSTR pszFileName, DWORD dwAccess = GENERIC_READ, DWORD dwShareMode = FILE_SHARE_READ, DWORD dwCreationDisposition = OPEN_EXISTING, DWORD dwFlags = FILE_ATTRIBUTE_NORMAL);
00034
00035 void Close();
00036
00037 void Attach (HANDLE hFile, bool bAutoClose = true);
00038
00039 HANDLE Detach();
00040
00041 void Read (LPVOID pvBuffer, DWORD dwToRead, DWORD* pdwRead = NULL);
00042 void Write (LPCVOID pvBuffer, DWORD dwToWrite);
00043
00044 operator HANDLE() const {return m_hFile;}
00045
00046 vmsFile(HANDLE hFile = INVALID_HANDLE_VALUE, bool bAutoClose = true);
00047 virtual ~vmsFile();
00048
00049 protected:
00050
00051 bool m_bThrowOnPartialRead;
00052 bool m_bAutoClose;
00053 HANDLE m_hFile;
00054 };
00055
00056 };
00057
00058 #endif