Am 21.03.2013 14:23, schrieb Kostas Michalopoulos:
Yes, that is what i mean with "topmost" type: if you look at the inheritance as a tree, TInterfacedObject is the topmost (or root, if you think of it as an upside-down tree) of the type hierarchy. In this code

  type
    IBlah = interface ... end;
    TBlah = class(TInterfacedObject, IBlah) ... end;

TBlah is an IBlah, so i'd expect it to behave like IBlah.

And it behaves like an IBlah, because you can assign a TBlah to every variable or parameter that expects a IBlah. The point however is that the compiler only inserts calls to AddRef and Release (which are provided by the base interface IUnknown/IInterface and of which every (COM) interface is derived) if the variable you work with is of an interface type.

Regards,
Sven

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to