interface_cast (C++-RTL-Funktion)
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).