| Lesson 2 || Prerequisites |
| Objective || Make sure you have the background and equipment required for this course. |
Basic COM Programming Prerequisites
COM Versus ActiveX Versus OLE
Question: What is the difference between COM, OLE, and ActiveX?
That is one of the most common (and reasonable) questions developers ask as they get into this technology. It is a reasonable
question because it seems that the purveyor of this technology, Microsoft, does little to clarify the matter.
You have already learned that COM is the API and binary standard that forms
the building blocks of the other technologies. In the old days (like 1995), OLE was the blanket term used to describe the entire suite of technologies built on the COM architecture. These days, OLE refers only to those technologies associated specifically with linking and embedding, such as containers, servers, in-place activation, drag-and-drop, and menu merging. In
1996, Microsoft embarked on an aggressive marketing campaign in an attempt to create brand recognition for the term ActiveX, which became the blanket term used to describe non-OLE technologies built on top of COM. ActiveX technologies include Automation (formerly called OLE Automation) controls, documents, containers, scripting, and several Internet technologies.
Because of the confusion created by using the term ActiveX to describe everything short of the family pet, Microsoft has backed off a bit and now sometimes refers to non-OLE COM technologies simply as COM-based technologies.
Those with a more cynical view of the industry might say that the term OLE became associated with adjectives such as slow and bloated, and marketing-savvy Microsoft needed a new term for those APIs on which it planned to base its future operating system and Internet technologies. Also amusing is the fact that Microsoft now claims OLE no longer stands for object
linking and embedding.