Module: wine Branch: master Commit: 9c3c57040e64bab4a8ddc1b93200f538565d5886 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9c3c57040e64bab4a8ddc1b932...
Author: Jacek Caban jacek@codeweavers.com Date: Mon Nov 12 12:59:20 2012 +0100
ieframe: Added IWebBrowser2::Refresh implementation.
---
dlls/ieframe/dochost.c | 26 ++++++++++++++++++++++++++ dlls/ieframe/ie.c | 6 ++++-- dlls/ieframe/ieframe.h | 1 + dlls/ieframe/webbrowser.c | 6 ++++-- 4 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/dlls/ieframe/dochost.c b/dlls/ieframe/dochost.c index c063851..1b10fb4 100644 --- a/dlls/ieframe/dochost.c +++ b/dlls/ieframe/dochost.c @@ -453,6 +453,32 @@ void deactivate_document(DocHost *This) This->document = NULL; }
+HRESULT refresh_document(DocHost *This) +{ + IOleCommandTarget *cmdtrg; + VARIANT vin, vout; + HRESULT hres; + + if(!This->document) { + FIXME("no document\n"); + return E_FAIL; + } + + hres = IUnknown_QueryInterface(This->document, &IID_IOleCommandTarget, (void**)&cmdtrg); + if(FAILED(hres)) + return hres; + + V_VT(&vin) = VT_EMPTY; + V_VT(&vout) = VT_EMPTY; + hres = IOleCommandTarget_Exec(cmdtrg, NULL, OLECMDID_REFRESH, OLECMDEXECOPT_PROMPTUSER, &vin, &vout); + IOleCommandTarget_Release(cmdtrg); + if(FAILED(hres)) + return hres; + + VariantClear(&vout); + return S_OK; +} + void release_dochost_client(DocHost *This) { if(This->hwnd) { diff --git a/dlls/ieframe/ie.c b/dlls/ieframe/ie.c index 02d0c28..da0e99c 100644 --- a/dlls/ieframe/ie.c +++ b/dlls/ieframe/ie.c @@ -182,8 +182,10 @@ static HRESULT WINAPI InternetExplorer_Navigate(IWebBrowser2 *iface, BSTR szUrl, static HRESULT WINAPI InternetExplorer_Refresh(IWebBrowser2 *iface) { InternetExplorer *This = impl_from_IWebBrowser2(iface); - FIXME("(%p)\n", This); - return E_NOTIMPL; + + TRACE("(%p)\n", This); + + return refresh_document(&This->doc_host->doc_host); }
static HRESULT WINAPI InternetExplorer_Refresh2(IWebBrowser2 *iface, VARIANT *Level) diff --git a/dlls/ieframe/ieframe.h b/dlls/ieframe/ieframe.h index 8dd3f17..0c13c82 100644 --- a/dlls/ieframe/ieframe.h +++ b/dlls/ieframe/ieframe.h @@ -265,6 +265,7 @@ void call_sink(ConnectionPoint*,DISPID,DISPPARAMS*) DECLSPEC_HIDDEN; HRESULT navigate_url(DocHost*,LPCWSTR,const VARIANT*,const VARIANT*,VARIANT*,VARIANT*) DECLSPEC_HIDDEN; HRESULT go_home(DocHost*) DECLSPEC_HIDDEN; HRESULT go_back(DocHost*) DECLSPEC_HIDDEN; +HRESULT refresh_document(DocHost*) DECLSPEC_HIDDEN; HRESULT get_location_url(DocHost*,BSTR*) DECLSPEC_HIDDEN; HRESULT set_dochost_url(DocHost*,const WCHAR*) DECLSPEC_HIDDEN; void handle_navigation_error(DocHost*,HRESULT,BSTR,IHTMLWindow2*) DECLSPEC_HIDDEN; diff --git a/dlls/ieframe/webbrowser.c b/dlls/ieframe/webbrowser.c index 1bd14fa..dda957a 100644 --- a/dlls/ieframe/webbrowser.c +++ b/dlls/ieframe/webbrowser.c @@ -292,8 +292,10 @@ static HRESULT WINAPI WebBrowser_Navigate(IWebBrowser2 *iface, BSTR szUrl, static HRESULT WINAPI WebBrowser_Refresh(IWebBrowser2 *iface) { WebBrowser *This = impl_from_IWebBrowser2(iface); - FIXME("(%p)\n", This); - return E_NOTIMPL; + + TRACE("(%p)\n", This); + + return refresh_document(&This->doc_host); }
static HRESULT WINAPI WebBrowser_Refresh2(IWebBrowser2 *iface, VARIANT *Level)