[PATCH 2/2] urlmon: Allow NULL IBindStatusCallback in UrlOpenStream
Andrew Eikum
aeikum at codeweavers.com
Tue Jun 21 14:13:09 CDT 2016
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---
dlls/urlmon/tests/stream.c | 3 +++
dlls/urlmon/umstream.c | 14 +++++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/dlls/urlmon/tests/stream.c b/dlls/urlmon/tests/stream.c
index 354d809..6717198 100644
--- a/dlls/urlmon/tests/stream.c
+++ b/dlls/urlmon/tests/stream.c
@@ -380,6 +380,9 @@ static void test_URLOpenStreamW(void)
CHECK_CALLED(OnProgress_ENDDOWNLOADDATA);
CHECK_CALLED(OnDataAvailable);
CHECK_CALLED(OnStopBinding);
+
+ hr = URLOpenStreamW(NULL, INDEX_HTML, 0, NULL);
+ ok(hr == S_OK, "URLOpenStreamW failed with error 0x%08x\n", hr);
}
START_TEST(stream)
diff --git a/dlls/urlmon/umstream.c b/dlls/urlmon/umstream.c
index 9c94658..01cc755 100644
--- a/dlls/urlmon/umstream.c
+++ b/dlls/urlmon/umstream.c
@@ -182,8 +182,20 @@ static const IBindStatusCallbackVtbl BlockingBindStatusCallbackVtbl =
static HRESULT WINAPI AsyncBindStatusCallback_GetBindInfo(IBindStatusCallback *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
{
ProxyBindStatusCallback *This = impl_from_IBindStatusCallback(iface);
- HRESULT hr = IBindStatusCallback_GetBindInfo(This->pBSC, grfBINDF, pbindinfo);
+ HRESULT hr = S_OK;
+
+ if(This->pBSC)
+ hr = IBindStatusCallback_GetBindInfo(This->pBSC, grfBINDF, pbindinfo);
+ else{
+ DWORD size = pbindinfo->cbSize;
+ memset(pbindinfo, 0, size);
+ pbindinfo->cbSize = size;
+
+ *grfBINDF = 0;
+ }
+
*grfBINDF |= BINDF_PULLDATA | BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE;
+
return hr;
}
--
2.9.0
More information about the wine-patches
mailing list