ActiveX Automation objects (or just Automation objects) are COM objects that encapsulate all or part of an application in a stand-alone executable (EXE file) or dynamic link library (DLL) file. These Automation objects make the encapsulated functionality available to another application.
Similar to DDE, your OpenEdge application functions in a client/server relationship to the application that provides an Automation object. As such, ABL functions as an ActiveX Automation Controller and accesses the Automation object in the application that functions as an ActiveX Automation Server.
For example, your OpenEdge application reads and writes data values in the Automation Server by accessing properties and methods of an available Automation object, such as a spread sheet or word-processing document. Depending on the server application, you might even be able to create new Automation object instances (new spread sheets or documents) in the Automation Server from within your OpenEdge application.
The following figure shows a series of IPC exchanges between an OpenEdge application and the Automation objects of an Automation Server:
Figure 37. ABL using ActiveX Automation
Note: Both ABL graphical and character applications can use ActiveX Automation in Windows.
In this example, the OpenEdge application gets ABL Value1 from Object A Property1; sets Object A Property2 from ABL Value2; and gets ABL Value3 from a call to Method1 of Object B, possibly after creating an instance of Object B.
Compare this functionality with DDE (see Figure 36). The effects are very similar. However, the access to properties and methods provided by the component model of ActiveX Automation is much more straightforward, robust, and flexible.