General information
Category:
Coding, syntax & commands
Title:
Subclassing an ActiveX Control
When subclassing an activex control, for example Microsoft ListView control in a prg file, the only syntax that worked to dynamically instantiate the appropriate control depending on the Windows version wether NT4 or W2K was the following:
DEFINE CLASS myclass AS OLEControl
OLEClass = EVALUATE("IIF('5'$ OS(),'MSComctlLib.ListViewCtrl.2','COMCTL.ListViewCtrl.1')")
NAME='MyClass'
.......
ENDDEFINE
If I move the evaluation to a procedure which returns the character string of the control name, for example:
DEFINE CLASS myclass AS OLEControl
OLEClass = GetName() && or EVALUATE("GetName()")
NAME='MyClass'
.......
ENDDEFINE
PROCEDURE GetName
DO CASE
CASE '5' $ OS()
RETURN 'MSComctlLib.ListViewCtrl.2'
CASE '4' $ OS()
RETURN 'COMCTL.ListViewCtrl.1'
ENDCASE
ENDPROC
the error "Invalid subscript reference" occurs when trying to instantiate an object of 'MyClass'.
I'd appreciate any explanation of this behavior.
Regards,
Next
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only