24 Nov
2006
24 Nov
'06
1:49 p.m.
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