Jacek Caban : mshtml: Store IBinding interface in BSCallback.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Sep 25 14:45:41 CDT 2006


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Sep 24 23:12:23 2006 +0200

mshtml: Store IBinding interface in BSCallback.

---

 dlls/mshtml/mshtml_private.h |    1 +
 dlls/mshtml/navigate.c       |   13 ++++++++++++-
 2 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 6cb6ce4..6af2a8c 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -174,6 +174,7 @@ struct BSCallback {
     nsISupports *nscontext;
 
     IMoniker *mon;
+    IBinding *binding;
 
     nsProtocolStream *nsstream;
 };
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index c588f05..15b38b6 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -248,6 +248,8 @@ static ULONG WINAPI BindStatusCallback_R
             nsIInputStream_Release(NSINSTREAM(This->nsstream));
         if(This->mon)
             IMoniker_Release(This->mon);
+        if(This->binding)
+            IBinding_Release(This->binding);
         mshtml_free(This->headers);
         mshtml_free(This);
     }
@@ -259,7 +261,12 @@ static HRESULT WINAPI BindStatusCallback
         DWORD dwReserved, IBinding *pbind)
 {
     BSCallback *This = STATUSCLB_THIS(iface);
-    FIXME("(%p)->(%ld %p)\n", This, dwReserved, pbind);
+
+    TRACE("(%p)->(%ld %p)\n", This, dwReserved, pbind);
+
+    IBinding_AddRef(pbind);
+    This->binding = pbind;
+
     return S_OK;
 }
 
@@ -309,6 +316,9 @@ static HRESULT WINAPI BindStatusCallback
 
     TRACE("(%p)->(%08lx %s)\n", This, hresult, debugstr_w(szError));
 
+    IBinding_Release(This->binding);
+    This->binding = NULL;
+
     if(This->nslistener) {
         nsIStreamListener_OnStopRequest(This->nslistener, (nsIRequest*)NSCHANNEL(This->nschannel),
                 This->nscontext, NS_OK);
@@ -593,6 +603,7 @@ BSCallback *create_bscallback(HTMLDocume
     ret->nslistener = NULL;
     ret->nscontext = NULL;
     ret->nsstream = NULL;
+    ret->binding = NULL;
 
     if(mon)
         IMoniker_AddRef(mon);




More information about the wine-cvs mailing list