[PATCH v4 02/12] mshtml: Handle VT_DISPATCH in variant_to_nsstr.

Jacek Caban jacek at codeweavers.com
Fri Nov 19 05:04:01 CST 2021


On 11/18/21 7:43 PM, Gabriel Ivăncescu wrote:
> +    case VT_DISPATCH: {
> +        LCID lcid = MAKELCID(MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US),SORT_DEFAULT);
> +        IDispatch *disp = V_DISPATCH(v);
> +
> +        if(!disp) {
> +            nsAString_InitDepend(nsstr, NULL);
> +            return S_OK;
> +        }
> +
> +        hres = IDispatch_Invoke(disp, DISPID_VALUE, &IID_NULL, lcid, DISPATCH_PROPERTYGET, NULL, &var, NULL, NULL);
> +        if(FAILED(hres))
> +            return hres;
> +
> +        if(V_VT(&var) == VT_BSTR) {
> +            nsAString_Init(nsstr, V_BSTR(&var));
> +            SysFreeString(V_BSTR(&var));
> +            break;
> +        }
> +        if(V_VT(&var) == (VT_BSTR | VT_BYREF)) {
> +            nsAString_Init(nsstr, *V_BSTRREF(&var));
> +            break;
> +        }
> +        hres = variant_to_nsstr(&var, hex_int, nsstr);
> +        VariantClear(&var);
> +        return hres;


Could you just use the same implementation as VT_R8 in this case? 
VariantChangeTypeEx should what you need.


Thanks,

Jacek




More information about the wine-devel mailing list