Jacek Caban : mshtml: Added begining binding code in IPersistMoniker::Load.

Alexandre Julliard julliard at wine.codeweavers.com
Sat Jun 3 05:24:43 CDT 2006


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sat Jun  3 00:41:48 2006 +0200

mshtml: Added begining binding code in IPersistMoniker::Load.

---

 dlls/mshtml/navigate.c |   25 +++++++++++++++++++++++++
 dlls/mshtml/persist.c  |    9 ++++++++-
 2 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index dc70726..514f2bd 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -491,3 +491,28 @@ void hlink_frame_navigate(HTMLDocument *
     IMoniker_Release(mon);
 
 }
+
+HRESULT start_binding(BSCallback *bscallback, IMoniker *mon)
+{
+    IStream *str = NULL;
+    IBindCtx *bctx;
+    HRESULT hres;
+
+    hres = CreateAsyncBindCtx(0, STATUSCLB(bscallback), NULL, &bctx);
+    if(FAILED(hres)) {
+        WARN("CreateAsyncBindCtx failed: %08lx\n", hres);
+        return hres;
+    }
+
+    hres = IMoniker_BindToStorage(mon, bctx, NULL, &IID_IStream, (void**)&str);
+    IBindCtx_Release(bctx);
+    if(FAILED(hres)) {
+        WARN("BindToStorage failed: %08lx\n", hres);
+        return hres;
+    }
+
+    if(str)
+        IStream_Release(str);
+
+    return S_OK;
+}
diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c
index 55462ad..7127091 100644
--- a/dlls/mshtml/persist.c
+++ b/dlls/mshtml/persist.c
@@ -228,7 +228,12 @@ static HRESULT WINAPI PersistMoniker_Loa
         if(post_data_stream)
             nsIInputStream_Release(post_data_stream);
 
+        if(!bscallback->nschannel)
+            ERR("bscallback->nschannel == NULL\n");
+
         if(NS_SUCCEEDED(nsres)) {
+            /* FIXME: don't return here (URL Moniker needs to be good enough) */
+
             IBindStatusCallback_Release(STATUSCLB(bscallback));
             CoTaskMemFree(url);
             return S_OK;
@@ -244,10 +249,12 @@ static HRESULT WINAPI PersistMoniker_Loa
     if(pibc)
         FIXME("not supported pibc\n");
 
+    hres = start_binding(bscallback, pimkName);
+
     IBindStatusCallback_Release(STATUSCLB(bscallback));
     CoTaskMemFree(url);
 
-    return S_OK;
+    return hres;
 }
 
 static HRESULT WINAPI PersistMoniker_Save(IPersistMoniker *iface, IMoniker *pimkName,




More information about the wine-cvs mailing list