Python COM Variant problem
Roger Upole
rupole at hotmail.com
Sat Feb 28 16:48:08 EST 2004
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