Zitat von
himitsu:
... die Referenzzählung simd so oder so nicht.
Du musst deine Basisklasse von
TInterfacedObject ableiten.
Diese Klasse implementiert _AddRef, _Release und QueryInterface.
Diese Methoden sollen und dürfen dann nicht in deinem Sourcecode auftauchen.
Die Deklaration deines Interface sieht dann so aus:
Delphi-Quellcode:
IOperatorInterface = Interface(IUnknown) // von IUnkown erben
['{36BE8FFE-9DAE-456E-894F-8DBD1520549D}']
// Function QueryInterface(Const IID: TGUID; Out Obj): HResult; StdCall; // wird schon in IUnknown deklariert
// Function _AddRef: Integer; StdCall;
// Function _Release: Integer; StdCall;
Function CreateInstance: IOperatorInterface;
Function GetType: TOperatorClass;
Function GetObject: TOperatorObject;
Damit hast du die Referenzzählung komplett an die Klasse IInterfacedObject abgegeben.