System.Win.ComObj.TComObjectFactory.RegisterClassObject

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

procedure RegisterClassObject;

C++

void __fastcall RegisterClassObject();

プロパティ

種類 可視性 ソース ユニット
procedure
function
public
System.Win.ComObj.pas
System.Win.ComObj.hpp
System.Win.ComObj TComObjectFactory

説明

ファクトリオブジェクトに関連付けられた COM クラスを登録します。

RegisterClassObject メソッドは,EXE クラスオブジェクトを OLE に登録するので,ほかのアプリケーションはそれに接続できます。EXE オブジェクトアプリケーションは起動するとすぐに RegisterClassObject を呼び出さなければなりません。また,これを使って内部オブジェクトを登録し,同じ EXE やその EXE が使用するほかのコード(DLL など)がそれを利用できるようにできます。

RegisterClassObject が成功しない場合,以下のエラーコードで EOleSysError が発生します。



意味

E_INVALIDARG

1 つまたは複数の引数が無効

E_OUTOFMEMORY

メモリが不十分

E_UNEXPECTED

予想外のエラーが発生した

CO_E_OBJISREG

クラスがクラスオブジェクトテーブルに登録済みだった



EXE オブジェクトアプリケーションだけが RegisterClassObject を呼び出します。オブジェクトハンドラや DLL オブジェクトアプリケーションはこの関数を呼び出しません。それらはかわりに,DllGetClassObject 関数を実現してエクスポートしなければなりません。

起動時に,複数使用 EXE アプリケーションはクラスオブジェクトを(IClassFactory インターフェースをそれに設定して)作成し,クラスオブジェクトを登録するために RegisterClassObject を呼び出さなければなりません。異なる複数のクラスをサポートするオブジェクトアプリケーション(複数種類の埋め込み可能オブジェクトなど)は,それぞれに対して異なるクラスオブジェクトを割り当てて登録する必要があります。

同じクラスオブジェクトを重複して登録しても,それぞれ独立しているのでエラーは発生しません。2 つめ以降の各登録では,ユニークなキーを生じさせます。

関連項目