Module: wine Branch: refs/heads/master Commit: 27b5c54f56aa0c96be8a130ad97f2a871e41c32e URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=27b5c54f56aa0c96be8a130a... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Thu May 25 18:40:47 2006 +0200 urlmon: Better pending read handling. --- dlls/urlmon/binding.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/dlls/urlmon/binding.c b/dlls/urlmon/binding.c index 859057f..44d3e39 100644 --- a/dlls/urlmon/binding.c +++ b/dlls/urlmon/binding.c @@ -333,6 +333,7 @@ static HRESULT WINAPI ProtocolStream_Rea { ProtocolStream *This = STREAM_THIS(iface); DWORD read = 0, pread = 0; + HRESULT hres; TRACE("(%p)->(%p %ld %p)\n", This, pv, cb, pcbRead); @@ -354,9 +355,14 @@ static HRESULT WINAPI ProtocolStream_Rea return S_OK; } - IInternetProtocol_Read(This->protocol, (PBYTE)pv+read, cb-read, &pread); + hres = IInternetProtocol_Read(This->protocol, (PBYTE)pv+read, cb-read, &pread); *pcbRead = read + pread; + if(hres == E_PENDING) + return E_PENDING; + else if(FAILED(hres)) + FIXME("Read failed: %08lx\n", hres); + return read || pread ? S_OK : S_FALSE; }