diff --git a/dlls/msxml3/attribute.c b/dlls/msxml3/attribute.c index aa0f2d05d0..9a0394dad8 100644 --- a/dlls/msxml3/attribute.c +++ b/dlls/msxml3/attribute.c @@ -238,7 +238,10 @@ static HRESULT WINAPI domattr_get_childNodes( IXMLDOMNodeList** outList) { domattr *This = impl_from_IXMLDOMAttribute( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList ); + + TRACE("(%p)->(%p)\n", This, outList); + + return node_get_child_nodes(&This->node, outList); } static HRESULT WINAPI domattr_get_firstChild( diff --git a/dlls/msxml3/cdata.c b/dlls/msxml3/cdata.c index 56c26951c4..902fe26048 100644 --- a/dlls/msxml3/cdata.c +++ b/dlls/msxml3/cdata.c @@ -249,7 +249,10 @@ static HRESULT WINAPI domcdata_get_childNodes( IXMLDOMNodeList** outList) { domcdata *This = impl_from_IXMLDOMCDATASection( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList ); + + TRACE("(%p)->(%p)\n", This, outList); + + return node_get_child_nodes(&This->node, outList); } static HRESULT WINAPI domcdata_get_firstChild( diff --git a/dlls/msxml3/comment.c b/dlls/msxml3/comment.c index 3a30d6cba9..8763864b5d 100644 --- a/dlls/msxml3/comment.c +++ b/dlls/msxml3/comment.c @@ -242,7 +242,10 @@ static HRESULT WINAPI domcomment_get_childNodes( IXMLDOMNodeList** outList) { domcomment *This = impl_from_IXMLDOMComment( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList ); + + TRACE("(%p)->(%p)\n", This, outList); + + return node_get_child_nodes(&This->node, outList); } static HRESULT WINAPI domcomment_get_firstChild( diff --git a/dlls/msxml3/docfrag.c b/dlls/msxml3/docfrag.c index 5bc8e4bfe8..ed8b6c5f77 100644 --- a/dlls/msxml3/docfrag.c +++ b/dlls/msxml3/docfrag.c @@ -244,7 +244,10 @@ static HRESULT WINAPI domfrag_get_childNodes( IXMLDOMNodeList** outList) { domfrag *This = impl_from_IXMLDOMDocumentFragment( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList ); + + TRACE("(%p)->(%p)\n", This, outList); + + return node_get_child_nodes(&This->node, outList); } static HRESULT WINAPI domfrag_get_firstChild( diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c index f2a7ad68dd..f7400f4862 100644 --- a/dlls/msxml3/domdoc.c +++ b/dlls/msxml3/domdoc.c @@ -752,7 +752,10 @@ static HRESULT WINAPI domdoc_get_childNodes( IXMLDOMNodeList** childList ) { domdoc *This = impl_from_IXMLDOMDocument3( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), childList ); + + TRACE("(%p)->(%p)\n", This, childList); + + return node_get_child_nodes(&This->node, childList); } diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c index 3d6228d8c7..c7c8d45565 100644 --- a/dlls/msxml3/element.c +++ b/dlls/msxml3/element.c @@ -253,7 +253,10 @@ static HRESULT WINAPI domelem_get_childNodes( IXMLDOMNodeList** outList) { domelem *This = impl_from_IXMLDOMElement( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList ); + + TRACE("(%p)->(%p)\n", This, outList); + + return node_get_child_nodes(&This->node, outList); } static HRESULT WINAPI domelem_get_firstChild( diff --git a/dlls/msxml3/entityref.c b/dlls/msxml3/entityref.c index 9fb9ab37f2..3b8ae533fe 100644 --- a/dlls/msxml3/entityref.c +++ b/dlls/msxml3/entityref.c @@ -240,7 +240,10 @@ static HRESULT WINAPI entityref_get_childNodes( IXMLDOMNodeList** outList) { entityref *This = impl_from_IXMLDOMEntityReference( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList ); + + TRACE("(%p)->(%p)\n", This, outList); + + return node_get_child_nodes(&This->node, outList); } static HRESULT WINAPI entityref_get_firstChild( diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h index f54e9aefee..8964818e46 100644 --- a/dlls/msxml3/msxml_private.h +++ b/dlls/msxml3/msxml_private.h @@ -163,6 +163,8 @@ extern HRESULT node_get_nodeName(xmlnode*,BSTR*); extern HRESULT node_get_content(xmlnode*,VARIANT*); extern HRESULT node_put_value(xmlnode*,VARIANT*); extern HRESULT node_get_parent(xmlnode*,IXMLDOMNode**); +extern HRESULT node_get_child_nodes(xmlnode*,IXMLDOMNodeList**); + extern HRESULT DOMDocument_create_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **document); diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 7bcbe1269c..aa494c4e74 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -293,22 +293,24 @@ static HRESULT WINAPI xmlnode_get_parentNode( return E_NOTIMPL; } +HRESULT node_get_child_nodes(xmlnode *This, IXMLDOMNodeList **ret) +{ + if(!ret) + return E_INVALIDARG; + + *ret = create_children_nodelist(This->node); + if(!*ret) + return E_OUTOFMEMORY; + + return S_OK; +} + static HRESULT WINAPI xmlnode_get_childNodes( IXMLDOMNode *iface, IXMLDOMNodeList** childList) { - xmlnode *This = impl_from_IXMLDOMNode( iface ); - - TRACE("(%p)->(%p)\n", This, childList ); - - if ( !childList ) - return E_INVALIDARG; - - *childList = create_children_nodelist(This->node); - if (*childList == NULL) - return E_OUTOFMEMORY; - - return S_OK; + ERR("Should not be called\n"); + return E_NOTIMPL; } static HRESULT WINAPI xmlnode_get_firstChild( @@ -1825,7 +1827,10 @@ static HRESULT WINAPI unknode_get_childNodes( IXMLDOMNodeList** outList) { unknode *This = impl_from_unkIXMLDOMNode( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList ); + + TRACE("(%p)->(%p)\n", This, outList); + + return node_get_child_nodes(&This->node, outList); } static HRESULT WINAPI unknode_get_firstChild( diff --git a/dlls/msxml3/pi.c b/dlls/msxml3/pi.c index 95f3327367..20e6bd6af9 100644 --- a/dlls/msxml3/pi.c +++ b/dlls/msxml3/pi.c @@ -255,7 +255,10 @@ static HRESULT WINAPI dom_pi_get_childNodes( IXMLDOMNodeList** outList) { dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList ); + + TRACE("(%p)->(%p)\n", This, outList); + + return node_get_child_nodes(&This->node, outList); } static HRESULT WINAPI dom_pi_get_firstChild( diff --git a/dlls/msxml3/text.c b/dlls/msxml3/text.c index 48801d670d..5891814c40 100644 --- a/dlls/msxml3/text.c +++ b/dlls/msxml3/text.c @@ -255,7 +255,10 @@ static HRESULT WINAPI domtext_get_childNodes( IXMLDOMNodeList** outList) { domtext *This = impl_from_IXMLDOMText( iface ); - return IXMLDOMNode_get_childNodes( IXMLDOMNode_from_impl(&This->node), outList ); + + TRACE("(%p)->(%p)\n", This, outList); + + return node_get_child_nodes(&This->node, outList); } static HRESULT WINAPI domtext_get_firstChild(