SRegistry クラス

レジストリへの簡単なアクセス機能を提供します。
更新日 2014-07-29

仕様

レジストリへの読み書き用メソッドを実装したクラスです。よく使うデータ形式(文字列、DWORD、バイナリ)については 専用のメソッドも実装しています。クラスにしたのはJAVA 的な思想からです。

ソースコード

SRegistry.h 右クリックで「対象をファイルに保存」でダウンロードしてください。

依存関係

sjstring.hscritical.hも使用してます。同じフォルダに入れておいてね。

メソッド

レジストリへのアクセサメソッドとなります。

SetString()、GetString()

レジストリの任意のキーに文字列を書き込んだり、読み出したりできます。
LPCTSTR lpczPath = __TEXT("HKEY_CURRENT_USER\\Software\\test");
LPCTSTR lpczKey = __TEXT("key_str");

SRegistry reg;
BOOL bRet = reg.SetString(lpczPath , lpczKey, "Test string.");

TCHAR Byf[512] = {0};
BOOL bRet = reg.GetString(lpczPath, lpczKey, Buf, 512);

SetDWORD()、GetDWORD()

レジストリの任意のキーにDWORD 値を書き込んだり、読み出したりできます。
LPCTSTR lpczPath = __TEXT("HKEY_CURRENT_USER\\Software\\test");
LPCTSTR lpczKey = __TEXT("key_dword");

SRegistry reg;
reg.SetDWORD( lpczPath, lpczKey, 0x00cb5566);

DWORD dwBuf = 0;
reg.GetDWORD( lpczPath, lpczKey, &dwBuf);

SetBinary()、GetBinary()

レジストリの任意のキーにバイナリデータを書き込んだり、読み出したりできます。
LPCTSTR lpczPath = __TEXT("HKEY_CURRENT_USER\\Software\\test");
LPCTSTR lpczKey = __TEXT("key_bin");

BYTE byteData[] = {0x00, 0x0f, 0xff, 0xf0, 0x00};

SRegistry reg;
reg.SetBinary( lpczPath, lpczKey, byteData, sizeof(byteData));

BYTE Buf[512] = {0};
reg.GetBinary( lpczPath, lpczKey, &Buf, 512);

GetValueLength()

レジストリの任意のキーのデータサイズを取得できます。
SRegistry reg;
int nSize = reg.GetValueLength();

SetValue(), GetValue()

レジストリの任意のキーに任意のデータ形式を書き込んだり、読み出したりできます。既定のデータ形式についてはコチラを参考ください。
LPCTSTR lpczPath = __TEXT("HKEY_CURRENT_USER\\Software\\test");
LPCTSTR lpczKey = __TEXT("key_bin");
DWORD dwBuf[] = { 0x00ffffff, 0x00a0a0a0 };
SRegistry reg;
reg.setValue( lpczPath, lpczKey, REG_QWORD, &dwBuf, sizeof(dwBuf));

dwBuf[0] = 0;
dwBuf[1] = 0;
ref.getValue( pczPath, lpczKey, REG_QWORD, &dwBuf, sizeof(dwBuf));