msxml: selectSingleNode

Huw D M Davies h.davies1 at physics.ox.ac.uk
Tue Nov 8 07:48:05 CST 2005


        Huw Davies <huw at codeweavers.com>
        Implement selectSingleNode
-- 
Huw Davies
huw at codeweavers.com
Index: dlls/msxml3/node.c
===================================================================
RCS file: /home/wine/wine/dlls/msxml3/node.c,v
retrieving revision 1.13
diff -u -p -r1.13 node.c
--- dlls/msxml3/node.c	8 Nov 2005 12:46:43 -0000	1.13
+++ dlls/msxml3/node.c	8 Nov 2005 13:46:54 -0000
@@ -586,8 +586,19 @@ static HRESULT WINAPI xmlnode_selectSing
     BSTR queryString,
     IXMLDOMNode** resultNode)
 {
-    FIXME("\n");
-    return E_NOTIMPL;
+    xmlnode *This = impl_from_IXMLDOMNode( iface );
+    IXMLDOMNodeList *list;
+    HRESULT r;
+
+    TRACE("%p %s %p\n", This, debugstr_w(queryString), resultNode );
+
+    r = IXMLDOMNode_selectNodes(iface, queryString, &list);
+    if(SUCCEEDED(r))
+    {
+        r = IXMLDOMNodeList_nextNode(list, resultNode);
+        IXMLDOMNodeList_Release(list);
+    }
+    return r;
 }
 
 static HRESULT WINAPI xmlnode_get_parsed(
Index: dlls/msxml3/tests/domdoc.c
===================================================================
RCS file: /home/wine/wine/dlls/msxml3/tests/domdoc.c,v
retrieving revision 1.7
diff -u -p -r1.7 domdoc.c
--- dlls/msxml3/tests/domdoc.c	8 Nov 2005 13:10:49 -0000	1.7
+++ dlls/msxml3/tests/domdoc.c	8 Nov 2005 13:46:54 -0000
@@ -447,6 +447,13 @@ void test_domnode( void )
     else
         ok( FALSE, "no element\n");
 
+    r = IXMLDOMNode_selectSingleNode( element, (BSTR)szdl, &node );
+    ok( r == S_FALSE, "ret %08lx\n", r );
+    r = IXMLDOMNode_selectSingleNode( element, (BSTR)szbs, &node );
+    ok( r == S_OK, "ret %08lx\n", r );
+    r = IXMLDOMNode_Release( node );
+    ok( r == 0, "ret %08lx\n", r );
+
     if (list)
     {
         r = IXMLDOMNodeList_get_length( list, &count );



More information about the wine-patches mailing list