[2/3] mshtml: Pass IID_IHTMLBodyElement to the IDispatchEx interface

Jacek Caban jacek at codeweavers.com
Wed Aug 27 17:59:06 CDT 2008


Alistair Leslie-Hughes wrote:
> Hi Jacek,
>    Thanks for you feedback.
>
> Jacek Caban wrote:
>> Hi Alistair,
>>
>> You should add
>>     IHTMLDOMNode_tid,
>>     IHTMLDOMNode2_tid,
>>     IHTMLElement_tid,
>>     IHTMLElement2_tid,
> Can you tell me what this list is for?

We need to support functions that are in different dual interfaces. 
There is one interface (usually called Disp*) that contains all object's 
methods, but, as it's dispinterface, we can't use it in 
ITypeInfo::Invoke call. That's why we also need a list of dual 
interfaces to build a list of methods containing all info we need. Let 
me know if you need more explanation.

>
>> here.
>>
>>> +static dispex_static_data_t HTMLBodyElement_dispex = {
>>> +    NULL,
>>> +    IHTMLBodyElement_tid,
>>
>>
>> You should use DispHTMLBodyElement here.
>>
> I assumed the DispHTMLBodyElement_tid == DIID_IHTMLBodyElement, based 
> off the current implementation, but DIID_IHTMLBodyElement doesn't 
> exist in the mshtml.h file (Microsoft one).  This is why I used 
> IHTMLBodyElement_tid.
> So make DispHTMLBodyElement_tid = IID_IHTMLBodyElement?

It looks like body element breaks the naming convention of other 
element's interfaces and it's called DispHTMLBody (its iid is 
DIID_DispHTMLBody).


Jacek



More information about the wine-devel mailing list