Сделал визуальную ActiveX форму (TActiveForm). Заказчик попросил предоставить еще и программный интерфейс к компоненте (ocx), а именно загрузка данных из потоков типа LoadFromStream(IStream), так как они хотят использовать ее на .NET формах, и хотят программировать ее.
Попробовал добавлять методы к интерфейсу с параметрами IStream (который берется из ActiveX.IStream). В .NET форме метод выглядит как LoadFromStream(Myactivexcomp.IStream), естественно не работает.
Пробовал по другому, - импортировал mscoree.tlb, там есть вроде как .net'овский IStream, добавил новый интерфейс к компоненте с нужными методами, но, как теперь загрузить данные из mscoree_TLB.IStream в TOleStream.Create(****)? опять не соответствие типов:
mscoree_TLB.IStream и ActiveX.IStream.
Решил написать обертку, (как на примере TOleStream), которая будет кушать нужный мне mscoree_TLB.IStream и застрял на вызове IStream.Read.
function TNewOleStream.Read(var Buffer; Count: Integer): Longint;
var pcbRead : LongWord;
begin
FStream.Read(Buffer, count, pcbRead);
Result := pcbRead;
end;
Объясните пожалуйста, почему ругается компилятор?
И есть ли вообще другие варианты передачи данных из .NET в COM?