Module: wine Branch: master Commit: a8a1a2da5a22753c295f6bd5616f230fa42f77c4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a8a1a2da5a22753c295f6bd561...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Nov 20 01:49:05 2007 +0100
shdocvw: Added WebBrowser::get_Application implementation.
---
dlls/shdocvw/tests/webbrowser.c | 13 +++++++++++++ dlls/shdocvw/webbrowser.c | 11 +++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/dlls/shdocvw/tests/webbrowser.c b/dlls/shdocvw/tests/webbrowser.c index 796c47c..bd56fe4 100644 --- a/dlls/shdocvw/tests/webbrowser.c +++ b/dlls/shdocvw/tests/webbrowser.c @@ -984,6 +984,7 @@ static void test_ClassInfo(IUnknown *unk) static void test_ie_funcs(IUnknown *unk) { IWebBrowser2 *wb; + IDispatch *disp; VARIANT_BOOL b; int i; long hwnd; @@ -1134,6 +1135,18 @@ static void test_ie_funcs(IUnknown *unk) ok(hres == E_NOTIMPL, "get_Resizable failed: %08x\n", hres); ok(b == 0x100, "b=%x\n", b);
+ /* Application */ + + disp = NULL; + hres = IWebBrowser2_get_Application(wb, &disp); + ok(hres == S_OK, "get_Application failed: %08x\n", hres); + ok(disp == (void*)wb, "disp=%p, expected %p\n", disp, wb); + if(disp) + IDispatch_Release(disp); + + hres = IWebBrowser2_get_Application(wb, NULL); + ok(hres == E_POINTER, "get_Application failed: %08x, expected E_POINTER\n", hres); + IWebBrowser2_Release(wb); }
diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index 49914f7..3e80f0f 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -260,8 +260,15 @@ static HRESULT WINAPI WebBrowser_Stop(IWebBrowser2 *iface) static HRESULT WINAPI WebBrowser_get_Application(IWebBrowser2 *iface, IDispatch **ppDisp) { WebBrowser *This = WEBBROWSER_THIS(iface); - FIXME("(%p)->(%p)\n", This, ppDisp); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, ppDisp); + + if(!ppDisp) + return E_POINTER; + + *ppDisp = (IDispatch*)WEBBROWSER2(This); + IDispatch_AddRef(*ppDisp); + return S_OK; }
static HRESULT WINAPI WebBrowser_get_Parent(IWebBrowser2 *iface, IDispatch **ppDisp)