Python COM Variant problem

Annie aichia77 at yahoo.com
Sun Feb 29 19:33:45 EST 2004


hi Roger,
  10s for replying..
  i do running the makepy on that typelib. but can u pls teach me on
how to include to my Python program??
  10s in advance

  
"Roger Upole" <rupole at hotmail.com> wrote in message news:<4040de8f_1 at 127.0.0.1>...
> Try running makepy on the typelib that contains the objects.
> Also, the actual error msg that if fails with would be helpful.
>        Roger
> 
> "Annie" <aichia77 at yahoo.com> wrote in message
> news:b9942658.0402270131.624a8492 at posting.google.com...
> > I am trying to call a COM object which expects a variant datatype to
> > be passed in to the COM API object. However, I get "<COMObject
> > <unknown>>" and the program fails.
> >
> > Below is my code in Python, and the same code in VB which is working
> > fine...
> >
> > I guess this is a variant problem with python? How can I make this
> > work? Would appreciate if someone can guide me as I am a python
> > newbie... :-)
> >
> > Thanks very much...
> >
> > ##In Python
> > def setAddOnValue(oBusObj
> >     oAddOns = oBusObj.AddOns
> >     print oAddOns #returns "<COMObject <unknown>>"
> >     print oAddOns.Count #return 3
> >     for x in range(1, oAddOns.Count):
> >         oAddOn = oAddOns.Item(x) #expects variant datatype for the x
> > variable
> >
> >
> >
> > ##In VB
> > Public Function setAddOnValue(oBusObj As Variant, strAddOnLabel As
> > String, strPropLabel As String, oVal As Variant) As Boolean
> >     Dim x, y
> >     Dim oAddOns As CAddOns
> >     Dim oAddOn As CAddOn
> >     Dim oAddOnValues As CAddOnValues
> >     Dim oAddOnValue As CAddOnValue
> >
> >     setAddOnValue = False
> >     Set oAddOns = oBusObj.AddOns
> >
> >     For x = 1 To oAddOns.Count
> >         Set oAddOn = oAddOns.Item(x)
> >         If oAddOn.AddOnName = strAddOnLabel Then
> >             Set oAddOnValues = oAddOn.AddOnValues
> >             For y = 1 To oAddOnValues.Count
> >                 Set oAddOnValue = oAddOnValues.Item(y)
> >                 If oAddOnValue.PropertyLabel = strPropLabel Then
> >                     setAddOnValue = True
> >                     Set oAddOnValue.Data = oVal
> >                     Exit For
> >                 End If
> >             Next y
> >         End If
> >         If setAddOnValue = True Then
> >             Exit For
> >         End If
> >     Next x
> > End Function



More information about the Python-list mailing list