[python-win32] type mismatch using win32com.client.GetObject
David
da6d.fierbaugh at gmail.com
Fri Sep 28 20:30:20 CEST 2007
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
Dim px As Object
Dim status As Boolean
Dim arg8 As Integer
Dim arg9 As Integer
Dim arg10 As Integer
Dim arg7 As Variant
Set px = GetObject("programx.activex.interface")
status = px.functionX(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8,
arg9, arg10)
If Not status Then
data = "wait"
End If
If a = 0 And b = 0 And c = 0 Then
data = arg7
The end of which the variable 'data' is set to the value returned by the com
interface.
So when I call the function, I get:
arg1 = ...
setting all arg# variables
...
x1 = functionX(arg1, arg2, arg3, arg4, arg5, arg6)
and x1 = the returned value
When I try this in python, I get a type mismatch, for the apparent reason
that arg7 is not a variant. Of course, python being the wonderful language
it is, arg7 can be any type I want, whenever I want to change it.... except
there is no 'variant' type because of this.
>>> arg1 = ....
setting all arg# variables
...
>>> x1 = win32com.client.GetObject("programX.activex.interface")
>>> `x1`
'<COMObject programX.activex.interface>'
>>> x1.FunctionX(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9,
arg10)
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "<COMObject programX.activex.interface>", line 2, in FunctionX
com_error: (-2147352571, 'Type mismatch.', None, 7)
>>>
So I'm at a loss as to how to force passing arg7 as a variant type. From
what I gather in researching this, win32com.client is supposed to handle
typing automagically. Somehow I'm missing something.
HELP!?!?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-win32/attachments/20070928/1d663715/attachment.htm
More information about the python-win32
mailing list