00001 00021 #ifndef INC_MI32_INIHND_H 00022 #define INC_MI32_INIHND_H 00023 00024 #ifndef INC_MI32_INIDEFNS_H 00025 #include <mi32/inidefns.h> 00026 #endif 00027 00028 #ifndef INC_MI32_FILEPATH_H 00029 #include <mi32/filepath.h> // Since Open() method calls FILEPATH::operator==(), need the include file. 00030 #endif 00031 00033 class INIHND { 00034 public: 00035 00037 INIHND ( 00038 ): m_handle(0) { } 00039 00041 ~INIHND ( 00042 ) { Close(); } 00043 00046 operator INIHANDLE ( 00047 ) const { return (m_handle); } 00048 00050 void Close ( 00051 ) { if (IsOpen()) IniClose(m_handle); m_handle = 0; } 00052 00054 bool IsOpen ( 00055 ) const { return (m_handle != 0); } 00056 00058 ERRVALUE OpenHost ( 00059 bool readonly = true 00060 ) { Close(); return (IniOpen(INIFILE_Host,&m_handle,(readonly?INIFLAG_ReadOnly:0))); } 00061 00063 ERRVALUE Open ( 00064 const FILEPATH& filepath 00065 ) { 00066 if (IsOpen() && filepath == IniGetFilePath(m_handle)) return (0); 00067 Close(); 00068 return (IniOpen(filepath,&m_handle)); 00069 } 00070 00071 private: 00072 #ifndef GENERATING_DOXYGEN_OUTPUT 00073 INIHANDLE m_handle; 00074 // UNIMPLEMENTED / UNSUPPORTED 00075 INIHND (const INIHND&); 00076 INIHND& operator= (const INIHND&); 00077 #endif // GENERATING_DOXYGEN_OUTPUT 00078 }; 00079 00080 //------------------------------------------------------------------------------------------------- 00081 00082 00083 #endif // INC_MI32_INIHND_H
1.6.1