ReactOS 0.4.15-dev-7842-g558ab78
navigate.c File Reference
#include "ieframe.h"
#include "exdispid.h"
#include "shellapi.h"
#include "winreg.h"
#include "shlwapi.h"
#include "wininet.h"
#include "mshtml.h"
#include "perhist.h"
#include "resource.h"
#include "wine/debug.h"
Include dependency graph for navigate.c:

Go to the source code of this file.

Classes

struct  BindStatusCallback
 
struct  task_doc_navigate_t
 
struct  task_navigate_bsc_t
 

Macros

#define NONAMELESSUNION
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (ieframe)
 
static void dump_BINDINFO (BINDINFO *bi)
 
static void set_status_text (BindStatusCallback *This, ULONG statuscode, LPCWSTR str)
 
HRESULT set_dochost_url (DocHost *This, const WCHAR *url)
 
void notify_download_state (DocHost *dochost, BOOL is_downloading)
 
static BindStatusCallbackimpl_from_IBindStatusCallback (IBindStatusCallback *iface)
 
static HRESULT WINAPI BindStatusCallback_QueryInterface (IBindStatusCallback *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI BindStatusCallback_AddRef (IBindStatusCallback *iface)
 
static ULONG WINAPI BindStatusCallback_Release (IBindStatusCallback *iface)
 
static HRESULT WINAPI BindStatusCallback_OnStartBinding (IBindStatusCallback *iface, DWORD dwReserved, IBinding *pbind)
 
static HRESULT WINAPI BindStatusCallback_GetPriority (IBindStatusCallback *iface, LONG *pnPriority)
 
static HRESULT WINAPI BindStatusCallback_OnLowResource (IBindStatusCallback *iface, DWORD reserved)
 
static DWORD get_http_status_code (IBinding *binding)
 
static HRESULT WINAPI BindStatusCallback_OnProgress (IBindStatusCallback *iface, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
 
void handle_navigation_error (DocHost *doc_host, HRESULT hres, BSTR url, IHTMLWindow2 *win2)
 
static HRESULT WINAPI BindStatusCallback_OnStopBinding (IBindStatusCallback *iface, HRESULT hresult, LPCWSTR szError)
 
static HRESULT WINAPI BindStatusCallback_GetBindInfo (IBindStatusCallback *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
 
static HRESULT WINAPI BindStatusCallback_OnDataAvailable (IBindStatusCallback *iface, DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
 
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable (IBindStatusCallback *iface, REFIID riid, IUnknown *punk)
 
static BindStatusCallbackimpl_from_IHttpNegotiate (IHttpNegotiate *iface)
 
static HRESULT WINAPI HttpNegotiate_QueryInterface (IHttpNegotiate *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI HttpNegotiate_AddRef (IHttpNegotiate *iface)
 
static ULONG WINAPI HttpNegotiate_Release (IHttpNegotiate *iface)
 
static HRESULT WINAPI HttpNegotiate_BeginningTransaction (IHttpNegotiate *iface, LPCWSTR szURL, LPCWSTR szHeaders, DWORD dwReserved, LPWSTR *pszAdditionalHeaders)
 
static HRESULT WINAPI HttpNegotiate_OnResponse (IHttpNegotiate *iface, DWORD dwResponseCode, LPCWSTR szResponseHeaders, LPCWSTR szRequestHeaders, LPWSTR *pszAdditionalRequestHeaders)
 
static BindStatusCallbackimpl_from_IHttpSecurity (IHttpSecurity *iface)
 
static HRESULT WINAPI HttpSecurity_QueryInterface (IHttpSecurity *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI HttpSecurity_AddRef (IHttpSecurity *iface)
 
static ULONG WINAPI HttpSecurity_Release (IHttpSecurity *iface)
 
static HRESULT WINAPI HttpSecurity_GetWindow (IHttpSecurity *iface, REFGUID rguidReason, HWND *phwnd)
 
static HRESULT WINAPI HttpSecurity_OnSecurityProblem (IHttpSecurity *iface, DWORD dwProblem)
 
static BindStatusCallbackcreate_callback (DocHost *doc_host, LPCWSTR url, PBYTE post_data, ULONG post_data_len, LPCWSTR headers)
 
static void on_before_navigate2 (DocHost *This, LPCWSTR url, SAFEARRAY *post_data, LPWSTR headers, VARIANT_BOOL *cancel)
 
static BOOL try_application_url (LPCWSTR url)
 
static HRESULT create_moniker (LPCWSTR url, IMoniker **mon)
 
static HRESULT bind_to_object (DocHost *This, IMoniker *mon, LPCWSTR url, IBindCtx *bindctx, IBindStatusCallback *callback)
 
static void html_window_navigate (DocHost *This, IHTMLPrivateWindow *window, BSTR url, BSTR headers, SAFEARRAY *post_data)
 
static void doc_navigate_task_destr (task_header_t *t)
 
static void doc_navigate_proc (DocHost *This, task_header_t *t)
 
static HRESULT async_doc_navigate (DocHost *This, LPCWSTR url, LPCWSTR headers, PBYTE post_data, ULONG post_data_size, BOOL async_notif)
 
static HRESULT navigate_bsc (DocHost *This, BindStatusCallback *bsc, IMoniker *mon)
 
static void navigate_bsc_task_destr (task_header_t *t)
 
static void navigate_bsc_proc (DocHost *This, task_header_t *t)
 
HRESULT navigate_url (DocHost *This, LPCWSTR url, const VARIANT *Flags, const VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers)
 
static HRESULT navigate_hlink (DocHost *This, IMoniker *mon, IBindCtx *bindctx, IBindStatusCallback *callback)
 
HRESULT go_home (DocHost *This)
 
static HRESULT navigate_history (DocHost *This, unsigned travellog_pos)
 
HRESULT go_back (DocHost *This)
 
HRESULT go_forward (DocHost *This)
 
HRESULT get_location_url (DocHost *This, BSTR *ret)
 
static HlinkFrameimpl_from_IHlinkFrame (IHlinkFrame *iface)
 
static HRESULT WINAPI HlinkFrame_QueryInterface (IHlinkFrame *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI HlinkFrame_AddRef (IHlinkFrame *iface)
 
static ULONG WINAPI HlinkFrame_Release (IHlinkFrame *iface)
 
static HRESULT WINAPI HlinkFrame_SetBrowseContext (IHlinkFrame *iface, IHlinkBrowseContext *pihlbc)
 
static HRESULT WINAPI HlinkFrame_GetBrowseContext (IHlinkFrame *iface, IHlinkBrowseContext **ppihlbc)
 
static HRESULT WINAPI HlinkFrame_Navigate (IHlinkFrame *iface, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *pibsc, IHlink *pihlNavigate)
 
static HRESULT WINAPI HlinkFrame_OnNavigate (IHlinkFrame *iface, DWORD grfHLNF, IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, DWORD dwreserved)
 
static HRESULT WINAPI HlinkFrame_UpdateHlink (IHlinkFrame *iface, ULONG uHLID, IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName)
 
static HlinkFrameimpl_from_ITargetFrame (ITargetFrame *iface)
 
static HRESULT WINAPI TargetFrame_QueryInterface (ITargetFrame *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI TargetFrame_AddRef (ITargetFrame *iface)
 
static ULONG WINAPI TargetFrame_Release (ITargetFrame *iface)
 
static HRESULT WINAPI TargetFrame_SetFrameName (ITargetFrame *iface, LPCWSTR pszFrameName)
 
static HRESULT WINAPI TargetFrame_GetFrameName (ITargetFrame *iface, LPWSTR *ppszFrameName)
 
static HRESULT WINAPI TargetFrame_GetParentFrame (ITargetFrame *iface, IUnknown **ppunkParent)
 
static HRESULT WINAPI TargetFrame_FindFrame (ITargetFrame *iface, LPCWSTR pszTargetName, IUnknown *ppunkContextFrame, DWORD dwFlags, IUnknown **ppunkTargetFrame)
 
static HRESULT WINAPI TargetFrame_SetFrameSrc (ITargetFrame *iface, LPCWSTR pszFrameSrc)
 
static HRESULT WINAPI TargetFrame_GetFrameSrc (ITargetFrame *iface, LPWSTR *ppszFrameSrc)
 
static HRESULT WINAPI TargetFrame_GetFramesContainer (ITargetFrame *iface, IOleContainer **ppContainer)
 
static HRESULT WINAPI TargetFrame_SetFrameOptions (ITargetFrame *iface, DWORD dwFlags)
 
static HRESULT WINAPI TargetFrame_GetFrameOptions (ITargetFrame *iface, DWORD *pdwFlags)
 
static HRESULT WINAPI TargetFrame_SetFrameMargins (ITargetFrame *iface, DWORD dwWidth, DWORD dwHeight)
 
static HRESULT WINAPI TargetFrame_GetFrameMargins (ITargetFrame *iface, DWORD *pdwWidth, DWORD *pdwHeight)
 
static HRESULT WINAPI TargetFrame_RemoteNavigate (ITargetFrame *iface, ULONG cLength, ULONG *pulData)
 
static HRESULT WINAPI TargetFrame_OnChildFrameActivate (ITargetFrame *iface, IUnknown *pUnkChildFrame)
 
static HRESULT WINAPI TargetFrame_OnChildFrameDeactivate (ITargetFrame *iface, IUnknown *pUnkChildFrame)
 
static HlinkFrameimpl_from_ITargetFrame2 (ITargetFrame2 *iface)
 
static HRESULT WINAPI TargetFrame2_QueryInterface (ITargetFrame2 *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI TargetFrame2_AddRef (ITargetFrame2 *iface)
 
static ULONG WINAPI TargetFrame2_Release (ITargetFrame2 *iface)
 
static HRESULT WINAPI TargetFrame2_SetFrameName (ITargetFrame2 *iface, LPCWSTR pszFrameName)
 
static HRESULT WINAPI TargetFrame2_GetFrameName (ITargetFrame2 *iface, LPWSTR *ppszFrameName)
 
static HRESULT WINAPI TargetFrame2_GetParentFrame (ITargetFrame2 *iface, IUnknown **ppunkParent)
 
static HRESULT WINAPI TargetFrame2_SetFrameSrc (ITargetFrame2 *iface, LPCWSTR pszFrameSrc)
 
static HRESULT WINAPI TargetFrame2_GetFrameSrc (ITargetFrame2 *iface, LPWSTR *ppszFrameSrc)
 
static HRESULT WINAPI TargetFrame2_GetFramesContainer (ITargetFrame2 *iface, IOleContainer **ppContainer)
 
static HRESULT WINAPI TargetFrame2_SetFrameOptions (ITargetFrame2 *iface, DWORD dwFlags)
 
static HRESULT WINAPI TargetFrame2_GetFrameOptions (ITargetFrame2 *iface, DWORD *pdwFlags)
 
static HRESULT WINAPI TargetFrame2_SetFrameMargins (ITargetFrame2 *iface, DWORD dwWidth, DWORD dwHeight)
 
static HRESULT WINAPI TargetFrame2_GetFrameMargins (ITargetFrame2 *iface, DWORD *pdwWidth, DWORD *pdwHeight)
 
static HRESULT WINAPI TargetFrame2_FindFrame (ITargetFrame2 *iface, LPCWSTR pszTargetName, DWORD dwFlags, IUnknown **ppunkTargetFrame)
 
static HRESULT WINAPI TargetFrame2_GetTargetAlias (ITargetFrame2 *iface, LPCWSTR pszTargetName, LPWSTR *ppszTargetAlias)
 
static HlinkFrameimpl_from_ITargetFramePriv2 (ITargetFramePriv2 *iface)
 
static HRESULT WINAPI TargetFramePriv2_QueryInterface (ITargetFramePriv2 *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI TargetFramePriv2_AddRef (ITargetFramePriv2 *iface)
 
static ULONG WINAPI TargetFramePriv2_Release (ITargetFramePriv2 *iface)
 
static HRESULT WINAPI TargetFramePriv2_FindFrameDownwards (ITargetFramePriv2 *iface, LPCWSTR pszTargetName, DWORD dwFlags, IUnknown **ppunkTargetFrame)
 
static HRESULT WINAPI TargetFramePriv2_FindFrameInContext (ITargetFramePriv2 *iface, LPCWSTR pszTargetName, IUnknown *punkContextFrame, DWORD dwFlags, IUnknown **ppunkTargetFrame)
 
static HRESULT WINAPI TargetFramePriv2_OnChildFrameActivate (ITargetFramePriv2 *iface, IUnknown *pUnkChildFrame)
 
static HRESULT WINAPI TargetFramePriv2_OnChildFrameDeactivate (ITargetFramePriv2 *iface, IUnknown *pUnkChildFrame)
 
static HRESULT WINAPI TargetFramePriv2_NavigateHack (ITargetFramePriv2 *iface, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *pibsc, LPCWSTR pszTargetName, LPCWSTR pszUrl, LPCWSTR pszLocation)
 
static HRESULT WINAPI TargetFramePriv2_FindBrowserByIndex (ITargetFramePriv2 *iface, DWORD dwID, IUnknown **ppunkBrowser)
 
static HRESULT WINAPI TargetFramePriv2_AggregatedNavigation2 (ITargetFramePriv2 *iface, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *pibsc, LPCWSTR pszTargetName, IUri *pUri, LPCWSTR pszLocation)
 
static HlinkFrameimpl_from_IWebBrowserPriv2IE9 (IWebBrowserPriv2IE9 *iface)
 
static HRESULT WINAPI WebBrowserPriv2IE9_QueryInterface (IWebBrowserPriv2IE9 *iface, REFIID riid, void **ppv)
 
static ULONG WINAPI WebBrowserPriv2IE9_AddRef (IWebBrowserPriv2IE9 *iface)
 
static ULONG WINAPI WebBrowserPriv2IE9_Release (IWebBrowserPriv2IE9 *iface)
 
static HRESULT WINAPI WebBrowserPriv2IE9_NavigateWithBindCtx2 (IWebBrowserPriv2IE9 *iface, IUri *uri, VARIANT *flags, VARIANT *target_frame, VARIANT *post_data, VARIANT *headers, IBindCtx *bind_ctx, LPOLESTR url_fragment, DWORD unused)
 
BOOL HlinkFrame_QI (HlinkFrame *This, REFIID riid, void **ppv)
 
void HlinkFrame_Init (HlinkFrame *This, IUnknown *outer, DocHost *doc_host)
 

Variables

static const WCHAR emptyW [] = {0}
 
static const IBindStatusCallbackVtbl BindStatusCallbackVtbl
 
static const IHttpNegotiateVtbl HttpNegotiateVtbl
 
static const IHttpSecurityVtbl HttpSecurityVtbl
 
static const IHlinkFrameVtbl HlinkFrameVtbl
 
static const ITargetFrameVtbl TargetFrameVtbl
 
static const ITargetFrame2Vtbl TargetFrame2Vtbl
 
static const ITargetFramePriv2Vtbl TargetFramePriv2Vtbl
 
static const IWebBrowserPriv2IE9Vtbl WebBrowserPriv2IE9Vtbl
 

Macro Definition Documentation

◆ NONAMELESSUNION

#define NONAMELESSUNION

Definition at line 23 of file navigate.c.

Function Documentation

◆ async_doc_navigate()

static HRESULT async_doc_navigate ( DocHost This,
LPCWSTR  url,
LPCWSTR  headers,
PBYTE  post_data,
ULONG  post_data_size,
BOOL  async_notif 
)
static

Definition at line 819 of file navigate.c.

821{
823
824 TRACE("%s\n", debugstr_w(url));
825
826 task = heap_alloc_zero(sizeof(*task));
827 if(!task)
828 return E_OUTOFMEMORY;
829
830 task->url = SysAllocString(url);
831 if(!task->url) {
833 return E_OUTOFMEMORY;
834 }
835
836 if(headers) {
838 if(!task->headers) {
840 return E_OUTOFMEMORY;
841 }
842 }
843
844 if(post_data) {
845 task->post_data = SafeArrayCreateVector(VT_UI1, 0, post_data_size);
846 if(!task->post_data) {
848 return E_OUTOFMEMORY;
849 }
850
851 memcpy(task->post_data->pvData, post_data, post_data_size);
852 }
853
854 if(!async_notif) {
855 VARIANT_BOOL cancel = VARIANT_FALSE;
856
857 on_before_navigate2(This, task->url, task->post_data, task->headers, &cancel);
858 if(cancel) {
859 TRACE("Navigation canceled\n");
861 return S_OK;
862 }
863 }
864
865 task->async_notif = async_notif;
868 return S_OK;
869}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define FALSE
Definition: types.h:117
short VARIANT_BOOL
Definition: compat.h:2290
@ VT_UI1
Definition: compat.h:2311
SAFEARRAY *WINAPI SafeArrayCreateVector(VARTYPE vt, LONG lLbound, ULONG cElements)
Definition: safearray.c:677
void push_dochost_task(DocHost *This, task_header_t *task, task_proc_t proc, task_destr_t destr, BOOL send)
Definition: dochost.c:39
void abort_dochost_tasks(DocHost *This, task_proc_t proc)
Definition: dochost.c:70
static void doc_navigate_task_destr(task_header_t *t)
Definition: navigate.c:779
static void on_before_navigate2(DocHost *This, LPCWSTR url, SAFEARRAY *post_data, LPWSTR headers, VARIANT_BOOL *cancel)
Definition: navigate.c:578
static void doc_navigate_proc(DocHost *This, task_header_t *t)
Definition: navigate.c:790
#define S_OK
Definition: intsafe.h:52
#define debugstr_w
Definition: kernel32.h:32
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static const WCHAR url[]
Definition: encode.c:1432
static const CHAR post_data[]
Definition: protocol.c:217
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
vector< Header * > headers
Definition: sdkparse.cpp:39
#define TRACE(s)
Definition: solgame.cpp:4
PVOID pvData
Definition: compat.h:2359
task_header_t header
Definition: navigate.c:772
SAFEARRAY * post_data
Definition: navigate.c:775

Referenced by navigate_history(), navigate_hlink(), and navigate_url().

◆ bind_to_object()

static HRESULT bind_to_object ( DocHost This,
IMoniker mon,
LPCWSTR  url,
IBindCtx bindctx,
IBindStatusCallback callback 
)
static

Definition at line 691 of file navigate.c.

693{
694 IUnknown *unk = NULL;
695 WCHAR *display_name;
697
698 if(mon) {
699 IMoniker_AddRef(mon);
700 }else {
701 hres = create_moniker(url, &mon);
702 if(FAILED(hres))
703 return hres;
704 }
705
706 hres = IMoniker_GetDisplayName(mon, 0, NULL, &display_name);
707 if(FAILED(hres)) {
708 FIXME("GetDisplayName failed: %08x\n", hres);
709 IMoniker_Release(mon);
710 return hres;
711 }
712
713 hres = set_dochost_url(This, display_name);
714 CoTaskMemFree(display_name);
715 if(FAILED(hres)) {
716 IMoniker_Release(mon);
717 return hres;
718 }
719
720 IBindCtx_RegisterObjectParam(bindctx, (LPOLESTR)SZ_HTML_CLIENTSITE_OBJECTPARAM,
721 (IUnknown*)&This->IOleClientSite_iface);
722
723 hres = IMoniker_BindToObject(mon, bindctx, NULL, &IID_IUnknown, (void**)&unk);
724 if(SUCCEEDED(hres)) {
725 hres = S_OK;
726 if(unk)
727 IUnknown_Release(unk);
728 }else if(try_application_url(url)) {
729 hres = S_OK;
730 }else {
731 FIXME("BindToObject failed: %08x\n", hres);
732 }
733
734 IMoniker_Release(mon);
735 return S_OK;
736}
const GUID IID_IUnknown
#define FIXME(fmt,...)
Definition: debug.h:111
#define NULL
Definition: types.h:112
static BOOL try_application_url(LPCWSTR url)
Definition: navigate.c:638
static HRESULT create_moniker(LPCWSTR url, IMoniker **mon)
Definition: navigate.c:671
HRESULT set_dochost_url(DocHost *This, const WCHAR *url)
Definition: navigate.c:134
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define FAILED(hr)
Definition: intsafe.h:51
HRESULT hres
Definition: protocol.c:465
static LPOLESTR
Definition: stg_prop.c:27
static const WCHAR SZ_HTML_CLIENTSITE_OBJECTPARAM[]
Definition: mshtmhst.idl:59
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ BindStatusCallback_AddRef()

static ULONG WINAPI BindStatusCallback_AddRef ( IBindStatusCallback iface)
static

Definition at line 196 of file navigate.c.

197{
200
201 TRACE("(%p) ref=%d\n", This, ref);
202
203 return ref;
204}
#define InterlockedIncrement
Definition: armddk.h:53
static BindStatusCallback * impl_from_IBindStatusCallback(IBindStatusCallback *iface)
Definition: navigate.c:161
long LONG
Definition: pedump.c:60
Definition: send.c:48

◆ BindStatusCallback_GetBindInfo()

static HRESULT WINAPI BindStatusCallback_GetBindInfo ( IBindStatusCallback iface,
DWORD grfBINDF,
BINDINFO *  pbindinfo 
)
static

Definition at line 386 of file navigate.c.

388{
390
391 TRACE("(%p)->(%p %p)\n", This, grfBINDF, pbindinfo);
392
393 *grfBINDF = BINDF_ASYNCHRONOUS;
394
395 if(This->post_data) {
396 pbindinfo->dwBindVerb = BINDVERB_POST;
397
398 pbindinfo->stgmedData.tymed = TYMED_HGLOBAL;
399 pbindinfo->stgmedData.u.hGlobal = This->post_data;
400 pbindinfo->cbstgmedData = This->post_data_len;
401 pbindinfo->stgmedData.pUnkForRelease = (IUnknown*)&This->IBindStatusCallback_iface;
402 IBindStatusCallback_AddRef(&This->IBindStatusCallback_iface);
403 }
404
405 return S_OK;
406}

◆ BindStatusCallback_GetPriority()

static HRESULT WINAPI BindStatusCallback_GetPriority ( IBindStatusCallback iface,
LONG pnPriority 
)
static

Definition at line 241 of file navigate.c.

243{
245 FIXME("(%p)->(%p)\n", This, pnPriority);
246 return E_NOTIMPL;
247}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ BindStatusCallback_OnDataAvailable()

static HRESULT WINAPI BindStatusCallback_OnDataAvailable ( IBindStatusCallback iface,
DWORD  grfBSCF,
DWORD  dwSize,
FORMATETC *  pformatetc,
STGMEDIUM *  pstgmed 
)
static

Definition at line 408 of file navigate.c.

410{
412 FIXME("(%p)->(%08x %d %p %p)\n", This, grfBSCF, dwSize, pformatetc, pstgmed);
413 return E_NOTIMPL;
414}
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56

◆ BindStatusCallback_OnLowResource()

static HRESULT WINAPI BindStatusCallback_OnLowResource ( IBindStatusCallback iface,
DWORD  reserved 
)
static

Definition at line 249 of file navigate.c.

251{
253 FIXME("(%p)->(%d)\n", This, reserved);
254 return E_NOTIMPL;
255}
r reserved
Definition: btrfs.c:3006

◆ BindStatusCallback_OnObjectAvailable()

static HRESULT WINAPI BindStatusCallback_OnObjectAvailable ( IBindStatusCallback iface,
REFIID  riid,
IUnknown punk 
)
static

Definition at line 416 of file navigate.c.

418{
420
421 TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), punk);
422
423 return dochost_object_available(This->doc_host, punk);
424}
HRESULT dochost_object_available(DocHost *This, IUnknown *doc)
Definition: dochost.c:304
REFIID riid
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35

◆ BindStatusCallback_OnProgress()

static HRESULT WINAPI BindStatusCallback_OnProgress ( IBindStatusCallback iface,
ULONG  ulProgress,
ULONG  ulProgressMax,
ULONG  ulStatusCode,
LPCWSTR  szStatusText 
)
static

Definition at line 276 of file navigate.c.

278{
281
282 TRACE("(%p)->(%d %d %d %s)\n", This, ulProgress, ulProgressMax, ulStatusCode,
283 debugstr_w(szStatusText));
284
285 switch(ulStatusCode) {
286 case BINDSTATUS_REDIRECTING:
287 return set_dochost_url(This->doc_host, szStatusText);
288 case BINDSTATUS_BEGINDOWNLOADDATA:
289 set_status_text(This, ulStatusCode, szStatusText);
293 return S_OK;
294
295 case BINDSTATUS_FINDINGRESOURCE:
296 case BINDSTATUS_ENDDOWNLOADDATA:
297 case BINDSTATUS_SENDINGREQUEST:
298 set_status_text(This, ulStatusCode, szStatusText);
299 return S_OK;
300
301 case BINDSTATUS_CONNECTING:
302 case BINDSTATUS_CACHEFILENAMEAVAILABLE:
303 case BINDSTATUS_CLASSIDAVAILABLE:
304 case BINDSTATUS_MIMETYPEAVAILABLE:
305 case BINDSTATUS_BEGINSYNCOPERATION:
306 case BINDSTATUS_ENDSYNCOPERATION:
307 return S_OK;
308 default:
309 FIXME("status code %u\n", ulStatusCode);
310 }
311
312 return S_OK;
313}
unsigned long DWORD
Definition: ntddk_ex.h:95
void handle_navigation_error(DocHost *doc_host, HRESULT hres, BSTR url, IHTMLWindow2 *win2)
Definition: navigate.c:315
static void set_status_text(BindStatusCallback *This, ULONG statuscode, LPCWSTR str)
Definition: navigate.c:102
static DWORD get_http_status_code(IBinding *binding)
Definition: navigate.c:257
#define HTTP_STATUS_OK
Definition: winhttp.h:240

◆ BindStatusCallback_OnStartBinding()

static HRESULT WINAPI BindStatusCallback_OnStartBinding ( IBindStatusCallback iface,
DWORD  dwReserved,
IBinding pbind 
)
static

Definition at line 228 of file navigate.c.

230{
232
233 TRACE("(%p)->(%d %p)\n", This, dwReserved, pbind);
234
235 This->binding = pbind;
236 IBinding_AddRef(This->binding);
237
238 return S_OK;
239}
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95

◆ BindStatusCallback_OnStopBinding()

static HRESULT WINAPI BindStatusCallback_OnStopBinding ( IBindStatusCallback iface,
HRESULT  hresult,
LPCWSTR  szError 
)
static

Definition at line 360 of file navigate.c.

362{
364
365 TRACE("(%p)->(%08x %s)\n", This, hresult, debugstr_w(szError));
366
368
369 if(!This->doc_host)
370 return S_OK;
371
372 if(!This->doc_host->olecmd)
373 notify_download_state(This->doc_host, FALSE);
374 if(FAILED(hresult))
375 handle_navigation_error(This->doc_host, hresult, This->url, NULL);
376
377 IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
378 This->doc_host = NULL;
379
380 IBinding_Release(This->binding);
381 This->binding = NULL;
382
383 return S_OK;
384}
static const WCHAR emptyW[]
Definition: navigate.c:40
void notify_download_state(DocHost *dochost, BOOL is_downloading)
Definition: navigate.c:153

◆ BindStatusCallback_QueryInterface()

static HRESULT WINAPI BindStatusCallback_QueryInterface ( IBindStatusCallback iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 166 of file navigate.c.

168{
170
172 TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
173 *ppv = &This->IBindStatusCallback_iface;
174 }else if(IsEqualGUID(&IID_IBindStatusCallback, riid)) {
175 TRACE("(%p)->(IID_IBindStatusCallback %p)\n", This, ppv);
176 *ppv = &This->IBindStatusCallback_iface;
177 }else if(IsEqualGUID(&IID_IHttpNegotiate, riid)) {
178 TRACE("(%p)->(IID_IHttpNegotiate %p)\n", This, ppv);
179 *ppv = &This->IHttpNegotiate_iface;
180 }else if(IsEqualGUID(&IID_IWindowForBindingUI, riid)) {
181 TRACE("(%p)->(IID_IWindowForBindingUI %p)\n", This, ppv);
182 *ppv = &This->IHttpSecurity_iface;
183 }else if(IsEqualGUID(&IID_IHttpSecurity, riid)) {
184 TRACE("(%p)->(IID_IHttpSecurity %p)\n", This, ppv);
185 *ppv = &This->IHttpSecurity_iface;
186 }else {
187 *ppv = NULL;
188 WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
189 return E_NOINTERFACE;
190 }
191
192 IUnknown_AddRef((IUnknown*)*ppv);
193 return S_OK;
194}
#define WARN(fmt,...)
Definition: debug.h:112
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define E_NOINTERFACE
Definition: winerror.h:2364

◆ BindStatusCallback_Release()

static ULONG WINAPI BindStatusCallback_Release ( IBindStatusCallback iface)
static

Definition at line 206 of file navigate.c.

207{
210
211 TRACE("(%p) ref=%d\n", This, ref);
212
213 if(!ref) {
214 if(This->doc_host)
215 IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
216 if(This->binding)
217 IBinding_Release(This->binding);
218 if(This->post_data)
219 GlobalFree(This->post_data);
220 SysFreeString(This->headers);
221 SysFreeString(This->url);
223 }
224
225 return ref;
226}
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
#define InterlockedDecrement
Definition: armddk.h:52
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
Definition: heapmem.c:611
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271

◆ create_callback()

static BindStatusCallback * create_callback ( DocHost doc_host,
LPCWSTR  url,
PBYTE  post_data,
ULONG  post_data_len,
LPCWSTR  headers 
)
static

Definition at line 550 of file navigate.c.

552{
554
555 ret->IBindStatusCallback_iface.lpVtbl = &BindStatusCallbackVtbl;
556 ret->IHttpNegotiate_iface.lpVtbl = &HttpNegotiateVtbl;
557 ret->IHttpSecurity_iface.lpVtbl = &HttpSecurityVtbl;
558
559 ret->ref = 1;
560 ret->url = SysAllocString(url);
561 ret->post_data = NULL;
562 ret->post_data_len = post_data_len;
563 ret->headers = headers ? SysAllocString(headers) : NULL;
564
565 ret->doc_host = doc_host;
566 IOleClientSite_AddRef(&doc_host->IOleClientSite_iface);
567
568 ret->binding = NULL;
569
570 if(post_data) {
571 ret->post_data = GlobalAlloc(0, post_data_len);
572 memcpy(ret->post_data, post_data, post_data_len);
573 }
574
575 return ret;
576}
static void * heap_alloc(size_t len)
Definition: appwiz.h:66
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:368
static const IBindStatusCallbackVtbl BindStatusCallbackVtbl
Definition: navigate.c:426
static const IHttpSecurityVtbl HttpSecurityVtbl
Definition: navigate.c:542
static const IHttpNegotiateVtbl HttpNegotiateVtbl
Definition: navigate.c:491
IOleClientSite IOleClientSite_iface
Definition: ieframe.h:120
int ret

Referenced by navigate_hlink(), and navigate_url().

◆ create_moniker()

static HRESULT create_moniker ( LPCWSTR  url,
IMoniker **  mon 
)
static

Definition at line 671 of file navigate.c.

672{
674 DWORD size;
676
677 if(PathIsURLW(url))
678 return CreateURLMoniker(NULL, url, mon);
679
680 size = ARRAY_SIZE(new_url);
682 TRACE("was %s got %s\n", debugstr_w(url), debugstr_w(new_url));
683 if(FAILED(hres)) {
684 WARN("UrlApplyScheme failed: %08x\n", hres);
685 return hres;
686 }
687
688 return CreateURLMoniker(NULL, new_url, mon);
689}
#define ARRAY_SIZE(A)
Definition: main.h:33
HRESULT WINAPI UrlApplySchemeW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwFlags)
Definition: url.c:1817
BOOL WINAPI PathIsURLW(LPCWSTR lpstrPath)
Definition: url.c:2432
#define INTERNET_MAX_URL_LENGTH
Definition: session.c:1418
GLsizeiptr size
Definition: glext.h:5919
#define URL_APPLY_GUESSSCHEME
Definition: shlwapi.h:1203
#define URL_APPLY_DEFAULT
Definition: shlwapi.h:1204
#define URL_APPLY_GUESSFILE
Definition: shlwapi.h:1202
HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk)
Definition: umon.c:732

Referenced by bind_to_object().

◆ doc_navigate_proc()

static void doc_navigate_proc ( DocHost This,
task_header_t t 
)
static

Definition at line 790 of file navigate.c.

791{
793 IHTMLPrivateWindow *priv_window;
795
796 if(!This->doc_navigate) {
797 ERR("Skip nav\n");
798 return;
799 }
800
801 if(task->async_notif) {
802 VARIANT_BOOL cancel = VARIANT_FALSE;
803 on_before_navigate2(This, task->url, task->post_data, task->headers, &cancel);
804 if(cancel) {
805 TRACE("Navigation canceled\n");
806 return;
807 }
808 }
809
810 hres = IUnknown_QueryInterface(This->doc_navigate, &IID_IHTMLPrivateWindow, (void**)&priv_window);
811 if(SUCCEEDED(hres)) {
812 html_window_navigate(This, priv_window, task->url, task->headers, task->post_data);
813 IHTMLPrivateWindow_Release(priv_window);
814 }else {
815 WARN("Could not get IHTMLPrivateWindow iface: %08x\n", hres);
816 }
817}
#define ERR(fmt,...)
Definition: debug.h:110
GLdouble GLdouble t
Definition: gl.h:2047
static void html_window_navigate(DocHost *This, IHTMLPrivateWindow *window, BSTR url, BSTR headers, SAFEARRAY *post_data)
Definition: navigate.c:738

Referenced by async_doc_navigate().

◆ doc_navigate_task_destr()

static void doc_navigate_task_destr ( task_header_t t)
static

Definition at line 779 of file navigate.c.

780{
782
783 SysFreeString(task->url);
784 SysFreeString(task->headers);
785 if(task->post_data)
787 heap_free(task);
788}
HRESULT WINAPI SafeArrayDestroy(SAFEARRAY *psa)
Definition: safearray.c:1347

Referenced by async_doc_navigate().

◆ dump_BINDINFO()

static void dump_BINDINFO ( BINDINFO *  bi)
static

Definition at line 58 of file navigate.c.

59{
60 static const char * const BINDINFOF_str[] = {
61 "#0",
62 "BINDINFOF_URLENCODESTGMEDDATA",
63 "BINDINFOF_URLENCODEDEXTRAINFO"
64 };
65
66 static const char * const BINDVERB_str[] = {
67 "BINDVERB_GET",
68 "BINDVERB_POST",
69 "BINDVERB_PUT",
70 "BINDVERB_CUSTOM"
71 };
72
73 TRACE("\n"
74 "BINDINFO = {\n"
75 " %d, %s,\n"
76 " {%d, %p, %p},\n"
77 " %s,\n"
78 " %s,\n"
79 " %s,\n"
80 " %d, %08x, %d, %d\n"
81 " {%d %p %x},\n"
82 " %s\n"
83 " %p, %d\n"
84 "}\n",
85
86 bi->cbSize, debugstr_w(bi->szExtraInfo),
87 bi->stgmedData.tymed, bi->stgmedData.u.hGlobal, bi->stgmedData.pUnkForRelease,
88 bi->grfBindInfoF > BINDINFOF_URLENCODEDEXTRAINFO
89 ? "unknown" : BINDINFOF_str[bi->grfBindInfoF],
90 bi->dwBindVerb > BINDVERB_CUSTOM
91 ? "unknown" : BINDVERB_str[bi->dwBindVerb],
92 debugstr_w(bi->szCustomVerb),
93 bi->cbstgmedData, bi->dwOptions, bi->dwOptionsFlags, bi->dwCodePage,
94 bi->securityAttributes.nLength,
95 bi->securityAttributes.lpSecurityDescriptor,
96 bi->securityAttributes.bInheritHandle,
97 debugstr_guid(&bi->iid),
98 bi->pUnk, bi->dwReserved
99 );
100}

Referenced by navigate_hlink().

◆ get_http_status_code()

static DWORD get_http_status_code ( IBinding binding)
static

Definition at line 257 of file navigate.c.

258{
259 IWinInetHttpInfo *http_info;
260 DWORD status, size = sizeof(DWORD);
262
263 hres = IBinding_QueryInterface(binding, &IID_IWinInetHttpInfo, (void**)&http_info);
264 if(FAILED(hres))
265 return HTTP_STATUS_OK;
266
267 hres = IWinInetHttpInfo_QueryInfo(http_info, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER,
268 &status, &size, NULL, NULL);
269 IWinInetHttpInfo_Release(http_info);
270
271 if(FAILED(hres))
272 return HTTP_STATUS_OK;
273 return status;
274}
#define DWORD
Definition: nt_native.h:44
Definition: ps.c:97
#define HTTP_QUERY_FLAG_NUMBER
Definition: wininet.h:1606
#define HTTP_QUERY_STATUS_CODE
Definition: wininet.h:1542

Referenced by BindStatusCallback_OnProgress().

◆ get_location_url()

HRESULT get_location_url ( DocHost This,
BSTR ret 
)

Definition at line 1142 of file navigate.c.

1143{
1144 FIXME("semi-stub\n");
1145
1146 *ret = This->url ? SysAllocString(This->url) : SysAllocStringLen(NULL, 0);
1147 if(!*ret)
1148 return E_OUTOFMEMORY;
1149
1150 return This->url ? S_OK : S_FALSE;
1151}
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
Definition: oleaut.c:339
#define S_FALSE
Definition: winerror.h:2357

Referenced by InternetExplorer_get_LocationURL(), and WebBrowser_get_LocationURL().

◆ go_back()

HRESULT go_back ( DocHost This)

Definition at line 1122 of file navigate.c.

1123{
1124 if(!This->travellog.position) {
1125 WARN("No history available\n");
1126 return E_FAIL;
1127 }
1128
1129 return navigate_history(This, This->travellog.position-1);
1130}
#define E_FAIL
Definition: ddrawi.h:102
static HRESULT navigate_history(DocHost *This, unsigned travellog_pos)
Definition: navigate.c:1090

Referenced by InternetExplorer_GoBack(), and WebBrowser_GoBack().

◆ go_forward()

HRESULT go_forward ( DocHost This)

Definition at line 1132 of file navigate.c.

1133{
1134 if(This->travellog.position >= This->travellog.length) {
1135 WARN("No history available\n");
1136 return E_FAIL;
1137 }
1138
1139 return navigate_history(This, This->travellog.position+1);
1140}

Referenced by InternetExplorer_GoForward(), and WebBrowser_GoForward().

◆ go_home()

HRESULT go_home ( DocHost This)

Definition at line 1065 of file navigate.c.

1066{
1067 HKEY hkey;
1068 DWORD res, type, size;
1069 WCHAR wszPageName[MAX_PATH];
1070 static const WCHAR wszAboutBlank[] = {'a','b','o','u','t',':','b','l','a','n','k',0};
1071 static const WCHAR wszStartPage[] = {'S','t','a','r','t',' ','P','a','g','e',0};
1072 static const WCHAR wszSubKey[] = {'S','o','f','t','w','a','r','e','\\',
1073 'M','i','c','r','o','s','o','f','t','\\',
1074 'I','n','t','e','r','n','e','t',' ','E','x','p','l','o','r','e','r','\\',
1075 'M','a','i','n',0};
1076
1077 res = RegOpenKeyW(HKEY_CURRENT_USER, wszSubKey, &hkey);
1078 if (res != ERROR_SUCCESS)
1079 return navigate_url(This, wszAboutBlank, NULL, NULL, NULL, NULL);
1080
1081 size = sizeof(wszPageName);
1082 res = RegQueryValueExW(hkey, wszStartPage, NULL, &type, (LPBYTE)wszPageName, &size);
1083 RegCloseKey(hkey);
1084 if (res != ERROR_SUCCESS || type != REG_SZ)
1085 return navigate_url(This, wszAboutBlank, NULL, NULL, NULL, NULL);
1086
1087 return navigate_url(This, wszPageName, NULL, NULL, NULL, NULL);
1088}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3268
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
#define MAX_PATH
Definition: compat.h:34
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLuint res
Definition: glext.h:9613
HRESULT navigate_url(DocHost *This, LPCWSTR url, const VARIANT *Flags, const VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers)
Definition: navigate.c:941
#define REG_SZ
Definition: layer.c:22
unsigned char * LPBYTE
Definition: typedefs.h:53
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by InternetExplorer_GoHome(), and WebBrowser_GoHome().

◆ handle_navigation_error()

void handle_navigation_error ( DocHost doc_host,
HRESULT  hres,
BSTR  url,
IHTMLWindow2 win2 
)

Definition at line 315 of file navigate.c.

316{
317 VARIANT var_status_code, var_frame_name, var_url;
318 DISPPARAMS dispparams;
320 VARIANT_BOOL cancel = VARIANT_FALSE;
321
322 dispparams.cArgs = 5;
323 dispparams.cNamedArgs = 0;
324 dispparams.rgdispidNamedArgs = NULL;
325 dispparams.rgvarg = params;
326
328 V_BOOLREF(params) = &cancel;
329
331 V_VARIANTREF(params+1) = &var_status_code;
332 V_VT(&var_status_code) = VT_I4;
333 V_I4(&var_status_code) = hres;
334
336 V_VARIANTREF(params+2) = &var_frame_name;
337 V_VT(&var_frame_name) = VT_BSTR;
338 if(win2) {
339 hres = IHTMLWindow2_get_name(win2, &V_BSTR(&var_frame_name));
340 if(FAILED(hres))
341 V_BSTR(&var_frame_name) = NULL;
342 } else
343 V_BSTR(&var_frame_name) = NULL;
344
346 V_VARIANTREF(params+3) = &var_url;
347 V_VT(&var_url) = VT_BSTR;
348 V_BSTR(&var_url) = url;
349
351 V_DISPATCH(params+4) = (IDispatch*)doc_host->wb;
352
353 call_sink(doc_host->cps.wbe2, DISPID_NAVIGATEERROR, &dispparams);
354 SysFreeString(V_BSTR(&var_frame_name));
355
356 if(!cancel)
357 FIXME("Navigate to error page\n");
358}
@ VT_BSTR
Definition: compat.h:2303
@ VT_BYREF
Definition: compat.h:2342
@ VT_VARIANT
Definition: compat.h:2307
@ VT_I4
Definition: compat.h:2298
@ VT_BOOL
Definition: compat.h:2306
@ VT_DISPATCH
Definition: compat.h:2304
void call_sink(ConnectionPoint *This, DISPID dispid, DISPPARAMS *dispparams)
Definition: events.c:391
GLenum const GLfloat * params
Definition: glext.h:5645
struct stdole::DISPPARAMS DISPPARAMS
#define V_BOOLREF(A)
Definition: oleauto.h:225
#define V_VARIANTREF(A)
Definition: oleauto.h:283
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
#define V_I4(A)
Definition: oleauto.h:247
#define V_DISPATCH(A)
Definition: oleauto.h:239
ConnectionPoint * wbe2
Definition: ieframe.h:55
ConnectionPointContainer cps
Definition: ieframe.h:173
IWebBrowser2 * wb
Definition: ieframe.h:133
#define DISPID_NAVIGATEERROR
Definition: webchild.h:73

Referenced by BindStatusCallback_OnProgress(), BindStatusCallback_OnStopBinding(), ClOleCommandTarget_Exec(), nsChannelBSC_on_progress(), and nsChannelBSC_stop_binding().

◆ HlinkFrame_AddRef()

static ULONG WINAPI HlinkFrame_AddRef ( IHlinkFrame iface)
static

Definition at line 1164 of file navigate.c.

1165{
1167 return IUnknown_AddRef(This->outer);
1168}
static HlinkFrame * impl_from_IHlinkFrame(IHlinkFrame *iface)
Definition: navigate.c:1153

◆ HlinkFrame_GetBrowseContext()

static HRESULT WINAPI HlinkFrame_GetBrowseContext ( IHlinkFrame iface,
IHlinkBrowseContext **  ppihlbc 
)
static

Definition at line 1184 of file navigate.c.

1186{
1188 FIXME("(%p)->(%p)\n", This, ppihlbc);
1189 return E_NOTIMPL;
1190}

◆ HlinkFrame_Init()

void HlinkFrame_Init ( HlinkFrame This,
IUnknown outer,
DocHost doc_host 
)

Definition at line 1694 of file navigate.c.

1695{
1696 This->IHlinkFrame_iface.lpVtbl = &HlinkFrameVtbl;
1697 This->ITargetFrame_iface.lpVtbl = &TargetFrameVtbl;
1698 This->ITargetFrame2_iface.lpVtbl = &TargetFrame2Vtbl;
1699 This->ITargetFramePriv2_iface.lpVtbl = &TargetFramePriv2Vtbl;
1700 This->IWebBrowserPriv2IE9_iface.lpVtbl = &WebBrowserPriv2IE9Vtbl;
1701
1702 This->outer = outer;
1703 This->doc_host = doc_host;
1704}
static const ITargetFrame2Vtbl TargetFrame2Vtbl
Definition: navigate.c:1502
static const IWebBrowserPriv2IE9Vtbl WebBrowserPriv2IE9Vtbl
Definition: navigate.c:1659
static const ITargetFramePriv2Vtbl TargetFramePriv2Vtbl
Definition: navigate.c:1614
static const IHlinkFrameVtbl HlinkFrameVtbl
Definition: navigate.c:1241
static const ITargetFrameVtbl TargetFrameVtbl
Definition: navigate.c:1375

Referenced by create_ie(), and create_webbrowser().

◆ HlinkFrame_Navigate()

static HRESULT WINAPI HlinkFrame_Navigate ( IHlinkFrame iface,
DWORD  grfHLNF,
LPBC  pbc,
IBindStatusCallback pibsc,
IHlink pihlNavigate 
)
static

Definition at line 1192 of file navigate.c.

1194{
1196 IMoniker *mon;
1198
1199 TRACE("(%p)->(%08x %p %p %p)\n", This, grfHLNF, pbc, pibsc, pihlNavigate);
1200
1201 if(grfHLNF)
1202 FIXME("unsupported grfHLNF=%08x\n", grfHLNF);
1203
1204 /* Windows calls GetTargetFrameName here. */
1205
1206 IHlink_GetMonikerReference(pihlNavigate, 1, &mon, &location);
1207
1208 if(location) {
1209 FIXME("location = %s\n", debugstr_w(location));
1211 }
1212
1213 /* Windows calls GetHlinkSite here */
1214
1215 if(grfHLNF & HLNF_OPENINNEWWINDOW) {
1216 FIXME("Not supported HLNF_OPENINNEWWINDOW\n");
1217 return E_NOTIMPL;
1218 }
1219
1220 return navigate_hlink(This->doc_host, mon, pbc, pibsc);
1221}
static HRESULT navigate_hlink(DocHost *This, IMoniker *mon, IBindCtx *bindctx, IBindStatusCallback *callback)
Definition: navigate.c:1011
WCHAR * LPWSTR
Definition: xmlstorage.h:184

◆ HlinkFrame_OnNavigate()

static HRESULT WINAPI HlinkFrame_OnNavigate ( IHlinkFrame iface,
DWORD  grfHLNF,
IMoniker pimkTarget,
LPCWSTR  pwzLocation,
LPCWSTR  pwzFriendlyName,
DWORD  dwreserved 
)
static

Definition at line 1223 of file navigate.c.

1225{
1227 FIXME("(%p)->(%08x %p %s %s %d)\n", This, grfHLNF, pimkTarget, debugstr_w(pwzLocation),
1228 debugstr_w(pwzFriendlyName), dwreserved);
1229 return E_NOTIMPL;
1230}

◆ HlinkFrame_QI()

BOOL HlinkFrame_QI ( HlinkFrame This,
REFIID  riid,
void **  ppv 
)

Definition at line 1666 of file navigate.c.

1667{
1668 if(IsEqualGUID(&IID_IHlinkFrame, riid)) {
1669 TRACE("(%p)->(IID_IHlinkFrame %p)\n", This, ppv);
1670 *ppv = &This->IHlinkFrame_iface;
1671 }else if(IsEqualGUID(&IID_ITargetFrame, riid)) {
1672 TRACE("(%p)->(IID_ITargetFrame %p)\n", This, ppv);
1673 *ppv = &This->ITargetFrame_iface;
1674 }else if(IsEqualGUID(&IID_ITargetFrame2, riid)) {
1675 TRACE("(%p)->(IID_ITargetFrame2 %p)\n", This, ppv);
1676 *ppv = &This->ITargetFrame2_iface;
1677 }else if(IsEqualGUID(&IID_ITargetFramePriv, riid)) {
1678 TRACE("(%p)->(IID_ITargetFramePriv %p)\n", This, ppv);
1679 *ppv = &This->ITargetFramePriv2_iface;
1680 }else if(IsEqualGUID(&IID_ITargetFramePriv2, riid)) {
1681 TRACE("(%p)->(IID_ITargetFramePriv2 %p)\n", This, ppv);
1682 *ppv = &This->ITargetFramePriv2_iface;
1683 }else if(IsEqualGUID(&IID_IWebBrowserPriv2IE9, riid)) {
1684 TRACE("(%p)->(IID_IWebBrowserPriv2IE9 %p)\n", This, ppv);
1685 *ppv = &This->IWebBrowserPriv2IE9_iface;
1686 }else {
1687 return FALSE;
1688 }
1689
1690 IUnknown_AddRef((IUnknown*)*ppv);
1691 return TRUE;
1692}
#define TRUE
Definition: types.h:120

Referenced by InternetExplorer_QueryInterface(), and WebBrowser_QueryInterface().

◆ HlinkFrame_QueryInterface()

static HRESULT WINAPI HlinkFrame_QueryInterface ( IHlinkFrame iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1158 of file navigate.c.

1159{
1161 return IUnknown_QueryInterface(This->outer, riid, ppv);
1162}

◆ HlinkFrame_Release()

static ULONG WINAPI HlinkFrame_Release ( IHlinkFrame iface)
static

Definition at line 1170 of file navigate.c.

1171{
1173 return IUnknown_Release(This->outer);
1174}

◆ HlinkFrame_SetBrowseContext()

static HRESULT WINAPI HlinkFrame_SetBrowseContext ( IHlinkFrame iface,
IHlinkBrowseContext pihlbc 
)
static

Definition at line 1176 of file navigate.c.

1178{
1180 FIXME("(%p)->(%p)\n", This, pihlbc);
1181 return E_NOTIMPL;
1182}

◆ HlinkFrame_UpdateHlink()

static HRESULT WINAPI HlinkFrame_UpdateHlink ( IHlinkFrame iface,
ULONG  uHLID,
IMoniker pimkTarget,
LPCWSTR  pwzLocation,
LPCWSTR  pwzFriendlyName 
)
static

Definition at line 1232 of file navigate.c.

1234{
1236 FIXME("(%p)->(%u %p %s %s)\n", This, uHLID, pimkTarget, debugstr_w(pwzLocation),
1237 debugstr_w(pwzFriendlyName));
1238 return E_NOTIMPL;
1239}

◆ html_window_navigate()

static void html_window_navigate ( DocHost This,
IHTMLPrivateWindow window,
BSTR  url,
BSTR  headers,
SAFEARRAY post_data 
)
static

Definition at line 738 of file navigate.c.

739{
740 VARIANT headers_var, post_data_var;
743
745 if(FAILED(hres))
746 return;
747
749
750 if(headers) {
751 V_VT(&headers_var) = VT_BSTR;
752 V_BSTR(&headers_var) = headers;
753 }else {
754 V_VT(&headers_var) = VT_EMPTY;
755 }
756
757 if(post_data) {
758 V_VT(&post_data_var) = VT_UI1|VT_ARRAY;
759 V_ARRAY(&post_data_var) = post_data;
760 }else {
761 V_VT(&post_data_var) = VT_EMPTY;
762 }
763
764 set_doc_state(This, READYSTATE_LOADING);
765 hres = IHTMLPrivateWindow_SuperNavigate(window, url, empty_str, NULL, NULL, &post_data_var, &headers_var, 0);
767 if(FAILED(hres))
768 WARN("SuprtNavigate failed: %08x\n", hres);
769}
static const TCHAR empty_str[]
Definition: dialog.c:20
OLECHAR * BSTR
Definition: compat.h:2293
@ VT_ARRAY
Definition: compat.h:2341
@ VT_EMPTY
Definition: compat.h:2295
void set_doc_state(DocHost *This, READYSTATE doc_state)
Definition: dochost.c:234
static IHTMLWindow2 * window
Definition: events.c:77
#define V_ARRAY(A)
Definition: oleauto.h:222

Referenced by doc_navigate_proc().

◆ HttpNegotiate_AddRef()

static ULONG WINAPI HttpNegotiate_AddRef ( IHttpNegotiate iface)
static

Definition at line 452 of file navigate.c.

453{
455 return IBindStatusCallback_AddRef(&This->IBindStatusCallback_iface);
456}
static BindStatusCallback * impl_from_IHttpNegotiate(IHttpNegotiate *iface)
Definition: navigate.c:440

◆ HttpNegotiate_BeginningTransaction()

static HRESULT WINAPI HttpNegotiate_BeginningTransaction ( IHttpNegotiate iface,
LPCWSTR  szURL,
LPCWSTR  szHeaders,
DWORD  dwReserved,
LPWSTR pszAdditionalHeaders 
)
static

Definition at line 464 of file navigate.c.

466{
468
469 TRACE("(%p)->(%s %s %d %p)\n", This, debugstr_w(szURL), debugstr_w(szHeaders),
470 dwReserved, pszAdditionalHeaders);
471
472 if(This->headers) {
473 int size = (lstrlenW(This->headers)+1)*sizeof(WCHAR);
474 *pszAdditionalHeaders = CoTaskMemAlloc(size);
475 memcpy(*pszAdditionalHeaders, This->headers, size);
476 }
477
478 return S_OK;
479}
#define lstrlenW
Definition: compat.h:750
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: ifs.c:426

◆ HttpNegotiate_OnResponse()

static HRESULT WINAPI HttpNegotiate_OnResponse ( IHttpNegotiate iface,
DWORD  dwResponseCode,
LPCWSTR  szResponseHeaders,
LPCWSTR  szRequestHeaders,
LPWSTR pszAdditionalRequestHeaders 
)
static

Definition at line 481 of file navigate.c.

484{
486 TRACE("(%p)->(%d %s %s %p)\n", This, dwResponseCode, debugstr_w(szResponseHeaders),
487 debugstr_w(szRequestHeaders), pszAdditionalRequestHeaders);
488 return S_OK;
489}

◆ HttpNegotiate_QueryInterface()

static HRESULT WINAPI HttpNegotiate_QueryInterface ( IHttpNegotiate iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 445 of file navigate.c.

447{
449 return IBindStatusCallback_QueryInterface(&This->IBindStatusCallback_iface, riid, ppv);
450}

◆ HttpNegotiate_Release()

static ULONG WINAPI HttpNegotiate_Release ( IHttpNegotiate iface)
static

Definition at line 458 of file navigate.c.

459{
461 return IBindStatusCallback_Release(&This->IBindStatusCallback_iface);
462}

◆ HttpSecurity_AddRef()

static ULONG WINAPI HttpSecurity_AddRef ( IHttpSecurity iface)
static

Definition at line 510 of file navigate.c.

511{
513 return IBindStatusCallback_AddRef(&This->IBindStatusCallback_iface);
514}
static BindStatusCallback * impl_from_IHttpSecurity(IHttpSecurity *iface)
Definition: navigate.c:499

◆ HttpSecurity_GetWindow()

static HRESULT WINAPI HttpSecurity_GetWindow ( IHttpSecurity iface,
REFGUID  rguidReason,
HWND phwnd 
)
static

Definition at line 522 of file navigate.c.

523{
525
526 TRACE("(%p)->(%s %p)\n", This, debugstr_guid(rguidReason), phwnd);
527
528 if(!This->doc_host)
529 return E_FAIL;
530
531 *phwnd = This->doc_host->frame_hwnd;
532 return S_OK;
533}

◆ HttpSecurity_OnSecurityProblem()

static HRESULT WINAPI HttpSecurity_OnSecurityProblem ( IHttpSecurity iface,
DWORD  dwProblem 
)
static

Definition at line 535 of file navigate.c.

536{
538 FIXME("(%p)->(%u)\n", This, dwProblem);
539 return S_FALSE;
540}

◆ HttpSecurity_QueryInterface()

static HRESULT WINAPI HttpSecurity_QueryInterface ( IHttpSecurity iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 504 of file navigate.c.

505{
507 return IBindStatusCallback_QueryInterface(&This->IBindStatusCallback_iface, riid, ppv);
508}

◆ HttpSecurity_Release()

static ULONG WINAPI HttpSecurity_Release ( IHttpSecurity iface)
static

Definition at line 516 of file navigate.c.

517{
519 return IBindStatusCallback_Release(&This->IBindStatusCallback_iface);
520}

◆ impl_from_IBindStatusCallback()

◆ impl_from_IHlinkFrame()

static HlinkFrame * impl_from_IHlinkFrame ( IHlinkFrame iface)
inlinestatic

◆ impl_from_IHttpNegotiate()

static BindStatusCallback * impl_from_IHttpNegotiate ( IHttpNegotiate iface)
inlinestatic

◆ impl_from_IHttpSecurity()

static BindStatusCallback * impl_from_IHttpSecurity ( IHttpSecurity iface)
inlinestatic

◆ impl_from_ITargetFrame()

◆ impl_from_ITargetFrame2()

◆ impl_from_ITargetFramePriv2()

◆ impl_from_IWebBrowserPriv2IE9()

static HlinkFrame * impl_from_IWebBrowserPriv2IE9 ( IWebBrowserPriv2IE9 iface)
inlinestatic

Definition at line 1627 of file navigate.c.

1628{
1629 return CONTAINING_RECORD(iface, HlinkFrame, IWebBrowserPriv2IE9_iface);
1630}

Referenced by WebBrowserPriv2IE9_AddRef(), WebBrowserPriv2IE9_NavigateWithBindCtx2(), WebBrowserPriv2IE9_QueryInterface(), and WebBrowserPriv2IE9_Release().

◆ navigate_bsc()

static HRESULT navigate_bsc ( DocHost This,
BindStatusCallback bsc,
IMoniker mon 
)
static

Definition at line 871 of file navigate.c.

872{
873 VARIANT_BOOL cancel = VARIANT_FALSE;
875 IBindCtx *bindctx;
877
878 set_doc_state(This, READYSTATE_LOADING);
879
880 if(bsc->post_data) {
881 post_data = SafeArrayCreateVector(VT_UI1, 0, bsc->post_data_len);
882 memcpy(post_data->pvData, post_data, bsc->post_data_len);
883 }
884
885 on_before_navigate2(This, bsc->url, post_data, bsc->headers, &cancel);
886 if(post_data)
888 if(cancel) {
889 FIXME("Navigation canceled\n");
890 return S_OK;
891 }
892
894 This->busy = VARIANT_FALSE;
895
896 on_commandstate_change(This, CSC_NAVIGATEBACK, FALSE);
897 on_commandstate_change(This, CSC_NAVIGATEFORWARD, FALSE);
898
899 if(This->document)
901
902 CreateAsyncBindCtx(0, &bsc->IBindStatusCallback_iface, 0, &bindctx);
903
904 if(This->frame)
905 IOleInPlaceFrame_EnableModeless(This->frame, FALSE);
906
907 hres = bind_to_object(This, mon, bsc->url, bindctx, &bsc->IBindStatusCallback_iface);
908
909 if(This->frame)
910 IOleInPlaceFrame_EnableModeless(This->frame, TRUE);
911
912 IBindCtx_Release(bindctx);
913
914 return hres;
915}
void on_commandstate_change(DocHost *doc_host, LONG command, BOOL enable)
Definition: dochost.c:83
void deactivate_document(DocHost *This)
Definition: dochost.c:510
static IBindStatusCallbackEx bsc
Definition: url.c:2150
static BOOL bind_to_object
Definition: url.c:173
HRESULT WINAPI CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *callback, IEnumFORMATETC *format, IBindCtx **pbind)
Definition: bindctx.c:899

Referenced by navigate_bsc_proc(), and navigate_hlink().

◆ navigate_bsc_proc()

static void navigate_bsc_proc ( DocHost This,
task_header_t t 
)
static

Definition at line 930 of file navigate.c.

931{
933
934 if(!This->hwnd)
936
937 navigate_bsc(This, task->bsc, NULL);
938}
void create_doc_view_hwnd(DocHost *This)
Definition: dochost.c:479
static HRESULT navigate_bsc(DocHost *This, BindStatusCallback *bsc, IMoniker *mon)
Definition: navigate.c:871
BindStatusCallback * bsc
Definition: navigate.c:919

Referenced by navigate_url().

◆ navigate_bsc_task_destr()

static void navigate_bsc_task_destr ( task_header_t t)
static

Definition at line 922 of file navigate.c.

923{
925
926 IBindStatusCallback_Release(&task->bsc->IBindStatusCallback_iface);
927 heap_free(task);
928}
IBindStatusCallback IBindStatusCallback_iface
Definition: navigate.c:43

Referenced by navigate_url().

◆ navigate_history()

static HRESULT navigate_history ( DocHost This,
unsigned  travellog_pos 
)
static

Definition at line 1090 of file navigate.c.

1091{
1092 IPersistHistory *persist_history;
1095 HRESULT hres;
1096
1097 if(!This->doc_navigate) {
1098 FIXME("unsupported doc_navigate FALSE\n");
1099 return E_NOTIMPL;
1100 }
1101
1102 This->travellog.loading_pos = travellog_pos;
1103 entry = This->travellog.log + This->travellog.loading_pos;
1104
1106
1107 if(!entry->stream)
1108 return async_doc_navigate(This, entry->url, NULL, NULL, 0, FALSE);
1109
1110 hres = IUnknown_QueryInterface(This->document, &IID_IPersistHistory, (void**)&persist_history);
1111 if(FAILED(hres))
1112 return hres;
1113
1114 li.QuadPart = 0;
1115 IStream_Seek(entry->stream, li, STREAM_SEEK_SET, NULL);
1116
1117 hres = IPersistHistory_LoadHistory(persist_history, entry->stream, NULL);
1118 IPersistHistory_Release(persist_history);
1119 return hres;
1120}
void update_navigation_commands(DocHost *dochost)
Definition: dochost.c:106
LARGE_INTEGER li
Definition: fxtimerapi.cpp:235
static HRESULT async_doc_navigate(DocHost *This, LPCWSTR url, LPCWSTR headers, PBYTE post_data, ULONG post_data_size, BOOL async_notif)
Definition: navigate.c:819
uint32_t entry
Definition: isohybrid.c:63
Definition: ieframe.h:104
LONGLONG QuadPart
Definition: typedefs.h:114

Referenced by go_back(), and go_forward().

◆ navigate_hlink()

static HRESULT navigate_hlink ( DocHost This,
IMoniker mon,
IBindCtx bindctx,
IBindStatusCallback callback 
)
static

Definition at line 1011 of file navigate.c.

1013{
1017 ULONG post_data_len = 0;
1019 BINDINFO bindinfo;
1020 DWORD bindf = 0;
1021 HRESULT hres;
1022
1023 TRACE("\n");
1024
1025 hres = IMoniker_GetDisplayName(mon, 0, NULL, &url);
1026 if(FAILED(hres))
1027 FIXME("GetDisplayName failed: %08x\n", hres);
1028
1029 hres = IBindStatusCallback_QueryInterface(callback, &IID_IHttpNegotiate,
1030 (void**)&http_negotiate);
1031 if(SUCCEEDED(hres)) {
1032 static const WCHAR null_string[] = {0};
1033
1034 IHttpNegotiate_BeginningTransaction(http_negotiate, null_string, null_string, 0,
1035 &headers);
1036 IHttpNegotiate_Release(http_negotiate);
1037 }
1038
1039 memset(&bindinfo, 0, sizeof(bindinfo));
1040 bindinfo.cbSize = sizeof(bindinfo);
1041
1042 hres = IBindStatusCallback_GetBindInfo(callback, &bindf, &bindinfo);
1043 dump_BINDINFO(&bindinfo);
1044 if(bindinfo.dwBindVerb == BINDVERB_POST) {
1045 post_data_len = bindinfo.cbstgmedData;
1046 if(post_data_len)
1047 post_data = bindinfo.stgmedData.u.hGlobal;
1048 }
1049
1050 if(This->doc_navigate) {
1051 hres = async_doc_navigate(This, url, headers, post_data, post_data_len, FALSE);
1052 }else {
1053 bsc = create_callback(This, url, post_data, post_data_len, headers);
1054 hres = navigate_bsc(This, bsc, mon);
1055 IBindStatusCallback_Release(&bsc->IBindStatusCallback_iface);
1056 }
1057
1060 ReleaseBindInfo(&bindinfo);
1061
1062 return hres;
1063}
static void dump_BINDINFO(BINDINFO *bi)
Definition: navigate.c:58
static BindStatusCallback * create_callback(DocHost *doc_host, LPCWSTR url, PBYTE post_data, ULONG post_data_len, LPCWSTR headers)
Definition: navigate.c:550
static IPrintDialogCallback callback
Definition: printdlg.c:326
static DWORD bindf
Definition: protocol.c:70
static IHttpNegotiate2 http_negotiate
Definition: protocol.c:395
BYTE * PBYTE
Definition: pedump.c:66
#define memset(x, y, z)
Definition: compat.h:39
uint32_t ULONG
Definition: typedefs.h:59
void WINAPI ReleaseBindInfo(BINDINFO *pbindinfo)
Definition: urlmon_main.c:572

Referenced by HlinkFrame_Navigate(), and TargetFramePriv2_AggregatedNavigation2().

◆ navigate_url()

HRESULT navigate_url ( DocHost This,
LPCWSTR  url,
const VARIANT Flags,
const VARIANT TargetFrameName,
VARIANT PostData,
VARIANT Headers 
)

Definition at line 941 of file navigate.c.

943{
944 SAFEARRAY *post_array = NULL;
946 ULONG post_data_len = 0;
948 HRESULT hres = S_OK;
949
950 TRACE("navigating to %s\n", debugstr_w(url));
951
952 if((Flags && V_VT(Flags) != VT_EMPTY && V_VT(Flags) != VT_ERROR)
953 || (TargetFrameName && V_VT(TargetFrameName) != VT_EMPTY && V_VT(TargetFrameName) != VT_ERROR))
954 FIXME("Unsupported args (Flags %s; TargetFrameName %s)\n", debugstr_variant(Flags), debugstr_variant(TargetFrameName));
955
956 if(PostData) {
957 if(V_VT(PostData) & VT_ARRAY)
958 post_array = V_ISBYREF(PostData) ? *V_ARRAYREF(PostData) : V_ARRAY(PostData);
959 else
960 WARN("Invalid post data %s\n", debugstr_variant(PostData));
961 }
962
963 if(post_array) {
964 LONG elem_max;
965 SafeArrayAccessData(post_array, (void**)&post_data);
966 SafeArrayGetUBound(post_array, 1, &elem_max);
967 post_data_len = (elem_max+1) * SafeArrayGetElemsize(post_array);
968 }
969
970 if(Headers && V_VT(Headers) == VT_BSTR) {
971 headers = V_BSTR(Headers);
972 TRACE("Headers: %s\n", debugstr_w(headers));
973 }
974
975 set_doc_state(This, READYSTATE_LOADING);
976 This->ready_state = READYSTATE_LOADING;
977
978 if(This->doc_navigate) {
980
981 if(PathIsURLW(url)) {
982 new_url[0] = 0;
983 }else {
984 DWORD size;
985
986 size = ARRAY_SIZE(new_url);
987 hres = UrlApplySchemeW(url, new_url, &size,
989 if(FAILED(hres)) {
990 WARN("UrlApplyScheme failed: %08x\n", hres);
991 new_url[0] = 0;
992 }
993 }
994
995 hres = async_doc_navigate(This, *new_url ? new_url : url, headers, post_data,
996 post_data_len, TRUE);
997 }else {
999
1000 task = heap_alloc(sizeof(*task));
1001 task->bsc = create_callback(This, url, post_data, post_data_len, headers);
1003 }
1004
1005 if(post_data)
1006 SafeArrayUnaccessData(post_array);
1007
1008 return hres;
1009}
@ VT_ERROR
Definition: compat.h:2305
HRESULT WINAPI SafeArrayGetUBound(SAFEARRAY *psa, UINT nDim, LONG *plUbound)
Definition: safearray.c:1033
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
Definition: safearray.c:1137
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
Definition: safearray.c:1168
UINT WINAPI SafeArrayGetElemsize(SAFEARRAY *psa)
Definition: safearray.c:1114
static void navigate_bsc_proc(DocHost *This, task_header_t *t)
Definition: navigate.c:930
static void navigate_bsc_task_destr(task_header_t *t)
Definition: navigate.c:922
static const char * debugstr_variant(const VARIANT *var)
Definition: container.c:46
#define V_ARRAYREF(A)
Definition: oleauto.h:223
#define V_ISBYREF(A)
Definition: oleauto.h:217
task_header_t header
Definition: navigate.c:918
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170

Referenced by go_home().

◆ notify_download_state()

void notify_download_state ( DocHost dochost,
BOOL  is_downloading 
)

Definition at line 153 of file navigate.c.

154{
155 DISPPARAMS dwl_dp = {NULL};
156 TRACE("(%x)\n", is_downloading);
157 dochost->busy = is_downloading ? VARIANT_TRUE : VARIANT_FALSE;
158 call_sink(dochost->cps.wbe2, is_downloading ? DISPID_DOWNLOADBEGIN : DISPID_DOWNLOADCOMPLETE, &dwl_dp);
159}
VARIANT_BOOL busy
Definition: ieframe.h:155
#define DISPID_DOWNLOADCOMPLETE
Definition: webchild.h:39
#define DISPID_DOWNLOADBEGIN
Definition: webchild.h:41

Referenced by BindStatusCallback_OnStopBinding(), ClOleCommandTarget_Exec(), and navigate_bsc().

◆ on_before_navigate2()

static void on_before_navigate2 ( DocHost This,
LPCWSTR  url,
SAFEARRAY post_data,
LPWSTR  headers,
VARIANT_BOOL cancel 
)
static

Definition at line 578 of file navigate.c.

579{
580 VARIANT var_url, var_flags, var_frame_name, var_post_data, var_post_data2, var_headers;
581 DISPPARAMS dispparams;
584 DWORD file_path_len = ARRAY_SIZE(file_path);
585
586 dispparams.cArgs = 7;
587 dispparams.cNamedArgs = 0;
588 dispparams.rgdispidNamedArgs = NULL;
589 dispparams.rgvarg = params;
590
592 V_BOOLREF(params) = cancel;
593
595 V_VARIANTREF(params+1) = &var_headers;
596 V_VT(&var_headers) = VT_BSTR;
597 V_BSTR(&var_headers) = headers;
598
600 V_VARIANTREF(params+2) = &var_post_data2;
601 V_VT(&var_post_data2) = (VT_BYREF|VT_VARIANT);
602 V_VARIANTREF(&var_post_data2) = &var_post_data;
603
604 if(post_data) {
605 V_VT(&var_post_data) = VT_UI1|VT_ARRAY;
606 V_ARRAY(&var_post_data) = post_data;
607 }else {
608 V_VT(&var_post_data) = VT_EMPTY;
609 }
610
612 V_VARIANTREF(params+3) = &var_frame_name;
613 V_VT(&var_frame_name) = VT_BSTR;
614 V_BSTR(&var_frame_name) = NULL;
615
617 V_VARIANTREF(params+4) = &var_flags;
618 V_VT(&var_flags) = VT_I4;
619 V_I4(&var_flags) = 0;
620
622 V_VARIANTREF(params+5) = &var_url;
623 V_VT(&var_url) = VT_BSTR;
624 if(PathCreateFromUrlW(url, file_path, &file_path_len, 0) == S_OK)
625 V_BSTR(&var_url) = SysAllocString(file_path);
626 else
627 V_BSTR(&var_url) = SysAllocString(url);
628
629 V_VT(params+6) = (VT_DISPATCH);
630 V_DISPATCH(params+6) = (IDispatch*)This->wb;
631
632 call_sink(This->cps.wbe2, DISPID_BEFORENAVIGATE2, &dispparams);
633
634 SysFreeString(V_BSTR(&var_url));
635}
HRESULT WINAPI PathCreateFromUrlW(LPCWSTR pszUrl, LPWSTR pszPath, LPDWORD pcchPath, DWORD dwReserved)
Definition: path.c:3355
#define DISPID_BEFORENAVIGATE2
Definition: exdispid.h:43
TCHAR file_path[MAX_PATH]
Definition: sndrec32.cpp:57

Referenced by async_doc_navigate(), doc_navigate_proc(), and navigate_bsc().

◆ set_dochost_url()

HRESULT set_dochost_url ( DocHost This,
const WCHAR url 
)

Definition at line 134 of file navigate.c.

135{
136 WCHAR *new_url;
137
138 if(url) {
139 new_url = heap_strdupW(url);
140 if(!new_url)
141 return E_OUTOFMEMORY;
142 }else {
143 new_url = NULL;
144 }
145
146 heap_free(This->url);
147 This->url = new_url;
148
149 This->container_vtbl->set_url(This, This->url);
150 return S_OK;
151}
static WCHAR * heap_strdupW(const WCHAR *str)
Definition: propsheet.c:178

Referenced by bind_to_object(), BindStatusCallback_OnProgress(), DocObjectService_FireNavigateComplete2(), and html_window_navigate().

◆ set_status_text()

static void set_status_text ( BindStatusCallback This,
ULONG  statuscode,
LPCWSTR  str 
)
static

Definition at line 102 of file navigate.c.

103{
105 DISPPARAMS dispparams = {&arg, NULL, 1, 0};
108
109 if(!This->doc_host)
110 return;
111
112 TRACE("(%p, %d, %s)\n", This, statuscode, debugstr_w(str));
113 buffer[0] = 0;
114 if (statuscode && str && *str) {
115 fmt[0] = 0;
116 /* the format string must have one "%s" for the str */
119 }
120
121 V_VT(&arg) = VT_BSTR;
123 TRACE("=> %s\n", debugstr_w(V_BSTR(&arg)));
124
125 call_sink(This->doc_host->cps.wbe2, DISPID_STATUSTEXTCHANGE, &dispparams);
126
127 if(This->doc_host->frame)
128 IOleInPlaceFrame_SetStatusText(This->doc_host->frame, buffer);
129
131
132}
#define IDS_STATUSFMT_MAXLEN
Definition: resource.h:81
#define IDS_STATUSFMT_FIRST
Definition: resource.h:76
#define swprintf
Definition: precomp.h:40
GLuint buffer
Definition: glext.h:5915
HINSTANCE ieframe_instance
Definition: ieframe_main.c:32
const WCHAR * str
Definition: dsound.c:943
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
Definition: variant.c:648
#define DISPID_STATUSTEXTCHANGE
Definition: webchild.h:37
void * arg
Definition: msvc.h:10
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)

Referenced by BindStatusCallback_OnProgress(), and BindStatusCallback_OnStopBinding().

◆ TargetFrame2_AddRef()

static ULONG WINAPI TargetFrame2_AddRef ( ITargetFrame2 iface)
static

Definition at line 1406 of file navigate.c.

1407{
1409 return IUnknown_AddRef(This->outer);
1410}
static HlinkFrame * impl_from_ITargetFrame2(ITargetFrame2 *iface)
Definition: navigate.c:1395

◆ TargetFrame2_FindFrame()

static HRESULT WINAPI TargetFrame2_FindFrame ( ITargetFrame2 iface,
LPCWSTR  pszTargetName,
DWORD  dwFlags,
IUnknown **  ppunkTargetFrame 
)
static

Definition at line 1488 of file navigate.c.

1489{
1491 FIXME("(%p)->(%s %x %p)\n", This, debugstr_w(pszTargetName), dwFlags, ppunkTargetFrame);
1492 return E_NOTIMPL;
1493}
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176

◆ TargetFrame2_GetFrameMargins()

static HRESULT WINAPI TargetFrame2_GetFrameMargins ( ITargetFrame2 iface,
DWORD pdwWidth,
DWORD pdwHeight 
)
static

Definition at line 1481 of file navigate.c.

1482{
1484 FIXME("(%p)->(%p %p)\n", This, pdwWidth, pdwHeight);
1485 return E_NOTIMPL;
1486}

◆ TargetFrame2_GetFrameName()

static HRESULT WINAPI TargetFrame2_GetFrameName ( ITargetFrame2 iface,
LPWSTR ppszFrameName 
)
static

Definition at line 1425 of file navigate.c.

1426{
1428 FIXME("(%p)->(%p)\n", This, ppszFrameName);
1429 return E_NOTIMPL;
1430}

◆ TargetFrame2_GetFrameOptions()

static HRESULT WINAPI TargetFrame2_GetFrameOptions ( ITargetFrame2 iface,
DWORD pdwFlags 
)
static

Definition at line 1467 of file navigate.c.

1468{
1470 FIXME("(%p)->(%p)\n", This, pdwFlags);
1471 return E_NOTIMPL;
1472}

◆ TargetFrame2_GetFramesContainer()

static HRESULT WINAPI TargetFrame2_GetFramesContainer ( ITargetFrame2 iface,
IOleContainer **  ppContainer 
)
static

Definition at line 1453 of file navigate.c.

1454{
1456 FIXME("(%p)->(%p)\n", This, ppContainer);
1457 return E_NOTIMPL;
1458}

◆ TargetFrame2_GetFrameSrc()

static HRESULT WINAPI TargetFrame2_GetFrameSrc ( ITargetFrame2 iface,
LPWSTR ppszFrameSrc 
)
static

Definition at line 1446 of file navigate.c.

1447{
1449 FIXME("(%p)->()\n", This);
1450 return E_NOTIMPL;
1451}

◆ TargetFrame2_GetParentFrame()

static HRESULT WINAPI TargetFrame2_GetParentFrame ( ITargetFrame2 iface,
IUnknown **  ppunkParent 
)
static

Definition at line 1432 of file navigate.c.

1433{
1435 FIXME("(%p)->(%p)\n", This, ppunkParent);
1436 return E_NOTIMPL;
1437}

◆ TargetFrame2_GetTargetAlias()

static HRESULT WINAPI TargetFrame2_GetTargetAlias ( ITargetFrame2 iface,
LPCWSTR  pszTargetName,
LPWSTR ppszTargetAlias 
)
static

Definition at line 1495 of file navigate.c.

1496{
1498 FIXME("(%p)->(%s %p)\n", This, debugstr_w(pszTargetName), ppszTargetAlias);
1499 return E_NOTIMPL;
1500}

◆ TargetFrame2_QueryInterface()

static HRESULT WINAPI TargetFrame2_QueryInterface ( ITargetFrame2 iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1400 of file navigate.c.

1401{
1403 return IUnknown_QueryInterface(This->outer, riid, ppv);
1404}

◆ TargetFrame2_Release()

static ULONG WINAPI TargetFrame2_Release ( ITargetFrame2 iface)
static

Definition at line 1412 of file navigate.c.

1413{
1415 return IUnknown_Release(This->outer);
1416}

◆ TargetFrame2_SetFrameMargins()

static HRESULT WINAPI TargetFrame2_SetFrameMargins ( ITargetFrame2 iface,
DWORD  dwWidth,
DWORD  dwHeight 
)
static

Definition at line 1474 of file navigate.c.

1475{
1477 FIXME("(%p)->(%d %d)\n", This, dwWidth, dwHeight);
1478 return E_NOTIMPL;
1479}
static const WCHAR dwWidth[]
Definition: provider.c:62
static const WCHAR dwHeight[]
Definition: provider.c:63

◆ TargetFrame2_SetFrameName()

static HRESULT WINAPI TargetFrame2_SetFrameName ( ITargetFrame2 iface,
LPCWSTR  pszFrameName 
)
static

Definition at line 1418 of file navigate.c.

1419{
1421 FIXME("(%p)->(%s)\n", This, debugstr_w(pszFrameName));
1422 return E_NOTIMPL;
1423}

◆ TargetFrame2_SetFrameOptions()

static HRESULT WINAPI TargetFrame2_SetFrameOptions ( ITargetFrame2 iface,
DWORD  dwFlags 
)
static

Definition at line 1460 of file navigate.c.

1461{
1463 FIXME("(%p)->(%x)\n", This, dwFlags);
1464 return E_NOTIMPL;
1465}

◆ TargetFrame2_SetFrameSrc()

static HRESULT WINAPI TargetFrame2_SetFrameSrc ( ITargetFrame2 iface,
LPCWSTR  pszFrameSrc 
)
static

Definition at line 1439 of file navigate.c.

1440{
1442 FIXME("(%p)->(%s)\n", This, debugstr_w(pszFrameSrc));
1443 return E_NOTIMPL;
1444}

◆ TargetFrame_AddRef()

static ULONG WINAPI TargetFrame_AddRef ( ITargetFrame iface)
static

Definition at line 1263 of file navigate.c.

1264{
1266 return IUnknown_AddRef(This->outer);
1267}
static HlinkFrame * impl_from_ITargetFrame(ITargetFrame *iface)
Definition: navigate.c:1252

◆ TargetFrame_FindFrame()

static HRESULT WINAPI TargetFrame_FindFrame ( ITargetFrame iface,
LPCWSTR  pszTargetName,
IUnknown ppunkContextFrame,
DWORD  dwFlags,
IUnknown **  ppunkTargetFrame 
)
static

Definition at line 1296 of file navigate.c.

1298{
1300 FIXME("(%p)->(%s %p %x %p)\n", This, debugstr_w(pszTargetName),
1301 ppunkContextFrame, dwFlags, ppunkTargetFrame);
1302 return E_NOTIMPL;
1303}

◆ TargetFrame_GetFrameMargins()

static HRESULT WINAPI TargetFrame_GetFrameMargins ( ITargetFrame iface,
DWORD pdwWidth,
DWORD pdwHeight 
)
static

Definition at line 1347 of file navigate.c.

1348{
1350 FIXME("(%p)->(%p %p)\n", This, pdwWidth, pdwHeight);
1351 return E_NOTIMPL;
1352}

◆ TargetFrame_GetFrameName()

static HRESULT WINAPI TargetFrame_GetFrameName ( ITargetFrame iface,
LPWSTR ppszFrameName 
)
static

Definition at line 1282 of file navigate.c.

1283{
1285 FIXME("(%p)->(%p)\n", This, ppszFrameName);
1286 return E_NOTIMPL;
1287}

◆ TargetFrame_GetFrameOptions()

static HRESULT WINAPI TargetFrame_GetFrameOptions ( ITargetFrame iface,
DWORD pdwFlags 
)
static

Definition at line 1333 of file navigate.c.

1334{
1336 FIXME("(%p)->(%p)\n", This, pdwFlags);
1337 return E_NOTIMPL;
1338}

◆ TargetFrame_GetFramesContainer()

static HRESULT WINAPI TargetFrame_GetFramesContainer ( ITargetFrame iface,
IOleContainer **  ppContainer 
)
static

Definition at line 1319 of file navigate.c.

1320{
1322 FIXME("(%p)->(%p)\n", This, ppContainer);
1323 return E_NOTIMPL;
1324}

◆ TargetFrame_GetFrameSrc()

static HRESULT WINAPI TargetFrame_GetFrameSrc ( ITargetFrame iface,
LPWSTR ppszFrameSrc 
)
static

Definition at line 1312 of file navigate.c.

1313{
1315 FIXME("(%p)->(%p)\n", This, ppszFrameSrc);
1316 return E_NOTIMPL;
1317}

◆ TargetFrame_GetParentFrame()

static HRESULT WINAPI TargetFrame_GetParentFrame ( ITargetFrame iface,
IUnknown **  ppunkParent 
)
static

Definition at line 1289 of file navigate.c.

1290{
1292 FIXME("(%p)->(%p)\n", This, ppunkParent);
1293 return E_NOTIMPL;
1294}

◆ TargetFrame_OnChildFrameActivate()

static HRESULT WINAPI TargetFrame_OnChildFrameActivate ( ITargetFrame iface,
IUnknown pUnkChildFrame 
)
static

Definition at line 1361 of file navigate.c.

1362{
1364 FIXME("(%p)->(%p)\n", This, pUnkChildFrame);
1365 return E_NOTIMPL;
1366}

◆ TargetFrame_OnChildFrameDeactivate()

static HRESULT WINAPI TargetFrame_OnChildFrameDeactivate ( ITargetFrame iface,
IUnknown pUnkChildFrame 
)
static

Definition at line 1368 of file navigate.c.

1369{
1371 FIXME("(%p)->(%p)\n", This, pUnkChildFrame);
1372 return E_NOTIMPL;
1373}

◆ TargetFrame_QueryInterface()

static HRESULT WINAPI TargetFrame_QueryInterface ( ITargetFrame iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1257 of file navigate.c.

1258{
1260 return IUnknown_QueryInterface(This->outer, riid, ppv);
1261}

◆ TargetFrame_Release()

static ULONG WINAPI TargetFrame_Release ( ITargetFrame iface)
static

Definition at line 1269 of file navigate.c.

1270{
1272 return IUnknown_Release(This->outer);
1273}

◆ TargetFrame_RemoteNavigate()

static HRESULT WINAPI TargetFrame_RemoteNavigate ( ITargetFrame iface,
ULONG  cLength,
ULONG pulData 
)
static

Definition at line 1354 of file navigate.c.

1355{
1357 FIXME("(%p)->(%u %p)\n", This, cLength, pulData);
1358 return E_NOTIMPL;
1359}

◆ TargetFrame_SetFrameMargins()

static HRESULT WINAPI TargetFrame_SetFrameMargins ( ITargetFrame iface,
DWORD  dwWidth,
DWORD  dwHeight 
)
static

Definition at line 1340 of file navigate.c.

1341{
1343 FIXME("(%p)->(%d %d)\n", This, dwWidth, dwHeight);
1344 return E_NOTIMPL;
1345}

◆ TargetFrame_SetFrameName()

static HRESULT WINAPI TargetFrame_SetFrameName ( ITargetFrame iface,
LPCWSTR  pszFrameName 
)
static

Definition at line 1275 of file navigate.c.

1276{
1278 FIXME("(%p)->(%s)\n", This, debugstr_w(pszFrameName));
1279 return E_NOTIMPL;
1280}

◆ TargetFrame_SetFrameOptions()

static HRESULT WINAPI TargetFrame_SetFrameOptions ( ITargetFrame iface,
DWORD  dwFlags 
)
static

Definition at line 1326 of file navigate.c.

1327{
1329 FIXME("(%p)->(%x)\n", This, dwFlags);
1330 return E_NOTIMPL;
1331}

◆ TargetFrame_SetFrameSrc()

static HRESULT WINAPI TargetFrame_SetFrameSrc ( ITargetFrame iface,
LPCWSTR  pszFrameSrc 
)
static

Definition at line 1305 of file navigate.c.

1306{
1308 FIXME("(%p)->(%s)\n", This, debugstr_w(pszFrameSrc));
1309 return E_NOTIMPL;
1310}

◆ TargetFramePriv2_AddRef()

static ULONG WINAPI TargetFramePriv2_AddRef ( ITargetFramePriv2 iface)
static

Definition at line 1531 of file navigate.c.

1532{
1534 return IUnknown_AddRef(This->outer);
1535}
static HlinkFrame * impl_from_ITargetFramePriv2(ITargetFramePriv2 *iface)
Definition: navigate.c:1520

◆ TargetFramePriv2_AggregatedNavigation2()

static HRESULT WINAPI TargetFramePriv2_AggregatedNavigation2 ( ITargetFramePriv2 iface,
DWORD  grfHLNF,
LPBC  pbc,
IBindStatusCallback pibsc,
LPCWSTR  pszTargetName,
IUri pUri,
LPCWSTR  pszLocation 
)
static

Definition at line 1589 of file navigate.c.

1591{
1593 IMoniker *mon;
1594 HRESULT hres;
1595
1596 TRACE("(%p)->(%x %p %p %s %p %s)\n", This, grfHLNF, pbc, pibsc, debugstr_w(pszTargetName),
1597 pUri, debugstr_w(pszLocation));
1598
1599 /*
1600 * NOTE: This is an undocumented function. It seems to be working the way it's implemented,
1601 * but I couldn't get its tests working. It's used by mshtml to load content in a new
1602 * instance of browser.
1603 */
1604
1605 hres = CreateURLMonikerEx2(NULL, pUri, &mon, 0);
1606 if(FAILED(hres))
1607 return hres;
1608
1609 hres = navigate_hlink(This->doc_host, mon, pbc, pibsc);
1610 IMoniker_Release(mon);
1611 return hres;
1612}
HRESULT WINAPI CreateURLMonikerEx2(IMoniker *pmkContext, IUri *pUri, IMoniker **ppmk, DWORD dwFlags)
Definition: umon.c:668

◆ TargetFramePriv2_FindBrowserByIndex()

static HRESULT WINAPI TargetFramePriv2_FindBrowserByIndex ( ITargetFramePriv2 iface,
DWORD  dwID,
IUnknown **  ppunkBrowser 
)
static

Definition at line 1582 of file navigate.c.

1583{
1585 FIXME("(%p)->(%d %p)\n", This, dwID, ppunkBrowser);
1586 return E_NOTIMPL;
1587}

◆ TargetFramePriv2_FindFrameDownwards()

static HRESULT WINAPI TargetFramePriv2_FindFrameDownwards ( ITargetFramePriv2 iface,
LPCWSTR  pszTargetName,
DWORD  dwFlags,
IUnknown **  ppunkTargetFrame 
)
static

Definition at line 1543 of file navigate.c.

1545{
1547 FIXME("(%p)->(%s %x %p)\n", This, debugstr_w(pszTargetName), dwFlags, ppunkTargetFrame);
1548 return E_NOTIMPL;
1549}

◆ TargetFramePriv2_FindFrameInContext()

static HRESULT WINAPI TargetFramePriv2_FindFrameInContext ( ITargetFramePriv2 iface,
LPCWSTR  pszTargetName,
IUnknown punkContextFrame,
DWORD  dwFlags,
IUnknown **  ppunkTargetFrame 
)
static

Definition at line 1551 of file navigate.c.

1553{
1555 FIXME("(%p)->(%s %p %x %p)\n", This, debugstr_w(pszTargetName), punkContextFrame, dwFlags, ppunkTargetFrame);
1556 return E_NOTIMPL;
1557}

◆ TargetFramePriv2_NavigateHack()

static HRESULT WINAPI TargetFramePriv2_NavigateHack ( ITargetFramePriv2 iface,
DWORD  grfHLNF,
LPBC  pbc,
IBindStatusCallback pibsc,
LPCWSTR  pszTargetName,
LPCWSTR  pszUrl,
LPCWSTR  pszLocation 
)
static

Definition at line 1573 of file navigate.c.

1575{
1577 FIXME("(%p)->(%x %p %p %s %s %s)\n", This, grfHLNF, pbc, pibsc, debugstr_w(pszTargetName),
1578 debugstr_w(pszUrl), debugstr_w(pszLocation));
1579 return E_NOTIMPL;
1580}

◆ TargetFramePriv2_OnChildFrameActivate()

static HRESULT WINAPI TargetFramePriv2_OnChildFrameActivate ( ITargetFramePriv2 iface,
IUnknown pUnkChildFrame 
)
static

Definition at line 1559 of file navigate.c.

1560{
1562 FIXME("(%p)->(%p)\n", This, pUnkChildFrame);
1563 return E_NOTIMPL;
1564}

◆ TargetFramePriv2_OnChildFrameDeactivate()

static HRESULT WINAPI TargetFramePriv2_OnChildFrameDeactivate ( ITargetFramePriv2 iface,
IUnknown pUnkChildFrame 
)
static

Definition at line 1566 of file navigate.c.

1567{
1569 FIXME("(%p)->(%p)\n", This, pUnkChildFrame);
1570 return E_NOTIMPL;
1571}

◆ TargetFramePriv2_QueryInterface()

static HRESULT WINAPI TargetFramePriv2_QueryInterface ( ITargetFramePriv2 iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1525 of file navigate.c.

1526{
1528 return IUnknown_QueryInterface(This->outer, riid, ppv);
1529}

◆ TargetFramePriv2_Release()

static ULONG WINAPI TargetFramePriv2_Release ( ITargetFramePriv2 iface)
static

Definition at line 1537 of file navigate.c.

1538{
1540 return IUnknown_Release(This->outer);
1541}

◆ try_application_url()

static BOOL try_application_url ( LPCWSTR  url)
static

Definition at line 638 of file navigate.c.

639{
640 SHELLEXECUTEINFOW exec_info;
641 WCHAR app[64];
642 HKEY hkey;
643 DWORD res, type;
645
646 static const WCHAR wszURLProtocol[] = {'U','R','L',' ','P','r','o','t','o','c','o','l',0};
647
648 hres = CoInternetParseUrl(url, PARSE_SCHEMA, 0, app, ARRAY_SIZE(app), NULL, 0);
649 if(FAILED(hres))
650 return FALSE;
651
652 res = RegOpenKeyW(HKEY_CLASSES_ROOT, app, &hkey);
653 if(res != ERROR_SUCCESS)
654 return FALSE;
655
656 res = RegQueryValueExW(hkey, wszURLProtocol, NULL, &type, NULL, NULL);
657 RegCloseKey(hkey);
658 if(res != ERROR_SUCCESS || type != REG_SZ)
659 return FALSE;
660
661 TRACE("opening application %s\n", debugstr_w(app));
662
663 memset(&exec_info, 0, sizeof(exec_info));
664 exec_info.cbSize = sizeof(exec_info);
665 exec_info.lpFile = url;
666 exec_info.nShow = SW_SHOW;
667
668 return ShellExecuteExW(&exec_info);
669}
HRESULT WINAPI CoInternetParseUrl(LPCWSTR pwzUrl, PARSEACTION ParseAction, DWORD dwFlags, LPWSTR pszResult, DWORD cchResult, DWORD *pcchResult, DWORD dwReserved)
Definition: internet.c:392
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2391
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10
#define SW_SHOW
Definition: winuser.h:775

Referenced by bind_to_object().

◆ WebBrowserPriv2IE9_AddRef()

static ULONG WINAPI WebBrowserPriv2IE9_AddRef ( IWebBrowserPriv2IE9 iface)
static

Definition at line 1638 of file navigate.c.

1639{
1641 return IUnknown_AddRef(This->outer);
1642}
static HlinkFrame * impl_from_IWebBrowserPriv2IE9(IWebBrowserPriv2IE9 *iface)
Definition: navigate.c:1627

◆ WebBrowserPriv2IE9_NavigateWithBindCtx2()

static HRESULT WINAPI WebBrowserPriv2IE9_NavigateWithBindCtx2 ( IWebBrowserPriv2IE9 iface,
IUri uri,
VARIANT flags,
VARIANT target_frame,
VARIANT post_data,
VARIANT headers,
IBindCtx bind_ctx,
LPOLESTR  url_fragment,
DWORD  unused 
)
static

Definition at line 1650 of file navigate.c.

1652{
1654 FIXME("(%p)->(%p %s %s %s %s %p %s)\n", This, uri, debugstr_variant(flags), debugstr_variant(target_frame),
1655 debugstr_variant(post_data), debugstr_variant(headers), bind_ctx, debugstr_w(url_fragment));
1656 return E_NOTIMPL;
1657}
GLbitfield flags
Definition: glext.h:7161
const char * uri
Definition: sec_mgr.c:1588

◆ WebBrowserPriv2IE9_QueryInterface()

static HRESULT WINAPI WebBrowserPriv2IE9_QueryInterface ( IWebBrowserPriv2IE9 iface,
REFIID  riid,
void **  ppv 
)
static

Definition at line 1632 of file navigate.c.

1633{
1635 return IUnknown_QueryInterface(This->outer, riid, ppv);
1636}

◆ WebBrowserPriv2IE9_Release()

static ULONG WINAPI WebBrowserPriv2IE9_Release ( IWebBrowserPriv2IE9 iface)
static

Definition at line 1644 of file navigate.c.

1645{
1647 return IUnknown_Release(This->outer);
1648}

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( ieframe  )

Variable Documentation

◆ BindStatusCallbackVtbl

const IBindStatusCallbackVtbl BindStatusCallbackVtbl
static
Initial value:
= {
}
static ULONG WINAPI BindStatusCallback_AddRef(IBindStatusCallback *iface)
Definition: navigate.c:196
static HRESULT WINAPI BindStatusCallback_OnObjectAvailable(IBindStatusCallback *iface, REFIID riid, IUnknown *punk)
Definition: navigate.c:416
static HRESULT WINAPI BindStatusCallback_OnDataAvailable(IBindStatusCallback *iface, DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed)
Definition: navigate.c:408
static HRESULT WINAPI BindStatusCallback_OnLowResource(IBindStatusCallback *iface, DWORD reserved)
Definition: navigate.c:249
static ULONG WINAPI BindStatusCallback_Release(IBindStatusCallback *iface)
Definition: navigate.c:206
static HRESULT WINAPI BindStatusCallback_GetBindInfo(IBindStatusCallback *iface, DWORD *grfBINDF, BINDINFO *pbindinfo)
Definition: navigate.c:386
static HRESULT WINAPI BindStatusCallback_GetPriority(IBindStatusCallback *iface, LONG *pnPriority)
Definition: navigate.c:241
static HRESULT WINAPI BindStatusCallback_OnStopBinding(IBindStatusCallback *iface, HRESULT hresult, LPCWSTR szError)
Definition: navigate.c:360
static HRESULT WINAPI BindStatusCallback_OnProgress(IBindStatusCallback *iface, ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
Definition: navigate.c:276
static HRESULT WINAPI BindStatusCallback_OnStartBinding(IBindStatusCallback *iface, DWORD dwReserved, IBinding *pbind)
Definition: navigate.c:228
static HRESULT WINAPI BindStatusCallback_QueryInterface(IBindStatusCallback *iface, REFIID riid, void **ppv)
Definition: navigate.c:166

Definition at line 426 of file navigate.c.

Referenced by create_callback(), and init_bscallback().

◆ emptyW

const WCHAR emptyW[] = {0}
static

Definition at line 40 of file navigate.c.

Referenced by BindStatusCallback_OnStopBinding(), create_taskdialog_template(), declare_prefix(), ensure_useragent(), HTMLTxtRange_get_htmlText(), navigate_new_window(), PRINTDLG_UpdatePrinterInfoTextsW(), set_status_text(), SHUnicodeToAnsiCP(), simple_callbackW(), TAB_SetupScrolling(), test_32bit_win(), test_CharToOem_OemToChar(), test_CheckNameLegalDOS8Dot3(), test_CreateAssemblyNameObject(), test_CreateFile2(), test_CreateFileW(), test_CreateUri_InvalidArgs(), test_CredMarshalCredentialA(), test_CryptCATOpen(), test_cue_banner(), test_DeleteFileW(), test_GetFullPathNameW(), test_GetProp(), test_HlinkMoniker(), test_IApplicationAssociationRegistration_QueryCurrentDefault(), test_invalid_parametersW(), test_IWbemPath_SetClassName(), test_IWbemPath_SetServer(), test_IXMLDOMDocument2(), test_menu_iteminfo(), test_NtQueryLicenseKey(), test_OleLoadPicturePath(), test_OpenConsoleW(), test_profile_string(), test_QueryAssemblyInfo(), test_RtlDosPathNameToNtPathName_U_WithStatus(), test_RtlGetFullPathName_U(), test_select(), test_set_value(), test_SetupQuerySpaceRequiredOnDriveW(), test_SHExtractIcons(), test_simpleroundtrip(), test_StrStrIW(), test_StrStrNIW(), test_StrStrNW(), test_StrStrW(), test_text_extents(), test_wcslwrupr(), test_Win32_Service(), test_WinHttpGetProxyForUrl(), test_WriteDocType(), test_wshshell(), test_XcvDataW_MonitorUI(), test_XcvDataW_PortIsValid(), VerFindFileW(), WINHELP_SetupText(), and winhttp_request_SetRequestHeader().

◆ HlinkFrameVtbl

const IHlinkFrameVtbl HlinkFrameVtbl
static
Initial value:
= {
}
static HRESULT WINAPI HlinkFrame_UpdateHlink(IHlinkFrame *iface, ULONG uHLID, IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName)
Definition: navigate.c:1232
static HRESULT WINAPI HlinkFrame_Navigate(IHlinkFrame *iface, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *pibsc, IHlink *pihlNavigate)
Definition: navigate.c:1192
static HRESULT WINAPI HlinkFrame_SetBrowseContext(IHlinkFrame *iface, IHlinkBrowseContext *pihlbc)
Definition: navigate.c:1176
static HRESULT WINAPI HlinkFrame_QueryInterface(IHlinkFrame *iface, REFIID riid, void **ppv)
Definition: navigate.c:1158
static HRESULT WINAPI HlinkFrame_OnNavigate(IHlinkFrame *iface, DWORD grfHLNF, IMoniker *pimkTarget, LPCWSTR pwzLocation, LPCWSTR pwzFriendlyName, DWORD dwreserved)
Definition: navigate.c:1223
static ULONG WINAPI HlinkFrame_Release(IHlinkFrame *iface)
Definition: navigate.c:1170
static HRESULT WINAPI HlinkFrame_GetBrowseContext(IHlinkFrame *iface, IHlinkBrowseContext **ppihlbc)
Definition: navigate.c:1184
static ULONG WINAPI HlinkFrame_AddRef(IHlinkFrame *iface)
Definition: navigate.c:1164

Definition at line 1241 of file navigate.c.

Referenced by HlinkFrame_Init().

◆ HttpNegotiateVtbl

const IHttpNegotiateVtbl HttpNegotiateVtbl
static
Initial value:
= {
}
static ULONG WINAPI HttpNegotiate_AddRef(IHttpNegotiate *iface)
Definition: navigate.c:452
static HRESULT WINAPI HttpNegotiate_BeginningTransaction(IHttpNegotiate *iface, LPCWSTR szURL, LPCWSTR szHeaders, DWORD dwReserved, LPWSTR *pszAdditionalHeaders)
Definition: navigate.c:464
static ULONG WINAPI HttpNegotiate_Release(IHttpNegotiate *iface)
Definition: navigate.c:458
static HRESULT WINAPI HttpNegotiate_OnResponse(IHttpNegotiate *iface, DWORD dwResponseCode, LPCWSTR szResponseHeaders, LPCWSTR szRequestHeaders, LPWSTR *pszAdditionalRequestHeaders)
Definition: navigate.c:481
static HRESULT WINAPI HttpNegotiate_QueryInterface(IHttpNegotiate *iface, REFIID riid, void **ppv)
Definition: navigate.c:445

Definition at line 491 of file navigate.c.

Referenced by create_callback().

◆ HttpSecurityVtbl

const IHttpSecurityVtbl HttpSecurityVtbl
static
Initial value:
= {
}
static HRESULT WINAPI HttpSecurity_QueryInterface(IHttpSecurity *iface, REFIID riid, void **ppv)
Definition: navigate.c:504
static HRESULT WINAPI HttpSecurity_GetWindow(IHttpSecurity *iface, REFGUID rguidReason, HWND *phwnd)
Definition: navigate.c:522
static ULONG WINAPI HttpSecurity_Release(IHttpSecurity *iface)
Definition: navigate.c:516
static HRESULT WINAPI HttpSecurity_OnSecurityProblem(IHttpSecurity *iface, DWORD dwProblem)
Definition: navigate.c:535
static ULONG WINAPI HttpSecurity_AddRef(IHttpSecurity *iface)
Definition: navigate.c:510

Definition at line 542 of file navigate.c.

Referenced by create_callback().

◆ TargetFrame2Vtbl

const ITargetFrame2Vtbl TargetFrame2Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI TargetFrame2_GetFrameName(ITargetFrame2 *iface, LPWSTR *ppszFrameName)
Definition: navigate.c:1425
static HRESULT WINAPI TargetFrame2_GetFrameOptions(ITargetFrame2 *iface, DWORD *pdwFlags)
Definition: navigate.c:1467
static HRESULT WINAPI TargetFrame2_QueryInterface(ITargetFrame2 *iface, REFIID riid, void **ppv)
Definition: navigate.c:1400
static HRESULT WINAPI TargetFrame2_SetFrameMargins(ITargetFrame2 *iface, DWORD dwWidth, DWORD dwHeight)
Definition: navigate.c:1474
static HRESULT WINAPI TargetFrame2_SetFrameSrc(ITargetFrame2 *iface, LPCWSTR pszFrameSrc)
Definition: navigate.c:1439
static HRESULT WINAPI TargetFrame2_GetFrameMargins(ITargetFrame2 *iface, DWORD *pdwWidth, DWORD *pdwHeight)
Definition: navigate.c:1481
static ULONG WINAPI TargetFrame2_Release(ITargetFrame2 *iface)
Definition: navigate.c:1412
static HRESULT WINAPI TargetFrame2_GetFrameSrc(ITargetFrame2 *iface, LPWSTR *ppszFrameSrc)
Definition: navigate.c:1446
static HRESULT WINAPI TargetFrame2_GetTargetAlias(ITargetFrame2 *iface, LPCWSTR pszTargetName, LPWSTR *ppszTargetAlias)
Definition: navigate.c:1495
static HRESULT WINAPI TargetFrame2_GetFramesContainer(ITargetFrame2 *iface, IOleContainer **ppContainer)
Definition: navigate.c:1453
static ULONG WINAPI TargetFrame2_AddRef(ITargetFrame2 *iface)
Definition: navigate.c:1406
static HRESULT WINAPI TargetFrame2_GetParentFrame(ITargetFrame2 *iface, IUnknown **ppunkParent)
Definition: navigate.c:1432
static HRESULT WINAPI TargetFrame2_SetFrameName(ITargetFrame2 *iface, LPCWSTR pszFrameName)
Definition: navigate.c:1418
static HRESULT WINAPI TargetFrame2_FindFrame(ITargetFrame2 *iface, LPCWSTR pszTargetName, DWORD dwFlags, IUnknown **ppunkTargetFrame)
Definition: navigate.c:1488
static HRESULT WINAPI TargetFrame2_SetFrameOptions(ITargetFrame2 *iface, DWORD dwFlags)
Definition: navigate.c:1460

Definition at line 1502 of file navigate.c.

Referenced by HlinkFrame_Init().

◆ TargetFramePriv2Vtbl

const ITargetFramePriv2Vtbl TargetFramePriv2Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI TargetFramePriv2_FindFrameInContext(ITargetFramePriv2 *iface, LPCWSTR pszTargetName, IUnknown *punkContextFrame, DWORD dwFlags, IUnknown **ppunkTargetFrame)
Definition: navigate.c:1551
static HRESULT WINAPI TargetFramePriv2_NavigateHack(ITargetFramePriv2 *iface, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *pibsc, LPCWSTR pszTargetName, LPCWSTR pszUrl, LPCWSTR pszLocation)
Definition: navigate.c:1573
static ULONG WINAPI TargetFramePriv2_Release(ITargetFramePriv2 *iface)
Definition: navigate.c:1537
static HRESULT WINAPI TargetFramePriv2_OnChildFrameDeactivate(ITargetFramePriv2 *iface, IUnknown *pUnkChildFrame)
Definition: navigate.c:1566
static HRESULT WINAPI TargetFramePriv2_QueryInterface(ITargetFramePriv2 *iface, REFIID riid, void **ppv)
Definition: navigate.c:1525
static HRESULT WINAPI TargetFramePriv2_AggregatedNavigation2(ITargetFramePriv2 *iface, DWORD grfHLNF, LPBC pbc, IBindStatusCallback *pibsc, LPCWSTR pszTargetName, IUri *pUri, LPCWSTR pszLocation)
Definition: navigate.c:1589
static HRESULT WINAPI TargetFramePriv2_OnChildFrameActivate(ITargetFramePriv2 *iface, IUnknown *pUnkChildFrame)
Definition: navigate.c:1559
static HRESULT WINAPI TargetFramePriv2_FindBrowserByIndex(ITargetFramePriv2 *iface, DWORD dwID, IUnknown **ppunkBrowser)
Definition: navigate.c:1582
static ULONG WINAPI TargetFramePriv2_AddRef(ITargetFramePriv2 *iface)
Definition: navigate.c:1531
static HRESULT WINAPI TargetFramePriv2_FindFrameDownwards(ITargetFramePriv2 *iface, LPCWSTR pszTargetName, DWORD dwFlags, IUnknown **ppunkTargetFrame)
Definition: navigate.c:1543

Definition at line 1614 of file navigate.c.

Referenced by HlinkFrame_Init().

◆ TargetFrameVtbl

const ITargetFrameVtbl TargetFrameVtbl
static
Initial value:
= {
}
static HRESULT WINAPI TargetFrame_GetFrameName(ITargetFrame *iface, LPWSTR *ppszFrameName)
Definition: navigate.c:1282
static HRESULT WINAPI TargetFrame_RemoteNavigate(ITargetFrame *iface, ULONG cLength, ULONG *pulData)
Definition: navigate.c:1354
static HRESULT WINAPI TargetFrame_OnChildFrameDeactivate(ITargetFrame *iface, IUnknown *pUnkChildFrame)
Definition: navigate.c:1368
static ULONG WINAPI TargetFrame_AddRef(ITargetFrame *iface)
Definition: navigate.c:1263
static HRESULT WINAPI TargetFrame_OnChildFrameActivate(ITargetFrame *iface, IUnknown *pUnkChildFrame)
Definition: navigate.c:1361
static HRESULT WINAPI TargetFrame_QueryInterface(ITargetFrame *iface, REFIID riid, void **ppv)
Definition: navigate.c:1257
static HRESULT WINAPI TargetFrame_GetFramesContainer(ITargetFrame *iface, IOleContainer **ppContainer)
Definition: navigate.c:1319
static HRESULT WINAPI TargetFrame_GetFrameSrc(ITargetFrame *iface, LPWSTR *ppszFrameSrc)
Definition: navigate.c:1312
static HRESULT WINAPI TargetFrame_SetFrameMargins(ITargetFrame *iface, DWORD dwWidth, DWORD dwHeight)
Definition: navigate.c:1340
static HRESULT WINAPI TargetFrame_SetFrameOptions(ITargetFrame *iface, DWORD dwFlags)
Definition: navigate.c:1326
static HRESULT WINAPI TargetFrame_FindFrame(ITargetFrame *iface, LPCWSTR pszTargetName, IUnknown *ppunkContextFrame, DWORD dwFlags, IUnknown **ppunkTargetFrame)
Definition: navigate.c:1296
static HRESULT WINAPI TargetFrame_GetParentFrame(ITargetFrame *iface, IUnknown **ppunkParent)
Definition: navigate.c:1289
static HRESULT WINAPI TargetFrame_SetFrameName(ITargetFrame *iface, LPCWSTR pszFrameName)
Definition: navigate.c:1275
static HRESULT WINAPI TargetFrame_SetFrameSrc(ITargetFrame *iface, LPCWSTR pszFrameSrc)
Definition: navigate.c:1305
static HRESULT WINAPI TargetFrame_GetFrameMargins(ITargetFrame *iface, DWORD *pdwWidth, DWORD *pdwHeight)
Definition: navigate.c:1347
static ULONG WINAPI TargetFrame_Release(ITargetFrame *iface)
Definition: navigate.c:1269
static HRESULT WINAPI TargetFrame_GetFrameOptions(ITargetFrame *iface, DWORD *pdwFlags)
Definition: navigate.c:1333

Definition at line 1375 of file navigate.c.

Referenced by HlinkFrame_Init().

◆ WebBrowserPriv2IE9Vtbl

const IWebBrowserPriv2IE9Vtbl WebBrowserPriv2IE9Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI WebBrowserPriv2IE9_NavigateWithBindCtx2(IWebBrowserPriv2IE9 *iface, IUri *uri, VARIANT *flags, VARIANT *target_frame, VARIANT *post_data, VARIANT *headers, IBindCtx *bind_ctx, LPOLESTR url_fragment, DWORD unused)
Definition: navigate.c:1650
static HRESULT WINAPI WebBrowserPriv2IE9_QueryInterface(IWebBrowserPriv2IE9 *iface, REFIID riid, void **ppv)
Definition: navigate.c:1632
static ULONG WINAPI WebBrowserPriv2IE9_Release(IWebBrowserPriv2IE9 *iface)
Definition: navigate.c:1644
static ULONG WINAPI WebBrowserPriv2IE9_AddRef(IWebBrowserPriv2IE9 *iface)
Definition: navigate.c:1638

Definition at line 1659 of file navigate.c.

Referenced by HlinkFrame_Init().