Module: wine Branch: master Commit: 159cc19b03e9ceeba12e1a83471efcad868ce12e URL: http://source.winehq.org/git/wine.git/?a=commit;h=159cc19b03e9ceeba12e1a8347...
Author: Jacek Caban jacek@codeweavers.com Date: Sat Jan 3 17:45:47 2009 +0100
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 b73811a..979ed53 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 aa8dbb8..de363bb 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);
- test_ifaces((IUnknown*)location, location_iids); + 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); + ref = IHTMLLocation_Release(location); ok(!ref, "location chould be destroyed here\n"); }