In Windows (C) können Interfaces scheinbar auch ohne, aber Delphi geht davon aus, dass Interfaces immer mindestens IInterface implementieren. (es wird halt für die automatische Speicherverwaltung verwendet)
Genau, C++ macht keine konkrete Unterscheidung zwischen Klasse und Interface (wie es bei z.b. Delphi oder Java der Fall ist). C++ Interfaces sind einfach ganz normale Klassen, die ausschließlich virtuelle Methoden besitzt. Will man
COM-kompatibel sein, muss man aber zwingend
_AddRef
,
_Release
und
QueryInterface
bereitstellen.
Zu beachten ist, dass es unter C++ KEINE automatische Speicherverwaltung gibt. Sprich:
_AddRef
und
_Release
muss manuell aufgerufen werden (oder man verwendet den ComPtr). Aber das sollte bei dir keine Probleme machen, da die Implementierung ja in Delphi ist.