windows-nt/Source/XPSP1/NT/printscan/wia/test/devctrl/cregistry.h
2020-09-26 16:20:57 +08:00

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