[PATCH] Added support to create an Attribute in createNode

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Wed Jul 2 07:49:50 CDT 2008


---
 dlls/msxml3/domdoc.c       |   11 +++++++++++
 dlls/msxml3/tests/domdoc.c |   18 ++++++++++++++++++
 2 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index c860d90..b0578ba 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -1224,6 +1224,17 @@ static HRESULT WINAPI domdoc_createNode(
         *node = create_node(xmlnode);
         TRACE("created %p\n", xmlnode);
         break;
+    case NODE_ATTRIBUTE:
+        xmlnode = (xmlNode *)xmlNewProp(NULL, xml_name, NULL);
+        if(xmlnode)
+        {
+            xmlnode->doc = get_doc( This );
+
+            *node = (IXMLDOMNode*)create_attribute(xmlnode);
+        }
+        
+        TRACE("created %p\n", xmlnode);
+        break;
 
     default:
         FIXME("unhandled node type %d\n", node_type);
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index a5abefc..a8d8e12 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -1489,6 +1489,24 @@ static void test_create(void)
     ok( V_VT(&var) == VT_BSTR, "variant type %x\n", V_VT(&var));
     VariantClear(&var);
     SysFreeString(name);
+    
+    /* Create an Attribute */
+    V_VT(&var) = VT_I4;
+    V_I4(&var) = NODE_ATTRIBUTE;
+    str = SysAllocString( szAttribute );
+    r = IXMLDOMDocument_createNode( doc, var, str, NULL, &node );
+    ok( r == S_OK, "returns %08x\n", r );
+    ok( node != NULL, "node was null\n");
+    SysFreeString(str);
+    
+    if(r == S_OK)
+    {
+        r = IXMLDOMNode_get_nodeTypeString(node, &str);
+        ok( r == S_OK, "returns %08x\n", r );
+        ok( !lstrcmpW( str, _bstr_("attribute") ), "incorrect nodeTypeString string\n");
+        SysFreeString(str);
+        IXMLDOMNode_Release( node );
+    }
 
     IXMLDOMElement_Release( element );
     IXMLDOMNode_Release( root );
-- 
1.5.4.1


--------------030802020208020100080109--




More information about the wine-patches mailing list