War im Beispiel der falsche Overload der Funktion - der richtige enthält übrigens eine entsprechende Warnung:
Delphi-Quellcode:
function Supports(const Instance: TObject; const IID: TGUID): Boolean;
var
Temp: IInterface;
begin
// NOTE: Calling this overload on a ref-counted object that has REFCOUNT=0
// will result in it being freed upon exit from this routine.
Result := Supports(Instance, IID, Temp);
end;