Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, Jeka_B, Вы писали:
J_B>>Что еще нужно сделать, чтоб все заработало? Что я еще забыл?
AJD>Скорее всего IBindStatusCallback.
AJD>Не знаю как сейчас, но раньше флеш требовал чтобы callback вызывались.
AJD>Т.е. в BindToStorage
AJD>нужно вызвать что-то типа такого:
AJD>AJD>HRESULT CCacheMoniker::DoLoad(IN PDATALOADST pDS)
AJD>{
AJD> LARGE_INTEGER nPos;
AJD> ULARGE_INTEGER nNewPos;
AJD> nPos.QuadPart = nNewPos.QuadPart = 0;
AJD> _S(pDS->pStream->Seek(nPos, STREAM_SEEK_END, &nNewPos));
AJD> DWORD dwSize = (DWORD) nNewPos.QuadPart;
AJD> CBindingImplObj * pBinder;
AJD> _S(CBindingImplObj::CreateInstance(&pBinder));
AJD> CComPtr<IBinding> pIBinding;
AJD> _S(pBinder->QueryInterface(__uuidof(IBinding), (void **) &pIBinding));
AJD> _S(pDS->pOuterCallback->OnStartBinding(0, pIBinding));
AJD> _S(pDS->pOuterCallback->OnProgress(dwSize, dwSize,
AJD> BINDSTATUS_ENDDOWNLOADDATA, A2W("data fully loaded")));
AJD> nPos.QuadPart = 0;
pDS->>pStream->Seek(nPos, STREAM_SEEK_SET, &nNewPos);
AJD> STGMEDIUM stgmed;
AJD> stgmed.pstm = pDS->pStream;
AJD> stgmed.tymed = TYMED_ISTREAM;
AJD> stgmed.pUnkForRelease = NULL;
AJD> _S(pDS->pOuterCallback->OnDataAvailable(
AJD> BSCF_LASTDATANOTIFICATION | BSCF_FIRSTDATANOTIFICATION,
AJD> dwSize, CF_NULL, &stgmed));
AJD> nPos.QuadPart = 0;
pDS->>pStream->Seek(nPos, STREAM_SEEK_SET, &nNewPos);
AJD> _S(pDS->pOuterCallback->OnStopBinding(S_OK, NULL));
AJD> return S_OK;
AJD>}
pDS->>pOuterCallback - это IBindStatusCallback*
pDS->>pStream - это данные
AJD>
Огромное спасибо за помощь
Сделал как Вы сказали, все получилось

Чтение из стрима производится при вызове OnDataAvailable.