# COM/DCOM/COM+ with GNAT

Next: What are COM Objects and Interfaces? [Contents][Index]

## 1 Brief Introduction to COM, Distributed COM, ActiveX, and COM+

In addition to creating distributed applications with Annex E, GNAT is capable of creating and using components that conform to Microsoft’s Component Object Model (COM) and Distributed COM (DCOM) on Windows NT.

Microsoft introduced COM as the underlying model for the Object Linking and Embedding 2 (OLE2) services. COM provided OLE2 with the extensibility to meet the growing demand for interoperability of applications that users required and implementation flexibility developers required. It did this by providing a binary level, rather than a source level, object oriented specification for standard interfaces to executable objects allowing them to be used in a class wide fashion and implemented in the language best meeting the object’s requirements. It also specified inter and remote process communication, to be provided by the operating system and optionally customized by the developer, and dynamic loading of the executable objects.

Microsoft has since advanced many new technologies built on top of COM including ADO, DirectX, Extended MAPI, and ActiveX (OCX) Controls. COM has remained stable and has only been slightly extended to include newer threading models, better security and more advance distribution. The fundamental principles have remained unchanged and it has proven itself as a powerful model for component based development.

The first use of COM to extend non-Microsoft technologies was a specification for OLE Automation Objects. Using this specification, developers could create custom components by creating COM objects that use a predefined set of interfaces and APIs. Developers could also create custom interfaces of their own and provide the interface specifications in a language neutral format called a Type Library. Client code could then be created in any language to make dynamic use of these binary components.

Microsoft then added a number of other specifications for creating custom components building on the OLE Automation Object specification such as the OLE Control (OCX) specification that creates a uniform way of implementing GUI components.

Technologies based on OLE Automation were later renamed for marketing purposes to ActiveX or ActiveX Controls. The ActiveX name was later expanded to include any COM object including those that do not conform to the OLE Automation specifications.

Distributed COM (DCOM) is the technology that allows COM objects to be transparently distributed across a network. Using settings in the registry of the client and server, when creating a COM object the operating system can create or use supplied proxies and stubs to access the COM object on a remote machine.

COM+ is Microsoft’s latest extension to COM technology. The base services of COM+ are COM and DCOM and are identical with only the addition of another threading model. COM+ also designates the integration of Microsoft Transaction Server (MTS) and Microsoft Message Queueing (MSMQ).

In order to use COM or DCOM on Windows NT 4.0, service pack three or later must be installed. The additional services of COM+ (MTS and MSMQ) become available by adding the Microsoft Option Packs or upgrading to Windows 2000.

Next: What are COM Objects and Interfaces? [Contents][Index]