Module: wine Branch: master Commit: ac29a3d838ed122af1d8cd9c447e55966a0cfdc7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ac29a3d838ed122af1d8cd9c44...
Author: Alistair Leslie-Hughes leslie_alistair@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 );