2005年1月12日12:00:56
RegQueryValueEx第一遍用於取出鍵值的長度,第2遍才取值
CString _CPrtStamp::LoadRegistryStampSz(CString szSubKey)
{
HKEY hKey = NULL; // レジストリキーハンドル
DWORD lpcbData; // 値データサイズ
DWORD lpType;
CString szValue;
long nStatus;
// レジストをオーペンする
nStatus = RegCreateKeyEx(HKEY_CURRENT_USER,
REG_STAMP_CONTENT_SUBKEY,//REG_STAMP_SUBKEY,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_QUERY_VALUE,
NULL,
&hKey,
NULL);
if (nStatus!= ERROR_SUCCESS)
{
RegCloseKey(hKey);
return "";
}
nStatus = RegQueryValueEx(hKey, szSubKey, NULL, NULL, NULL, &lpcbData);
if (nStatus!= ERROR_SUCCESS)
{
RegCloseKey(hKey);
return "";
}
nStatus = RegQueryValueEx(hKey, szSubKey, NULL, &lpType, (LPBYTE)szValue.GetBuffer(lpcbData), &lpcbData);
if (nStatus!= ERROR_SUCCESS)
{
RegCloseKey(hKey);
return "";
}
RegCloseKey(hKey);
return szValue;
}
保存註冊表DWORD
void _CPrtStamp::SaveRegistryStamp(CString szSubKey, DWORD dwValue)
{
HKEY hKey = NULL; // レジストリキーハンドル
DWORD cbData = sizeof(DWORD); // 値データサイズ
long nStatus;
// レジストをオーペンする
nStatus = RegCreateKeyEx(HKEY_CURRENT_USER,
REG_STAMP_SUBKEY,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
NULL);
if (nStatus!= ERROR_SUCCESS)
{
return;
}
nStatus = RegSetValueEx(hKey, szSubKey, 0, REG_DWORD, (LPBYTE)&dwValue, cbData);
RegCloseKey(hKey);
}
RegQueryValueEx第一遍用於取出鍵值的長度,第2遍才取值
CString _CPrtStamp::LoadRegistryStampSz(CString szSubKey)
{
HKEY hKey = NULL; // レジストリキーハンドル
DWORD lpcbData; // 値データサイズ
DWORD lpType;
CString szValue;
long nStatus;
// レジストをオーペンする
nStatus = RegCreateKeyEx(HKEY_CURRENT_USER,
REG_STAMP_CONTENT_SUBKEY,//REG_STAMP_SUBKEY,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_QUERY_VALUE,
NULL,
&hKey,
NULL);
if (nStatus!= ERROR_SUCCESS)
{
RegCloseKey(hKey);
return "";
}
nStatus = RegQueryValueEx(hKey, szSubKey, NULL, NULL, NULL, &lpcbData);
if (nStatus!= ERROR_SUCCESS)
{
RegCloseKey(hKey);
return "";
}
nStatus = RegQueryValueEx(hKey, szSubKey, NULL, &lpType, (LPBYTE)szValue.GetBuffer(lpcbData), &lpcbData);
if (nStatus!= ERROR_SUCCESS)
{
RegCloseKey(hKey);
return "";
}
RegCloseKey(hKey);
return szValue;
}
保存註冊表DWORD
void _CPrtStamp::SaveRegistryStamp(CString szSubKey, DWORD dwValue)
{
HKEY hKey = NULL; // レジストリキーハンドル
DWORD cbData = sizeof(DWORD); // 値データサイズ
long nStatus;
// レジストをオーペンする
nStatus = RegCreateKeyEx(HKEY_CURRENT_USER,
REG_STAMP_SUBKEY,
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
NULL,
&hKey,
NULL);
if (nStatus!= ERROR_SUCCESS)
{
return;
}
nStatus = RegSetValueEx(hKey, szSubKey, 0, REG_DWORD, (LPBYTE)&dwValue, cbData);
RegCloseKey(hKey);
}