Jacek Caban : shdocvw: Added OnStopBinding implementation and use it in http_load_hack.

Alexandre Julliard julliard at winehq.org
Fri Jan 4 07:12:39 CST 2008


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jan  3 16:40:17 2008 +0100

shdocvw: Added OnStopBinding implementation and use it in http_load_hack.

---

 dlls/shdocvw/navigate.c |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/dlls/shdocvw/navigate.c b/dlls/shdocvw/navigate.c
index 90f8fe0..6f35a06 100644
--- a/dlls/shdocvw/navigate.c
+++ b/dlls/shdocvw/navigate.c
@@ -30,6 +30,8 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
 
+static const WCHAR emptyW[] = {0};
+
 typedef struct {
     const IBindStatusCallbackVtbl  *lpBindStatusCallbackVtbl;
     const IHttpNegotiateVtbl       *lpHttpNegotiateVtbl;
@@ -214,14 +216,16 @@ static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *ifac
 {
     BindStatusCallback *This = BINDSC_THIS(iface);
 
-    FIXME("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));
+    TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));
+
+    set_status_text(This, emptyW);
 
     if(This->doc_host) {
         IOleClientSite_Release(CLIENTSITE(This->doc_host));
         This->doc_host = NULL;
     }
 
-    return E_NOTIMPL;
+    return S_OK;
 }
 
 static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface,
@@ -512,8 +516,10 @@ static HRESULT http_load_hack(DocHost *This, IMoniker *mon, IBindStatusCallback
     }
 
     hres = IUnknown_QueryInterface(doc, &IID_IPersistMoniker, (void**)&persist);
-    if(FAILED(hres))
+    if(FAILED(hres)) {
+        IUnknown_Release(doc);
         return hres;
+    }
 
     hres = IPersistMoniker_Load(persist, FALSE, mon, bindctx, 0);
     IPersistMoniker_Release(persist);
@@ -525,14 +531,7 @@ static HRESULT http_load_hack(DocHost *This, IMoniker *mon, IBindStatusCallback
 
     IUnknown_Release(doc);
 
-    if(This->frame) {
-        static const WCHAR empty[] = {0};
-
-        IOleInPlaceFrame_SetStatusText(This->frame, empty); /* FIXME */
-    }
-
-    return hres;
-
+    return IBindStatusCallback_OnStopBinding(callback, hres, NULL);
 }
 
 static HRESULT bind_to_object(DocHost *This, IMoniker *mon, LPCWSTR url, IBindCtx *bindctx,
@@ -572,8 +571,6 @@ static HRESULT navigate_mon(DocHost *This, IMoniker *mon, PBYTE post_data, ULONG
 
     hres = bind_to_object(This, mon, This->url, bindctx, callback);
 
-    IBindStatusCallback_OnStopBinding(callback, hres, NULL);
-
     IBindStatusCallback_Release(callback);
     IBindCtx_Release(bindctx);
 




More information about the wine-cvs mailing list