Module: wine Branch: master Commit: 7f107fb8daafdddd308b4880d86824c49631ad28 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=7f107fb8daafdddd308b4880...
Author: Jacek Caban jacek@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);