File Annotation

Not logged in
5128eecc9f 2011-02-23        kinaba: //--- K.I.LIB ---
5128eecc9f 2011-02-23        kinaba: // kl_reg.h : registry and ini-file operation
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: #ifndef AFX_KIREGKEY_H__4FD5E1B3_B8FE_45B3_B19E_3D30407C94BA__INCLUDED_
5128eecc9f 2011-02-23        kinaba: #define AFX_KIREGKEY_H__4FD5E1B3_B8FE_45B3_B19E_3D30407C94BA__INCLUDED_
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: /*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*/
5128eecc9f 2011-02-23        kinaba: // レジストリ操作&ini操作
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: class kiRegKey
5128eecc9f 2011-02-23        kinaba: {
5128eecc9f 2011-02-23        kinaba: public: //-- 外向きインターフェイス --------------------------
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// 開く&閉じる
5128eecc9f 2011-02-23        kinaba: 	bool open( HKEY parent, LPCTSTR keyname, REGSAM access = KEY_ALL_ACCESS );
5128eecc9f 2011-02-23        kinaba: 	bool create( HKEY parent, LPCTSTR keyname, REGSAM access = KEY_ALL_ACCESS );
5128eecc9f 2011-02-23        kinaba: 	void close()
5128eecc9f 2011-02-23        kinaba: 		{
5128eecc9f 2011-02-23        kinaba: 			if( m_hKey )
5128eecc9f 2011-02-23        kinaba: 				RegCloseKey( m_hKey );
5128eecc9f 2011-02-23        kinaba: 		}
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// サブキーが存在するや否や
5128eecc9f 2011-02-23        kinaba: 	bool exist( LPCTSTR keyname )
5128eecc9f 2011-02-23        kinaba: 		{
5128eecc9f 2011-02-23        kinaba: 			HKEY k;
5128eecc9f 2011-02-23        kinaba: 			if( ERROR_SUCCESS==RegOpenKeyEx( m_hKey,keyname,0,KEY_READ,&k ) )
5128eecc9f 2011-02-23        kinaba: 			{
5128eecc9f 2011-02-23        kinaba: 				RegCloseKey( k );
5128eecc9f 2011-02-23        kinaba: 				return true;
5128eecc9f 2011-02-23        kinaba: 			}
5128eecc9f 2011-02-23        kinaba: 			return false;
5128eecc9f 2011-02-23        kinaba: 		}
5128eecc9f 2011-02-23        kinaba: 	// HKEYへキャスト
5128eecc9f 2011-02-23        kinaba: 	operator HKEY() const
5128eecc9f 2011-02-23        kinaba: 		{
5128eecc9f 2011-02-23        kinaba: 			return m_hKey;
5128eecc9f 2011-02-23        kinaba: 		}
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// 値を得る
5128eecc9f 2011-02-23        kinaba: 	bool get( LPCTSTR valname, DWORD* val );
5128eecc9f 2011-02-23        kinaba: 	bool get( LPCTSTR valname, BYTE* val, DWORD siz );
5128eecc9f 2011-02-23        kinaba: 	bool get( LPCTSTR valname, kiStr* val );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// 値を設定
5128eecc9f 2011-02-23        kinaba: 	bool set( LPCTSTR valname, DWORD val );
5128eecc9f 2011-02-23        kinaba: 	bool set( LPCTSTR valname, BYTE* val, DWORD siz );
5128eecc9f 2011-02-23        kinaba: 	bool set( LPCTSTR valname, LPCTSTR val );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// 削除
5128eecc9f 2011-02-23        kinaba: 	bool del( LPCTSTR valname );
5128eecc9f 2011-02-23        kinaba: 	bool delSubKey( LPCTSTR keyname );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: public: //-- 内部処理 -----------------------------------
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	kiRegKey()
5128eecc9f 2011-02-23        kinaba: 		{
5128eecc9f 2011-02-23        kinaba: 			m_hKey = NULL;
5128eecc9f 2011-02-23        kinaba: 		}
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	virtual ~kiRegKey()
5128eecc9f 2011-02-23        kinaba: 		{
5128eecc9f 2011-02-23        kinaba: 			close();
5128eecc9f 2011-02-23        kinaba: 		}
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: private:
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	HKEY m_hKey;
5128eecc9f 2011-02-23        kinaba: 	static bool delSubKeyRecursive( HKEY k, LPCTSTR n );
5128eecc9f 2011-02-23        kinaba: };
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: class kiIniFile
5128eecc9f 2011-02-23        kinaba: {
5128eecc9f 2011-02-23        kinaba: public: //-- 外向きインターフェイス --------------------------
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// iniファイル名を設定
5128eecc9f 2011-02-23        kinaba: 	void setFileName( const char* ini, bool exepath=true );
5128eecc9f 2011-02-23        kinaba: 	void setSection( const char* section )
5128eecc9f 2011-02-23        kinaba: 		{ m_CurSec = section; }
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// 読み込み
5128eecc9f 2011-02-23        kinaba: 	// ※ 注意!getStrの返値は内部バッファな為、
5128eecc9f 2011-02-23        kinaba: 	// ※    呼び出し直後以外は内容を保証しない。
5128eecc9f 2011-02-23        kinaba: 	int getInt( const char* key, int defval );
5128eecc9f 2011-02-23        kinaba: 	bool getBool( const char* key, bool defval );
5128eecc9f 2011-02-23        kinaba: 	const char* getStr( const char* key, const char* defval );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	// 書き込み
5128eecc9f 2011-02-23        kinaba: 	bool putStr( const char* key, const char* val );
5128eecc9f 2011-02-23        kinaba: 	bool putInt( const char* key, int val );
5128eecc9f 2011-02-23        kinaba: 	bool putBool( const char* key, bool val );
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: private: //-- 内部処理 -----------------------------------
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: 	kiPath m_FileName;
5128eecc9f 2011-02-23        kinaba: 	kiStr m_CurSec;
5128eecc9f 2011-02-23        kinaba: 	char m_StrBuf[256];
5128eecc9f 2011-02-23        kinaba: };
5128eecc9f 2011-02-23        kinaba: 
5128eecc9f 2011-02-23        kinaba: #endif