System.Win.ComServ.DllGetClassObject

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function DllGetClassObject(const CLSID, IID: TGUID; var Obj): HResult;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public System.Win.ComServ.pas System.Win.ComServ System.Win.ComServ

Beschreibung

Ruft einen Klassengenerator für ein ActiveX-Objekt ab, das sich in einem In-Process-ActiveX-Server (DLL) befindet.

DllGetClassObject darf nicht direkt aufgerufen werden. DllGetClassObject wird von allen ActiveX-Server-DLLs exportiert und intern vom Betriebssystem aufgerufen. Wenn ein Benutzer CoGetClassObject aufruft (oder die Methode CoCreateInstance, die CoGetClassObject intern aufruft), um einen Klassengenerator für ein ActiveX-Objekt abzurufen, lädt die OLE-Engine die ActiveX-Server-DLL in den Speicher und ruft ihre Funktion DllGetClassObject auf.

Die Parameter für DllGetClassObject sind:

CLSID ist die Klassen-ID für das ActiveX-Objekt, das vom Klassengenerator erzeugt werden soll.

IID ist der Bezeichner der Schnittstelle, über die der Aufrufer mit dem Klassengenerator kommuniziert, um Instanzen des durch CLSID referenzierten Objekts zu erzeugen. Dieser Parameter ist fast immer IID_IClassFactory oder IID_IClassFactory2.

Obj ist ein Zeiger auf die angeforderte Klassengenerator-Schnittstelle (nach erfolgreicher Ausführung der Funktion). Falls ein Fehler auftritt, wird Obj auf nil gesetzt.

Die Rückgabewerte von DllGetClassObject lauten wie folgt:



Wert Bedeutung

S_OK

Das Objekt konnte abgerufen werden.

E_NOINTERFACE

Das durch Obj referenzierte Objekt unterstützt die im Parameter IID übergebene Schnittstelle nicht.

CLASS_E_CLASSNOTAVAILABLE

Die DLL unterstützt den im Parameter CLSID übergebenen Klassentyp nicht.



Anmerkung:  DllGetClassObject ist eine von vier Funktionen in der Unit ComServ, die jeder In-Process-ActiveX-Server exportieren muß, damit eine korrekte Verwaltung der Server-Ressourcen durch Windows möglich ist. Die drei anderen Funktionen sind DllCanUnloadNow, DllRegisterServer und DllUnregisterServer.

Siehe auch