[Tutor] win32com and ocx with properties
bob gailer
bgailer at gmail.com
Wed Dec 9 22:45:38 CET 2009
John wrote:
> I realize that some may consider this an advance question. But there are many
> here that are advance. So I'm hoping some nice soul will help me.
>
> I'm attempting to use a OCX designed to talk with QuickBooks. I'm using
> win32com for the first time and have discovered an issue that I'm sure others
> have run into. But researching google etc. has not helped.
>
> obj = win32com.client.Dispatch("InQB.Invoice.1")
> #In the VB code
> #obj.ItemName(0) = 'string'
>
> #in python I'm trying
> obj.ItemName[0] = 'string'
>
Try:
obj.ItemName.Item[0] = 'string'
In VB obj.ItemName(0) = 'string' Item is the "default" property.
obj.ItemName.Item(0) = 'string' will also work in VB
> #error is "Instancemethod object does not support item assignment"
>
> I found and ran makepy.py and here is the code it created dealing with my obj.
>
> # The method ItemName is actually a property, but must be used as a method
> to correctly pass the arguments
> def ItemName(self, ItemIndex=defaultNamedNotOptArg):
> """Line item property: Reference to the kind of item."""
> # Result is a Unicode object
> return self._oleobj_.InvokeTypes(19, LCID, 2, (8, 0),
> ((3,1),),ItemIndex )
>
> As I read the above code it can only return a string not assign anything. I'm
> not sure what "InvokeTypes" does.
>
> So the question is how can I get around this issue? I'm sure others need to
> set properties in com objects.
>
> BTW does anyone know of a win32com forum or list?
>
There is python-win32 at python.org
--
Bob Gailer
Chapel Hill NC
919-636-4239
More information about the Tutor
mailing list