Jacek Caban : mshtml: Added IHTMLElement::get_clientHeight implementation.
Alexandre Julliard
julliard at winehq.org
Thu Jun 19 06:39:09 CDT 2008
Module: wine
Branch: master
Commit: b54a3a0314a4f5daca4dfe7c4078f1b579ec2f89
URL: http://source.winehq.org/git/wine.git/?a=commit;h=b54a3a0314a4f5daca4dfe7c4078f1b579ec2f89
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Jun 18 17:09:26 2008 -0500
mshtml: Added IHTMLElement::get_clientHeight implementation.
---
dlls/mshtml/htmlelem2.c | 18 ++++++++++++++++--
dlls/mshtml/tests/dom.c | 27 +++++++++++++++++++++++++++
2 files changed, 43 insertions(+), 2 deletions(-)
diff --git a/dlls/mshtml/htmlelem2.c b/dlls/mshtml/htmlelem2.c
index d68d0f4..fa4457a 100644
--- a/dlls/mshtml/htmlelem2.c
+++ b/dlls/mshtml/htmlelem2.c
@@ -500,8 +500,22 @@ static HRESULT WINAPI HTMLElement2_removeFilter(IHTMLElement2 *iface, IUnknown *
static HRESULT WINAPI HTMLElement2_get_clientHeight(IHTMLElement2 *iface, long *p)
{
HTMLElement *This = HTMLELEM2_THIS(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+ nsIDOMNSHTMLElement *nselem;
+ PRInt32 height=0;
+ nsresult nsres;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ nsres = nsIDOMHTMLElement_QueryInterface(This->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem);
+ if(NS_SUCCEEDED(nsres)) {
+ nsIDOMNSHTMLElement_GetClientHeight(nselem, &height);
+ nsIDOMNSHTMLElement_Release(nselem);
+ }else {
+ ERR("Could not get nsIDOMHTMLNSElement: %08x\n", nsres);
+ }
+
+ *p = height;
+ return S_OK;
}
static HRESULT WINAPI HTMLElement2_get_clientWidth(IHTMLElement2 *iface, long *p)
diff --git a/dlls/mshtml/tests/dom.c b/dlls/mshtml/tests/dom.c
index 7269ad1..ac30c12 100644
--- a/dlls/mshtml/tests/dom.c
+++ b/dlls/mshtml/tests/dom.c
@@ -376,6 +376,17 @@ static IHTMLElement *_get_elem_iface(unsigned line, IUnknown *unk)
return elem;
}
+#define get_elem2_iface(u) _get_elem2_iface(__LINE__,u)
+static IHTMLElement2 *_get_elem2_iface(unsigned line, IUnknown *unk)
+{
+ IHTMLElement2 *elem;
+ HRESULT hres;
+
+ hres = IUnknown_QueryInterface(unk, &IID_IHTMLElement2, (void**)&elem);
+ ok_(__FILE__,line) (hres == S_OK, "Coule not get IHTMLElement2: %08x\n", hres);
+ return elem;
+}
+
#define get_node_iface(u) _get_node_iface(__LINE__,u)
static IHTMLDOMNode *_get_node_iface(unsigned line, IUnknown *unk)
{
@@ -940,6 +951,21 @@ static void _test_node_put_value_str(unsigned line, IUnknown *unk, const char *v
VariantClear(&var);
}
+#define test_elem_client_size(u) _test_elem_client_size(__LINE__,u)
+static void _test_elem_client_size(unsigned line, IUnknown *unk)
+{
+ IHTMLElement2 *elem = _get_elem2_iface(line, unk);
+ long l;
+ HRESULT hres;
+
+ hres = IHTMLElement2_get_clientWidth(elem, &l);
+ ok_(__FILE__,line) (hres == S_OK, "get_clientWidth failed: %08x\n", hres);
+ hres = IHTMLElement2_get_clientHeight(elem, &l);
+ ok_(__FILE__,line) (hres == S_OK, "get_clientHeight failed: %08x\n", hres);
+
+ IHTMLElement2_Release(elem);
+}
+
static void test_elem_col_item(IHTMLElementCollection *col, LPCWSTR n,
const elem_type_t *elem_types, long len)
{
@@ -1704,6 +1730,7 @@ static void test_elems(IHTMLDocument2 *doc)
test_elem_id((IUnknown*)elem, "in");
test_elem_put_id((IUnknown*)elem, "newin");
test_input_get_disabled(input, VARIANT_FALSE);
+ test_elem_client_size((IUnknown*)elem);
test_node_get_value_str((IUnknown*)elem, NULL);
test_node_put_value_str((IUnknown*)elem, "test");
More information about the wine-cvs
mailing list