COM IStream из System.IO.Stream
От: OlegV Украина  
Дата: 19.03.03 12:54
Оценка:
У меня есть win32 Dll модули с одинаковыми экспортируемыми функциями Decode и Encode, в качестве параметра в них передается указатель на на COM IStream интерфейс:
long Decode(long data, IStream* pStream);  // читает из потока данные
long Encode(long data, IStream* pStream); // записывает в поток данные

Мне необходимо написать .NET Managed интерфейс и от этого интерфейса пронаследовать Managed классы, которые будут вызывать функции одного из этих Dll модулей.
__gc __interface IFC 
{ 
    long Decode(Stream s);
    long Encode(Stream s);
};

__gc class В : IFC
{
public:
    long Decode(Stream s);
    long Encode(Stream s);
protected:
    long data;
};

Основная проблема — маршалинг System.IO.Stream класса в COM IStream.
В MSDN-е я нарыл только Marchal.GetComInterfaceForObject метод, и UCOMIStream класс, причем очень скудно описано, нет примеров.
В MarshalAsAttribute также ничего про потоки не нашел (
Может у кого-то есть положительный опыт маршалинга System.IO.Stream -> COM IStream ?

Переделывать или обрамлять Dll-ки в COM классы я не хочу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.