Jacek Caban : mshtml: Don' t call start_binding if we use necko to load the page.

Alexandre Julliard julliard at wine.codeweavers.com
Mon May 14 10:52:41 CDT 2007


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sat May 12 16:13:16 2007 +0200

mshtml: Don't call start_binding if we use necko to load the page.

---

 dlls/mshtml/persist.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c
index 397a307..2cc80ec 100644
--- a/dlls/mshtml/persist.c
+++ b/dlls/mshtml/persist.c
@@ -113,7 +113,7 @@ static nsIInputStream *get_post_data_stream(IBindCtx *bctx)
     return ret;
 }
 
-static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc)
+static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc, BOOL *bind_complete)
 {
     BSCallback *bscallback;
     LPOLESTR url = NULL;
@@ -237,6 +237,9 @@ static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc)
 
             IBindStatusCallback_Release(STATUSCLB(bscallback));
             CoTaskMemFree(url);
+
+            if(bind_complete)
+                *bind_complete = TRUE;
             return S_OK;
         }else if(nsres != WINE_NS_LOAD_FROM_MONIKER) {
             WARN("LoadURI failed: %08x\n", nsres);
@@ -247,6 +250,8 @@ static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc)
     IBindStatusCallback_Release(STATUSCLB(bscallback));
     CoTaskMemFree(url);
 
+    if(bind_complete)
+        *bind_complete = FALSE;
     return S_OK;
 }
 
@@ -335,15 +340,19 @@ static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAva
         IMoniker *pimkName, LPBC pibc, DWORD grfMode)
 {
     HTMLDocument *This = PERSISTMON_THIS(iface);
+    BOOL bind_complete = FALSE;
     HRESULT hres;
 
     TRACE("(%p)->(%x %p %p %08x)\n", This, fFullyAvailable, pimkName, pibc, grfMode);
 
-    hres = set_moniker(This, pimkName, pibc);
+    hres = set_moniker(This, pimkName, pibc, &bind_complete);
     if(FAILED(hres))
         return hres;
 
-    return start_binding(This->bscallback);
+    if(!bind_complete)
+        return start_binding(This->bscallback);
+
+    return S_OK;
 }
 
 static HRESULT WINAPI PersistMoniker_Save(IPersistMoniker *iface, IMoniker *pimkName,
@@ -571,7 +580,7 @@ static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, LPSTREAM
         return hres;
     }
 
-    hres = set_moniker(This, mon, NULL);
+    hres = set_moniker(This, mon, NULL, NULL);
     IMoniker_Release(mon);
     if(FAILED(hres))
         return hres;




More information about the wine-cvs mailing list