[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