Криво, косо, но работает:
| Код | BOOL bIStreamToMemoryStream(IStream *pisStream, TMemoryStream **ppmsStream) { /*DEBUG*/// _m_imgImage /*DEBUG*/xASSERT_RET(NULL != pisStream, FALSE); /*DEBUG*/xASSERT_RET(NULL != ppmsStream, FALSE); /*DEBUG*/xASSERT_RET(NULL != *ppmsStream, FALSE);
HRESULT hRes = 0;
//------------------------------------- //устанока размера потока ppmsStream STATSTG stStat = {0}; ULONGLONG ulSize = 0;
hRes = pisStream->Stat(&stStat, 0); /*DEBUG*/xASSERT_RET(S_OK == hRes, FALSE); ulSize = stStat.cbSize.QuadPart; (*ppmsStream)->SetSize((int)ulSize); /*DEBUG*/// n/a //------------------------------------- //чтение в поток hRes = pisStream->Seek(LARGE_INTEGER(), STREAM_SEEK_SET, NULL); /*DEBUG*/xASSERT_RET(S_OK == hRes, FALSE); ULONG ulReaded = 0; hRes = pisStream->Read((*ppmsStream)->Memory, ulSize, &ulReaded); /*DEBUG*/xASSERT_RET(S_OK == hRes, FALSE); /*DEBUG*/xASSERT_RET(ulSize == ulReaded, FALSE);
return TRUE; }
|
Alexeis, спасибо |