static HRESULT WINAPI ACMStream_fnReadData(IAVIStream *iface, DWORD fcc, LPVOID lp, LPLONG lpread) { IAVIStreamImpl *This = (IAVIStreamImpl *)iface; TRACE("(%p,0x%08X,%p,%p)\n", iface, fcc, lp, lpread); assert(This->pStream != NULL); return IAVIStream_ReadData(This->pStream, fcc, lp, lpread); }
static HRESULT WINAPI IEditAVIStream_fnReadData(IAVIStream*iface,DWORD fcc, LPVOID lp,LONG *lpread) { IAVIEditStreamImpl *This = impl_from_IAVIStream( iface ); DWORD n; TRACE("(%p,0x%08X,%p,%p)\n",iface,fcc,lp,lpread); /* check parameters */ if (lp == NULL || lpread == NULL) return AVIERR_BADPARAM; /* simply ask every stream and return the first block found */ for (n = 0; n < This->nStreams; n++) { HRESULT hr = IAVIStream_ReadData(This->pStreams[n].pStream,fcc,lp,lpread); if (SUCCEEDED(hr)) return hr; } *lpread = 0; return AVIERR_NODATA; }