Commit 5e8c877f authored by Robert Shearman's avatar Robert Shearman Committed by Alexandre Julliard

oleaut32: Support values being passed into VT_VARIANT|VT_BYREF typed parameters…

oleaut32: Support values being passed into VT_VARIANT|VT_BYREF typed parameters in ITypeInfo::Invoke.
parent 693da8c4
......@@ -5240,6 +5240,18 @@ static HRESULT WINAPI ITypeInfo_fnInvoke(
if (rgvt[i] == VT_VARIANT)
VariantCopy(&rgvarg[i], src_arg);
else if (rgvt[i] == (VT_VARIANT | VT_BYREF))
{
if (rgvt[i] == V_VT(src_arg))
V_VARIANTREF(&rgvarg[i]) = V_VARIANTREF(src_arg);
else
{
VARIANTARG *missing_arg = INVBUF_GET_MISSING_ARG_ARRAY(buffer, func_desc->cParams);
hres = VariantCopy(&missing_arg[i], src_arg);
V_VARIANTREF(&rgvarg[i]) = &missing_arg[i];
}
V_VT(&rgvarg[i]) = rgvt[i];
}
else if ((rgvt[i] & VT_BYREF) && !V_ISBYREF(src_arg))
{
VARIANTARG *missing_arg = INVBUF_GET_MISSING_ARG_ARRAY(buffer, func_desc->cParams);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment