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に関する記事を参照してください。
継承階層
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 つのフラグ
afxRegApartmentThreading
とafxRegFreeThreading
を組み合わせて 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。