Hi, Below is an example of two interfaces I declared. Trying to implement them on a TObject subclass, I got a compiler error that IUnkown was not implemented in my subclass. In all units I defined {$interfaces corba}
Eventually I found out that I had to remove the (IInterface) heritage from my interface definitions. Why is IInterface bound to IIUnknown (aka COM interfaces)? In Delphi 7+ and Kylix, IInterface was not a COM interface, so I would have expected that to be usable in CORBA interfaces in FPC too, but apparently not. So what's the point of having IInterface then if it is always bound to COM? In that case, simply defined your interfaces from IUnkown as per the COM spec. ------------------------------------------------------------------ unit layout_interface; {$mode objfpc}{$h+} {$interfaces corba} interface uses Classes, fpg_base; type ILayoutManager = interface; // forward declaration ILayoutManaged = interface(IInterface) ['{05680C87-FD6A-4E41-84CE-ADD66DB60F8E}'] function GetLayoutManager: ILayoutManager; procedure SetLayout(ALayout: ILayoutManager); property Layout: ILayoutManager read GetLayoutManager; end; ILayoutManager = interface(IInterface) ['{91FF6CE0-3B18-470A-BBCF-476064891EE4}'] procedure AddWidget(AWidget: TfpgWindowBase); procedure AddLayout(ALayout: ILayoutManager); end; implementation end. ------------------------------------------------------------------ -- Regards, - Graeme - _______________________________________________ fpGUI - a cross-platform Free Pascal GUI toolkit http://opensoft.homeip.net:8080/fpgui/ _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal