File Annotation

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