home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2001 June
/
VPR0106A.BIN
/
OLS
/
PREX102
/
PrEx102.lzh
/
Src.lzh
/
yfRegistry.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
2001-02-23
|
8KB
|
243 lines
//---------------------------------------------------------------------------
// yfRegistry.cpp
//---------------------------------------------------------------------------
#include "yfRegistry.h"
//----------yfRegistryのstatic変数の定義-------------------------------------
//----------コンストラクタ---------------------------------------------------
//---------------------------------------------------------------------------
// 関数名:void yfRegistry::yfRegistry(void)
// アクセス制限:Public
// 入力:
// 型:void
// 名前:なし
// 内容:なし
// 動作:
// 内容:コンストラクタ
//
//---------------------------------------------------------------------------
yfRegistry::yfRegistry()
:RegKey(NULL), RootKey(HKEY_CURRENT_USER), StrBuffer(NULL)
{
}
//----------デストラクタ-----------------------------------------------------
//---------------------------------------------------------------------------
// 関数名:void yfRegistry::~yfRegistry(void)
// アクセス制限:Public
// 入力:
// 型:void
// 名前:なし
// 内容:なし
// 動作:
// 内容:デストラクタ
//
//---------------------------------------------------------------------------
yfRegistry::~yfRegistry(void)
{
CloseKey();
delete[] StrBuffer;
StrBuffer = NULL;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// Public
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// 設定関係
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// 関数名:int yfRegistry::SetRootKey(const HKEY SetKey)
// アクセス制限:
// 入力:
// 型:const HKEY
// 名前:SetKey
// 内容:ルートキー
// 出力:
// 型:int
// 返値:0
// 内容:成功
// 返値:1
// 内容:設定失敗
// 動作:
// 内容:ルートキーの設定をする
//
//---------------------------------------------------------------------------
int yfRegistry::SetRootKey(const HKEY SetKey)
{
//-----------------------------------------------------------------------
// 条件分岐
// スイッチ変数:SetKey
// スイッチ内容:設定するルートキー
// case:HKEY_CLASSES_ROOT
// case:HKEY_CURRENT_USER
// case:HKEY_LOCAL_MACHINE
// case:HKEY_USERS
// case:HKEY_CURRENT_CONFIG
// case:HKEY_DYN_DATA
// 動作内容:設定する
//-----------------------------------------------------------------------
switch ((DWORD)SetKey)
{
case HKEY_CLASSES_ROOT:
case HKEY_CURRENT_USER:
case HKEY_LOCAL_MACHINE:
case HKEY_USERS:
case HKEY_CURRENT_CONFIG:
case HKEY_DYN_DATA:
RootKey = SetKey;
return(0);
}
return(1);
}
//---------------------------------------------------------------------------
// 関数名:int yfRegistry::OpenKey(LPCTSTR SubKey, const bool CanCreate)
// アクセス制限:
// 入力:
// 型:LPCTSTR
// 名前:SubKey
// 内容:開くサブキー
// 型:const bool
// 名前:CanCreate
// 内容:キーが存在しない場合作るかどうか
// 出力:
// 型:int
// 返値:0
// 内容:成功
// 返値:1
// 内容:設定失敗
// 動作:
// 内容:指定したキーを開く
//
//---------------------------------------------------------------------------
int yfRegistry::OpenKey(LPCTSTR SubKey, const bool CanCreate)
{
//-----------------------------------------------------------------------
// 条件実行
// 条件式:NULL != RegKey
// 条件内容:すでに作成済み
// 動作内容:エラー
//-----------------------------------------------------------------------
if (NULL != RegKey)
{
return(1);
}
//-----------------------------------------------------------------------
// 初期化部分(Initialization)
//-----------------------------------------------------------------------
LONG Ret;
//-----------------------------------------------------------------------
// 条件分岐
// 条件式:false != CanCreate
// 条件内容:作成するように指定
// 動作内容:指定したキーを開く(RegCreateKeyEx)
// 条件式:false == CanCreate
// 条件内容:作成しないように指定
// 動作内容:指定したキーを開く(RegOpenKeyEx)
//-----------------------------------------------------------------------
// if (false != CanCreate)
// {
// Ret = ::RegCreateKeyEx(RootKey, SubKey, 0, KEY_READ, &RegKey);
// } else {
Ret = ::RegOpenKeyEx(RootKey, SubKey, 0, KEY_READ, &RegKey);
// }
//-----------------------------------------------------------------------
// 条件実行
// 条件式:ERROR_SUCCESS != Ret
// 条件内容:エラーの場合
// 動作内容:エラー
//-----------------------------------------------------------------------
if(ERROR_SUCCESS != Ret)
{
return(1);
}
return(0);
}
//---------------------------------------------------------------------------
// 関数名:int yfRegistry::CloseKey(void)
// アクセス制限:
// 入力:
// 型:void
// 名前:なし
// 内容:なし
// 出力:
// 型:int
// 返値:0
// 内容:成功
// 返値:1
// 内容:設定失敗
// 動作:
// 内容:指定したキーを閉じる
//
//---------------------------------------------------------------------------
int yfRegistry::CloseKey(void)
{
//-----------------------------------------------------------------------
// 条件実行
// 条件式:NULL == RegKey
// 条件内容:作成されていない
// 動作内容:返す
//-----------------------------------------------------------------------
if (NULL == RegKey)
{
return(0);
}
::RegCloseKey(RegKey);
RegKey = NULL;
return(0);
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// 取得関係
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// 関数名:LPCTSTR yfRegistry::ReadString(LPCTSTR SubKey)
// アクセス制限:
// 入力:
// 型:LPCTSTR
// 名前:SubKey
// 内容:読みこむサブキー
// 出力:
// 型:LPCTSTR
// 返値:NULL以外
// 内容:レジストリ内容
// 返値:_T("")
// 内容:エラー
// 動作:
// 内容:レジストリから文字列を読み取る
//
//---------------------------------------------------------------------------
LPCTSTR yfRegistry::ReadString(LPCTSTR SubKey)
{
LONG Ret;
DWORD StrLength;
DWORD Type = REG_SZ;
Ret = ::RegQueryValueEx(RegKey, SubKey, NULL, &Type, NULL, &StrLength);
//-----------------------------------------------------------------------
// 条件実行
// 条件式:ERROR_SUCCESS != Ret
// 条件内容:エラーの場合
// 動作内容:エラー
//-----------------------------------------------------------------------
if(ERROR_SUCCESS != Ret)
{
return(_T(""));
}
delete[] StrBuffer;
StrBuffer = new TCHAR[StrLength];
::RegQueryValueEx(RegKey, SubKey, NULL, &Type, (LPBYTE)StrBuffer, &StrLength);
return(StrBuffer);
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------