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

Reply via email to