2.2.5 Object Linking and Embedding

An application that uses OLE can cooperate with other OLE applications to produce documents containing different kinds of data, all of which are easily manipulated by the user. The user editing such a document is able to improve the document by employing the best features of many different applications. An application that implements OLE gives its users the ability to move away from an application-centered view of computing, in which the tool used to complete a task is often a single application, and toward a document-centered view, in which users can employ as many tools as they choose to complete a job.

A single OLE document can contain many kinds of data in many different formats; such a document is called a compound document. A compound document uses the facilities of different OLE applications to manipulate the different kinds of data it displays. Any kind of data format can be incorporated into a compound document; with little or no extra code, OLE applications can even support data formats that have not yet been invented. The user working with a compound document does not need to know which data formats are compatible with one another or how to find and start the applications that created the data. Whenever a user chooses to work with part of a compound document, the application responsible for that part of the document starts automatically.

A compound document could be a brochure that included text, charts, ranges of cells in a spreadsheet, and illustrations. The user working with this brochure could automatically switch between the applications that produced its components. The information could be embedded in the document, or the document could contain links to certain information instead of containing the information itself. If the brochure used links, it would provide only minimal storage for the data to which it was linked, and it could be updated automatically whenever the linked data changed.

The OLE feature depends on the dynamic-link libraries OLECLI.DLL, OLESVR.DLL, and SHELL.DLL. These are redistributable libraries.