101 lines
2.1 KiB
Plaintext
101 lines
2.1 KiB
Plaintext
// RegUtil.cpp: implementation of the CRegUtil class.
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "RegUtil.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[]=__FILE__;
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
CRegUtil::CRegUtil()
|
|
{
|
|
m_hKey = NULL;
|
|
}
|
|
|
|
CRegUtil::~CRegUtil()
|
|
{
|
|
if (!m_hKey)
|
|
CloseKey();
|
|
}
|
|
|
|
BOOL CRegUtil::OpenKey(HKEY hKey, CString sKey)
|
|
{
|
|
LONG lRet = RegOpenKeyEx(hKey, TEXT(sKey), 0, KEY_ALL_ACCESS, &m_hKey);
|
|
if (lRet == ERROR_SUCCESS)
|
|
return TRUE;
|
|
else {
|
|
DWORD dwDisp;
|
|
|
|
lRet = RegCreateKeyEx(hKey, TEXT(sKey), 0, "REG_BINARY", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, 0, &m_hKey, &dwDisp);
|
|
if(lRet == ERROR_SUCCESS)
|
|
return TRUE;
|
|
else
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
void CRegUtil::CloseKey()
|
|
{
|
|
if (m_hKey)
|
|
RegCloseKey(m_hKey);
|
|
|
|
m_hKey = NULL;
|
|
}
|
|
|
|
BOOL CRegUtil::SetStrValue(CString sName, CString sValue)
|
|
{
|
|
TCHAR szValue[MAX_PATH] = {'\0'};
|
|
|
|
_tcscpy(szValue, sValue);
|
|
|
|
LONG lRet = RegSetValueEx(m_hKey, TEXT(sName), NULL, REG_SZ, (PBYTE)&szValue, (DWORD)strlen(szValue));
|
|
if (lRet == ERROR_SUCCESS)
|
|
return TRUE;
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
CString CRegUtil::GetStrValue(CString sName)
|
|
{
|
|
DWORD dwType = REG_SZ;
|
|
char szValue[MAX_PATH];
|
|
DWORD dwLength = sizeof(szValue);
|
|
|
|
LONG lRet = RegQueryValueEx(m_hKey, TEXT(sName), NULL, &dwType, (PBYTE)szValue, &dwLength);
|
|
if (lRet == ERROR_SUCCESS) {
|
|
szValue[dwLength] = NULL;
|
|
return CString(szValue);
|
|
}
|
|
else
|
|
return "";
|
|
}
|
|
|
|
BOOL CRegUtil::SetNumValue(CString sName, UINT nValue)
|
|
{
|
|
LONG lRet = RegSetValueEx(m_hKey, TEXT(sName), NULL, REG_DWORD, (PBYTE)&nValue, (DWORD)sizeof(nValue));
|
|
if (lRet == ERROR_SUCCESS)
|
|
return TRUE;
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
UINT CRegUtil::GetNumValue(CString sName)
|
|
{
|
|
DWORD dwType = REG_DWORD;
|
|
DWORD dwValue;
|
|
DWORD dwLength = sizeof(DWORD);
|
|
|
|
LONG lRet = RegQueryValueEx(m_hKey, TEXT(sName), NULL, &dwType, (PBYTE)&dwValue, &dwLength);
|
|
if (lRet == ERROR_SUCCESS)
|
|
return (UINT)dwValue;
|
|
else
|
|
return 0;
|
|
}
|