System.Rtti.TVirtualInterface.QueryInterface
Delphi
function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
C++
HIDESBASE virtual HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj);
Inhaltsverzeichnis
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)
// ...