From: Zhenbo Li Subject: [PATCH 3/9] mshtml: Added IHTMLTable::frame property implementation (resend) Message-Id: <53F1BFB8.9090006@gmail.com> Date: Mon, 18 Aug 2014 16:56:24 +0800 --- dlls/mshtml/htmltable.c | 27 +++++++++++++++++++++++---- dlls/mshtml/tests/dom.c | 11 ++++++++++- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/dlls/mshtml/htmltable.c b/dlls/mshtml/htmltable.c index cfacf35..d938699 100644 --- a/dlls/mshtml/htmltable.c +++ b/dlls/mshtml/htmltable.c @@ -193,15 +193,34 @@ static HRESULT WINAPI HTMLTable_get_border(IHTMLTable *iface, VARIANT *p) static HRESULT WINAPI HTMLTable_put_frame(IHTMLTable *iface, BSTR v) { HTMLTable *This = impl_from_IHTMLTable(iface); - FIXME("(%p)->(%s)\n", This, debugstr_w(v)); - return E_NOTIMPL; + nsAString str; + nsresult nsres; + + TRACE("(%p)->(%s)\n", This, debugstr_w(v)); + + nsAString_InitDepend(&str, v); + nsres = nsIDOMHTMLTableElement_SetFrame(This->nstable, &str); + nsAString_Finish(&str); + + if (NS_FAILED(nsres)) { + ERR("SetFrame(%s) failed: %08x\n", debugstr_w(v), nsres); + return E_FAIL; + } + return S_OK; } static HRESULT WINAPI HTMLTable_get_frame(IHTMLTable *iface, BSTR *p) { HTMLTable *This = impl_from_IHTMLTable(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + nsAString str; + nsresult nsres; + + TRACE("(%p)->(%p)\n", This, p); + + nsAString_Init(&str, NULL); + nsres = nsIDOMHTMLTableElement_GetFrame(This->nstable, &str); + + return return_nsstr(nsres, &str, p); } static HRESULT WINAPI HTMLTable_put_rules(IHTMLTable *iface, BSTR v) diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c index f235835..859cdac 100644 --- a/dlls/mshtml/tests/dom.c +++ b/dlls/mshtml/tests/dom.c @@ -6205,8 +6205,17 @@ static void test_table_elem(IHTMLElement *elem) ok(!strcmp_wa(V_BSTR(&v), "11"), "Expected 11, got %s\n", wine_dbgstr_w(V_BSTR(&v))); VariantClear(&v); - test_table_modify(table); + bstr = a2bstr("box"); + hres = IHTMLTable_put_frame(table, bstr); + ok(hres == S_OK, "put_frame = %08x\n", hres); + SysFreeString(bstr); + hres = IHTMLTable_get_frame(table, &bstr); + ok(hres == S_OK, "get_frame = %08x\n", hres); + ok(!strcmp_wa(bstr, "box"), "Expected box, got %s\n", wine_dbgstr_w(bstr)); + SysFreeString(bstr); + + test_table_modify(table); bstr = a2bstr("summary"); hres = IHTMLTable3_put_summary(table3, bstr); ok(hres == S_OK, "put_summary = %08x\n", hres);