
ATLライブラリにはレジストリを扱うクラスとしてCRegKeyが用意されている。このクラスを利用すると簡単にレジストリへ値を書き込んだり値を読み込める。
#include "atlstr.h"
bool WriteTest(DWORD dwData)
{
LONG nRet;
CRegKey cRegistry;
//レジストリキーがなければ作成(複数階層でも作成される)
nRet = cRegistry.Create(HKEY_CURRENT_USER,_T("software\\usefullcode\\test85"),REG_NONE,REG_OPTION_NON_VOLATILE,KEY_WRITE);
if(nRet != ERROR_SUCCESS)
return false;
//DWORD値を書き込む
nRet = cRegistry.SetDWORDValue(_T("test_dword"),dwData);
cRegistry.Close();
return (nRet == ERROR_SUCCESS) ? true : false;
}
bool ReadTest(DWORD* pdwData)
{
LONG nRet;
CRegKey cRegistry;
if(pdwData == NULL)
return false;
//レジストリキーがなければ失敗
nRet = cRegistry.Open(HKEY_CURRENT_USER,_T("software\\usefullcode\\test85"),KEY_READ);
if(nRet != ERROR_SUCCESS)
return false;
//DWORD値を読み込む
nRet = cRegistry.QueryDWORDValue(_T("test_dword"),*pdwData);
cRegistry.Close();
return (nRet == ERROR_SUCCESS) ? true : false;
}
void Test(void)
{
bool ret;
DWORD dwData;
CAtlString strMessage;
ret = WriteTest(10);
if(ret)
ret = ReadTest(&dwData);
if(ret == false && dwData != 10)
::MessageBox(NULL,_T("失敗しました!"),_T(""),MB_OK);
else
::MessageBox(NULL,_T("成功しました"),_T(""),MB_OK);
}
プロジェクトファイルをダウンロード