CSettingsStoreSP 类

CSettingsStoreSP 类是可用于创建 CSettingsStore 类 实例的帮助器类。

语法

class CSettingsStoreSP

成员

公共构造函数

名称 描述
CSettingsStoreSP::CSettingsStoreSP 构造 CSettingsStoreSP 对象。

公共方法

名称 描述
CSettingsStoreSP::Create 创建派生自 CSettingsStore 的类的实例。
CSettingsStoreSP::SetRuntimeClass 设置运行时类。 Create 方法使用运行时类来确定要创建的对象类。

数据成员

名称 描述
m_dwUserData 存储在 CSettingsStoreSP 对象中的自定义用户数据。 在 CSettingsStoreSP 对象的构造函数中提供此数据。
m_pRegistry Create 方法创建的 CSettingsStore 派生对象。

备注

你可以使用 CSettingsStoreSP 类将所有 MFC 注册表操作重定向到其他位置,例如 XML 文件或数据库。 为此,请按照下列步骤进行操作:

  1. 创建一个类(例如 CMyStore)并从 CSettingsStore 派生。

  2. 使用 DECLARE_DYNCREATEIMPLEMENT_DYNCREATE 宏和自定义 CSettingsStore 类来启用动态创建。

  3. 重写虚拟函数并在自定义类中实现 ReadWrite 函数。 实现任何其他功能来将数据读取和写入到所需位置。

  4. 在应用程序中,调用 CSettingsStoreSP::SetRuntimeClass 并传入一个指向从类中获取的 CRuntimeClass 结构的指针。

无论框架一般何时访问注册表,现在都会动态实例化自定义类,并将其用于读取或写入数据。

CSettingsStoreSP::SetRuntimeClass 使用全局静态变量。 因此,一次只有一个自定义存储可用。

要求

标头:afxsettingsstore.h

CSettingsStoreSP::Create

创建一个派生自 CSettingsStore 类的对象的新实例。

CSettingsStore& CSettingsStoreSP Create(
    BOOL bAdmin,
    BOOL bReadOnly);

参数

bAdmin
[in] 一个布尔参数,确定是否在管理员模式下创建 CSettingsStore 对象。

bReadOnly
[in] 一个布尔参数,确定是否为只读访问创建 CSettingsStore 对象。

返回值

对新创建的 CSettingsStore 对象的引用。

备注

可以使用 CSettingsStoreSP::SetRuntimeClass 方法来确定 CSettingsStoreSP::Create 将创建什么类型的对象。 默认情况下,此方法创建一个 CSettingsStore 对象。

如果在管理员模式下创建 CSettingsStore 对象,则所有注册表访问的默认位置是 HKEY_LOCAL_MACHINE。 否则,所有注册表访问的默认位置是 HKEY_CURRENT_USER。

如果 bAdmin 为 TRUE,则应用程序必须具有管理权限。 否则,当它尝试访问注册表时将失败。

示例

下面的示例演示如何使用 CSettingsStoreSP 类的 Create 方法。

CSettingsStoreSP regSP;
CSettingsStore &reg = regSP.Create(FALSE, TRUE);

CSettingsStoreSP::CSettingsStoreSP

构造 CSettingsStoreSP 类对象。

CSettingsStoreSP::CSettingsStoreSP(DWORD dwUserData = 0);

参数

dwUserData
[in] CSettingsStoreSP 对象存储的用户定义数据。

注解

对象 CSettingsStoreSP 将来自 dwUserData 的数据存储在受保护成员变量 m_dwUserData

CSettingsStoreSP::SetRuntimeClass

设置运行时类。 方法 CSettingsStoreSP::Create 使用运行时类来确定要创建的对象类型。

static BOOL __stdcall CSettingsStoreSP::SetRuntimeClass(CRuntimeClass* pRTI);

参数

pRTI
[in] 指向派生自 CSettingsStore 类的类的运行时类信息的指针。

返回值

如果成功,则为 TRUE;如果 pRTI 标识的类未派生自 CSettingsStore,则为 FALSE

备注

可以使用 CSettingsStoreSP 类CSettingsStore 派生类。 如果要创建派生自 SetRuntimeClass 的自定义类的对象,请使用 CSettingsStore 方法。

另请参阅


层次结构图
CSettingsStore 类