Commit a219fd31 authored by Jacek Caban's avatar Jacek Caban Committed by Alexandre Julliard

mshtml: Handle non-HTML elements in HTMLElement implementation.

parent 240fd267
...@@ -1115,7 +1115,7 @@ static HRESULT WINAPI HTMLElement_put_title(IHTMLElement *iface, BSTR v) ...@@ -1115,7 +1115,7 @@ static HRESULT WINAPI HTMLElement_put_title(IHTMLElement *iface, BSTR v)
TRACE("(%p)->(%s)\n", This, debugstr_w(v)); TRACE("(%p)->(%s)\n", This, debugstr_w(v));
if(!This->nselem) { if(!This->html_element) {
VARIANT *var; VARIANT *var;
HRESULT hres; HRESULT hres;
...@@ -1130,7 +1130,7 @@ static HRESULT WINAPI HTMLElement_put_title(IHTMLElement *iface, BSTR v) ...@@ -1130,7 +1130,7 @@ static HRESULT WINAPI HTMLElement_put_title(IHTMLElement *iface, BSTR v)
} }
nsAString_InitDepend(&title_str, v); nsAString_InitDepend(&title_str, v);
nsres = nsIDOMHTMLElement_SetTitle(This->nselem, &title_str); nsres = nsIDOMHTMLElement_SetTitle(This->html_element, &title_str);
nsAString_Finish(&title_str); nsAString_Finish(&title_str);
if(NS_FAILED(nsres)) if(NS_FAILED(nsres))
ERR("SetTitle failed: %08x\n", nsres); ERR("SetTitle failed: %08x\n", nsres);
...@@ -1146,7 +1146,7 @@ static HRESULT WINAPI HTMLElement_get_title(IHTMLElement *iface, BSTR *p) ...@@ -1146,7 +1146,7 @@ static HRESULT WINAPI HTMLElement_get_title(IHTMLElement *iface, BSTR *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!This->nselem) { if(!This->html_element) {
VARIANT *var; VARIANT *var;
HRESULT hres; HRESULT hres;
...@@ -1164,7 +1164,7 @@ static HRESULT WINAPI HTMLElement_get_title(IHTMLElement *iface, BSTR *p) ...@@ -1164,7 +1164,7 @@ static HRESULT WINAPI HTMLElement_get_title(IHTMLElement *iface, BSTR *p)
} }
nsAString_Init(&title_str, NULL); nsAString_Init(&title_str, NULL);
nsres = nsIDOMHTMLElement_GetTitle(This->nselem, &title_str); nsres = nsIDOMHTMLElement_GetTitle(This->html_element, &title_str);
return return_nsstr(nsres, &title_str, p); return return_nsstr(nsres, &title_str, p);
} }
...@@ -1225,12 +1225,12 @@ static HRESULT WINAPI HTMLElement_scrollIntoView(IHTMLElement *iface, VARIANT va ...@@ -1225,12 +1225,12 @@ static HRESULT WINAPI HTMLElement_scrollIntoView(IHTMLElement *iface, VARIANT va
FIXME("Unsupported argument %s\n", debugstr_variant(&varargStart)); FIXME("Unsupported argument %s\n", debugstr_variant(&varargStart));
} }
if(!This->nselem) { if(!This->html_element) {
FIXME("Unsupported for comments\n"); FIXME("non-HTML elements\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
nsres = nsIDOMHTMLElement_ScrollIntoView(This->nselem, start, 1); nsres = nsIDOMHTMLElement_ScrollIntoView(This->html_element, start, 1);
assert(nsres == NS_OK); assert(nsres == NS_OK);
return S_OK; return S_OK;
...@@ -1286,13 +1286,13 @@ static HRESULT WINAPI HTMLElement_put_lang(IHTMLElement *iface, BSTR v) ...@@ -1286,13 +1286,13 @@ static HRESULT WINAPI HTMLElement_put_lang(IHTMLElement *iface, BSTR v)
TRACE("(%p)->(%s)\n", This, debugstr_w(v)); TRACE("(%p)->(%s)\n", This, debugstr_w(v));
if(!This->nselem) { if(!This->html_element) {
FIXME("NULL nselem\n"); FIXME("non-HTML element\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
nsAString_InitDepend(&nsstr, v); nsAString_InitDepend(&nsstr, v);
nsres = nsIDOMHTMLElement_SetLang(This->nselem, &nsstr); nsres = nsIDOMHTMLElement_SetLang(This->html_element, &nsstr);
nsAString_Finish(&nsstr); nsAString_Finish(&nsstr);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("SetLang failed: %08x\n", nsres); ERR("SetLang failed: %08x\n", nsres);
...@@ -1310,13 +1310,13 @@ static HRESULT WINAPI HTMLElement_get_lang(IHTMLElement *iface, BSTR *p) ...@@ -1310,13 +1310,13 @@ static HRESULT WINAPI HTMLElement_get_lang(IHTMLElement *iface, BSTR *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!This->nselem) { if(!This->html_element) {
FIXME("NULL nselem\n"); FIXME("non-HTML element\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
nsAString_Init(&nsstr, NULL); nsAString_Init(&nsstr, NULL);
nsres = nsIDOMHTMLElement_GetLang(This->nselem, &nsstr); nsres = nsIDOMHTMLElement_GetLang(This->html_element, &nsstr);
return return_nsstr(nsres, &nsstr, p); return return_nsstr(nsres, &nsstr, p);
} }
...@@ -1327,7 +1327,12 @@ static HRESULT WINAPI HTMLElement_get_offsetLeft(IHTMLElement *iface, LONG *p) ...@@ -1327,7 +1327,12 @@ static HRESULT WINAPI HTMLElement_get_offsetLeft(IHTMLElement *iface, LONG *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
nsres = nsIDOMHTMLElement_GetOffsetLeft(This->nselem, p); if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsres = nsIDOMHTMLElement_GetOffsetLeft(This->html_element, p);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("GetOffsetLeft failed: %08x\n", nsres); ERR("GetOffsetLeft failed: %08x\n", nsres);
return E_FAIL; return E_FAIL;
...@@ -1343,7 +1348,12 @@ static HRESULT WINAPI HTMLElement_get_offsetTop(IHTMLElement *iface, LONG *p) ...@@ -1343,7 +1348,12 @@ static HRESULT WINAPI HTMLElement_get_offsetTop(IHTMLElement *iface, LONG *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
nsres = nsIDOMHTMLElement_GetOffsetTop(This->nselem, p); if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsres = nsIDOMHTMLElement_GetOffsetTop(This->html_element, p);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("GetOffsetTop failed: %08x\n", nsres); ERR("GetOffsetTop failed: %08x\n", nsres);
return E_FAIL; return E_FAIL;
...@@ -1359,7 +1369,12 @@ static HRESULT WINAPI HTMLElement_get_offsetWidth(IHTMLElement *iface, LONG *p) ...@@ -1359,7 +1369,12 @@ static HRESULT WINAPI HTMLElement_get_offsetWidth(IHTMLElement *iface, LONG *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
nsres = nsIDOMHTMLElement_GetOffsetWidth(This->nselem, p); if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsres = nsIDOMHTMLElement_GetOffsetWidth(This->html_element, p);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("GetOffsetWidth failed: %08x\n", nsres); ERR("GetOffsetWidth failed: %08x\n", nsres);
return E_FAIL; return E_FAIL;
...@@ -1375,7 +1390,12 @@ static HRESULT WINAPI HTMLElement_get_offsetHeight(IHTMLElement *iface, LONG *p) ...@@ -1375,7 +1390,12 @@ static HRESULT WINAPI HTMLElement_get_offsetHeight(IHTMLElement *iface, LONG *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
nsres = nsIDOMHTMLElement_GetOffsetHeight(This->nselem, p); if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsres = nsIDOMHTMLElement_GetOffsetHeight(This->html_element, p);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("GetOffsetHeight failed: %08x\n", nsres); ERR("GetOffsetHeight failed: %08x\n", nsres);
return E_FAIL; return E_FAIL;
...@@ -1393,7 +1413,12 @@ static HRESULT WINAPI HTMLElement_get_offsetParent(IHTMLElement *iface, IHTMLEle ...@@ -1393,7 +1413,12 @@ static HRESULT WINAPI HTMLElement_get_offsetParent(IHTMLElement *iface, IHTMLEle
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
nsres = nsIDOMHTMLElement_GetOffsetParent(This->nselem, &nsparent); if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsres = nsIDOMHTMLElement_GetOffsetParent(This->html_element, &nsparent);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("GetOffsetParent failed: %08x\n", nsres); ERR("GetOffsetParent failed: %08x\n", nsres);
return E_FAIL; return E_FAIL;
...@@ -1425,13 +1450,13 @@ static HRESULT WINAPI HTMLElement_put_innerHTML(IHTMLElement *iface, BSTR v) ...@@ -1425,13 +1450,13 @@ static HRESULT WINAPI HTMLElement_put_innerHTML(IHTMLElement *iface, BSTR v)
TRACE("(%p)->(%s)\n", This, debugstr_w(v)); TRACE("(%p)->(%s)\n", This, debugstr_w(v));
if(!This->nselem) { if(!This->html_element) {
FIXME("NULL nselem\n"); FIXME("non-HTML element\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
nsAString_InitDepend(&html_str, v); nsAString_InitDepend(&html_str, v);
nsres = nsIDOMHTMLElement_SetInnerHTML(This->nselem, &html_str); nsres = nsIDOMHTMLElement_SetInnerHTML(This->html_element, &html_str);
nsAString_Finish(&html_str); nsAString_Finish(&html_str);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
FIXME("SetInnerHtml failed %08x\n", nsres); FIXME("SetInnerHtml failed %08x\n", nsres);
...@@ -1449,13 +1474,13 @@ static HRESULT WINAPI HTMLElement_get_innerHTML(IHTMLElement *iface, BSTR *p) ...@@ -1449,13 +1474,13 @@ static HRESULT WINAPI HTMLElement_get_innerHTML(IHTMLElement *iface, BSTR *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!This->nselem) { if(!This->html_element) {
FIXME("NULL nselem\n"); FIXME("non-HTML element\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
nsAString_Init(&html_str, NULL); nsAString_Init(&html_str, NULL);
nsres = nsIDOMHTMLElement_GetInnerHTML(This->nselem, &html_str); nsres = nsIDOMHTMLElement_GetInnerHTML(This->html_element, &html_str);
return return_nsstr(nsres, &html_str, p); return return_nsstr(nsres, &html_str, p);
} }
...@@ -1779,12 +1804,12 @@ static HRESULT WINAPI HTMLElement_click(IHTMLElement *iface) ...@@ -1779,12 +1804,12 @@ static HRESULT WINAPI HTMLElement_click(IHTMLElement *iface)
TRACE("(%p)\n", This); TRACE("(%p)\n", This);
if(!This->nselem) { if(!This->html_element) {
FIXME("not implemented for comments\n"); FIXME("non-HTML element\n");
return E_NOTIMPL; return E_NOTIMPL;
} }
nsres = nsIDOMHTMLElement_Click(This->nselem); nsres = nsIDOMHTMLElement_Click(This->html_element);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("Click failed: %08x\n", nsres); ERR("Click failed: %08x\n", nsres);
return E_FAIL; return E_FAIL;
...@@ -2488,7 +2513,12 @@ static HRESULT WINAPI HTMLElement2_put_tabIndex(IHTMLElement2 *iface, short v) ...@@ -2488,7 +2513,12 @@ static HRESULT WINAPI HTMLElement2_put_tabIndex(IHTMLElement2 *iface, short v)
TRACE("(%p)->(%d)\n", This, v); TRACE("(%p)->(%d)\n", This, v);
nsres = nsIDOMHTMLElement_SetTabIndex(This->nselem, v); if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsres = nsIDOMHTMLElement_SetTabIndex(This->html_element, v);
if(NS_FAILED(nsres)) if(NS_FAILED(nsres))
ERR("GetTabIndex failed: %08x\n", nsres); ERR("GetTabIndex failed: %08x\n", nsres);
...@@ -2503,7 +2533,12 @@ static HRESULT WINAPI HTMLElement2_get_tabIndex(IHTMLElement2 *iface, short *p) ...@@ -2503,7 +2533,12 @@ static HRESULT WINAPI HTMLElement2_get_tabIndex(IHTMLElement2 *iface, short *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
nsres = nsIDOMHTMLElement_GetTabIndex(This->nselem, &index); if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsres = nsIDOMHTMLElement_GetTabIndex(This->html_element, &index);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("GetTabIndex failed: %08x\n", nsres); ERR("GetTabIndex failed: %08x\n", nsres);
return E_FAIL; return E_FAIL;
...@@ -2520,7 +2555,12 @@ static HRESULT WINAPI HTMLElement2_focus(IHTMLElement2 *iface) ...@@ -2520,7 +2555,12 @@ static HRESULT WINAPI HTMLElement2_focus(IHTMLElement2 *iface)
TRACE("(%p)\n", This); TRACE("(%p)\n", This);
nsres = nsIDOMHTMLElement_Focus(This->nselem); if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsres = nsIDOMHTMLElement_Focus(This->html_element);
if(NS_FAILED(nsres)) if(NS_FAILED(nsres))
ERR("Focus failed: %08x\n", nsres); ERR("Focus failed: %08x\n", nsres);
...@@ -2609,7 +2649,12 @@ static HRESULT WINAPI HTMLElement2_blur(IHTMLElement2 *iface) ...@@ -2609,7 +2649,12 @@ static HRESULT WINAPI HTMLElement2_blur(IHTMLElement2 *iface)
TRACE("(%p)\n", This); TRACE("(%p)\n", This);
nsres = nsIDOMHTMLElement_Blur(This->nselem); if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsres = nsIDOMHTMLElement_Blur(This->html_element);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("Blur failed: %08x\n", nsres); ERR("Blur failed: %08x\n", nsres);
return E_FAIL; return E_FAIL;
...@@ -2817,13 +2862,13 @@ static HRESULT WINAPI HTMLElement2_put_dir(IHTMLElement2 *iface, BSTR v) ...@@ -2817,13 +2862,13 @@ static HRESULT WINAPI HTMLElement2_put_dir(IHTMLElement2 *iface, BSTR v)
TRACE("(%p)->(%s)\n", This, debugstr_w(v)); TRACE("(%p)->(%s)\n", This, debugstr_w(v));
if(!This->nselem) { if(!This->html_element) {
FIXME("Unsupported for comment nodes.\n"); FIXME("non-HTML element\n");
return S_OK; return S_OK;
} }
nsAString_InitDepend(&nsstr, v); nsAString_InitDepend(&nsstr, v);
nsres = nsIDOMHTMLElement_SetDir(This->nselem, &nsstr); nsres = nsIDOMHTMLElement_SetDir(This->html_element, &nsstr);
nsAString_Finish(&nsstr); nsAString_Finish(&nsstr);
if(NS_FAILED(nsres)) { if(NS_FAILED(nsres)) {
ERR("SetDir failed: %08x\n", nsres); ERR("SetDir failed: %08x\n", nsres);
...@@ -2841,13 +2886,15 @@ static HRESULT WINAPI HTMLElement2_get_dir(IHTMLElement2 *iface, BSTR *p) ...@@ -2841,13 +2886,15 @@ static HRESULT WINAPI HTMLElement2_get_dir(IHTMLElement2 *iface, BSTR *p)
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!This->nselem) { if(!This->html_element) {
if(This->dom_element)
FIXME("non-HTML element\n");
*p = NULL; *p = NULL;
return S_OK; return S_OK;
} }
nsAString_Init(&dir_str, NULL); nsAString_Init(&dir_str, NULL);
nsres = nsIDOMHTMLElement_GetDir(This->nselem, &dir_str); nsres = nsIDOMHTMLElement_GetDir(This->html_element, &dir_str);
return return_nsstr(nsres, &dir_str, p); return return_nsstr(nsres, &dir_str, p);
} }
...@@ -3413,8 +3460,13 @@ static HRESULT WINAPI HTMLElement3_put_contentEditable(IHTMLElement3 *iface, BST ...@@ -3413,8 +3460,13 @@ static HRESULT WINAPI HTMLElement3_put_contentEditable(IHTMLElement3 *iface, BST
TRACE("(%p)->(%s)\n", This, debugstr_w(v)); TRACE("(%p)->(%s)\n", This, debugstr_w(v));
if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsAString_InitDepend(&str, v); nsAString_InitDepend(&str, v);
nsres = nsIDOMHTMLElement_SetContentEditable(This->nselem, &str); nsres = nsIDOMHTMLElement_SetContentEditable(This->html_element, &str);
nsAString_Finish(&str); nsAString_Finish(&str);
if (NS_FAILED(nsres)){ if (NS_FAILED(nsres)){
...@@ -3433,8 +3485,13 @@ static HRESULT WINAPI HTMLElement3_get_contentEditable(IHTMLElement3 *iface, BST ...@@ -3433,8 +3485,13 @@ static HRESULT WINAPI HTMLElement3_get_contentEditable(IHTMLElement3 *iface, BST
TRACE("(%p)->(%p)\n", This, p); TRACE("(%p)->(%p)\n", This, p);
if(!This->html_element) {
FIXME("non-HTML element\n");
return E_NOTIMPL;
}
nsAString_Init(&str, NULL); nsAString_Init(&str, NULL);
nsres = nsIDOMHTMLElement_GetContentEditable(This->nselem, &str); nsres = nsIDOMHTMLElement_GetContentEditable(This->html_element, &str);
return return_nsstr(nsres, &str, p); return return_nsstr(nsres, &str, p);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment