From 8869f7edc288be20afd8d672f60ce425da99c7d1 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Mon, 19 Oct 2009 18:53:22 +0000 Subject: [PATCH] -sync msxml3_winetest with wine 1.1.31 svn path=/trunk/; revision=43617 --- rostests/winetests/msxml3/domdoc.c | 92 ++++++++++++++++++------------ 1 file changed, 54 insertions(+), 38 deletions(-) diff --git a/rostests/winetests/msxml3/domdoc.c b/rostests/winetests/msxml3/domdoc.c index 2d831dd7fbd..469a4f94492 100644 --- a/rostests/winetests/msxml3/domdoc.c +++ b/rostests/winetests/msxml3/domdoc.c @@ -323,6 +323,55 @@ static void get_str_for_type(DOMNodeType type, char *buf) } } +#define test_disp(u) _test_disp(__LINE__,u) +static void _test_disp(unsigned line, IUnknown *unk) +{ + DISPID dispid = DISPID_XMLDOM_NODELIST_RESET; + IDispatchEx *dispex; + DWORD dwProps = 0; + BSTR sName; + UINT ticnt; + IUnknown *pUnk; + HRESULT hres; + + hres = IUnknown_QueryInterface(unk, &IID_IDispatchEx, (void**)&dispex); + ok_(__FILE__,line) (hres == S_OK, "Could not get IDispatch: %08x\n", hres); + if(FAILED(hres)) + return; + + ticnt = 0xdeadbeef; + hres = IDispatchEx_GetTypeInfoCount(dispex, &ticnt); + ok_(__FILE__,line) (hres == S_OK, "GetTypeInfoCount failed: %08x\n", hres); + ok_(__FILE__,line) (ticnt == 1, "ticnt=%u\n", ticnt); + + sName = SysAllocString( szstar ); + hres = IDispatchEx_DeleteMemberByName(dispex, sName, fdexNameCaseSensitive); + ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres); + SysFreeString( sName ); + + hres = IDispatchEx_DeleteMemberByDispID(dispex, dispid); + ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres); + + hres = IDispatchEx_GetMemberProperties(dispex, dispid, grfdexPropCanAll, &dwProps); + ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres); + ok(dwProps == 0, "expected 0 got %d\n", dwProps); + + hres = IDispatchEx_GetMemberName(dispex, dispid, &sName); + ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres); + if(SUCCEEDED(hres)) + SysFreeString(sName); + + hres = IDispatchEx_GetNextDispID(dispex, fdexEnumDefault, DISPID_XMLDOM_NODELIST_RESET, &dispid); + ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres); + + hres = IDispatchEx_GetNameSpaceParent(dispex, &pUnk); + ok(hres == E_NOTIMPL, "expected E_NOTIMPL got %08x\n", hres); + if(hres == S_OK && pUnk) + IUnknown_Release(pUnk); + + IDispatchEx_Release(dispex); +} + static int get_node_position(IXMLDOMNode *node) { HRESULT r; @@ -457,6 +506,8 @@ static void test_domdoc( void ) if( r != S_OK ) return; + test_disp((IUnknown*)doc); + /* try some stupid things */ r = IXMLDOMDocument_loadXML( doc, NULL, NULL ); ok( r == S_FALSE, "loadXML failed\n"); @@ -548,6 +599,8 @@ static void test_domdoc( void ) IObjectIdentity *ident; BSTR tag = NULL; + test_disp((IUnknown*)element); + r = IXMLDOMElement_QueryInterface( element, &IID_IObjectIdentity, (LPVOID*)&ident ); ok( r == E_NOINTERFACE, "ret %08x\n", r); @@ -1660,7 +1713,6 @@ static void test_getElementsByTagName(void) VARIANT_BOOL b; IXMLDOMDocument *doc; IXMLDOMNodeList *node_list; - IDispatchEx *dispex; LONG len; r = CoCreateInstance( &CLSID_DOMDocument, NULL, @@ -1681,43 +1733,7 @@ static void test_getElementsByTagName(void) ok( r == S_OK, "ret %08x\n", r ); ok( len == 6, "len %d\n", len ); - 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( SUCCEEDED(r) ) - 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 ); - } - + test_disp((IUnknown*)node_list); IXMLDOMNodeList_Release( node_list ); SysFreeString( str );