From: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> --- dlls/msxml3/domdoc.c | 15 ++++++++------- dlls/msxml3/node.c | 7 +++++-- dlls/msxml3/tests/domdoc.c | 4 ---- dlls/msxml4/tests/domdoc.c | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c index c00e0f2984b..1e7398f8d70 100644 --- a/dlls/msxml3/domdoc.c +++ b/dlls/msxml3/domdoc.c @@ -1253,15 +1253,16 @@ static HRESULT WINAPI domdoc_hasChildNodes( } -static HRESULT WINAPI domdoc_get_ownerDocument( - IXMLDOMDocument3 *iface, - IXMLDOMDocument **doc) +static HRESULT WINAPI domdoc_get_ownerDocument(IXMLDOMDocument3 *iface, IXMLDOMDocument **owner) { - domdoc *This = impl_from_IXMLDOMDocument3( iface ); - TRACE("(%p)->(%p)\n", This, doc); - return node_get_owner_doc(&This->node, doc); -} + TRACE("%p, %p.\n", iface, owner); + if (!owner) + return E_INVALIDARG; + + *owner = NULL; + return S_FALSE; +} static HRESULT WINAPI domdoc_cloneNode( IXMLDOMDocument3 *iface, diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 3e389144cd4..349e154e05c 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -2001,8 +2001,11 @@ HRESULT node_transform_node_params(const xmlnode *This, IXMLDOMNode *stylesheet, sheet = get_node_obj(stylesheet); if(!sheet) return E_FAIL; - if (FAILED(hr = IXMLDOMNode_get_ownerDocument(stylesheet, &owner_doc))) - return hr; + if (FAILED(IXMLDOMNode_QueryInterface(stylesheet, &IID_IXMLDOMDocument, (void **)&owner_doc))) + { + if (FAILED(hr = IXMLDOMNode_get_ownerDocument(stylesheet, &owner_doc))) + return hr; + } sheet_doc = xmlCopyDoc(sheet->node->doc, 1); xsltSS = xsltParseStylesheetDoc(sheet_doc); diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c index 6af4094546c..2611e13c677 100644 --- a/dlls/msxml3/tests/domdoc.c +++ b/dlls/msxml3/tests/domdoc.c @@ -8401,9 +8401,7 @@ static void test_get_ownerDocument(void) doc1 = (void *)0xdead; hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); - todo_wine ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr); - todo_wine ok(!doc1, "Unexpected pointer.\n"); VariantInit(&var); @@ -8417,9 +8415,7 @@ static void test_get_ownerDocument(void) doc1 = (void *)0xdead; hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); - todo_wine ok(hr == S_FALSE, "Unexpected hr %#lx.\n", hr); - todo_wine ok(!doc1, "Unexpected pointer.\n"); check_default_props(doc); diff --git a/dlls/msxml4/tests/domdoc.c b/dlls/msxml4/tests/domdoc.c index 4b8e75bb440..c0e528e19be 100644 --- a/dlls/msxml4/tests/domdoc.c +++ b/dlls/msxml4/tests/domdoc.c @@ -335,8 +335,8 @@ static void test_get_ownerDocument(void) doc1 = (void *)0xdead; hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); todo_wine + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(!doc1, "Unexpected pointer.\n"); hr = IXMLDOMDocument2_loadXML(doc, _bstr_(L"<a>text</a>"), &b); @@ -348,8 +348,8 @@ static void test_get_ownerDocument(void) doc1 = (void *)0xdead; hr = IXMLDOMDocument2_get_ownerDocument(doc, &doc1); - ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); todo_wine + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(!doc1, "Unexpected pointer.\n"); IXMLDOMDocument2_Release(doc); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10188