On Thu, Mar 7, 2013 at 9:27 AM, José Mejuto <joshy...@gmail.com> wrote: > > Hello, > > AFAIK you are casting a IUnknown to iintf instead requesting the iintf > interface. I think the right procedure should be: > > v1 := vintf[0] as iintf;
Hello, thanks for your reply. You are right, changing to a safe typecast, don't know exactly why, works flawlessly. Anyway the following code reproduce the exact problem I have here. The 'sucess!' message isn't called. Using 2.6.2 and 2.7.1 (2013/03/03) Joao Morais ============= program project1; {$mode objfpc}{$H+} uses heaptrc, sysutils, Classes; var vintfl: TInterfaceList; procedure addintf(const aintf: IUnknown); begin if vintfl.IndexOf(aintf) = -1 then vintfl.Add(aintf); end; begin vintfl := TInterfaceList.Create; try writeln('starting...'); addintf(TInterfacedObject.Create); writeln('success!'); finally FreeAndNil(vintfl); end; end. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal