Как IStream(картинка из COM объекта) прочитать в С# ?
От: DotInNet  
Дата: 08.09.05 14:02
Оценка:
Как преобразовать IStream(картинка из COM объекта) во что-нибудь читаемое на С#!!!

Есть COM-объект (написанный на VC++ 7.1) со следующей функцией, которая передаёт файл-картинку:

IStream* m_pStream;
STDMETHODIMP CTestIStream::GetFileThruIStream(IUnknown** pStream, LONG* size)
{
*pStream = m_pStream;
*size = m_size;
return S_OK;
}


В C# подключаю dll через AddReference
В object browser'е функция выглядит следующим образом:
CTestIStreamClass.GetFileThruIStream(ref object,ref int)
public virtual new void GetFileThruIStream ( System.Object pStream , System.Int32 size )

В коде создаю класс
cc = new CTestIStreamClass();

потом вызываю функцию :
Object tmp = new object();
int i_tmp = 0;
cc.GetFileThruIStream(ref tmp, ref i_tmp);

как мне дальше получить из tmp файл(*.jpg) ?
Re: Как IStream(картинка из COM объекта) прочитать в С# ?
От: Andrbig  
Дата: 08.09.05 15:03
Оценка:
Здравствуйте, DotInNet, Вы писали:

DIN>Как преобразовать IStream(картинка из COM объекта) во что-нибудь читаемое на С#!!!


Написать враппер для IStream на C#.

DIN>потом вызываю функцию :

DIN> Object tmp = new object();
DIN> int i_tmp = 0;
DIN> cc.GetFileThruIStream(ref tmp, ref i_tmp);

И тут tmp будет не object, а твой написанный IStream на C#. И будет не ref tmp, а out tmp. Читай статьи http://www.rsdn.ru/summary/609.xml.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.