What's in a name ?

In this chapter the names and acronyms like OLE, ActiveX, COM and automation will be given a place in perspective to each other.

Where did it start ?

In the pre-windows days applications were all monolithic. After the compiler had translated the sources to a binary format the linker glued the whole thing together into an executable which stood on itself. In Windows it became possible to move the linking process to runtime. A dynamic link library (DLL) is loaded in the process of the executable as the latter is executed. The reuse of code, more executables using the same DLL, became a reality. Windows also introduced a Dynamic Data Exchange (DDE) protocol which gave Windows software a standard way to communicate with one another.

Then Microsoft started integrating their Word processing and spreadsheet application into the Office suite. Instead of application centered, Office was going tobe document centered. Imagine a report consisting of large bulks of text and containing tabulated data and graphs. The user will use a word processor to edit the text and a spreadsheet program to edit the data and resulting graphs. The user concentrates on the report document, not on the applications used to work with this document.

To work with these ideas the Object Linking and Embedding protocol was designed. The first version O.L.E. 1.0 was implemented using DDE. The main problem was that it did not work to well, it let to a situation which was described as a "virtual standstill" of the PC it was running on.

OLE 2 and COM

So the problem was that the specs for a great protocol had been set but that it did not work too well. The protocol had many more possibilities than just the Office suite. So the dots in O.L.E. were dropped, OLE just stood for the protocol. On the implementation side DDE was dropped and the Component Object Model (COM) was introduced as a good way to implement OLE functionality. COM is a well defined way to separate the specification of the interface from the implementing object.

All off this was described in the second edition of Inside OLE. This book and the implementation of OLE in 32 bits windows (there was a 16 bits implementation in Windows 3, but this is known to be buggy and unstable) made OLE into a success. COM was also used for other API's in windows like the DirectX gaming API. As time got by the name COM became more popular than OLE.

ActiveX

In the 16 bits days of Windows there was VBX, a not to well defined standard which allowed 3d parties to create visual controls which could be used in Visual Basic. These were a huge success, support for VBX was added by other vendors as well, for instance Borlands C++ could work with VBX'es.

This VBX protocol was replaced by a better defined version based on COM and OLE. At first the name OLE-controls was coined but in 32 bit windows the name soon changed to ActiveX-controls. The name ActiveX, which is trade-marked by Microsoft, had a large input from the marketing division. The ActiveX framework was supposed to mean something like "active on platform X", where X could be Windows, Unix or anything else.

ActiveX as a name only really survived for ActiveX controls. Some people use it when they mean an automation object. Nobody ever uses it when talking about distributed processing. In that case the COM acronym serves as a base to form DCOM.

(OLE-) Automation

The most used feature of the whole ActiveX framework is an application calling methods and properties of another object which follow the ActiveX specification. This is always done using the Idispatch interface. The nice thing about this interface is that it can be called by an enormous variety of clients. It can be flexible and it can be fast.

Automation is the technique of using objects through the Idispatch interface. Orginally is was named OLE automation. But after O.L.E. lost its dots, automation lost its OLE.

What's next ?

The Delphi pages on this site are mainly dedicated to automation and I prefer to use this term. But as we have seen the other terms stand for the same thing. It mainly depends on the age of the document or the likes of the author.

Happy reading.