ieframe: Added support for DownloadBegin and DownloadComplete events.

This commit is contained in:
Jacek Caban 2015-08-14 16:30:57 +02:00 committed by Alexandre Julliard
parent dfb79624cc
commit 37c8166b8a
4 changed files with 15 additions and 3 deletions

View File

@ -646,8 +646,11 @@ static HRESULT WINAPI ClOleCommandTarget_Exec(IOleCommandTarget *iface,
if(This->olecmd) if(This->olecmd)
return IOleCommandTarget_Exec(This->olecmd, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut); return IOleCommandTarget_Exec(This->olecmd, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut);
FIXME("Default action not implemented.\n"); if(!pvaIn || V_VT(pvaIn) != VT_I4)
return E_NOTIMPL; return E_INVALIDARG;
notify_download_state(This, V_I4(pvaIn));
return S_OK;
default: default:
FIXME("Unimplemented cmdid %d\n", nCmdID); FIXME("Unimplemented cmdid %d\n", nCmdID);
return E_NOTIMPL; return E_NOTIMPL;

View File

@ -277,6 +277,7 @@ void set_doc_state(DocHost*,READYSTATE) DECLSPEC_HIDDEN;
void deactivate_document(DocHost*) DECLSPEC_HIDDEN; void deactivate_document(DocHost*) DECLSPEC_HIDDEN;
void create_doc_view_hwnd(DocHost*) DECLSPEC_HIDDEN; void create_doc_view_hwnd(DocHost*) DECLSPEC_HIDDEN;
void on_commandstate_change(DocHost*,LONG,VARIANT_BOOL) DECLSPEC_HIDDEN; void on_commandstate_change(DocHost*,LONG,VARIANT_BOOL) DECLSPEC_HIDDEN;
void notify_download_state(DocHost*,BOOL) DECLSPEC_HIDDEN;
#define WM_DOCHOSTTASK (WM_USER+0x300) #define WM_DOCHOSTTASK (WM_USER+0x300)
void push_dochost_task(DocHost*,task_header_t*,task_proc_t,task_destr_t,BOOL) DECLSPEC_HIDDEN; void push_dochost_task(DocHost*,task_header_t*,task_proc_t,task_destr_t,BOOL) DECLSPEC_HIDDEN;

View File

@ -146,6 +146,13 @@ HRESULT set_dochost_url(DocHost *This, const WCHAR *url)
return S_OK; return S_OK;
} }
void notify_download_state(DocHost *dochost, BOOL is_downloading)
{
DISPPARAMS dwl_dp = {NULL};
TRACE("(%x)\n", is_downloading);
call_sink(dochost->cps.wbe2, is_downloading ? DISPID_DOWNLOADBEGIN : DISPID_DOWNLOADCOMPLETE, &dwl_dp);
}
static inline BindStatusCallback *impl_from_IBindStatusCallback(IBindStatusCallback *iface) static inline BindStatusCallback *impl_from_IBindStatusCallback(IBindStatusCallback *iface)
{ {
return CONTAINING_RECORD(iface, BindStatusCallback, IBindStatusCallback_iface); return CONTAINING_RECORD(iface, BindStatusCallback, IBindStatusCallback_iface);
@ -896,6 +903,7 @@ static HRESULT navigate_bsc(DocHost *This, BindStatusCallback *bsc, IMoniker *mo
return S_OK; return S_OK;
} }
notify_download_state(This, TRUE);
on_commandstate_change(This, CSC_NAVIGATEBACK, VARIANT_FALSE); on_commandstate_change(This, CSC_NAVIGATEBACK, VARIANT_FALSE);
on_commandstate_change(This, CSC_NAVIGATEFORWARD, VARIANT_FALSE); on_commandstate_change(This, CSC_NAVIGATEFORWARD, VARIANT_FALSE);

View File

@ -2718,7 +2718,7 @@ static void test_Navigate2(IWebBrowser2 *webbrowser, const char *nav_url)
CHECK_CALLED(Invoke_AMBIENT_USERMODE); CHECK_CALLED(Invoke_AMBIENT_USERMODE);
todo_wine CHECK_CALLED(Invoke_PROPERTYCHANGE); todo_wine CHECK_CALLED(Invoke_PROPERTYCHANGE);
CHECK_CALLED(Invoke_BEFORENAVIGATE2); CHECK_CALLED(Invoke_BEFORENAVIGATE2);
todo_wine CHECK_CALLED(Invoke_DOWNLOADBEGIN); CHECK_CALLED(Invoke_DOWNLOADBEGIN);
if (use_container_olecmd) todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_1); if (use_container_olecmd) todo_wine CHECK_CALLED(Exec_SETDOWNLOADSTATE_1);
CHECK_CALLED(EnableModeless_FALSE); CHECK_CALLED(EnableModeless_FALSE);
CHECK_CALLED(Invoke_STATUSTEXTCHANGE); CHECK_CALLED(Invoke_STATUSTEXTCHANGE);