From 3c1e2132e5e2efc1ba80fd6cfb6a2715d19c253c Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 30 May 2012 15:49:28 +0200 Subject: [PATCH] mshtml: Added support for BSCallback::QueryService(IID_IWindowForBindingUI). --- dlls/mshtml/navigate.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c index 36970701bd0..1979af32e7e 100644 --- a/dlls/mshtml/navigate.c +++ b/dlls/mshtml/navigate.c @@ -582,7 +582,11 @@ static HRESULT WINAPI BSCServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv) { BSCallback *This = impl_from_IServiceProvider(iface); + TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); + + if(This->doc && IsEqualGUID(guidService, &IID_IWindowForBindingUI)) + return IServiceProvider_QueryService(&This->doc->basedoc.IServiceProvider_iface, guidService, riid, ppv); return E_NOINTERFACE; } @@ -721,6 +725,8 @@ HRESULT start_binding(HTMLWindow *window, HTMLDocumentNode *doc, BSCallback *bsc TRACE("(%p %p %p %p)\n", window, doc, bscallback, bctx); bscallback->doc = doc; + if(!doc && window) + bscallback->doc = window->doc; /* NOTE: IE7 calls IsSystemMoniker here*/ @@ -992,8 +998,11 @@ static HRESULT on_start_nsrequest(nsChannelBSC *This) list_remove(&This->bsc.entry); list_init(&This->bsc.entry); update_window_doc(This->window); - if(This->window->doc != This->bsc.doc) + if(This->window->doc != This->bsc.doc) { + if(This->bsc.doc) + list_remove(&This->bsc.entry); This->bsc.doc = This->window->doc; + } list_add_head(&This->bsc.doc->bindings, &This->bsc.entry); if(This->window->readystate != READYSTATE_LOADING) set_ready_state(This->window, READYSTATE_LOADING); -- 2.11.4.GIT