From 159cc19b03e9ceeba12e1a83471efcad868ce12e Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 3 Jan 2009 17:45:47 +0100 Subject: [PATCH] mshtml: Added IHTMLWindow2::get_location implementation. --- dlls/mshtml/htmlwindow.c | 11 +++++++++-- dlls/mshtml/tests/dom.c | 11 ++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index b73811a9ecb..979ed53e3ee 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -248,8 +248,15 @@ static HRESULT WINAPI HTMLWindow2_get_Image(IHTMLWindow2 *iface, IHTMLImageEleme static HRESULT WINAPI HTMLWindow2_get_location(IHTMLWindow2 *iface, IHTMLLocation **p) { HTMLWindow *This = HTMLWINDOW2_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + if(!This->doc) { + FIXME("This->doc is NULL\n"); + return E_FAIL; + } + + return IHTMLDocument2_get_location(HTMLDOC(This->doc), p); } static HRESULT WINAPI HTMLWindow2_get_history(IHTMLWindow2 *iface, IOmHistory **p) diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index aa8dbb8d4e6..de363bb1a7b 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -2185,6 +2185,7 @@ static void test_compatmode(IHTMLDocument2 *doc) static void test_location(IHTMLDocument2 *doc) { IHTMLLocation *location, *location2; + IHTMLWindow2 *window; ULONG ref; HRESULT hres; @@ -2195,10 +2196,18 @@ static void test_location(IHTMLDocument2 *doc) ok(hres == S_OK, "get_location failed: %08x\n", hres); ok(location == location2, "location != location2\n"); + IHTMLLocation_Release(location2); + + hres = IHTMLDocument2_get_parentWindow(doc, &window); + ok(hres == S_OK, "get_parentWindow failed: %08x\n", hres); + + hres = IHTMLWindow2_get_location(window, &location2); + ok(hres == S_OK, "get_location failed: %08x\n", hres); + ok(location == location2, "location != location2\n"); + IHTMLLocation_Release(location2); test_ifaces((IUnknown*)location, location_iids); - IHTMLLocation_Release(location2); ref = IHTMLLocation_Release(location); ok(!ref, "location chould be destroyed here\n"); }