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 文件或数据库。 为此,请按照下列步骤进行操作:
创建一个类(例如
CMyStore
)并从CSettingsStore
派生。使用 DECLARE_DYNCREATE 和 IMPLEMENT_DYNCREATE 宏和自定义
CSettingsStore
类来启用动态创建。重写虚拟函数并在自定义类中实现
Read
和Write
函数。 实现任何其他功能来将数据读取和写入到所需位置。在应用程序中,调用
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 ® = 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
方法。