Jacek Caban : urlmon: Use GetBinfInfoEx in GetBindInfo implementation if possible.

Alexandre Julliard julliard at winehq.org
Fri Jul 3 09:31:07 CDT 2009


Module: wine
Branch: master
Commit: b6259956c18ca00eb80362c6781b9e6399f946b4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b6259956c18ca00eb80362c6781b9e6399f946b4

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jul  2 23:21:37 2009 +0200

urlmon: Use GetBinfInfoEx in GetBindInfo implementation if possible.

---

 dlls/urlmon/bindctx.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/dlls/urlmon/bindctx.c b/dlls/urlmon/bindctx.c
index fe80456..1a89482 100644
--- a/dlls/urlmon/bindctx.c
+++ b/dlls/urlmon/bindctx.c
@@ -178,10 +178,22 @@ static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface,
         DWORD *grfBINDF, BINDINFO *pbindinfo)
 {
     BindStatusCallback *This = STATUSCLB_THIS(iface);
+    IBindStatusCallbackEx *bscex;
+    HRESULT hres;
 
     TRACE("(%p)->(%p %p)\n", This, grfBINDF, pbindinfo);
 
-    return IBindStatusCallback_GetBindInfo(This->callback, grfBINDF, pbindinfo);
+    hres = IBindStatusCallback_QueryInterface(This->callback, &IID_IBindStatusCallbackEx, (void**)&bscex);
+    if(SUCCEEDED(hres)) {
+        DWORD bindf2 = 0, reserv = 0;
+
+        hres = IBindStatusCallbackEx_GetBindInfoEx(bscex, grfBINDF, pbindinfo, &bindf2, &reserv);
+        IBindStatusCallbackEx_Release(bscex);
+    }else {
+        hres = IBindStatusCallback_GetBindInfo(This->callback, grfBINDF, pbindinfo);
+    }
+
+    return hres;
 }
 
 static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallback *iface,




More information about the wine-cvs mailing list