Alistair Leslie-Hughes : msxml3: Cannot add an attribute with appendChild.
Alexandre Julliard
julliard at winehq.org
Fri Jan 4 07:12:42 CST 2008
Module: wine
Branch: master
Commit: cdac6b500543381a047301ea3f36bd1844059508
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cdac6b500543381a047301ea3f36bd1844059508
Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Fri Jan 4 09:15:00 2008 +1100
msxml3: Cannot add an attribute with appendChild.
---
dlls/msxml3/node.c | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index 019f1d3..c0fd27c 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -482,9 +482,29 @@ 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 );
+
+ if(ThisNew->node->type == XML_ATTRIBUTE_NODE)
+ {
+ if(outNewChild) *outNewChild = NULL;
+
+ IUnknown_Release(pAttr);
+
+ return E_FAIL;
+ }
+
+ IUnknown_Release(pAttr);
+ }
+
VariantInit(&var);
return IXMLDOMNode_insertBefore(iface, newChild, var, outNewChild);
}
More information about the wine-cvs
mailing list