From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/msxml3/doctype.c | 6 ++++-- dlls/msxml3/tests/domdoc.c | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/dlls/msxml3/doctype.c b/dlls/msxml3/doctype.c index 59a2f54c39a..631ef18171b 100644 --- a/dlls/msxml3/doctype.c +++ b/dlls/msxml3/doctype.c @@ -178,9 +178,11 @@ static HRESULT WINAPI domdoctype_get_nodeType(IXMLDOMDocumentType *iface, DOMNod static HRESULT WINAPI domdoctype_get_parentNode(IXMLDOMDocumentType *iface, IXMLDOMNode **parent) { - FIXME("%p, %p: stub\n", iface, parent); + domdoctype *doctype = impl_from_IXMLDOMDocumentType(iface); - return E_NOTIMPL; + TRACE("%p, %p.\n", iface, parent); + + return node_get_parent(doctype->node, parent); } static HRESULT WINAPI domdoctype_get_childNodes(IXMLDOMDocumentType *iface, IXMLDOMNodeList **list) diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index de969200eaf..665e0cfa954 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -14618,9 +14618,11 @@ static DWORD WINAPI new_thread(void *arg) static void test_get_parentNode(void) { + IXMLDOMDocumentType *doctype; IXMLDOMNode *node, *child; IXMLDOMAttribute *attr; IXMLDOMElement *e, *e2; + DOMNodeType node_type; IXMLDOMDocument *doc; VARIANT_BOOL b; HRESULT hr; @@ -14660,6 +14662,22 @@ static void test_get_parentNode(void) IXMLDOMElement_Release(e2); IXMLDOMElement_Release(e); + /* DTD parent */ + hr = IXMLDOMDocument_loadXML(doc, _bstr_(szEmailXML), NULL); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = IXMLDOMDocument_get_doctype(doc, &doctype); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + hr = IXMLDOMDocumentType_get_parentNode(doctype, NULL); + ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr); + hr = IXMLDOMDocumentType_get_parentNode(doctype, &node); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + hr = IXMLDOMNode_get_nodeType(node, &node_type); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(node_type == NODE_DOCUMENT, "Unexpected node type %d.\n", node_type); + IXMLDOMNode_Release(node); + IXMLDOMDocumentType_Release(doctype); + IXMLDOMDocument_Release(doc); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10664