После импорта в delphi файл com dll, в свою очередь, delphi сгенерировал файл lib_tlb.pas.
Проверка файла, который он показывает
Iinterface1 = interface(IDispatch)
function func: Integer; safecall;
procedure proc(param:Iinterface1);
end;
Cointerface1 = class
class function Create: Iinterface;
class function CreateRemote(const MachineName: string): Iinterface1;
end;
Tinterface1 = class(TOleServer)
function func: Integer;
procedure proc(param:Iinterface1);
end;
Теперь ясно, чтонет связи между Tinterface1 и Iinterface1.
Проблема возникает, когда вызывается proc с Tinterface1.это не скомпилирует Tinterface1 не наследует Iinterface1.
Итак, что предлагается сделать?изменить библиотеку, которая генерируется автоматически?или у вас есть лучшее представление о том, что делать, когда вы хотите передать Tinterface1 в proc.
Пример - это упрощение кода, в коде есть другой объект, который должен быть тем, который должен быть переданоднако proc знает, что proc знает только свой интерфейс, что является той же проблемой.
update: как кажется, руководство к файлу com dll говорит, что proc должен быть
procedure proc(param:^Tinterface1);
где интерфейс только с точки зрения delphi.