oleaut32: preliminary support for VT_DISPATCH as parameters to
VarAdd (and other 2-operand operations) (RESEND)
Robert Shearman
rob at codeweavers.com
Fri Nov 24 07:49:04 CST 2006
Alex Villacís Lasso wrote:
> @@ -3114,6 +3155,13 @@
> debugstr_VF(left), right, debugstr_VT(right), debugstr_VF(right),
> result);
>
> + /* Handle VT_DISPATCH by recursively calling op on result of IDispatch_Invoke */
> + if (((V_VT(left) & VT_TYPEMASK) == VT_DISPATCH ||
> + (V_VT(right) & VT_TYPEMASK) == VT_DISPATCH) &&
> + (V_VT(left) & VT_TYPEMASK) != VT_NULL &&
> + (V_VT(right) & VT_TYPEMASK) != VT_NULL)
> + return VARIANT_InvokeDispatchOp(left, right, result, VarAdd);
> +
> VariantInit(&lv);
> VariantInit(&rv);
> VariantInit(&tv);
>
I think you could solve this without recursion, in the same way that
other types are coerced.
--
Rob Shearman
More information about the wine-devel
mailing list