System.Win.ComServ.DllGetClassObject

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

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 がサーバーリソースを適切に管理できるように各インプロセスサーバーでエクスポートする必要のある関数です。その他の関数は,DllCanUnloadNowDllRegisterServer,および DllUnregisterServer です。

関連項目