Re: [2/2] msxml3: Add IDispatchEx support to IXMLDOMElement
Hi Alistair, Alistair Leslie-Hughes wrote:
Hi,
Changelog: 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. Thanks, Jacek
participants (1)
-
Jacek Caban