myregkey.cpp

来自「VC.net 的一些有用的技巧」· C++ 代码 · 共 90 行

CPP
90
字号
#include "StdAfx.h"
#include "MyRegKey.h"

CMyRegKey::CMyRegKey(void)
{
	m_hKey = NULL;
}

CMyRegKey::~CMyRegKey(void)
{
	RegClose();
}

LONG CMyRegKey::RegOpen(HKEY hKeyRoot,LPCTSTR pszPath)
{
	DWORD dw;
	m_sPath = pszPath;
	return RegCreateKeyEx(hKeyRoot,pszPath,0L,NULL,REG_OPTION_VOLATILE,KEY_ALL_ACCESS,NULL,&m_hKey,&dw);
} 

void CMyRegKey::RegClose()
{
	if(m_hKey)
	{
		RegCloseKey (m_hKey);
		m_hKey = NULL;
	}
} 

LONG CMyRegKey::RegWrite(LPCTSTR pszKey,DWORD dwVal)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
	return RegSetValueEx(m_hKey,pszKey,0L,REG_DWORD,(CONST BYTE *)&dwVal,sizeof(DWORD));
} 

LONG CMyRegKey::RegWrite(LPCTSTR pszKey,LPCTSTR pszData)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
	ASSERT(pszData);
	ASSERT(AfxIsValidAddress(pszData,strlen(pszData),FALSE));
	return RegSetValueEx(m_hKey,pszKey,0L,REG_SZ,(CONST BYTE *)pszData,strlen (pszData)+1);
} 

LONG CMyRegKey::RegWrite(LPCTSTR pszKey,const BYTE *pData,DWORD dwLength)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
	ASSERT(AfxIsValidAddress (pData,dwLength,FALSE));
	ASSERT(pData&&dwLength>0);
	ASSERT(AfxIsValidAddress(pData,dwLength,FALSE));
    return RegSetValueEx(m_hKey,pszKey,0L,REG_BINARY,pData,dwLength);
}

LONG CMyRegKey::RegRead (LPCTSTR pszKey,DWORD& dwVal)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
    DWORD dwType;
	DWORD dwSize = sizeof (DWORD);
	DWORD dwDest;
	LONG LRet = RegQueryValueEx(m_hKey,(LPSTR)pszKey,NULL,&dwType,(BYTE *)&dwDest,&dwSize);
	if(LRet==ERROR_SUCCESS)
		dwVal = dwDest;
	return LRet;
} 

LONG CMyRegKey::RegRead (LPCTSTR pszKey,CString& sVal)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
    DWORD dwType;
	DWORD dwSize = 200;
	char string[200];
    LONG IReturn = RegQueryValueEx(m_hKey,(LPSTR)pszKey,NULL,&dwType,(BYTE *)string,&dwSize);
	if(IReturn==ERROR_SUCCESS)
		sVal = string;
	return IReturn;
} 

LONG CMyRegKey::RegRead (LPCTSTR pszKey,BYTE * pData,DWORD& dwLen)
{
	ASSERT(m_hKey);
	ASSERT(pszKey);
	DWORD dwType;
	return RegQueryValueEx(m_hKey,(LPSTR)pszKey,NULL,&dwType,pData,&dwLen);
} 
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?