[PATCH 3/4] mshtml: Implement IWineDOMTokenList_add() method.

Jacek Caban jacek at codeweavers.com
Mon Jul 19 06:56:16 CDT 2021


On 7/19/21 11:55 AM, Paul Gofman wrote:
> +    TRACE("new %s.\n", debugstr_w(new));
> +
> +    hr = IHTMLElement_put_className(token_list->element, new);


IHTMLElement_put_className takes BSTR as an argument.


>   static const tid_t token_list_iface_tids[] = {
> diff --git a/dlls/mshtml/mshtml_private_iface.idl b/dlls/mshtml/mshtml_private_iface.idl
> index 1764b0a8c9d..b50d2f9502b 100644
> --- a/dlls/mshtml/mshtml_private_iface.idl
> +++ b/dlls/mshtml/mshtml_private_iface.idl
> @@ -111,6 +111,8 @@ interface IWineHTMLElementPrivate : IDispatch
>   ]
>   interface IWineDOMTokenList : IDispatch
>   {
> +    [vararg, id(1)]
> +    HRESULT add([in] SAFEARRAY(VARIANT) token);
>   }


This should probably just take a single BSTR argument instead. The 
behaviour that you observe with multiple arguments should probably be 
handled on dispatch level instead. A quick testing shows that extra 
argument are generally accepted by any JavaScript function call. This is 
consistent with how builtin JavaScript functions work. I think it wasn't 
the case for old IEs, but it looks like recent versions accept it for 
all compatibility modes.


Thanks,

Jacek




More information about the wine-devel mailing list