Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Problem with VFP7 COM in VB6
Message
 
To
All
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Title:
Problem with VFP7 COM in VB6
Miscellaneous
Thread ID:
00710169
Message ID:
00710169
Views:
53
Hello All,

I have created a COM component using the new VFP7 COMATTRIB syntax for specifying data types for properties. This works fine if the component is hosted in VFP or ASP, but if it is host it in VB6, all properties of type Double, Currency or Number always return 0. The correct value shows up in the VB6 Watch window, but when you reference it in code or the Immediate window, it always returns 0.

All other supported data types seem to work fine. I ended up changing all non-integer numeric properties to type Variant to get it to work properly. Has anyone else seen this problem?

Thanks,
Bo Durban
** Sample:

DEFINE CLASS TestService AS Session OLEPUBLIC

** Works
TypeBoolean = .F.
DIMENSION TypeBoolean_COMATTRIB[4]
TypeBoolean_COMATTRIB[1] = 0x00000000 && None
TypeBoolean_COMATTRIB[2] = ""
TypeBoolean_COMATTRIB[3] = "TypeBoolean"
TypeBoolean_COMATTRIB[4] = "Boolean"

** Works
TypeByte = 128
DIMENSION TypeByte_COMATTRIB[4]
TypeByte_COMATTRIB[1] = 0x00000000 && None
TypeByte_COMATTRIB[2] = ""
TypeByte_COMATTRIB[3] = "TypeByte"
TypeByte_COMATTRIB[4] = "Byte"

** Works
TypeCharacter = "Sample"
DIMENSION TypeCharacter_COMATTRIB[4]
TypeCharacter_COMATTRIB[1] = 0x00000000 && None
TypeCharacter_COMATTRIB[2] = ""
TypeCharacter_COMATTRIB[3] = "TypeCharacter"
TypeCharacter_COMATTRIB[4] = "Character"

** Returns 0 in VB6
TypeCurrency = $123.45
DIMENSION TypeCurrency_COMATTRIB[4]
TypeCurrency_COMATTRIB[1] = 0x00000000 && None
TypeCurrency_COMATTRIB[2] = ""
TypeCurrency_COMATTRIB[3] = "TypeCurrency"
TypeCurrency_COMATTRIB[4] = "Currency"

** Works
TypeDate = DATE()
DIMENSION TypeDate_COMATTRIB[4]
TypeDate_COMATTRIB[1] = 0x00000000 && None
TypeDate_COMATTRIB[2] = ""
TypeDate_COMATTRIB[3] = "TypeDate"
TypeDate_COMATTRIB[4] = "Date"

** Returns 0 in VB6
TypeDouble = 123.456
DIMENSION TypeDouble_COMATTRIB[4]
TypeDouble_COMATTRIB[1] = 0x00000000 && None
TypeDouble_COMATTRIB[2] = ""
TypeDouble_COMATTRIB[3] = "TypeDouble"
TypeDouble_COMATTRIB[4] = "Double"

** Works
TypeInteger = 128
DIMENSION TypeInteger_COMATTRIB[4]
TypeInteger_COMATTRIB[1] = 0x00000000 && None
TypeInteger_COMATTRIB[2] = ""
TypeInteger_COMATTRIB[3] = "TypeInteger"
TypeInteger_COMATTRIB[4] = "Integer"

** Works
TypeLong = 128
DIMENSION TypeLong_COMATTRIB[4]
TypeLong_COMATTRIB[1] = 0x00000000 && None
TypeLong_COMATTRIB[2] = ""
TypeLong_COMATTRIB[3] = "TypeLong"
TypeLong_COMATTRIB[4] = "Long"

** Returns 0 in VB6
TypeNumber = 123.456
DIMENSION TypeNumber_COMATTRIB[4]
TypeNumber_COMATTRIB[1] = 0x00000000 && None
TypeNumber_COMATTRIB[2] = ""
TypeNumber_COMATTRIB[3] = "TypeNumber"
TypeNumber_COMATTRIB[4] = "Number"

** Works
TypeShort = 128
DIMENSION TypeShort_COMATTRIB[4]
TypeShort_COMATTRIB[1] = 0x00000000 && None
TypeShort_COMATTRIB[2] = ""
TypeShort_COMATTRIB[3] = "TypeShort"
TypeShort_COMATTRIB[4] = "Short"

** Returns 0 in VB6
TypeSingle = 123.456
DIMENSION TypeSingle_COMATTRIB[4]
TypeSingle_COMATTRIB[1] = 0x00000000 && None
TypeSingle_COMATTRIB[2] = ""
TypeSingle_COMATTRIB[3] = "TypeSingle"
TypeSingle_COMATTRIB[4] = "Single"

** Works
TypeString = "Yo, Dude!"
DIMENSION TypeString_COMATTRIB[4]
TypeString_COMATTRIB[1] = 0x00000000 && None
TypeString_COMATTRIB[2] = ""
TypeString_COMATTRIB[3] = "TypeString"
TypeString_COMATTRIB[4] = "String"

** Works
TypeVariant = 1234.567
DIMENSION TypeVariant_COMATTRIB[4]
TypeVariant_COMATTRIB[1] = 0x00000000 && None
TypeVariant_COMATTRIB[2] = ""
TypeVariant_COMATTRIB[3] = "TypeVariant"
TypeVariant_COMATTRIB[4] = "Variant"

ENDDEFINE
Reply
Map
View

Click here to load this message in the networking platform