mirror of
https://github.com/reactos/wine.git
synced 2024-11-29 22:50:43 +00:00
mshtml: Added IHTMLDocument2::elementFromPoint implementation.
This commit is contained in:
parent
c3f6f96df4
commit
3c4b2a0b43
@ -1297,8 +1297,38 @@ static HRESULT WINAPI HTMLDocument_elementFromPoint(IHTMLDocument2 *iface, LONG
|
|||||||
IHTMLElement **elementHit)
|
IHTMLElement **elementHit)
|
||||||
{
|
{
|
||||||
HTMLDocument *This = impl_from_IHTMLDocument2(iface);
|
HTMLDocument *This = impl_from_IHTMLDocument2(iface);
|
||||||
FIXME("(%p)->(%d %d %p)\n", This, x, y, elementHit);
|
nsIDOMNSDocument *nsdoc;
|
||||||
return E_NOTIMPL;
|
nsIDOMElement *nselem;
|
||||||
|
HTMLDOMNode *node;
|
||||||
|
nsresult nsres;
|
||||||
|
HRESULT hres;
|
||||||
|
|
||||||
|
TRACE("(%p)->(%d %d %p)\n", This, x, y, elementHit);
|
||||||
|
|
||||||
|
nsres = nsIDOMHTMLDocument_QueryInterface(This->doc_node->nsdoc, &IID_nsIDOMNSDocument, (void**)&nsdoc);
|
||||||
|
if(NS_FAILED(nsres)) {
|
||||||
|
ERR("Could not get nsIDOMNSDocument iface: %08x\n", nsres);
|
||||||
|
return E_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsres = nsIDOMNSDocument_ElementFromPoint(nsdoc, x, y, &nselem);
|
||||||
|
nsIDOMNSDocument_Release(nsdoc);
|
||||||
|
if(NS_FAILED(nsres)) {
|
||||||
|
ERR("ElementFromPoint failed: %08x\n", nsres);
|
||||||
|
return E_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!nselem) {
|
||||||
|
*elementHit = NULL;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
hres = get_node(This->doc_node, (nsIDOMNode*)nselem, TRUE, &node);
|
||||||
|
nsIDOMElement_Release(nselem);
|
||||||
|
if(FAILED(hres))
|
||||||
|
return hres;
|
||||||
|
|
||||||
|
return IHTMLDOMNode_QueryInterface(&node->IHTMLDOMNode_iface, &IID_IHTMLElement, (void**)elementHit);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI HTMLDocument_get_parentWindow(IHTMLDocument2 *iface, IHTMLWindow2 **p)
|
static HRESULT WINAPI HTMLDocument_get_parentWindow(IHTMLDocument2 *iface, IHTMLWindow2 **p)
|
||||||
|
@ -213,10 +213,10 @@ static const char *nav_url;
|
|||||||
static const char html_page[] =
|
static const char html_page[] =
|
||||||
"<html>"
|
"<html>"
|
||||||
"<head><link rel=\"stylesheet\" type=\"text/css\" href=\"test.css\"></head>"
|
"<head><link rel=\"stylesheet\" type=\"text/css\" href=\"test.css\"></head>"
|
||||||
"<body>test</body>"
|
"<body><div>test</div></body>"
|
||||||
"</html>";
|
"</html>";
|
||||||
|
|
||||||
static const char css_data[] = "body {color: red}";
|
static const char css_data[] = "body {color: red; margin: 0}";
|
||||||
|
|
||||||
static const WCHAR http_urlW[] =
|
static const WCHAR http_urlW[] =
|
||||||
{'h','t','t','p',':','/','/','w','w','w','.','w','i','n','e','h','q','.','o','r','g',0};
|
{'h','t','t','p',':','/','/','w','w','w','.','w','i','n','e','h','q','.','o','r','g',0};
|
||||||
@ -4429,6 +4429,23 @@ static void test_open_window(IHTMLDocument2 *doc)
|
|||||||
IHTMLWindow2_Release(window);
|
IHTMLWindow2_Release(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void test_elem_from_point(IHTMLDocument2 *doc)
|
||||||
|
{
|
||||||
|
IHTMLElement *elem;
|
||||||
|
BSTR tag;
|
||||||
|
HRESULT hres;
|
||||||
|
|
||||||
|
elem = NULL;
|
||||||
|
hres = IHTMLDocument2_elementFromPoint(doc, 3, 3, &elem);
|
||||||
|
ok(hres == S_OK, "elementFromPoint failed: %08x\n", hres);
|
||||||
|
ok(elem != NULL, "elem == NULL\n");
|
||||||
|
|
||||||
|
hres = IHTMLElement_get_tagName(elem, &tag);
|
||||||
|
IHTMLElement_Release(elem);
|
||||||
|
ok(hres == S_OK, "get_tagName failed: %08x\n", hres);
|
||||||
|
ok(!strcmp_wa(tag, "DIV"), "tag = %s\n", wine_dbgstr_w(tag));
|
||||||
|
}
|
||||||
|
|
||||||
static void test_clear(IHTMLDocument2 *doc)
|
static void test_clear(IHTMLDocument2 *doc)
|
||||||
{
|
{
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
@ -5526,6 +5543,7 @@ static void test_HTMLDocument(BOOL do_load)
|
|||||||
set_custom_uihandler(doc, &CustomDocHostUIHandler);
|
set_custom_uihandler(doc, &CustomDocHostUIHandler);
|
||||||
test_download(DWL_CSS|DWL_TRYCSS);
|
test_download(DWL_CSS|DWL_TRYCSS);
|
||||||
test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL);
|
test_GetCurMoniker((IUnknown*)doc, &Moniker, NULL);
|
||||||
|
test_elem_from_point(doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
|
test_MSHTML_QueryStatus(doc, OLECMDF_SUPPORTED);
|
||||||
|
Loading…
Reference in New Issue
Block a user