Leider geht das nicht so einfach und reibungslos wie bei C#
Interfaces unter Delphi müssen immer von
IUnknown
oder
IInterface
(was das Gleiche ist) abgeleitet werden.
Damit du die Methoden von
IUnknown
nicht selbst implementieren musst, kannst du von der Klasse
TInterfacedObject ableiten.
Wenn man einen Interfacezeiger hat ist es auch nur mit Klimmzügen möglich wieder an das eigentliche Klassenobjekt zu kommen.
Das bedeutet man kann ein Objekt, dass über ein Interface referenziert wird nicht einfach mit
Free
freigeben weil man über das Interface gar nicht an die Free-Methode herankommt.
Daraus folgt, dass man immer die Referenzzählung von IUnknown benutzen sollte (auch wenn man die Referenzzählung aushebeln kann und sie dabei aber weitere Schwierigkeiten einhandelt)