diff --git a/dlls/urlmon/umstream.c b/dlls/urlmon/umstream.c index 720c8ba1fb0..36909b6f712 100644 --- a/dlls/urlmon/umstream.c +++ b/dlls/urlmon/umstream.c @@ -225,7 +225,7 @@ static HRESULT WINAPI IStream_fnRead (IStream * iface, ULONG cb, ULONG* pcbRead) { - DWORD dwBytesRead; + ULONG dwBytesRead; IUMCacheStream *This = (IUMCacheStream *)iface; TRACE("(%p)->(%p,0x%08lx,%p)\n",This, pv, cb, pcbRead); @@ -233,7 +233,10 @@ static HRESULT WINAPI IStream_fnRead (IStream * iface, if ( !pv ) return STG_E_INVALIDPOINTER; - if ( ! ReadFile( This->handle, pv, cb, (pcbRead ? pcbRead : &dwBytesRead), NULL ) ) + if ( !pcbRead) + pcbRead = &dwBytesRead; + + if ( ! ReadFile( This->handle, pv, cb, (LPDWORD)pcbRead, NULL ) ) return S_FALSE; if (!*pcbRead)