Sven Barth via fpc-pascal wrote:
The important difference in this regard between COM and CORBA interfaces is that for CORBA interfaces the "guid" is a ShortString, not a TGUID. Thus the compiler allows to convert a CORBA interface to a ShortString. For TObject.GetInterface this works, because it has a overload for ShortString. ;) (this is document here: https://www.freepascal.org/docs-html/current/ref/refse47.html#x100-1220007.6
Thanks, I hadn't seen that. Yes, this solves the problem. And this clarifies that the CORBA interface-identifying string doesn't need to be in GUID form, it can be something as simple as [ 'IMyInterface' ].
I will note that the interface-identifier comparison below (in procedure TestInterfaceParameter) doesn't work without the explicit typecast from interface-identifier to "shortstring". Apparently, that typecast is implicit when passing an interface-identifier as actual parameter to a "shortstring" formal parameter.
type InterfaceType = string[ 255]; procedure TestInterfaceParameter ( const theInterface : InterfaceType); begin if theInterface = InterfaceType( ITestInterface1) then writeln ( 'theInterface = ITestInterface1') end; begin TestInterfaceParameter ( ITestInterface1) end. Regards, Adriaan van Os _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal