次の方法で共有


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. カスタム CSettingsStore クラスでDECLARE_DYNCREATEマクロとIMPLEMENT_DYNCREATE マクロを使用して、動的な作成を有効にします。

  3. 仮想関数をオーバーライドし、カスタム クラスに Read 関数と Write 関数を実装します。 目的の場所にデータを読み書きするためのその他の機能を実装します。

  4. アプリケーションで、 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 &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からクラスを派生させることができます。 CSettingsStoreから派生したカスタム クラスのオブジェクトを作成する場合は、SetRuntimeClassメソッドを使用します。

関連項目

クラス
階層図
CSettingsStore クラス