OLE (Object Linking and Embedding) is Microsoft’s framework for a compound document technology. Briefly, a compound document is something like a display desktop that can contain visual and information objects of all kinds: text, calendars, animations, sound, motion video, 3-D, continually updated news, controls, and so forth. Each desktop object is an independent program entity that can interact with a user and also communicate with other objects on the desktop. Part of Microsoft’s ActiveX technologies, OLE takes advantage and is part of a larger, more general concept, the Component Object Model (COM) and its distributed version, DCOM. An OLE object is necessarily also a component (or COM object).
Some main concepts in OLE and COM are:
A set of APIs to create and display a (compound) document
Document (compound document)
A presentation of different items in an “animated desktop”
Item (object; also called a component)
An element in a document, such as an animated calendar, a video window, a sound player, a sound file…
Container or container application
The program entity that holds a document or a control
Server or server application
The program entity that holds an item within an OLE container
Adding the source data for an item to a document; use the Paste command in a container application
Adding a link to the source data for an item to a document; use the Paste Link command in a container application
Activating an item that is embedded in a document and “editing” it
Having one container or server application drive another application
Compound files (structured storage) A standard file format that simplifies the storing of (compound) documents; consists of storages (similar to directories) and streams (similar to files)
Uniform Data Transfer (UDT)
A single data transfer interface that accommodates drag-and-drop; clipboard; and dynamic data exchange (DDE)
Component Object Model (COM)
Provides the underlying support for OLE items (objects) and ActiveX controls to communicate with other OLE objects or ActiveX controls
An item (object) that can be distributed and run on top of a COM
Microsoft Foundation Class (MCF) library
A set of ready-made classes or templates that can be used to build container and server applications
says that OLE contains about 660 new function calls or individual program interfaces in addition to those already in Win32. For this reason, Microsoft provides the Microsoft Foundation Class (MFC) Library, a set of ready-made classes that can be used to build container and server applications, and tools such as Visual C++.
In the “Introduction to OLE” on its Developer Site, Microsoft says that “OLE” no longer stands for “Object Linking and Embedding,” but just for the letters “OLE.”
ActiveX is the name Microsoft has given to a set of “strategic” object-oriented programming technologies and tools. The main technology is the Component Object Model (COM). Used in a network with a directory and additional support, COM becomes the Distributed Component Object Model (DCOM). The main thing that you create when writing a program to run in the ActiveX environment is a component, a self-sufficient program that can be run anywhere in your ActiveX network (currently a network consisting of Windows and Macintosh systems). This component is known as an ActiveX control. ActiveX is Microsoft’s answer to the Java technology from Sun Microsystems. An ActiveX control is roughly equivalent to a Java applet.
If you have a Windows operating system on your personal computer, you may notice a number of Windows files with the “OCX” file name suffix. OCX stands for “Object Linking and Embedding control.” Object Linking and Embedding (OLE) was Microsoft’s program technology for supporting compound documents such as the Windows desktop. The Component Object Model now takes in OLE as part of a larger concept. Microsoft now uses the term “ActiveX control” instead of “OCX” for the component object.
One of the main advantages of a component is that it can be re-used by many applications (referred to as component containers). A COM component object (ActiveX control) can be created using one of several languages or development tools, including C++ and Visual Basic, or PowerBuilder, or with scripting tools such as VBScript.
Currently, ActiveX controls run in Windows 95/98/NT/2000 and in Macintosh. Microsoft plans to support ActiveX controls for Unix.
Component Object Model (COM) is Microsoft’s framework for developing and supporting program component objects. It is aimed at providing similar capabilities to those defined in the Common Object Request Broker Architecture (CORBA), a framework for the interoperation of distributed objects in a network that is supported by other major companies in the computer industry. Whereas Microsoft’s Object Linking and Embedding provides services for the compound document that users see on their display, COM provides the underlying services of interface negotiation, life cycle management (determining when an object can be removed from a system), licensing, and event services (putting one object into service as the result of an event that has happened to another object).
COM includes COM+, Distributed Component Object Model (DCOM), and ActiveX interfaces and programming tools.