Оба интерфейса определены в shlobj для Free Pascal / Lazarus, как и в Delphi. Если символы меняли юниты в течение времени жизни Delphi, мы пытаемся поместить их в более новые юниты, но там большое отставание.
Все это должно быть в значительной степени совместимо с Delphi, возможно, будет проще, если вы объясните, что именно не работает, как ожидалось.
Добавлено после комментариев Арно:
Нет, это не так. Объекты реализуют интерфейсы в Pascal. Я не очень понимаю, почему это так важно. Конечно, это немного синтаксический сахар, но так как любой интерфейс в стиле Delphi реализует Iunknown, вы можете просто запросить интерфейс для другого интерфейса:
uses activex;
var x :IPersistfile;
y :IPersistStream;
begin
x.queryinterface(IID_IPersistStream,y);
end.