Files
wnmj/Servers/服务器组件/服务核心/WHRegKey.h
2026-02-13 14:34:15 +08:00

104 lines
2.2 KiB
C++

#ifndef WH_REG_KEY_HEAD_FILE
#define WH_REG_KEY_HEAD_FILE
#pragma once
#include "ServiceCoreHead.h"
//////////////////////////////////////////////////////////////////////////////////
//键项组手
class SERVICE_CORE_CLASS CWHRegKey
{
//键项变量
protected:
HKEY m_hRegKey; //当前键项
//静态变量
protected:
static TCHAR m_szMainKeyName[64]; //主键名字
//函数定义
public:
//构造函数
CWHRegKey();
//析构函数
virtual ~CWHRegKey();
//配置函数
public:
//设置主键
static VOID SetMainKeyName(LPCTSTR pszMainKeyName);
//获取主键
static LPCTSTR GetMainKeyName() { return m_szMainKeyName; }
//绑定函数
public:
//解除绑定
HKEY Detach();
//绑定键项
HKEY Attach(HKEY hRegKey);
//管理函数
public:
//关闭键项
bool CloseRegKey();
//打开键项
bool OpenRegKey(LPCTSTR pszKeyName, bool bCreate);
//打开键项
bool OpenRegKey(LPCTSTR pszMainKeyName, LPCTSTR pszKeyName, bool bCreate);
//控制函数
public:
//打开键项
HKEY OpenItemKey(LPCTSTR pszSubKeyName);
//创建键项
HKEY CreateItemKey(LPCTSTR pszSubKeyName);
//枚举键项
bool EnumItemString(DWORD dwIndex, LPTSTR pszString, DWORD dwSize);
//写入函数
public:
//写入数值
bool WriteValue(LPCTSTR pszName, DWORD dwValue);
//写入字符
bool WriteString(LPCTSTR pszName, LPCTSTR pszString);
//写入字符
bool WriteEncryptString(LPCTSTR pszName, LPCTSTR pszString);
//写入数据
bool WriteBinary(LPCTSTR pszName, const VOID * pData, DWORD dwSize);
//读取函数
public:
//读取数值
DWORD GetValue(LPCTSTR pszName, DWORD dwDefValue);
//读取数据
DWORD GetBinary(LPCTSTR pszName, VOID * pData, DWORD dwBufferSize);
//读取字符
DWORD GetString(LPCTSTR pszName, LPTSTR pszString, UINT uMaxCount);
//读取字符
DWORD GetEncryptString(LPCTSTR pszName, LPTSTR pszString, UINT uMaxCount);
//删除函数
public:
//删除数值
bool DeleteValue(LPCTSTR pszName);
//删除键项
bool RecurseDeleteKey(LPCTSTR pszSubKeyName);
//辅助函数
public:
//键项重载
operator HKEY() { return m_hRegKey; }
//获取键项
HKEY GetRegKey() { return m_hRegKey; }
//内部函数
private:
//删除键项
LONG RecurseDeleteKey(HKEY hParentKey, LPCTSTR pszSubKeyName);
};
//////////////////////////////////////////////////////////////////////////////////
#endif