次の方法で共有


COleObjectFactory クラス

OLE クラスのファクトリを実装しています。このクラスによって、サーバー、オートメーション オブジェクト、ドキュメントなどの OLE オブジェクトを作成できます。

構文

class COleObjectFactory : public CCmdTarget

メンバー

パブリック コンストラクター

名前 説明
COleObjectFactory::COleObjectFactory COleObjectFactory オブジェクトを構築します。

パブリック メソッド

名前 説明
COleObjectFactory::GetClassID ファクトリが作成するオブジェクトの OLE クラス ID を返します。
COleObjectFactory::IsLicenseValid コントロールのライセンスが有効かどうかを判断します。
COleObjectFactory::IsRegistered オブジェクト ファクトリが OLE システム DLL に登録されているかどうかを示します。
COleObjectFactory::Register このオブジェクト ファクトリを OLE システム DLL に登録します。
COleObjectFactory::RegisterAll すべてのアプリケーションのオブジェクト ファクトリを OLE システム DLL に登録します。
COleObjectFactory::Revoke OLE システム DLL に対するこのオブジェクト ファクトリの登録を取り消します。
COleObjectFactory::RevokeAll OLE システム DLL に対するアプリケーションのオブジェクト ファクトリの登録を取り消します。
COleObjectFactory::UnregisterAll アプリケーションのすべてのオブジェクト ファクトリの登録を解除します。
COleObjectFactory::UpdateRegistry このオブジェクト ファクトリを OLE システム レジストリに登録します。
COleObjectFactory::UpdateRegistryAll すべてのアプリケーションのオブジェクト ファクトリを OLE システム レジストリに登録します。

保護メソッド

名前 説明
COleObjectFactory::GetLicenseKey コントロールの DLL に一意のキーを要求します。
COleObjectFactory::OnCreateObject このファクトリの型の新しいオブジェクトを作成するためにフレームワークによって呼び出されます。
COleObjectFactory::VerifyLicenseKey コントロールに埋め込まれたキーが、コンテナーに埋め込まれているキーと一致することを確認します。
COleObjectFactory::VerifyUserLicense デザイン時に使用するコントロールのライセンスが付与されていることを確認します。

解説

COleObjectFactory クラスには、次の関数を実行するためのメンバー関数があります。

  • オブジェクトの登録の管理。

  • OLE システム レジスタの更新と、オブジェクトが実行中であり、メッセージを受信する準備ができていることを OLE に通知するランタイム登録。

  • 設計時にライセンスを取得した開発者に制御の使用を制限し、実行時にライセンスを取得したアプリケーションに対してライセンスを適用します。

  • OLE システム レジストリにコントロール オブジェクト ファクトリを登録する。

オブジェクトの作成の詳細については、「データ オブジェクトとデータ ソース (OLE)」および「Data オブジェクトとデータ ソース: 作成と破棄」を参照してください。 登録の詳細については、 Registrationに関する記事を参照してください。

継承階層

CObject

CCmdTarget

COleObjectFactory

要件

ヘッダー : afxdisp.h

COleObjectFactory::COleObjectFactory

COleObjectFactory オブジェクトを構築し、未登録のオブジェクト ファクトリとして初期化し、ファクトリの一覧に追加します。

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    LPCTSTR lpszProgID);

COleObjectFactory(
    REFCLSID clsid,
    CRuntimeClass* pRuntimeClass,
    BOOL bMultiInstance,
    int nFlags,
    LPCTSTR lpszProgID);

パラメーター

clsid
このオブジェクト ファクトリが表す OLE クラス ID への参照。

pRuntimeClass
このファクトリで作成できる C++ オブジェクトのランタイム クラスへのポインター。

bMultiInstance
アプリケーションの 1 つのインスタンスが複数のインスタンス化をサポートできるかどうかを示します。 TRUE の場合、オブジェクトを作成する要求ごとに、アプリケーションの複数のインスタンスが起動されます。

nFlags
次のフラグの 1 つ以上が含まれています。

  • afxRegDefault スレッド モデルを ThreadingModel=Apartment に設定します。

  • afxRegInsertable OLE オブジェクトの Insert オブジェクト ダイアログ ボックスにコントロールを表示できるようにします。

  • afxRegApartmentThreading レジストリ内のスレッド モデルを ThreadingModel=Apartment に設定します。

  • afxRegFreeThreading レジストリ内のスレッド モデルを ThreadingModel=Free に設定します。

    2 つのフラグ afxRegApartmentThreadingafxRegFreeThreading を組み合わせて ThreadingModel=Both を設定できます。 スレッド モデルの登録の詳細については、Windows SDK の InprocServer32 を参照してください。

lpszProgID
言語プログラム識別子 ("Microsoft Excel" など) を含む文字列へのポインター。

解説

ただし、オブジェクトを使用するには、オブジェクトを登録する必要があります。

詳細については、Windows SDK CLSID キー を参照してください。

COleObjectFactory::GetClassID

このファクトリが表す OLE クラス ID への参照を返します。

REFCLSID GetClassID() const;

戻り値

このファクトリが表す OLE クラス ID への参照。

解説

詳細については、Windows SDK CLSID キー を参照してください。

COleObjectFactory::GetLicenseKey

コントロールの DLL から一意のライセンス キーを要求し、 pbstrKey が指す BSTR に格納します。

virtual BOOL GetLicenseKey(
    DWORD dwReserved,
    BSTR* pbstrKey);

パラメーター

dwReserved
将来の使用のために予約済み。

pbstrKey
ライセンス キーを格納する BSTR へのポインター。

戻り値

ライセンス キー文字列が NULL でない場合は 0 以外。それ以外の場合は 0。

解説

この関数の既定の実装では 0 が返され、BSTR には何も格納されません。 MFC ActiveX ControlWizard を使用してプロジェクトを作成する場合、ControlWizard はコントロールのライセンス キーを取得するオーバーライドを提供します。

COleObjectFactory::IsLicenseValid

コントロールのライセンスが有効かどうかを判断します。

BOOL IsLicenseValid();

戻り値

成功した場合は TRUE。それ以外の場合は false。

COleObjectFactory::IsRegistered

ファクトリが OLE システム DLL に登録されている場合は、0 以外の値を返します。

virtual BOOL IsRegistered() const;

戻り値

ファクトリが登録されている場合は 0 以外。それ以外の場合は 0。

COleObjectFactory::OnCreateObject

新しいオブジェクトを作成するためにフレームワークによって呼び出されます。

virtual CCmdTarget* OnCreateObject();

戻り値

作成されたオブジェクトへのポインター。 失敗すると、メモリ例外がスローされる可能性があります。

解説

コンストラクターに渡された CRuntimeClass 以外のオブジェクトを作成するには、この関数をオーバーライドします。

COleObjectFactory::Register

このオブジェクト ファクトリを OLE システム DLL に登録します。

virtual BOOL Register();

戻り値

ファクトリが正常に登録された場合は 0 以外。それ以外の場合は 0。

解説

この関数は、通常、アプリケーションの起動時に CWinApp::InitInstance によって呼び出されます。

COleObjectFactory::RegisterAll

すべてのアプリケーションのオブジェクト ファクトリを OLE システム DLL に登録します。

static BOOL PASCAL RegisterAll();

戻り値

ファクトリが正常に登録された場合は 0 以外。それ以外の場合は 0。

解説

この関数は、通常、アプリケーションの起動時に CWinApp::InitInstance によって呼び出されます。

COleObjectFactory::Revoke

OLE システム DLL に対するこのオブジェクト ファクトリの登録を取り消します。

void Revoke();

解説

フレームワークは、アプリケーションが終了する前に、この関数を自動的に呼び出します。 必要に応じて、 CWinApp::ExitInstance のオーバーライドから呼び出します。

COleObjectFactory::RevokeAll

OLE システム DLL に対するアプリケーションのオブジェクト ファクトリのすべての登録を取り消します。

static void PASCAL RevokeAll();

解説

フレームワークは、アプリケーションが終了する前に、この関数を自動的に呼び出します。 必要に応じて、 CWinApp::ExitInstance のオーバーライドから呼び出します。

COleObjectFactory::UnregisterAll

アプリケーションのすべてのオブジェクト ファクトリの登録を解除します。

static BOOL PASCAL UnregisterAll();

戻り値

成功した場合は TRUE、それ以外の場合は FALSE。

COleObjectFactory::UpdateRegistry

すべてのアプリケーションのオブジェクト ファクトリを OLE システム レジストリに登録します。

void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);

パラメーター

lpszProgID
人間が判読できるプログラム識別子 ("Excel.Document.5" など) を含む文字列へのポインター。

bRegister
コントロール クラスのオブジェクト ファクトリを登録するかどうかを決定します。

解説

この関数の 2 つの形式について簡単に説明します。

  • UpdateRegistry( lpszProgID ) このオブジェクト ファクトリを OLE システム レジストリに登録します。 この関数は、通常、アプリケーションの起動時に CWinApp::InitInstance によって呼び出されます。

  • UpdateRegistry( bRegister ) この形式の関数はオーバーライドできます。 bRegister が TRUE の場合、この関数はコントロール クラスをシステム レジストリに登録します。 それ以外の場合は、クラスの登録を解除します。

    MFC ActiveX ControlWizard を使用してプロジェクトを作成する場合、ControlWizard は、この純粋な仮想関数のオーバーライドを提供します。

COleObjectFactory::UpdateRegistryAll

すべてのアプリケーションのオブジェクト ファクトリを OLE システム レジストリに登録します。

static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);

パラメーター

bRegister
コントロール クラスのオブジェクト ファクトリを登録するかどうかを決定します。

戻り値

ファクトリが正常に更新された場合は 0 以外。それ以外の場合は 0。

解説

この関数は、通常、アプリケーションの起動時に CWinApp::InitInstance によって呼び出されます。

COleObjectFactory::VerifyLicenseKey

OLE コントロールを使用するコンテナーのライセンスが付与されていることを確認します。

virtual BOOL VerifyLicenseKey(BSTR bstrKey);

パラメーター

bstrKey
コンテナーのバージョンのライセンス文字列を格納する BSTR。

戻り値

ランタイム ライセンスが有効な場合は 0 以外。それ以外の場合は 0。

解説

既定のバージョンでは、 GetLicenseKey を呼び出してコントロールのライセンス文字列のコピーを取得し、 bstrKey 内の文字列と比較します。 2 つの文字列が一致する場合、関数は 0 以外の値を返します。それ以外の場合は 0 を返します。

この関数をオーバーライドして、ライセンスのカスタマイズされた検証を提供できます。

関数 VerifyUserLicense は、デザイン時ライセンスを検証します。

COleObjectFactory::VerifyUserLicense

OLE コントロールのデザイン時ライセンスを検証します。

virtual BOOL VerifyUserLicense();

戻り値

デザイン時ライセンスが有効な場合は 0 以外。それ以外の場合は 0。

関連項目

CCmdTarget クラス
階層図
COleTemplateServer クラス