Help with Python COM Type Mismatch
Markus Wankus
markus_wankus at hotmail.com
Thu Dec 12 13:21:40 EST 2002
Hello all,
I am having some problems with some methods in an application I am talking
to through pythoncom, and I was wondering if anyone here was an expert and
could perhaps give me a list of things to try (as I am not familiar with
COM).
I am using the gencache.EnsureModule() with the CSLID makepy gave me for my
application. I connected to my app fine, and called a couple methods
without any problems. However, the third method I tried to execute has the
following prototype:
retval = object.Method(filename, filetype, &Error)
Where filename is a string, filetype is a long integer, and Error is an
output (long) indicating a variable to hold the error code of the method.
If I call it as follows:
a, b = Method(filename, filetype)
...it tells me The last argument is not optional.
If I call it as follows:
a = Method(filename, filetype, var)
No matter what I pass into var (I have tried pythoncom.Empty) I get an
exception with a 'Type mismatch' on the last argument. Is this common? Is
there a set bunch of steps to try to get around this problem? BTW -
pythoncom.Missing gives me the 'argument is not optional' message. Also,
certain objects (like dictionaries) give me a message that the argument
could not be converted to COM VARIANT, so it is obviously trying to do a
conversion.
As a side note, I still have methods with no arguments which I must call
without brackets. For example:
object.GetPathName() retuns an error saying 'unicode value is not
callable', but if I just use object.GetPathName it works fine (executes the
method and returns a string). I thought the gencache and early bindings
were supposed to fix this issue as well?
Anyway, I am a bit lost as I have never used COM before. Any help anyone
could provide would be greatly appreciated.
Thanks,
--
Markus
More information about the Python-list
mailing list