[PATCH] IXMLDOMDocument does not support get_nextSibling

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Sun Jan 6 03:48:27 CST 2008


---
 dlls/msxml3/domdoc.c       |    9 +++++++--
 dlls/msxml3/tests/domdoc.c |    8 ++++++++
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index d955926..cbd71f2 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -529,8 +529,13 @@ static HRESULT WINAPI domdoc_get_nextSibling(
     IXMLDOMDocument2 *iface,
     IXMLDOMNode** nextSibling )
 {
-    domdoc *This = impl_from_IXMLDOMDocument2( iface );
-    return IXMLDOMNode_get_nextSibling( This->node, nextSibling );
+    if(!nextSibling)
+        return E_INVALIDARG;
+        
+    /* Document nodes does not have a next Sibling */
+    *nextSibling = NULL;
+    
+    return S_FALSE;
 }
 
 
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 66b942c..59c708c 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -1767,10 +1767,18 @@ static void test_xmlTypes(void)
     IXMLDOMAttribute *pAttrubute;
     IXMLDOMNamedNodeMap *pAttribs;
     BSTR str;
+    IXMLDOMNode *pDocChild = (IXMLDOMNode *)0x1;
 
     hr = CoCreateInstance( &CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER, &IID_IXMLDOMDocument2, (LPVOID*)&doc );
     if( hr != S_OK )
         return;
+        
+    hr = IXMLDOMDocument_get_nextSibling(doc, NULL);
+    ok(hr == E_INVALIDARG, "ret %08x\n", hr );
+    
+    hr = IXMLDOMDocument_get_nextSibling(doc, &pDocChild);                    
+    ok(hr == S_FALSE, "ret %08x\n", hr );
+    ok(pDocChild == NULL, "pNextChild not NULL");
 
     hr = IXMLDOMDocument_createElement(doc, _bstr_("Testing"), &pRoot);
     ok(hr == S_OK, "ret %08x\n", hr );
-- 
1.5.3.7


--------------010003020609070006050405--




More information about the wine-patches mailing list