static HRESULT WINAPI PersistMoniker_Load(IPersistMoniker *iface, BOOL fFullyAvailable, IMoniker *pimkName, LPBC pibc, DWORD grfMode) { HTMLDocument *This = impl_from_IPersistMoniker(iface); IMoniker *mon; HRESULT hres; 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_" */ hres = IBindCtx_GetObjectParam(pibc, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM, &unk); if(SUCCEEDED(hres) && unk) { IOleClientSite *client = NULL; hres = IUnknown_QueryInterface(unk, &IID_IOleClientSite, (void**)&client); if(SUCCEEDED(hres)) { TRACE("Got client site %p\n", client); IOleObject_SetClientSite(&This->IOleObject_iface, client); IOleClientSite_Release(client); } IUnknown_Release(unk); } } if(This->doc_obj->is_mhtml) { IUnknown *unk; hres = MimeOleObjectFromMoniker(0, pimkName, pibc, &IID_IUnknown, (void**)&unk, &mon); if(FAILED(hres)) return hres; IUnknown_Release(unk); pibc = NULL; }else { IMoniker_AddRef(mon = pimkName); } prepare_for_binding(This, mon, FALSE); call_docview_84(This->doc_obj); hres = set_moniker(This->window, mon, NULL, pibc, NULL, TRUE); IMoniker_Release(mon); if(FAILED(hres)) return hres; return start_binding(This->window->pending_window, (BSCallback*)This->window->pending_window->bscallback, pibc); }
static HRESULT WINAPI PersistStreamInit_InitNew(IPersistStreamInit *iface) { HTMLDocument *This = impl_from_IPersistStreamInit(iface); IMoniker *mon; HRESULT hres; TRACE("(%p)\n", This); hres = CreateURLMoniker(NULL, about_blankW, &mon); if(FAILED(hres)) { WARN("CreateURLMoniker failed: %08x\n", hres); return hres; } prepare_for_binding(This, mon, FALSE); hres = set_moniker(This->window, mon, NULL, NULL, NULL, FALSE); IMoniker_Release(mon); if(FAILED(hres)) return hres; return channelbsc_load_stream(This->window->pending_window, NULL); }
static HRESULT WINAPI PersistStreamInit_InitNew(IPersistStreamInit *iface) { HTMLDocument *This = impl_from_IPersistStreamInit(iface); IMoniker *mon; HRESULT hres; static const WCHAR about_blankW[] = {'a','b','o','u','t',':','b','l','a','n','k',0}; TRACE("(%p)\n", This); hres = CreateURLMoniker(NULL, about_blankW, &mon); if(FAILED(hres)) { WARN("CreateURLMoniker failed: %08x\n", hres); return hres; } hres = set_moniker(This, mon, NULL, NULL, FALSE); IMoniker_Release(mon); if(FAILED(hres)) return hres; return channelbsc_load_stream(This->window->bscallback, NULL); }
static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, LPSTREAM pStm) { HTMLDocument *This = impl_from_IPersistStreamInit(iface); IMoniker *mon; HRESULT hres; static const WCHAR about_blankW[] = {'a','b','o','u','t',':','b','l','a','n','k',0}; TRACE("(%p)->(%p)\n", This, pStm); hres = CreateURLMoniker(NULL, about_blankW, &mon); if(FAILED(hres)) { WARN("CreateURLMoniker failed: %08x\n", hres); return hres; } prepare_for_binding(This, mon, FALSE); hres = set_moniker(This, mon, NULL, NULL, TRUE); IMoniker_Release(mon); if(FAILED(hres)) return hres; return channelbsc_load_stream(This->window->pending_window, pStm); }