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
から派生させます。カスタム
CSettingsStore
クラスでDECLARE_DYNCREATEマクロとIMPLEMENT_DYNCREATE マクロを使用して、動的な作成を有効にします。仮想関数をオーバーライドし、カスタム クラスに
Read
関数とWrite
関数を実装します。 目的の場所にデータを読み書きするためのその他の機能を実装します。アプリケーションで、
CSettingsStoreSP::SetRuntimeClass
を呼び出し、クラスから取得した CRuntimeClass 構造体 へのポインターを渡します。
フレームワークが通常レジストリにアクセスするたびに、カスタム クラスが動的にインスタンス化され、それを使用してデータの読み取りまたは書き込みが行われます。
CSettingsStoreSP::SetRuntimeClass
はグローバル静的変数を使用します。 そのため、一度に使用できるカスタム ストアは 1 つだけです。
要件
Header: 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
からクラスを派生させることができます。 CSettingsStore
から派生したカスタム クラスのオブジェクトを作成する場合は、SetRuntimeClass
メソッドを使用します。