C3Lab研究室

Back to Title Page(OpenLab)タイトルページへ戻る

最終更新日: 1998年 08月 17日 月曜日

レジストリ編集用MFC用C++クラスライブラリ

ファイルのダウンロード・自己解凍ファイル


 レジストリにを編集するためのクラスライブラリを作成しました。このクラスライブラリでは次の3種類の システムレジストリへのアクセスを定義しています。このクラスライブラリではWin32APIでの レジストリ関数と異なり、BOOLEANで値を帰します。
 詳しい関数案内を作成したいのですが、時間がないので下のサンプルを参照して自分でいろいろ試してみて ください。質問があればEMailで受けますので、随時聴いてください。重要な事柄があればここで公開い たします。

 自動で生成消滅されるレジストリキーハンドルを使用してアクセスする。

Win16 API should not use this function (Compatibility function)

BOOL Open (HKEY hKey,LPSTR subName);
キーの作成と初期化を行います。キーの値は次のように設定します。
hKey="HKEY_LOCAL_MACHINE"
subName="Software\\kitaro"
BOOL Open (LPSTR keyName);
キーの作成と初期化を行います
キーの値は次のように設定します。"HKEY_LOCAL_MACHINE\\Software"
void Close (void);
HKEY HKey (void){return hk;};
現在のカレントキーを修得します
BOOL GetValue (LPSTR subKey,CHAR szPath[_MAX_PATH]);
BOOL GetValue (LPSTR subKey,WCHAR wszPath[_MAX_PATH]);
BOOL SetValue (LPSTR subKey,LPCSTR lpData);
BOOL SetValue (LPSTR subKey,DWORD dwData);
BOOL SetValue (LPSTR subKey,DWORD dwType,void* lpData,DWORD dwSize);
BOOL CreateKey (LPSTR subKey);
BOOL DeleteKey (LPSTR subKey);
BOOL EnumKey (DWORD dwIndex,LPSTR lpValueName, LPDWORD lpcbValueName,LPSTR lpData,LPDWORD lpType,PFILETIME pFileTime);
BOOL EnumValue (DWORD dwIndex,LPTSTR lpValueName, LPDWORD lpcbValueName, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData );
BOOL QueryKey (LPCTSTR lpSubKey,LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData );
BOOL EnumKey (DWORD dwIndex,LPSTR lpValueName);
BOOL EnumKey (DWORD dwIndex,LPSTR lpValueName,DWORD dwLength);
BOOL QueryKey (LPCTSTR lpSubKey,LPTSTR lpValue);
BOOL QueryKey (LPCTSTR lpSubKey,LPTSTR lpValue,PLONG lpcbValue);
BOOL SetValue16 (LPSTR subKey,LPCSTR lpData);
BOOL SetValue16 (LPSTR subKey,DWORD dwData);
BOOL SetValue16 (LPSTR subKey,DWORD dwType,void* lpData,DWORD dwSize);
 手動でレジストリキーハンドルを生成・消滅する。

Win16 Api (Should not use this function on Win32 application)

BOOL Open (LPSTR subKey,HKEY *phKey);
BOOL Open (HKEY hKey,LPSTR subName,HKEY *phKey);
void Close (HKEY hKey);
BOOL DeleteKey (HKEY hKey,LPSTR subKey);
BOOL CreateKey (HKEY *phKey,LPSTR subKey);
BOOL CreateKey (HKEY hKey,LPSTR subKey,HKEY *phNewKey);
BOOL CreateKey (HKEY hKey,LPSTR subKey,HKEY *phNewKey,LPDWORD lpdwFlg);
BOOL EnumKey (HKEY hKey,DWORD dwIndex,LPSTR lpValueName);
BOOL EnumKey (HKEY hKey,DWORD dwIndex,LPSTR lpValueName,DWORD dwLength);
BOOL QueryKey (HKEY hKey,LPCTSTR lpSubKey,LPTSTR lpValue);
BOOL QueryKey (HKEY hKey,LPCTSTR lpSubKey,LPTSTR lpValue,PLONG lpcbValue);
 個々にレジストリキーハンドルを生成・消滅する(Win32API互換タイプ)。
BOOL GetValue (HKEY hKey,LPSTR subKey1,LPSTR subKey2,WCHAR szPath[_MAX_PATH]);
BOOL GetValue (HKEY hKey,LPSTR subKey1,LPSTR subKey2,CHAR szPath[_MAX_PATH]);
BOOL SetValue (HKEY hKey,LPSTR subKey1,LPSTR subKey2,LPCSTR lpData);
BOOL SetValue (HKEY hKey,LPSTR subKey1,LPSTR subKey2,DWORD dwData);
BOOL CreateKey (HKEY hKey,LPSTR subKey1,LPSTR subKey2);
BOOL DeleteKey (HKEY hKey,LPSTR subKey1,LPSTR subKey2);

 ライブラリの使用例1


    RegKey *pRegKey;
    CHAR szPath[_MAX_PATH];
    pRegKey = new RegKey();
    // create subkey
    pRegKey->Open("HKEY_LOCAL_MACHINE\\Software");
    pRegKey->CreateKey("kitaro");
    pRegKey->CreateKey("Equip95");
    pRegKey->SetValue("Sample Direct","Data-1");
    pRegKey->Close();
    //
    pRegKey->Open("HKEY_LOCAL_MACHINE\\Software\\kitaro\\equip95");
    pRegKey->SetValue("Sample","Data");
    pRegKey->GetValue("Samlpe Direct", szPath);

    pRegKey->Close();
    delete(pRegKey);

 ライブラリの使用例2


    RegKey cRegKey;
    HKEY hk;
    cRegKey.Open("HKEY_LOCAL_MACHINE\\Software",&hk);
    pRegKey->SetValue(hk,"Sample","Data");
    pRegKey->GetValue(hk,"Samlpe Direct", szPath);
    cRegKey.Close(hk);

Copyright (C) Kitaro 1998