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)
static void test_location(IHTMLDocument2 *doc)
{
IHTMLLocation *location, *location2;
+ IHTMLWindow2 *window;
ULONG ref;
HRESULT hres;
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");
}