From 2a092e212ba6ea715e5d68cc2c276575dc8fdb5e Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 3 Mar 2010 14:55:24 +0100 Subject: [PATCH] mshtml: Moved SZ_HTML_CLIENTSITE_OBJECTPARAM handling to IPersistMoniker::Load. --- dlls/mshtml/persist.c | 59 +++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/dlls/mshtml/persist.c b/dlls/mshtml/persist.c index 18013d319a9..714e95525c0 100644 --- a/dlls/mshtml/persist.c +++ b/dlls/mshtml/persist.c @@ -175,36 +175,6 @@ static HRESULT set_moniker(HTMLDocument *This, IMoniker *mon, IBindCtx *pibc, BO nsWineURI *nsuri; HRESULT hres; - if(pibc) { - IUnknown *unk = NULL; - - /* FIXME: - * Use params: - * "__PrecreatedObject" - * "BIND_CONTEXT_PARAM" - * "__HTMLLOADOPTIONS" - * "__DWNBINDINFO" - * "URL Context" - * "CBinding Context" - * "_ITransData_Object_" - * "_EnumFORMATETC_" - */ - - IBindCtx_GetObjectParam(pibc, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM, &unk); - if(unk) { - IOleClientSite *client = NULL; - - hres = IUnknown_QueryInterface(unk, &IID_IOleClientSite, (void**)&client); - if(SUCCEEDED(hres)) { - TRACE("Got client site %p\n", client); - IOleObject_SetClientSite(OLEOBJ(This), client); - IOleClientSite_Release(client); - } - - IUnknown_Release(unk); - } - } - set_ready_state(This->window, READYSTATE_LOADING); update_doc(This, UPDATE_TITLE); @@ -376,6 +346,35 @@ static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAva TRACE("(%p)->(%x %p %p %08x)\n", This, fFullyAvailable, pimkName, pibc, grfMode); + if(pibc) { + IUnknown *unk = NULL; + + /* FIXME: + * Use params: + * "__PrecreatedObject" + * "BIND_CONTEXT_PARAM" + * "__HTMLLOADOPTIONS" + * "__DWNBINDINFO" + * "URL Context" + * "_ITransData_Object_" + * "_EnumFORMATETC_" + */ + + IBindCtx_GetObjectParam(pibc, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM, &unk); + if(unk) { + IOleClientSite *client = NULL; + + hres = IUnknown_QueryInterface(unk, &IID_IOleClientSite, (void**)&client); + if(SUCCEEDED(hres)) { + TRACE("Got client site %p\n", client); + IOleObject_SetClientSite(OLEOBJ(This), client); + IOleClientSite_Release(client); + } + + IUnknown_Release(unk); + } + } + hres = set_moniker(This, pimkName, pibc, TRUE); if(FAILED(hres)) return hres;