[2/2] msxml3: Add IDispatchEx support to IXMLDOMElement
jacek at codeweavers.com
Thu Aug 20 07:15:05 CDT 2009
Alistair Leslie-Hughes wrote:
> msxml3: Add IDispatchEx support to IXMLDOMElement
+ else if( IsEqualGUID( riid, &IID_IDispatch ) ||
+ IsEqualGUID( riid, &IID_IDispatchEx ) )
+ xmlnode *node = impl_from_IXMLDOMNode( This->node );
+ dispex_query_interface(&node->dispex, riid, ppvObject);
+ return *ppvObject ? S_OK : E_NOINTERFACE;
This should be handled by node's QueryInterface implementation.
+ xmlnode = impl_from_IXMLDOMNode( This->node );
It's not about your code as you follow msxml3 design, but this is ugly
and it shouldn't be needed.
+ init_dispex(&xmlnode->dispex, (IUnknown*)&This->lpVtbl, &domelem_dispex);
init_dispex is first called in create_basic_node, so you initialize it
second time here.
IMO msxml3 object inheritance needs serious design changes and it would
be better to do it before adding IDispatchEx support for node
implementations. I will send a few first patches.
More information about the wine-devel