interface_cast (C++-RTL-Funktion)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Neue Typumwandlung


interface_cast ist eine in der Unit System definierte template-Funktion zur Abfrage von Interfaces. Sie ist mit dem Operator as in Delphi vergleichbar (mit dem Unterschied, dass interface_cast kein integrierter Operator sondern eine RTL-Funktion ist).

Sie sollten interface_cast mit Interfaces im COM-Stil verwenden, um eine korrekte Lebensdauerverwaltung für COM-Objekte sicherzustellen. Ein COM-Objekt hat einen zugeordneten Referenzzähler, mit dem die Anzahl der Interface-Instanzen verfolgt wird, die Aufrufe des Objekts ausführen. Beim Erstellen neuer Interface-Instanzen mit interface_cast werden die Referenzzähler entsprechend erhöht (_AddRef wird aufgerufen).

Das Ergebnis von interface_cast muss vor der Verwendung getestet werden. Ist das Ergebnis null, dann ist die Typumwandlung fehlgeschlagen (dies ähnelt dynamic_cast).

Siehe auch