> IMO borland screwed up here when they introduced IInterface = > IUnknown. No they didn't.
> It was IMo cleaner (and you can mix interface types) There are no different "types" of interfaces in Delphi/Kylix. Even if there were (like there are in FPC) you can never ever mix them. > when they declared it like: > > type > IInterface = interface > end; > > IUnknown = interface(IInterface) > _addref... > _release.... > Query.... > end; Lets assume we had that definition. Now look at this code: Var Intf : Iinterface; Unk : Iunknown; Begin Unk := //... Get some Iunknown from somewhere Intf := Unk; //would be valid as Iunknown derives from Iinterface //but as Intf doesn't have an AddRef it can't be called. Unk := nil; //Unk has _release which is called and frees the object behind the interface) //Intf now points to a freed object End; Beside that, that's the point of such a castrated Iinterface? What can you do with it? No QueryInterface, so you can't get from there to anything else. The as and is operators depend on either methods of Tobject (which can't be reached) or information which is stored at negative offset in the VMT (which isn't present for an interface VMT) so they can't be used either. Cheers, Thorsten _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel