Genau so.
Ich will nur noch ergänzen:
Um Supports nutzen zu können muss das Interface eine
Guid haben.
Und Supports liefert im letzten Parameter automatisch den Cast des übergebenen Objektes/Interfaces auf das im zweiten Parameter übergebene Interface zurück. Oder Nil wenn Supports nicht true ist.
Ich hatte mich damit (auch?) zunächst schwer getan, aber es ist eigentlich ganz simpel.