[PATCH] Cannot add an Attribute with appendChild

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Tue Jan 1 20:02:12 CST 2008


---
 dlls/msxml3/node.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index b7d962e..0141930 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -479,9 +479,27 @@ static HRESULT WINAPI xmlnode_appendChild(
     IXMLDOMNode** outNewChild)
 {
     xmlnode *This = impl_from_IXMLDOMNode( iface );
+    IXMLDOMNode *pAttr = NULL;
     VARIANT var;
 
     TRACE("(%p)->(%p,%p)\n", This, newChild, outNewChild);
+    
+    /* Cannot Append an Attribute node. */
+    IUnknown_QueryInterface(newChild, &IID_IXMLDOMNode, (LPVOID*)&pAttr);
+    if(pAttr)
+    {
+        xmlnode *ThisNew = impl_from_IXMLDOMNode( pAttr );
+
+        IUnknown_Release(pAttr);
+        
+        if(ThisNew->node->type == XML_ATTRIBUTE_NODE)
+        {
+            if(outNewChild) *outNewChild = NULL;
+
+            return E_FAIL;
+        }        
+    }
+    
     VariantInit(&var);
     return IXMLDOMNode_insertBefore(iface, newChild, var, outNewChild);
 }
-- 
1.5.3.6


--------------000901080402010607090308--




More information about the wine-patches mailing list