ActiveXControl Class

The ActiveXControl class provided by JADE supports all interfaces of an ActiveX control type library imported into JADE. An ActiveX control is a special type of COM object. It is a user interface object that implements an interface that supports its use on forms. (This control was formerly known as an OCX control.)

An ActiveX control can optionally have a graphical user interface and can fire events. This enables existing third-party functions, such as highly specialized controls, to be used within your JADE applications.

To register and run an ActiveX control, all libraries used by the control must be available.

When you import an ActiveX control library into JADE, an abstract class of the specified library name is created as a subclass of the ActiveXControl class. This abstract class becomes the superclass for all classes that are subsequently generated corresponding to objects in the imported ActiveX control library. This ActiveX control library class is the superclass that supports the control object classes within that library, which have properties, methods, and events created that correspond to the default interfaces.

ActiveXControl subclasses inherit all of the standard properties and methods of the Window and Control classes, although not all of these inherited properties and methods have meaning to the control. (For a caveat on the use of SVG files when printing ActiveXControl controls, see "Portable Printing" under "Printer Class", in Chapter 1 of the JADE Encyclopaedia of Classes.) The following example shows the hierarchy of the Microsoft Windows Common Controls type library imported into the JADE ActiveXControl class.

Creating an instance of the ActiveX control in JADE does not create an instance of the ActiveXControl object, which occurs only when the control is added to a form. At run time, JADE translates the property and method requirements into ActiveX control equivalents and then calls the control to perform the function.

If you have added a property to an imported ActiveXControl object and flagged that property as a design time property (for details, see "Selecting Your Design Time Properties", in Chapter 5 of the JADE Developer’s Reference), any value assigned to that property by using the JADE Painter Properties dialog will not be propagated through to the runtime instance of that control when the form is created.

If the property value is required in the runtime instance, you can copy it from the persistent instance to the runtime instance in the windowCreated method on the ActiveXControl subclass. (As the windowCreated method will be a reimplementation of the Control::windowCreated method, you must include an inheritMethod instruction in your windowCreated method.)

To refresh an ActiveX control that has changed but is already imported into JADE, simply import the ActiveX control type library again and give it the same name that it had previously.

An imported ActiveX control is added to the Control palette of the JADE Painter and cannot be distinguished from standard JADE-supplied controls. The ActiveXControl class is supported on forms defined as Web pages only when running on a Microsoft Internet Explorer browser.

As ActiveXControl class methods run only on the client node (including when running in JADE thin client mode), all methods generated for imported ActiveX controls include the clientExecution option in the method signature.

In JADE thin client mode, ActiveX control objects run only on the presentation client.

As the ActiveX control is external to JADE, no documentation about the control is contained within JADE, and any problems in functionality of the control should be taken up with the suppliers of that control. If an error occurs, JADE is dependent on the control returning error information that can be displayed to the user.

Transparent sibling controls are painted before an ActiveXControl, regardless of their zOrder settings. It is not possible to handle the painting of transparent controls in the correct zOrder when some controls are directly painted by JADE and others are painted by Windows separately.

If the control object returns a reference to another ActiveX interface in response to a method call or the get of a property, JADE creates an instance of the corresponding JADE interface class and returns a reference to that instance instead. (A mapping is maintained between JADE interface instances and COM interface instances.) For details about importing ActiveX control and automation type libraries into JADE, see Chapter 4 of the JADE External Interface Developer’s Reference.

For a summary of the JADE property, methods, and event defined in the ActiveXControl class, see "ActiveXControl Class Property", "ActiveXControl Class Methods", and "ActiveXControl Class Event", in the following subsections. (Refer to your COM documentation for details about properties, methods, or constants provided by imported ActiveX control type libraries.)