Programming Guide:xppguide

ActiveX - Terms and definitions Foundation

ActiveX (also OCX)

A component technology that builds on the Component Object Model (COM). ActiveX enables software components to interact with one another, irrespective of the development system the components are implemented with. The term "ActiveX" is often used interchangeably with "OCX" and "ActiveX control". However, in these cases, specific components that use ActiveX are being referred to.


The process of programmatically controlling another application via COM. Using Automation, an Xbase++ program can use MS Office applications to create and manipulate office documents, for example. Automating an application usually involves running an instance of the application in memory, and then calling upon the application's object model to perform various tasks in the application. The controlling program utilizes the application's object model through one or more COM/ActiveX component.

Class Identifier (CLSID)

Unique identifier of a COM/ActiveX class or component. A CLSID is a character string of following form:


This CLSID identifies the Microsoft Word application, for example. CLSIDs can be used to specify the COM/ActiveX class of an component to be created via functions such as CreateObject(). Also see ProgID


A modular software routine that can be combined with other components to form an overall program. In the context of COM/ActiveX, the term refers to a software module compiled and linked to be shared through the mechanisms described by COM. Such a component is usually distributed as an .OCX file.

Component Object Model (COM)

The Component Object Model defines the underlying mechanims used to implement and utilize COM/ActiveX components. An implementation of the COM specification is built into the Windows operating system.

Dispatch ID (DISPID)

A numeric value that identifies a property or method of a COM/ActiveX component. DISPIDs are used with the method AutomationObject:Invoke(), for example.

In-process component

A COM/ActiveX component that is executed in the same process as the application that uses it. ActiveX controls are usually created as in-process components.


User- or installation-specific information required to create a COM/ActiveX component. The license is supplied by the COM/ActiveX component's vendor. See the function AutomationRequestLicenseKey() for further information.

Out-of-process component

COM/ActiveX component that is executed within a separate process. Automation usually involves utilizing one or more out-of-process components.

Programmatic identifier (ProgID)

A character string that identifies a COM/ActiveX class or component. ProgIDs are listed in the Registry under the key HKEY_CLASSES_ROOT and have the form:


ProgIDs provide a human-readable interface to the CLSIDs used within the operating system. If a COM/ActiveX class needs to be specified to a function or method in Xbase++, the application may either specify a CLSID or a ProgID. For version independence and better readability, it is recommended to use ProgIDs instead of CLSIDs.


Instance variable of a COM/ActiveX component, equivalent to a member variable (IVar) of an Xbase++ object.

Reference counter

Internal mechanism of COM to manage the life cycle of a COM/ActiveX component. An component's reference counter is used to track if the component is being used or not. The Xbase++ runtime system takes care of managing the life cycle of the COM/ActiveX components created.

Type library

A part of a COM/ActiveX component that holds information about the properties and methods defined. The type library also contains the definition of the types used with a COM/ActiveX component.


If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.