Sven Barth via fpc-pascal wrote:
The idea itself is valid, cause "(IMyInterfaceVar as TObject) as IMyInterface = IMyInterfaceVar" is true if and only if IMyInterface is a COM interface. If IMyInterface really is a CORBA interface as Dennis wrote then the compiler should already have complained at the "aObj := aInt as TObject" line as this type of conversion is*not* supported by CORBA interfaces (cause they don't provide QueryInterface() which is needed for this). At least for me the compiler*did* complain (both 3.0.2 and 3.1.1) when I tested this. So the question is: is IMyInterface indeed a CORBA interface? If so then why does the compiler not complain? If not then why doesn't it work? For both cases a full example would be needed to investigate this. Regards, Sven
Sorry, I got it wrong. The interface was in fact COM style instead of CORBA. In case of COM interface, why var aInt : IMyInterface; aObj : TObject; begin .... .... ... aInt := MyList.Items[0]; aObj := aInt as TObject; why sometimes (not always) aInt <> (aObj as IMyInterface ) ? Dennis _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal