主なレジストリ操作関数
| 関数名 | 機能 |
|---|---|
| RegOpenKeyEx | 指定されたアクセス権でキーをオープンします。 |
| RegCreateKeyEx | 指定されたセキュリティ属性とアクセス権でキーを作成またはオープンします。 |
| RegCloseKey | キーをクローズして、 そのキーの情報をレジストリに書き込みます。 |
| RegEnumKeyEx | 指定されたキーのサブキーを列挙します。 |
| RegEnumValue | 指定されたキーの値を列挙します。 |
| RegQueryValueEx | 名前付きの値の種類とデータ情報を取得します。 |
| RegDeleteValue | キーから値を削除します。 |
| RegDeleteKey | キーを削除します。 |
//HKEY_CURRENT_USERの指定されたキーからDWORD値を取得します
//lpszSection:キー名
//lpszEntry :データの名前
//dwDefault :キーがない場合のデフォルト値
//戻り値 :取得したDWORD値
DWORD GetRegInt(LPCTSTR lpszSection, LPCTSTR lpszEntry, DWORD dwDefault)
{
BOOL bResult = FALSE;
DWORD dwBuffer = 0;
HKEY hOpenKey;
if(RegOpenKeyEx(HKEY_CURRENT_USER, lpszSection, 0, KEY_EXECUTE, &hOpenKey) == ERROR_SUCCESS) {
DWORD dwType;
DWORD dwBufferSize = sizeof(DWORD);
if(RegQueryValueEx(hOpenKey, lpszEntry, 0, &dwType, reinterpret_cast<LPBYTE>(&dwBuffer), &dwBufferSize) == ERROR_SUCCESS) {
bResult = TRUE;
}
RegCloseKey(hOpenKey);
}
if(!bResult) {
dwBuffer = dwDefault;
}
return dwBuffer;
}
//HKEY_CURRENT_USERの指定されたキーから文字列を取得します
//lpszSection:キー名
//lpszEntry :データの名前
//lpszDefault:キーがない場合のデフォルト値
//lpBuffer :データを受け取るバッファ
//nSize :バッファのサイズ
//戻り値 :なし(取得した値はlpBufferに格納されます)
void GetRegString(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault, LPTSTR lpBuffer, DWORD nSize)
{
BOOL bResult = FALSE;
HKEY hOpenKey;
if(RegOpenKeyEx(HKEY_CURRENT_USER, lpszSection, 0, KEY_EXECUTE, &hOpenKey) == ERROR_SUCCESS) {
DWORD dwType;
DWORD dwBufferSize = nSize;
if(RegQueryValueEx(hOpenKey, lpszEntry, 0, &dwType, reinterpret_cast<LPBYTE>(lpBuffer), &dwBufferSize) == ERROR_SUCCESS) {
bResult = TRUE;
}
RegCloseKey(hOpenKey);
}
if(!bResult) {
lstrcpyn(lpBuffer, lpszDefault, nSize);
}
}