⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myreg.h

📁 电子监控的网络编程实例
💻 H
字号:
//MyReg.h Class for CReg;
/********************************************************************************
//解析INI文件
// Written by: YiJian Feng
// Email: netfyee@hotmail.com
// Last Edit: 2003-5-5 

---使用
首先必须设置
BOOL SetFileName(CString FileName);
BOOL SetSectionName(CString SectionName);

**********************************************************************************/

#if !defined(AFX_REG_H__EF36C30B_2B8A_45FA_ABEF_4DD9E21E40F9__INCLUDED_)
#define AFX_REG_H__EF36C30B_2B8A_45FA_ABEF_4DD9E21E40F9__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <windows.h>
#include <mbstring.h>


typedef enum tagMyRegistry_ERROR {
  REG_NO_ERROR = 0,             /* 00 */ //没有错误
	REG_BAD_CREATE,												//打开注册表错误			
	REG_NOT_INITIALIZE,										//没有初始化
	REG_BAD_CLOSE,												//关闭注册表错误	
	REG_INVALID_SUBKEY,										//无效的子键
	REG_FAIL_READATTRIBUTE,								//读取键值属性失败
	REG_FAIL_READKEYVALUE,								//读取键值失败
	REG_ERROR_KEYTYPE,										//错误的键类型
	REG_BAD_ALLOC,												//分配内存失败
	REG_NO_ENOUGH_BUFFER,									//给定的缓存太小
	REG_FAIL_WRITEKEYVALUE,               //写入键值失败 
	REG_FAIL_DELKEYVALUE,									//删除键值失败
	REG_FAIL_DELSUBKEY,										//删除子键失败
	RET_FAIL_ENUM_SUBKEY,									//列举子键失败
	REG_NO_MORE_ITEMS,										//列举子键结束
	REG_ERROR_UNKOWN = 255           /* FF */
} REG_ERROR;


class CReg  
{
public:
	CReg();	
	virtual ~CReg();

public:
	
	 //打开/建立注册表
	long CreateMyReg(LPCTSTR lpSubKey,	BOOL IsOnlyRead = TRUE);
	//关闭注册表
	long CloseMyReg();														   
	//设置根值
	void SetMyRegRootKey(HKEY lpRootKey = HKEY_LOCAL_MACHINE); 
	//设置子键字符串
	long SetMyRegSubKeyString(LPCTSTR lpSubKey);							 
	//读取键值属性
	long GetMyRegValueAttribute(LPCTSTR lpValueName, LPDWORD lpType, LPDWORD lpcbData); 
	long GetMyRegValueAttribute(LPCTSTR lpSubKeyName, LPCTSTR lpValueName, LPDWORD lpType, LPDWORD lpcbData);
	//读取/写入键值
	long GetMyRegValue(LPCTSTR  lpValueName,  LPBYTE	lpData);
	long GetMyRegValue(LPCTSTR	lpSubKeyName,	LPCTSTR	lpValueName, LPBYTE	lpData);
	long GetMyRegValue(LPCTSTR  lpValueName,  LPTSTR	lpData, LPCTSTR lpDefData = NULL);
	long SetMyRegValue(LPCTSTR	lpValueName,  LPCTSTR	lpData);
	long GetMyRegValue(LPCTSTR  lpSubKeyName, LPCTSTR	lpValueName, LPTSTR lpData);
	long GetMyRegValue(LPCTSTR  lpValueName,  LPDWORD	lpData, const DWORD	dwDefData = 0);
	long SetMyRegValue(LPCTSTR	lpValueName,  const DWORD	lData);
	long GetMyRegValue(LPCTSTR  lpSubKeyName, LPCTSTR	lpValueName, LPDWORD lpData);
	//删除键值
	long DelMyRegValue(LPCTSTR lpValueName);	
	long DelMyRegValue(LPCTSTR lpSubKeyName, LPCTSTR lpValueName);
	//删除子键
	long DelMyRegSubKey(LPCTSTR lpDelSubKeyName);
	long DelMyRegSubKey(LPCTSTR lpSubKeyName, LPCTSTR lpDelSubKeyName);
	//获取指定键的子键数和键值数
	long GetMyRegSubKeysCount(LPDWORD lpcbSubKeysCount, LPDWORD lpSubValue);
	long GetMyRegSubKeysCount(LPCTSTR lpSubKeyName, LPDWORD lpcbSubKeysCount, LPDWORD lpSubValue);
	//列举指定键的子键
	long EnumMyRegSubKeys(DWORD dwIndex, LPTSTR lpName);
	//列举制定键的键值项名称和其值
	long EnumMyRegSubKeyValues(DWORD dwIndex, LPTSTR lpName, LPTSTR lpValue);
	//显示错误消息描述
	LPCTSTR GetMyRegErrMsg(const long lErrorIndex) const;
private:
	//读取键值(扩展)
	long GetMyRegValueEx(LPCTSTR, const DWORD, LPBYTE);
	long GetMyRegValueEx(LPCTSTR, LPCTSTR, const DWORD, LPBYTE);
private:	
	HKEY m_hRegRootKey; //根键
	HKEY m_hRegKey;			//主要键

	LPTSTR m_strSubKey; //主要键字符串
	
	LPTSTR m_strErrorDec;


};

#endif // !defined(AFX_MYREGISTRY_H__EF36C30B_2B8A_45FA_ABEF_4DD9E21E40F9__INCLUDED_)

⌨️ 快捷键说明

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