Andrew Eikum : urlmon: Allow NULL IBindStatusCallback in UrlOpenStream.
Alexandre Julliard
julliard at winehq.org
Wed Jun 22 11:04:41 CDT 2016
Module: wine
Branch: master
Commit: a4a8693e8922af2d8f4bdadc3e3cf4812263d645
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a4a8693e8922af2d8f4bdadc3e3cf4812263d645
Author: Andrew Eikum <aeikum at codeweavers.com>
Date: Tue Jun 21 14:13:09 2016 -0500
urlmon: Allow NULL IBindStatusCallback in UrlOpenStream.
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
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;
}
More information about the wine-cvs
mailing list