base
This commit is contained in:
+100
@@ -0,0 +1,100 @@
|
||||
// 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;
|
||||
}
|
||||
Reference in New Issue
Block a user