Как преобразовать 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) ?
Здравствуйте, 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.