System.Rtti.TVirtualInterface.QueryInterface

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;

C++

HIDESBASE virtual HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
function public
System.Rtti.pas
System.Rtti.hpp
System.Rtti TVirtualInterface

Beschreibung

Erstellt eine Referenz auf das virtuelle Interface.

Eine TVirtualInterface-Instanz repräsentiert eine Laufzeit-Implementierung eines Delphi-Interface. Wenn Sie mit einem "virtuellen Interface" arbeiten möchten, sollten Sie eine bestimmte TVirtualInterface-Instanz zum Ermitteln einer Referenz auf das "virtuelle Interface" erstellen. Wandeln Sie dazu die TVirtualInterface-Instanz in das entsprechende Delphi-Interface oder verwenden Sie die Funktion QueryInterface.

Wenn die Operation erfolgreich war, ist der Rückgabewert (HRESULT) S_OK.

QueryInterface inkrementiert den der TVirtualInterface-Instanz zugeordneten Referenzzähler. (Wenn der Zählerwert 0 wird, wird die TVirtualInterface-Instanz automatisch freigegeben.) Sie sollten nie eine TVirtualInterface-Interface direkt freigeben.

Verwendungsbeispiel

Für Delphi:

if TVirtualInterfaceInstance.QueryInterface(ISpecificInterface, ISpecificInterfaceInstance) = S_OK then
// ...

Für C++:

if (virtualInterfaceInstance->QueryInterface(__uuidof(ISpecificInterface), &specificInterfaceInstance) == S_OK)
// ...

Siehe auch