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