[2/2] winhttp: Add custom implementation of IWinHttpRequest::Invoke(DISPID_HTTPREQUEST_OPTION).
Jacek Caban
jacek at codeweavers.com
Wed Sep 2 03:50:39 CDT 2015
Hi Dmitry,
On 09/02/15 07:44, Dmitry Timoshkov wrote:
> + if (member == DISPID_HTTPREQUEST_OPTION)
Why can't we use standard, ITypeInfo-based implementation here?
> + {
> + VARIANT ret_value, option;
> + UINT err_pos;
> +
> + if (!result) result = &ret_value;
> + if (!arg_err) arg_err = &err_pos;
> +
> + VariantInit( &option );
> + VariantInit( result );
> +
> + if (flags == DISPATCH_PROPERTYPUT)
> + {
> + hr = DispGetParam( params, 0, VT_I4, &option, arg_err );
> + if (FAILED(hr)) return hr;
> +
> + hr = IWinHttpRequest_put_Option( &request->IWinHttpRequest_iface, V_I4( &option ), params->rgvarg[0] );
> + if (FAILED(hr))
> + WARN("put_Option(%d) failed: %x\n", V_I4( &option ), hr);
> + return hr;
> + }
> + else if (flags & (DISPATCH_PROPERTYGET | DISPATCH_METHOD))
> + {
> + hr = DispGetParam( params, 0, VT_I4, &option, arg_err );
> + if (FAILED(hr)) return hr;
> +
> + hr = IWinHttpRequest_get_Option( &request->IWinHttpRequest_iface, V_I4( &option ), result );
> + if (FAILED(hr))
> + WARN("get_Option(%d) failed: %x\n", V_I4( &option ), hr);
> + return hr;
> + }
> +
> + return S_OK;
I don't think silently returning S_OK is right for not handled flags.
Thanks,
Jacek
More information about the wine-devel
mailing list