📄 myreg.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 + -