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