HRESULT download_to_cache(IUri *uri, stop_cache_binding_proc_t proc, void *ctx, IBindStatusCallback *callback) { DownloadBSC *dwl_bsc; IBindCtx *bindctx; IMoniker *mon; IUnknown *unk; HRESULT hres; hres = DownloadBSC_Create(callback, NULL, &dwl_bsc); if(FAILED(hres)) return hres; dwl_bsc->onstop_proc = proc; dwl_bsc->ctx = ctx; dwl_bsc->bindf = BINDF_ASYNCHRONOUS; hres = CreateAsyncBindCtx(0, &dwl_bsc->IBindStatusCallback_iface, NULL, &bindctx); IBindStatusCallback_Release(&dwl_bsc->IBindStatusCallback_iface); if(FAILED(hres)) return hres; hres = CreateURLMonikerEx2(NULL, uri, &mon, 0); if(FAILED(hres)) { IBindCtx_Release(bindctx); return hres; } hres = IMoniker_BindToStorage(mon, bindctx, NULL, &IID_IUnknown, (void**)&unk); IMoniker_Release(mon); IBindCtx_Release(bindctx); if(SUCCEEDED(hres) && unk) IUnknown_Release(unk); return hres; }
HRESULT create_moniker_from_url(LPCWSTR url, IMoniker **mon) { HRESULT hr; IUri *uri; TRACE("%s\n", debugstr_w(url)); if (FAILED(hr = create_uri(url, &uri))) return hr; hr = CreateURLMonikerEx2(NULL, uri, mon, 0); IUri_Release(uri); return hr; }
static HRESULT WINAPI TargetFramePriv2_AggregatedNavigation2(ITargetFramePriv2 *iface, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *pibsc, LPCWSTR pszTargetName, IUri *pUri, LPCWSTR pszLocation) { HlinkFrame *This = impl_from_ITargetFramePriv2(iface); IMoniker *mon; HRESULT hres; TRACE("(%p)->(%x %p %p %s %p %s)\n", This, grfHLNF, pbc, pibsc, debugstr_w(pszTargetName), pUri, debugstr_w(pszLocation)); /* * NOTE: This is an undocumented function. It seems to be working the way it's implemented, * but I couldn't get its tests working. It's used by mshtml to load content in a new * instance of browser. */ hres = CreateURLMonikerEx2(NULL, pUri, &mon, 0); if(FAILED(hres)) return hres; hres = navigate_hlink(This->doc_host, mon, pbc, pibsc); IMoniker_Release(mon); return hres; }