> So I have a Visual Basic script in Excel which connects via com to programX and retrieves > data. The COM function takes 7 required arguments. arg1-6 are set equal to values to > determine what data to fetch. arg7 is the variant in which the function returns > the fetched data.
> In VB it works like this: > Private Function functionX(arg1 As Long, arg2 As Integer, arg3 As Long, > arg4 As Long, arg5 As Boolean, arg6 As Long) As Variant What makes you think there is an 'arg7' at all then? Aren't we just talking about a simple return type? If it truly was an arg7, then VB would insist you treat it as such (ie, by passing it as a true argument and it being declared 'byref') > When I try this in python, I get a type mismatch, for the apparent reason that arg7 is > not a variant. What gives you that impression? Sadly, you haven't provided the rest of your code so we can see what types you are actually passing. > So I'm at a loss as to how to force passing arg7 as a variant type. I'm not at all convinced that 'arg7' exists at all given your description, so attempting to pass one could well cause such an error. You might be confused by looking at the C++ implementation of the object, where you do see it as an 'arg7', but you should ignore that implementation detail - whan called via IDispatch, the C++ implementation isn't really relevant. Mark _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32