Richtig, aber dann verwende doch das Interface einfach...
Delphi-Quellcode:
if Supports(FCLCPump300, IClassCLCPump300, ICLCPump300) then
begin
// hier soll eine Funktion von der erzeugten Klasse aufgerufen werden
Result := IClassCLCPump300(ICLCPump300).GetObject;
// Result := IClassCLCPump300(FCLCPump300).GetObject;
Wobei 'ICLCPump300' ein ganz schlechter Name für eine Variable ist, weil der Prefix 'I' für Interface-Typen per Konvention reserviert ist.