Alistair Leslie-Hughes : msxml3: Correct unsupported functions in IDispatchEx.

Alexandre Julliard julliard at winehq.org
Wed Aug 27 08:24:49 CDT 2008


Module: wine
Branch: master
Commit: ac29a3d838ed122af1d8cd9c447e55966a0cfdc7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ac29a3d838ed122af1d8cd9c447e55966a0cfdc7

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Wed Aug 27 16:33:40 2008 +1000

msxml3: Correct unsupported functions in IDispatchEx.

---

 dlls/msxml3/dispex.c       |   14 +++++++-------
 dlls/msxml3/tests/domdoc.c |   33 +++++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 7 deletions(-)

diff --git a/dlls/msxml3/dispex.c b/dlls/msxml3/dispex.c
index 4156c78..438cf48 100644
--- a/dlls/msxml3/dispex.c
+++ b/dlls/msxml3/dispex.c
@@ -542,42 +542,42 @@ static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc
 static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex)
 {
     DispatchEx *This = impl_from_IDispatchEx(iface);
-    FIXME("(%p)->(%s %x)\n", This, debugstr_w(bstrName), grfdex);
-    return S_OK;
+    TRACE("Not implemented in native msxml3 (%p)->(%s %x)\n", This, debugstr_w(bstrName), grfdex);
+    return E_NOTIMPL;
 }
 
 static HRESULT WINAPI DispatchEx_DeleteMemberByDispID(IDispatchEx *iface, DISPID id)
 {
     DispatchEx *This = impl_from_IDispatchEx(iface);
-    FIXME("(%p)->(%x)\n", This, id);
+    TRACE("Not implemented in native msxml3 (%p)->(%x)\n", This, id);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI DispatchEx_GetMemberProperties(IDispatchEx *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex)
 {
     DispatchEx *This = impl_from_IDispatchEx(iface);
-    FIXME("(%p)->(%x %x %p)\n", This, id, grfdexFetch, pgrfdex);
+    TRACE("Not implemented in native msxml3 (%p)->(%x %x %p)\n", This, id, grfdexFetch, pgrfdex);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI DispatchEx_GetMemberName(IDispatchEx *iface, DISPID id, BSTR *pbstrName)
 {
     DispatchEx *This = impl_from_IDispatchEx(iface);
-    FIXME("(%p)->(%x %p)\n", This, id, pbstrName);
+    TRACE("Not implemented in native msxml3 (%p)->(%x %p)\n", This, id, pbstrName);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI DispatchEx_GetNextDispID(IDispatchEx *iface, DWORD grfdex, DISPID id, DISPID *pid)
 {
     DispatchEx *This = impl_from_IDispatchEx(iface);
-    FIXME("(%p)->(%x %x %p)\n", This, grfdex, id, pid);
+    TRACE(" Not implemented in native msxml3 (%p)->(%x %x %p)\n", This, grfdex, id, pid);
     return E_NOTIMPL;
 }
 
 static HRESULT WINAPI DispatchEx_GetNameSpaceParent(IDispatchEx *iface, IUnknown **ppunk)
 {
     DispatchEx *This = impl_from_IDispatchEx(iface);
-    FIXME("(%p)->(%p)\n", This, ppunk);
+    TRACE("Not implemented in native msxml3 (%p)->(%p)\n", This, ppunk);
     return E_NOTIMPL;
 }
 
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 8a48882..8af6b02 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -26,6 +26,7 @@
 #include "ole2.h"
 #include "xmldom.h"
 #include "msxml2.h"
+#include "msxml2did.h"
 #include "dispex.h"
 #include <stdio.h>
 #include <assert.h>
@@ -1544,7 +1545,39 @@ static void test_getElementsByTagName(void)
     r = IXMLDOMNodeList_QueryInterface( node_list, &IID_IDispatchEx, (void**)&dispex );
     ok( r == S_OK, "rets %08x\n", r);
     if( r == S_OK )
+    {
+        DISPID dispid = DISPID_XMLDOM_NODELIST_RESET;
+        DWORD dwProps = 0;
+        BSTR sName;
+        IUnknown *pUnk;
+
+        sName = SysAllocString( szstar );
+        r = IDispatchEx_DeleteMemberByName(dispex, sName, fdexNameCaseSensitive);
+        ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
+        SysFreeString( sName );
+
+        r = IDispatchEx_DeleteMemberByDispID(dispex, dispid);
+        ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
+
+        r = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &dwProps);
+        ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
+        ok(dwProps == 0, "expected 0 got %d\n", dwProps);
+
+        r = IDispatchEx_GetMemberName(dispex, dispid, &sName);
+        ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
+        if(sName)
+            SysFreeString(sName);
+
+        r = IDispatchEx_GetNextDispID(dispex, fdexEnumDefault, DISPID_XMLDOM_NODELIST_RESET, &dispid);
+        ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
+
+        r = IDispatchEx_GetNameSpaceParent(dispex, &pUnk);
+        ok(r == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", r);
+        if(r == S_OK)
+            IUnknown_Release(pUnk);
+
         IDispatchEx_Release( dispex );
+    }
 
 
     IXMLDOMNodeList_Release( node_list );




More information about the wine-cvs mailing list