out parameters in Python and COM

Steve Holden sholden at holdenweb.com
Thu Oct 24 15:54:02 CEST 2002

[posted & mailed]
> Hi,
> Code snippet at the end of the post. I have an exe which exposes an
> IDispatch interface. The GetCodeTable method has 4 parameters, the
> first 3 of them are of the type [out] BSTR*, the 4th parameters is an
> [out,retval] long *. When debugging my exe using Python I always get
> empty values for a,b and c allthough they are filled in with the
> correct values inside the exe (I checked this with the visual studio
> debugger).
> Any idea what is wrong with my script below?
> import win32com.client
> atm = win32com.client.Dispatch("ATM.Shell")
> b4 = atm.LogOn("Administrator", "EHSW", "Python")
> a=""
> b=""
> c=""
> HEMgr = atm.ATMHeadEndManager
> HEMgr.SetCodeTable("BS","ES","EE")
> HEMgr.GetCodeTable(a,b,c)
> print a
> print b
> print c


I've seen a couple of answers to your original question posted on c.l.py,
and was therefore somewhat surprised to see you ask it again three days
later - are you not checking that group, or is your news server responding

Generally, if you don't ask for replies by email you should expect them to
appear in the newsgroup/mailing list. For the record, the most useful answer
was probably Mark Hammond's:

> > Any idea what could be wrong?
> In Python, these values are still *returned*.
> Your code should say:
> a,b,c,d = HEMgr.GetCodeTable()

Steve Holden                                  http://www.holdenweb.com/
Python Web Programming                 http://pydish.holdenweb.com/pwp/
Previous .sig file retired to                    www.homeforoldsigs.com

More information about the Python-list mailing list