[fpc-pascal] problems with CORBA interfaces having no base type
    Sven Barth 
    pascaldragon at googlemail.com
       
    Tue Sep 20 09:31:10 CEST 2011
    
    
  
Am 20.09.2011 08:40, schrieb Graeme Geldenhuys:
>
>    IObserver = interface
>    ['{7504BB57-65D8-4D5D-86F1-EC8FFED8ED5E}']
>      procedure Update(const Subject: IInterface);
>    end;
>
>
> How do I translate this to CORBA-style interfaces. CORBA interfaces
> don't have a base type like all COM interfaces have (eg: IUnknown) or
> objects have (eg: TObject).
>
> Any ideas on how I should translate the above code? Must I use the
> Pointer type again?  That just looks ugly, and gives no hint to the
> developer that Update() can take any interface type.
I personally would declare my own basic interface class and derive all 
other interfaces from that... This of cours only works if anyone adheres 
/ can adhere to that rule.
> Why couldn't CORBA interfaces also descend from IInterface, but in the
> case of CORBA style interfaces that doesn't mean it's a IUnknown
> descendant. That way we will have a generic interface type to use in
> such generic code situations.
Because IInterface is designated as a COM-interface and you can't 
descend a CORBA-interface from a COM-interface or vice-versa. Also it's 
not possible to declare IInterface as a CORBA-interface, because another 
unit might use COM-interfaces and then the COM-style IInterface is needed.
Regards,
Sven
    
    
More information about the fpc-pascal
mailing list