diff --git a/dlls/msxml3/attribute.c b/dlls/msxml3/attribute.c index 0cfdefbde3a..88eead1c17d 100644 --- a/dlls/msxml3/attribute.c +++ b/dlls/msxml3/attribute.c @@ -344,10 +344,11 @@ static HRESULT WINAPI domattr_appendChild( static HRESULT WINAPI domattr_hasChildNodes( IXMLDOMAttribute *iface, - VARIANT_BOOL* pbool) + VARIANT_BOOL *ret) { domattr *This = impl_from_IXMLDOMAttribute( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, pbool ); + TRACE("(%p)->(%p)\n", This, ret); + return node_has_childnodes(&This->node, ret); } static HRESULT WINAPI domattr_get_ownerDocument( diff --git a/dlls/msxml3/cdata.c b/dlls/msxml3/cdata.c index 06a8f4cf345..977778d8b0b 100644 --- a/dlls/msxml3/cdata.c +++ b/dlls/msxml3/cdata.c @@ -355,10 +355,11 @@ static HRESULT WINAPI domcdata_appendChild( static HRESULT WINAPI domcdata_hasChildNodes( IXMLDOMCDATASection *iface, - VARIANT_BOOL* pbool) + VARIANT_BOOL *ret) { domcdata *This = impl_from_IXMLDOMCDATASection( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, pbool ); + TRACE("(%p)->(%p)\n", This, ret); + return node_has_childnodes(&This->node, ret); } static HRESULT WINAPI domcdata_get_ownerDocument( diff --git a/dlls/msxml3/comment.c b/dlls/msxml3/comment.c index 858979c9678..8fabca5cc71 100644 --- a/dlls/msxml3/comment.c +++ b/dlls/msxml3/comment.c @@ -348,10 +348,11 @@ static HRESULT WINAPI domcomment_appendChild( static HRESULT WINAPI domcomment_hasChildNodes( IXMLDOMComment *iface, - VARIANT_BOOL* pbool) + VARIANT_BOOL *ret) { domcomment *This = impl_from_IXMLDOMComment( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, pbool ); + TRACE("(%p)->(%p)\n", This, ret); + return node_has_childnodes(&This->node, ret); } static HRESULT WINAPI domcomment_get_ownerDocument( diff --git a/dlls/msxml3/docfrag.c b/dlls/msxml3/docfrag.c index a2d2e158e49..3e3a6f2a719 100644 --- a/dlls/msxml3/docfrag.c +++ b/dlls/msxml3/docfrag.c @@ -352,10 +352,11 @@ static HRESULT WINAPI domfrag_appendChild( static HRESULT WINAPI domfrag_hasChildNodes( IXMLDOMDocumentFragment *iface, - VARIANT_BOOL* pbool) + VARIANT_BOOL *ret) { domfrag *This = impl_from_IXMLDOMDocumentFragment( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, pbool ); + TRACE("(%p)->(%p)\n", This, ret); + return node_has_childnodes(&This->node, ret); } static HRESULT WINAPI domfrag_get_ownerDocument( diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c index 0639dacc680..cc8cc86f0f8 100644 --- a/dlls/msxml3/domdoc.c +++ b/dlls/msxml3/domdoc.c @@ -1239,10 +1239,11 @@ static HRESULT WINAPI domdoc_appendChild( static HRESULT WINAPI domdoc_hasChildNodes( IXMLDOMDocument3 *iface, - VARIANT_BOOL* hasChild) + VARIANT_BOOL *ret) { domdoc *This = impl_from_IXMLDOMDocument3( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, hasChild ); + TRACE("(%p)->(%p)\n", This, ret); + return node_has_childnodes(&This->node, ret); } diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c index a36128e6d8f..4954a7154e6 100644 --- a/dlls/msxml3/element.c +++ b/dlls/msxml3/element.c @@ -363,10 +363,11 @@ static HRESULT WINAPI domelem_appendChild( static HRESULT WINAPI domelem_hasChildNodes( IXMLDOMElement *iface, - VARIANT_BOOL* pbool) + VARIANT_BOOL *ret) { domelem *This = impl_from_IXMLDOMElement( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, pbool ); + TRACE("(%p)->(%p)\n", This, ret); + return node_has_childnodes(&This->node, ret); } static HRESULT WINAPI domelem_get_ownerDocument( diff --git a/dlls/msxml3/entityref.c b/dlls/msxml3/entityref.c index a983934703b..4f4ab25472c 100644 --- a/dlls/msxml3/entityref.c +++ b/dlls/msxml3/entityref.c @@ -346,10 +346,11 @@ static HRESULT WINAPI entityref_appendChild( static HRESULT WINAPI entityref_hasChildNodes( IXMLDOMEntityReference *iface, - VARIANT_BOOL* pbool) + VARIANT_BOOL *ret) { entityref *This = impl_from_IXMLDOMEntityReference( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, pbool ); + TRACE("(%p)->(%p)\n", This, ret); + return node_has_childnodes(&This->node, ret); } static HRESULT WINAPI entityref_get_ownerDocument( diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h index ccaa9c6d69c..45a39028050 100644 --- a/dlls/msxml3/msxml_private.h +++ b/dlls/msxml3/msxml_private.h @@ -273,6 +273,7 @@ extern HRESULT node_get_prefix(xmlnode*,BSTR*); extern HRESULT node_get_base_name(xmlnode*,BSTR*); extern HRESULT node_get_namespaceURI(xmlnode*,BSTR*); extern HRESULT node_remove_child(xmlnode*,IXMLDOMNode*,IXMLDOMNode**); +extern HRESULT node_has_childnodes(const xmlnode*,VARIANT_BOOL*); extern HRESULT DOMDocument_create_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **document); extern HRESULT SchemaCache_validate_tree(IXMLDOMSchemaCollection2* iface, xmlNodePtr tree); diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 1e186effadd..214f1e68087 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -449,23 +449,17 @@ HRESULT node_append_child(xmlnode *This, IXMLDOMNode *child, IXMLDOMNode **outCh return IXMLDOMNode_insertBefore(This->iface, child, var, outChild); } -static HRESULT WINAPI xmlnode_hasChildNodes( - IXMLDOMNode *iface, - VARIANT_BOOL* hasChild) +HRESULT node_has_childnodes(const xmlnode *This, VARIANT_BOOL *ret) { - xmlnode *This = impl_from_IXMLDOMNode( iface ); + if (!ret) return E_INVALIDARG; - TRACE("(%p)->(%p)\n", This, hasChild); - - if (!hasChild) - return E_INVALIDARG; if (!This->node->children) { - *hasChild = VARIANT_FALSE; + *ret = VARIANT_FALSE; return S_FALSE; } - *hasChild = VARIANT_TRUE; + *ret = VARIANT_TRUE; return S_OK; } @@ -1142,7 +1136,7 @@ static const struct IXMLDOMNodeVtbl xmlnode_vtbl = NULL, NULL, NULL, - xmlnode_hasChildNodes, + NULL, xmlnode_get_ownerDocument, NULL, NULL, @@ -1498,7 +1492,7 @@ static HRESULT WINAPI unknode_hasChildNodes( VARIANT_BOOL* pbool) { unknode *This = unknode_from_IXMLDOMNode( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, pbool ); + return node_has_childnodes(&This->node, pbool); } static HRESULT WINAPI unknode_get_ownerDocument( diff --git a/dlls/msxml3/pi.c b/dlls/msxml3/pi.c index fce1c0c3c9a..b0e063852f0 100644 --- a/dlls/msxml3/pi.c +++ b/dlls/msxml3/pi.c @@ -362,10 +362,11 @@ static HRESULT WINAPI dom_pi_appendChild( static HRESULT WINAPI dom_pi_hasChildNodes( IXMLDOMProcessingInstruction *iface, - VARIANT_BOOL* pbool) + VARIANT_BOOL *ret) { dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, pbool ); + TRACE("(%p)->(%p)\n", This, ret); + return node_has_childnodes(&This->node, ret); } static HRESULT WINAPI dom_pi_get_ownerDocument( diff --git a/dlls/msxml3/text.c b/dlls/msxml3/text.c index a76ff9ef8da..e8db21bd808 100644 --- a/dlls/msxml3/text.c +++ b/dlls/msxml3/text.c @@ -361,10 +361,11 @@ static HRESULT WINAPI domtext_appendChild( static HRESULT WINAPI domtext_hasChildNodes( IXMLDOMText *iface, - VARIANT_BOOL* pbool) + VARIANT_BOOL *ret) { domtext *This = impl_from_IXMLDOMText( iface ); - return IXMLDOMNode_hasChildNodes( &This->node.IXMLDOMNode_iface, pbool ); + TRACE("(%p)->(%p)\n", This, ret); + return node_has_childnodes(&This->node, ret); } static HRESULT WINAPI domtext_get_ownerDocument(