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

Jacek Caban jacek at codeweavers.com
Wed Aug 27 03:32:16 CDT 2008


Hi Alistair,

Alistair Leslie-Hughes wrote:
> Hi,
>
> Changelog:
>     mshtml: Pass IID_IHTMLBodyElement to the IDispatchEx interface


Look at other elements implementation how to do it properly. Your patch 
will break scripts that use body element.

> +static const tid_t HTMLBodyElement_iface_tids[] = {
> +    IHTMLBodyElement_tid,
> +    0
> +};
> +

You should add
    IHTMLDOMNode_tid,
    IHTMLDOMNode2_tid,
    IHTMLElement_tid,
    IHTMLElement2_tid,
here.

> +static dispex_static_data_t HTMLBodyElement_dispex = {
> +    NULL,
> +    IHTMLBodyElement_tid,


You should use DispHTMLBodyElement here.

> @@ -601,6 +613,7 @@ HTMLElement *HTMLBodyElement_Create(nsIDOMHTMLElement *nselem)
>      HTMLTextContainer_Init(&ret->textcont);
>  
>      ret->lpHTMLBodyElementVtbl = &HTMLBodyElementVtbl;
> +    ret->textcont.element.node.dispex.data = &HTMLBodyElement_dispex;

You should call init_dispex here.



Jacek 





More information about the wine-devel mailing list