regkey.cpp

来自「通信增值服务,上网接听电话」· C++ 代码 · 共 92 行

CPP
92
字号
#include "stdafx.h"
#include "regkey.h"

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

CMyRegKey::~CMyRegKey()
{
	Close();
}

LONG CMyRegKey::Open(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::Close()
{
	if(m_hKey)
	{
		RegCloseKey(m_hKey);
		m_hKey = NULL;
	}
}


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

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

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

LONG CMyRegKey::Read(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::Read(LPCTSTR pszKey,CString& sVal)
{
	ASSERT (m_hKey);
	ASSERT (pszKey);

	DWORD dwType;
	DWORD dwSize = 200;
	char string [200];
	LONG lRet= RegQueryValueEx(m_hKey,(LPSTR)pszKey,NULL,&dwType,(BYTE*)string,&dwSize);
	if(lRet == ERROR_SUCCESS)
		sVal = string;
	return lRet;
}

LONG CMyRegKey::Read(LPCTSTR pszKey,BYTE* pData,DWORD& dwLength)
{
	ASSERT (m_hKey);
	ASSERT (pszKey);

	DWORD dwType;
	return RegQueryValueEx(m_hKey,(LPSTR)pszKey,NULL,&dwType,(BYTE*)pData,&dwLength);
}
	

⌨️ 快捷键说明

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