Reimplement IXMLDOMDocument::createDocumentFragment() over ::createNode().

Nikolay Sivov bunglehead at gmail.com
Thu Feb 11 18:59:14 CST 2010


---
 dlls/msxml3/domdoc.c |   23 ++++++-----------------
 1 files changed, 6 insertions(+), 17 deletions(-)

diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index 6c80844..f999e12 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -1065,27 +1065,16 @@ static HRESULT WINAPI domdoc_createElement(
 
 static HRESULT WINAPI domdoc_createDocumentFragment(
     IXMLDOMDocument2 *iface,
-    IXMLDOMDocumentFragment** docFrag )
+    IXMLDOMDocumentFragment** frag )
 {
     domdoc *This = impl_from_IXMLDOMDocument2( iface );
-    xmlNodePtr xmlnode;
-
-    TRACE("%p\n", iface);
-
-    if(!docFrag)
-        return E_INVALIDARG;
-
-    *docFrag = NULL;
+    VARIANT type;
 
-    xmlnode = xmlNewDocFragment(get_doc( This ) );
+    TRACE("(%p)->(%p)\n", This, frag);
 
-    if(!xmlnode)
-        return E_FAIL;
-
-    xmldoc_add_orphan(xmlnode->doc, xmlnode);
-    *docFrag = (IXMLDOMDocumentFragment*)create_doc_fragment(xmlnode);
-
-    return S_OK;
+    V_VT(&type) = VT_I1;
+    V_I1(&type) = NODE_DOCUMENT_FRAGMENT;
+    return IXMLDOMDocument_createNode(iface, type, NULL, NULL, (IXMLDOMNode**)frag);
 }
 
 
-- 
1.5.6.5


--=-LzHjtXHc6eRB8+tGAZ7T--




More information about the wine-patches mailing list