Object Linking and Embedding

From Wikipedia, the free encyclopedia

Object Linking and Embedding (OLE) is a distributed object system and protocol developed by Microsoft.

OLE allows an editor to "farm out" part of a document to another editor and then reimport it. For example, a desktop publishing system might send some text to a word processor or a picture to a bitmap editor using OLE. The main benefit of using OLE, next to reduced file size, is the ability to create a master file. References to data in this file can be made and the master file can then have changed data which will then take effect in the referenced document.

Its primary use is for managing compound documents, but it is also used for transferring data between different applications using drag and drop and clipboard operations. The concept of "embedding" is also central to much use of multimedia in Web pages, which tend to embed video, animation (including Flash animations), and audio files within the hypertext markup language (such as HTML or XHTML) or other structural markup language used (such as XML or SGML)—without the aid of OLE.

OLE uses a fat client architecture, which means that the file type or the application which is being embedded must be present on the machine which is being operated upon. For instance, if a Microsoft Excel spreadsheet is to be manipulated or even viewed, then there must be a copy of Excel or an Excel viewer installed on the user's machine.

Contents

[edit] Technology

OLE 1.0, released in 1990, was the evolution of the original dynamic data exchange, or DDE, concepts that Microsoft developed for earlier versions of Windows. While DDE was limited to transferring limited amounts of data between two running applications, OLE was capable of maintaining active links between two documents or even embedding one type of document within another.

OLE servers and clients communicate with system libraries using virtual function tables, or VTBLs. The VTBL consists of a structure of function pointers that the system library can use to communicate with the server or client. The server and client libraries, OLESVR.DLL and OLECLI.DLL, were originally designed to communicate between themselves using the WM_DDE_EXECUTE Windows message.

OLE 1.0 later evolved to become an architecture for software components known as the component object model (COM), and later DCOM.

When an OLE object is placed on the clipboard, it is stored in native Windows formats (such as a bitmap or metafile), as well as being stored in its own, native format. This native format allows an OLE-aware application to embed a portion of another document cut or copied to the clipboard by the user by storing it in the current document.

The Object Packager, a part of OLE, allows a non-OLE document to be contained within an OLE document.

[edit] OLE 2.0

OLE 2.0 was the next evolution of OLE 1.0, sharing many of the same goals, but was re-implemented over top of the Component Object Model instead of using VTBLs. New features were automation, drag-and-drop, in-place activation and structured storage.

[edit] ActiveX and controversies

In 1996, Microsoft introduced ActiveX, a set of web related extensions to OLE. ActiveX introduced ActiveX Controls, Active Documents and Active Scripting (built on top of OLE Automation).

In the wake of losing a patent lawsuit with Eolas, Microsoft announced on December 2, 2005, that "native" support for ActiveX has been dropped: "After a forthcoming update, Microsoft Internet Explorer users will not be able to directly interact with Microsoft ActiveX controls loaded by the APPLET, EMBED, or OBJECT elements."[1] Functionally, this means that Internet Explorer users would still be able to use ActiveX but would have to explicitly "activate" objects such as Flash navigation bars and QuickTime movies before they could interact with them. The objects still display, but the user can no longer do anything with them (for example, pause a playing movie) until they activate them. When users move their cursors over such an object a pop-up window directs them to "Click to activate and use this control." If they then click on the object, they may subsequently use it in the previous way. It's worth noting that the patent covers only objects directly embedded in the HTML document; thus objects can still be embedded in web pages through the execution of a little JavaScript which calls document.write to generate the tags needed to embed the ActiveX object.

[edit] See also

[edit] External links

This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.