Module: wine Branch: master Commit: 447e5d1fac0e870b188439a588e816d28bec5725 URL: http://source.winehq.org/git/wine.git/?a=commit;h=447e5d1fac0e870b188439a588...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Sun Aug 16 19:57:58 2009 +1000
mshtml: Implement IHTMLLocation get_href.
---
dlls/mshtml/htmllocation.c | 16 ++++++++++++++-- dlls/mshtml/tests/dom.c | 7 +++++++ 2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/htmllocation.c b/dlls/mshtml/htmllocation.c index e2001bb..2026a06 100644 --- a/dlls/mshtml/htmllocation.c +++ b/dlls/mshtml/htmllocation.c @@ -128,8 +128,20 @@ static HRESULT WINAPI HTMLLocation_put_href(IHTMLLocation *iface, BSTR v) static HRESULT WINAPI HTMLLocation_get_href(IHTMLLocation *iface, BSTR *p) { HTMLLocation *This = HTMLLOCATION_THIS(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + if(!p) + return E_POINTER; + + if(!This->doc || !This->doc->url) { + FIXME("No current URL\n"); + return E_NOTIMPL; + } + + *p = SysAllocString(This->doc->url); + + return S_OK; }
static HRESULT WINAPI HTMLLocation_put_protocol(IHTMLLocation *iface, BSTR v) diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index 8bf29a8..42512be 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -2411,6 +2411,13 @@ static void test_location(IHTMLDocument2 *doc) ok(hres == S_OK, "get_pathname failed: %08x\n", hres); ok(!strcmp_wa(str, "blank"), "unexpected pathname %s\n", dbgstr_w(str));
+ hres = IHTMLLocation_get_href(location, NULL); + ok(hres == E_POINTER, "get_href passed: %08x\n", hres); + + hres = IHTMLLocation_get_href(location, &str); + ok(hres == S_OK, "get_href failed: %08x\n", hres); + ok(!strcmp_wa(str, "about:blank"), "unexpected href %s\n", dbgstr_w(str)); + ref = IHTMLLocation_Release(location); ok(!ref, "location chould be destroyed here\n"); }