System.Win.ComServ.DllGetClassObject
Delphi
function DllGetClassObject(const CLSID, IID: TGUID; var Obj): HResult;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | System.Win.ComServ.pas | System.Win.ComServ | System.Win.ComServ |
説明
ActiveX オブジェクトがインプロセス ActiveX サーバー(DLL)にある場合に,ActiveX オブジェクトのクラスファクトリを取得します。
DllGetClassObject を直接呼び出さないでください。DllGetClassObject は,すべての ActiveX サーバー DLL によってエクスポートされ,オペレーティングシステムによって内部的に呼び出されます。ユーザーが ActiveX オブジェクトのクラスファクトリを取得するために CoGetClassObject(または CoGetClassObject を内部的に呼び出す CoCreateInstance)を呼び出すと,OLE エンジンは ActiveX サーバー DLL をメモリにロードし,その DllGetClassObject 関数を呼び出します。
次に DllGetClassObject のパラメータを示します。
CLSID は,クラスファクトリによって作成される ActiveX オブジェクトのクラス識別子。
IID は,呼び出し側が CLSID によって参照されるオブジェクトのインスタンスを作成するためにクラスファクトリオブジェクトと情報をやり取りするインターフェースのインターフェース識別子。ほとんどの場合,このパラメータには IID_IClassFactory または IID_IClassFactory2 が入る。
Obj は,この関数が成功した結果としてのクラスファクトリインターフェースを指すポインタを保持する。エラーが発生した場合,Obj は nil に設定される。
次に DllGetClassObject の戻り値を示します。
値 | 意味 |
---|---|
S_OK |
オブジェクトの取得に成功した。 |
E_NOINTERFACE |
Obj で参照されるオブジェクトが IID パラメータに渡されたインターフェースをサポートしていない。 |
CLASS_E_CLASSNOTAVAILABLE |
DLL が CLSID パラメータで参照されるクラス型をサポートしていない。 |
メモ: DllGetClassObject は,ComServ ユニットにある 4 種類の関数の 1 つで,Windows がサーバーリソースを適切に管理できるように各インプロセスサーバーでエクスポートする必要のある関数です。その他の関数は,DllCanUnloadNow,DllRegisterServer,および DllUnregisterServer です。