[PATCH] mshtml: Add IHTMLDOMRange stub.

Jacek Caban jacek at codeweavers.com
Thu Jun 27 04:45:53 CDT 2019


Hi Nikolay,


On 27/06/2019 10:51, Nikolay Sivov wrote:
> +    nsIDOMRange *nsrange;
> +    HTMLDocumentNode *doc;
> +
> +    struct list entry;


This object will probably not need document reference. Please remove doc 
and range list, we can always add it if really needed.


> +static const tid_t HTMLDOMRange_iface_tids[] = {
> +    IHTMLDOMRange_tid,
> +    0
> +};
> +
> +static dispex_static_data_t HTMLDOMRange_dispex = {
> +    NULL,
> +    IHTMLDOMRange_tid,
> +    HTMLDOMRange_iface_tids
> +};


It's probably right, but it could use a test in dom.c with test_disp() call.


> diff --git a/include/mshtml.idl b/include/mshtml.idl
> index aea888b2b8..10eb3315b8 100644
> --- a/include/mshtml.idl
> +++ b/include/mshtml.idl
> @@ -12220,13 +12220,13 @@ interface IHTMLDOMRange : IDispatch
>       HRESULT startContainer([out, retval] IHTMLDOMNode **p);
>   
>       [propget, id(DISPID_IHTMLDOMRANGE_STARTOFFSET)]
> -    HRESULT startOffset([out, retval] long *p);
> +    HRESULT startOffset([out, retval] LONG *p);
>   
>       [propget, id(DISPID_IHTMLDOMRANGE_ENDCONTAINER)]
>       HRESULT endContainer([out, retval] IHTMLDOMNode **p);
>   
>       [propget, id(DISPID_IHTMLDOMRANGE_ENDOFFSET)]
> -    HRESULT endOffset([out, retval] long *p);
> +    HRESULT endOffset([out, retval] LONG *p);
>   
>       [propget, id(DISPID_IHTMLDOMRANGE_COLLAPSED)]
>       HRESULT collapsed([out, retval] VARIANT_BOOL *p);
> @@ -12237,12 +12237,12 @@ interface IHTMLDOMRange : IDispatch
>       [id(DISPID_IHTMLDOMRANGE_SETSTART)]
>       HRESULT setStart(
>           [in] IDispatch *refNode,
> -        [in] long offset);
> +        [in] LONG offset);
>   
> -    [id(DISPID_IHTMLDOMRANGE_SETEND)] HRESULT
> -    setEnd(
> +    [id(DISPID_IHTMLDOMRANGE_SETEND)]
> +    HRESULT setEnd(
>           [in] IDispatch *refNode,
> -        [in] long offset);
> +        [in] LONG offset);
>   
>       [id(DISPID_IHTMLDOMRANGE_SETSTARTBEFORE)]
>       HRESULT setStartBefore([in] IDispatch* refNode);
> @@ -12269,7 +12269,7 @@ interface IHTMLDOMRange : IDispatch
>       HRESULT compareBoundaryPoints(
>           [in] short how,
>           [in] IDispatch *sourceRange,
> -        [out, retval] long *compareResult);
> +        [out, retval] LONG *compareResult);
>   
>       [id(DISPID_IHTMLDOMRANGE_DELETECONTENTS)]
>       HRESULT deleteContents();


Please don't do that, widl can take care of long type.


Thanks,

Jacek




More information about the wine-devel mailing list