[3/4] msxml3: Add IDispatchEx support for IXMLDOMNamedNodeMap

Jacek Caban jacek at codeweavers.com
Fri Nov 4 12:21:37 CDT 2011


On 11/04/11 17:11, Nikolay Sivov wrote:
> On 11/4/2011 20:00, Jacek Caban wrote:
>> Hi Nikolay,
>>
>> On 11/04/11 16:46, Nikolay Sivov wrote:
>>> +    if(This->data->vtbl&&  This->data->vtbl->invoke) {
>>> +        hres = This->data->vtbl->invoke(This->outer, id, lcid, 
>>> wFlags, pdp, pvarRes, pei);
>>> +        if (hres != E_NOTIMPL) return hres;
>>> +    }
>>
>> Using E_NOTIMPL for special meaning here seems wrong to me. 
>> DISP_E_UNKNOWNNAME could be a better choice. However, if you'd move 
>> custom invoke implementation to be the last choice, after dynamic and 
>> typelib-based values, then you could simply return whatever invoke 
>> returns.
> I was thinking about additional call in vtable to use instead of 
> is_custom to check if dispid is supposed to be handled with custom 
> invoke. What do you think about it?

It really depends on how it's used in msxml3. The problem with this 
solution is that it means more code in every object using custom dipids. 
If we can avoid it, even at cost of more complicated code in dispex.c, 
that's probably better in terms of code maintaining IMO.

Jacek



More information about the wine-devel mailing list