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