85 lines
1.8 KiB
C++
85 lines
1.8 KiB
C++
#ifndef _CREGISTRY_H
|
|
#define _CREGISTRY_H
|
|
|
|
class CRegistry {
|
|
|
|
public:
|
|
|
|
CRegistry(LPTSTR szHomeRegistryKey)
|
|
{
|
|
DWORD dwDisposition = 0;
|
|
LONG ErrorResult = RegCreateKeyEx(
|
|
HKEY_CURRENT_USER,
|
|
szHomeRegistryKey,
|
|
0,
|
|
NULL,
|
|
REG_OPTION_NON_VOLATILE,
|
|
KEY_ALL_ACCESS,
|
|
NULL,
|
|
&m_hHomeKey,
|
|
&dwDisposition);
|
|
m_bReady = (ErrorResult == ERROR_SUCCESS);
|
|
}
|
|
~CRegistry()
|
|
{
|
|
if(NULL != m_hHomeKey){
|
|
RegCloseKey(m_hHomeKey);
|
|
}
|
|
}
|
|
|
|
LONG ReadStringValue(LPTSTR szValueName, LPTSTR szValue, DWORD dwBufferSize)
|
|
{
|
|
DWORD Type = REG_SZ;
|
|
LONG ErrorResult = RegQueryValueEx(m_hHomeKey,
|
|
szValueName,
|
|
NULL,
|
|
&Type,
|
|
(LPBYTE)szValue,
|
|
&dwBufferSize);
|
|
return ErrorResult;
|
|
}
|
|
|
|
LONG ReadLongValue(LPTSTR szValueName)
|
|
{
|
|
DWORD dwBufferSize = sizeof(LONG);
|
|
DWORD Type = REG_DWORD;
|
|
LONG ReturnValue = 0;
|
|
LONG ErrorResult = RegQueryValueEx(m_hHomeKey,
|
|
szValueName,
|
|
NULL,
|
|
&Type,
|
|
(LPBYTE)&ReturnValue,
|
|
&dwBufferSize);
|
|
return ReturnValue;
|
|
}
|
|
|
|
LONG WriteStringValue(LPTSTR szValueName, LPTSTR szValue)
|
|
{
|
|
return RegSetValueEx(m_hHomeKey,
|
|
szValueName,
|
|
0,
|
|
REG_SZ,
|
|
(LPBYTE)szValue,
|
|
lstrlen(szValue) + 1);
|
|
}
|
|
|
|
LONG WriteLongValue(LPTSTR szValueName, LONG lValue)
|
|
{
|
|
return RegSetValueEx(m_hHomeKey,
|
|
szValueName,
|
|
0,
|
|
REG_DWORD,
|
|
(LPBYTE)&lValue,
|
|
sizeof(LONG));
|
|
}
|
|
|
|
private:
|
|
HKEY m_hHomeKey;
|
|
HKEY m_CurrentKey;
|
|
BOOL m_bReady;
|
|
protected:
|
|
|
|
};
|
|
|
|
|
|
#endif |