FACTOID # 13: New York has America's lowest percentage of residents who are veterans.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Object Linking and Embedding

Object Linking and Embedding (OLE) is a technology that allows embedding and linking to documents and other objects, developed by Microsoft. It is found on the Component Object Model. For developers, it brought OLE custom controls (OCX), a way to develop and use custom user interface elements. On a technical level, an OLE object is any object that implements the IOleObject interface, possibly along with a wide range of other interfaces, depending on the object's needs. Microsoft Corporation, (NASDAQ: MSFT, HKSE: 4338) is a multinational computer technology corporation with global annual revenue of US$44. ... Component Object Model (COM) is a platform for software componentry introduced by Microsoft in 1993. ...

Contents

Overview

A chart embedded in a text document.
A chart embedded in a text document.

OLE allows an editor to "farm out" part of a document to another editor and then re-import 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 is to display visualizations of data from other programs that the host program is not normally able to generate itself (e.g. a pie-chart in a text document), as well 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. This is called "linking" (instead of "embedding"). Image File history File links No higher resolution available. ... Image File history File links No higher resolution available. ... Adobe InDesign CS2, one of many popular desktop publishing applications. ... A word processor (also more formally known as a document preparation system) is a computer application used for the production (including composition, editing, formatting, and possibly printing) of any sort of viewable or printed material. ... ...


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) — possibly, but not necessarily, using a different embedding mechanism than OLE. Example of a compound document in Microsoft Office Word In computing, a compound document is a document type typically produced using word processing software, and is a regular text document intermingled with e. ... This article does not cite any references or sources. ... In computer graphical user interfaces, drag-and-drop is the action of (or support for the action of) clicking on a virtual object and dragging it to a different location or onto another virtual object. ... The clipboard is a software program that is used for short-term storage of data as it is transferred between documents or applications, via copy and paste operations. ... Look up Multimedia in Wiktionary, the free dictionary. ... A screenshot of a web page. ... This article does not cite any references or sources. ... The bouncing ball animation (below) consists of these 6 frames. ... // == Macromedia Flash == ==]] Using Macromedia Flash 8 (bundled in Studio 8) in Windows XP. Maintainer: Adobe Systems (formerly Macromedia) Latest release: 8 / September 30th, 2005 OS: Windows (no native Windows XP Professional x64 Edition support), Mac OS X, Linux (i386 only, via wine [1]) Use: Multimedia Content Creator License: Proprietary Website... “Sound recorder” redirects here. ... In computing, hypertext is a user interface paradigm for displaying documents which, according to an early definition (Nelson 1970), branch or perform on request. ... A specialized markup language using SGML is used to write the electronic version of the Oxford English Dictionary. ... HTML, short for Hypertext Markup Language, is the predominant markup language for web pages. ... The Extensible HyperText Markup Language, or XHTML, is a markup language that has the same depth of expression as HTML, but also conforms to XML syntax. ... A specialized markup language using SGML is used to write the electronic version of the Oxford English Dictionary. ... The Extensible Markup Language (XML) is a general-purpose markup language. ... The Standard Generalized Markup Language (SGML) is a metalanguage in which one can define markup languages for documents. ...


History

OLE 1.0

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. Dynamic Data Exchange (DDE) is a technology for communication between multiple applications under Microsoft Windows and also OS/2. ... Microsoft Corporation, (NASDAQ: MSFT, HKSE: 4338) is a multinational computer technology corporation with global annual revenue of US$44. ... “Windows” redirects here. ... Example of a compound document in Microsoft Office Word In computing, a compound document is a document type typically produced using word processing software, and is a regular text document intermingled with e. ...


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 message. A virtual method table, virtual function table, or vtable, is a mechanism used in Programming languages to support dynamic polymorphism, i. ... A function pointer is a type of pointer in C, C++, D, and other C-like programming languages. ...


OLE 1.0 later evolved to become an architecture for software components known as the Component Object Model (COM), and later DCOM. It has been suggested that this article or section be merged with Component-based software engineering. ... Component Object Model (COM) is a platform for software componentry introduced by Microsoft in 1993. ... Distributed Component Object Model (DCOM) is a Microsoft proprietary technology for software components distributed across several networked computers to communicate with each other. ...


When an OLE object is placed on the clipboard or embedded in a document, both a visual representation in native Windows formats (such as a bitmap or metafile) is stored, as well as the underlying data in its own format. This allows applications to display the object without loading the application used to create the object, while also allowing the object to be edited, if the appropriate application is installed. For example, if an OpenOffice.org Writer object is embedded, both a visual representation as an Enhanced Metafile is stored, as well as the actual text of the document in the Open Document Format. This article is about the storage organization of raster images. ... Metafile is a generic term for a file formats that can store multiple types of data. ... OpenOffice. ... Windows Metafile (WMF) is a common graphics file format on Microsoft Windows systems. ... OpenDocument or ODF, short for the OASIS Open Document Format for Office Applications, is a document file format used for describing electronic documents such as memos, reports, books, spreadsheets, charts, presentations and word processing documents. ...


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. OLE Automation is a late-binding extension to COM and IUnknown. ... Drag-and-drop refers to the act of (or support for the act of) clicking on a virtual object and dragging it to, or onto, another virtual object. ... Structured storage (variously also known as COM structured storage or OLE structured storage) is a technology developed by Microsoft as part of its Windows operating system for storing hierarchical data within a single file. ...


OLE custom controls

Custom controls on a Visual Basic form.
Custom controls on a Visual Basic form.

OLE custom controls were introduced in 1994 as a replacement for the aging Visual Basic Extension controls. Instead of upgrading these, the new architecture was based on OLE. In particular, any container that supported OLE 2.0 could already embed OLE custom controls, although these controls cannot react to events unless the container supports this. OLE custom controls are usually shipped in the form of a dynamic link library with the .ocx extension. In 1996 all interfaces for controls (except IUnknown) were made optional to keep the file size of controls down, so they would download faster; these were then called ActiveX Controls. Image File history File links No higher resolution available. ... Image File history File links No higher resolution available. ... In computer programming, a Visual Basic Extension (commonly abbreviated VBX) or custom control, was the component model used in Microsoft Visual Basic versions 1. ... ActiveX control is a term used to denote reusable software components that are based on Microsoft Component Object Model (COM). ...


Technical details

OLE objects and containers are implemented on top of the Component Object Model; they are objects that can implement interfaces to export their functionality. Only the IOleObject interface is compulsory, but other interfaces may need to be implemented as well if the functionality exported by those interfaces is required.


To ease understanding of what follows, a bit of terminology has to be explained. The view status of an object is whether the object is transparent, opaque, or opaque with a solid background, and whether it supports drawing with a specified aspect. The site of an object is an object representing the location of the object in its container. A container supports a site object for every object contained. An undo unit is an action that can be undone by the user, with Ctrl-Z or using the "Undo" command in the "Edit" menu.


What follows is a list of interfaces, grouped by the object that usually needs to implement them. Interfaces usually implemented by the OLE object are usually called on by the OLE container, and vice-versa. Note that in the following list indentation indicates interface inheritance. All non-indented interfaces derive from IUnknown. The published COM specification mandates that COM objects must minimally implement the IUnknown interface. ...


OLE object

IDataObject
When implemented, enables the transfer of data, and notification of data changes. It must be implemented by objects that are to support drag-and-drop, being copied to or pasted from the clipboard, or being linked or embedded in a containing document.
IObjectWithSite
Allows the caller to inform the OLE object of its site. This functionality is also provided by IOleObject, but IObjectWithSite can be used, when supported, if IOleObject is not used for other matters.
IOleCache
Allows visual presentations from an IDataObject to be cached. This allows an embedded object to store its visual representation, thus enabling it to be displayed later without needing to start the application that was used to create the object.
Usually the stock implementation is used.
IOleCache2
Provides more fine-grained control over caching.
Usually the stock implementation is used.
IOleCacheControl
This interface is not called by the container, but internally by the object to allow it to receive notifications of when its IDataObject is running, thereby allowing it to subscribe to notifications of data changes of that object and thus allowing it to update the cached presentation properly.
Usually the stock implementation is used.
IOleDocument
Allows the OLE object to support multiple views of its data, as well as a few related functions.
IOleDocumentView
A document object (an object that implements IOleDocument) implements this interface for every view. It allows the caller to set the site of the object, query and set the size of the object and to show and activate it, as well as some related functions.
IOleWindow
IOleInPlaceActiveObject
Called by the outermost container of an object to interact with it while it's active, e.g. to process accelerator keys in the container's message queue that are meant for the contained object.
IOleInPlaceObject
Called by the container to activate or deactivate the object.
IOleInPlaceObjectWindowless
A windowless object is an object that doesn't have its own window but it instead displayed in its container's window. It is used by the container to relay messages received by the container's window that are intended for the contained object. For example, if the mouse is moved over a window, Windows places a mouse move message along with the mouse coordinates in the message queue of the window. If this window contains windowless embedded objects, the message may have to be relayed to such an object if the coordinates of the mouse-pointer are over this object. For similar reasons this interface also provides access to the object's IDropTarget interface.
IOleLink
Allows the object to support linking, e.g. by allowing the container to set the source of a linked object.
Usually the stock implementation is used.
IOleObject
Arguably the most important interface for an OLE object. For example, it allows the container to inform the object of its site, initialize the object from data, to open and close it, to query and set the size of the object, to ask for notifications on the container's IAdviseSink and to execute objects defined as "verbs" on the object. These verbs often include "Open" or "Edit", but can also include other verbs. One of the verbs is defined to be the principal verb, and it is executed when the user double-clicks an object.
IViewObject
Allows an object to draw itself directly, without passing an IDataObject to the container. For objects that support both IDataObject and this interface, the underlying implementation is usually shared.
IViewObject2
Additionally allows the caller to query the size of the object.
IViewObjectEx
Adds support for flicker-free drawing of transparent objects, hit-testing for objects with irregular shapes and setting the size of an object.

OLE container

IAdviseSink
Allows the implementer to receive notifications when the object is saved, closed, renamed, or when its data or visual presentation changes.
IAdviseSink2
Additionally allows the implementer to receive notifications when the link source of the OLE object changes.
IAdviseSinkEx
Additionally allows the implementer to receive notifications when the view status of the OLE object changes.
IOleClientSite
This interface allows the caller to obtain information on the container and location of an object, as well requesting that the object be saved, resized, shown, hidden, et cetera.
IOleDocumentSite
Allows the caller to ask for the object on this site to be activated immediately. If this interface is implemented, IOleClientSite, IOleInPlaceSite and IAdviseSink must be implemented as well.
IOleContainer
This interface allows the caller to enumerate embedded objects in a container, or to find such objects by name. It is primarily useful if the container wishes to support links to embedded objects.
IOleWindow
IOleInPlaceUIWindow
Enables embedded objects to negotiate space for toolbars on the container's window.
IOleInPlaceFrame
Allows the caller to ask the container to insert its menu items in an empty menu that will become the cooperative menu. Also allows the caller to ask the container to show or hide this menu, to show or hide dialog boxes, and to process accelerator keys received by the contained object intended for the container.
IOleInPlaceSite
If a container implements this interface, it allows embedded objects to be activated in place, i.e. without opening in a separate window. It provides access to the container's IOleInPlaceUIWindow.
IOleInPlaceSiteEx
If a container implements this interface, it allows embedded objects to check whether they need to redraw on activation or deactivation. It also allows them to request their UI to activate.
IOleInPlaceSiteWindowless
If a container wishes to support windowless embedded objects, it needs to provide functionality to embedded objects to replace the functionality normally provided by an embedded object's window. For example this interface provides a way to access the container's window's device context, thereby enabling the embedded object to draw in the container's window.
IOleUILinkContainer
Contains the methods that the standard OLE dialog boxes that manage linked objects use to update linked objects in a container, or to query and change their sources. Used by the "Links", "Change source", "Update links" and "Object properties" dialog boxes.
IOleUILinkInfo
Additionally allows the dialog boxes to query when linked objects were last updated, and whether this was done automatically or manually.
IOleUIObjInfo
Contains the methods needed by the "Object properties" dialog box. For example if the user opens the "Object properties" dialog box and asks for the object to be converted to another type, a method on this interface is called.
IOleUndoManager
Provides a centralized undo service to both the container itself and to embedded objects. When an undoable action is performed, an IOleUndoUnit is created and added to the IOleUndoManager.

Other

IDataAdviseHolder
The methods of IDataObject that pertain to data change notifications can be implemented by calling the methods of this interface.
Usually the stock implementation is used.
IOleAdviseHolder
The methods of IOleObject that pertain to notifcations can be implemented by calling the methods of this interface.
Usually the stock implementation is used.
IDropSource
Implemented by objects that can be dragged, i.e. that can be the source of a drag-and-drop operations. When implemented it allows the object to draw drag-and-drop effects, and to specify when the object is dropped, or the drag-and-drop operation is cancelled.
IDropTarget
Implemented by objects that accept dropped objects, i.e. that can be the target of drag-and-drop operations. When implemented it allows the target to specify if a dropped object will be accepted, and what happens to an object after it is dropped.
IOleCommandTarget
Can be implemented by objects (OLE objects, OLE containers, and other objects) that wish to support certain standard commands. It allows callers to query if commands are supported, and to execute commands. Commands that an object might typically wish to implement may include things like "delete", "cut", "copy", "paste", "undo", "find", "print", "save", "zoom", and so on. Currently 58 standard commands have been defined, and they include commands commonly used by office software, web browsers and similar applications.
IOleUndoUnit
Represents an action that can be undone. It contains all information necessary to undo an action. It is created by objects and containers, so that undoable actions can be added to the container's IOleUndoManager.
IOleParentUndoUnit
Allows an undo unit to contain other undo units. In essence this allows the undo unit to act as an undo stack, grouping undo units together. For example, if a macro is run, all undo-able actions performed by the macro may be grouped together in one undo unit.
IOleWindow
This interface represents a window of a container or contained object. It allows callers to obtain the handle of the window, and to toggle the context-sensitive help function. When the context-sensitive help function is turned on, typically the mouse-pointer changes to an arrow with a question mark to indicate that clicking a user interface element will result in opening a help window.

See also

This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL. OLE Automation is a late-binding extension to COM and IUnknown. ... OLE for Process Control (OPC) is the original name for a standard developed in 1996 by an industrial automation industry task force. ... Component Object Model (COM) is a platform for software componentry introduced by Microsoft in 1993. ... Distributed Component Object Model (DCOM) is a Microsoft proprietary technology for software components distributed across several networked computers to communicate with each other. ... Dynamic Data Exchange (DDE) is a technology for communication between multiple applications under Microsoft Windows and also OS/2. ... In computer programming, KParts is the name of the component framework for the KDE desktop environment. ... Bonobo is a component model for compound documents used in GNOME, a desktop environment. ... Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... Diagram of the relationships between several Unix-like systems A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification. ... This article or section does not cite its references or sources. ... This article does not cite any references or sources. ... “GFDL” redirects here. ...


  Results from FactBites:
 
Object Linking and Embedding (OLE) (556 words)
Object linking allows users to share a single source of data for a particular object.
With object embedding, one application (referred to as the "source") provides data or an image that will be contained in the document of another application (referred to as the "destination").
Because an embedded object has no links to the source file, the object is not updated if you change the original data.
Object Linking and Embedding - Wikipedia, the free encyclopedia (569 words)
Object Linking and Embedding (OLE) is a distributed object system and protocol developed by Microsoft.
The concept of "embedding" is also central to much use of multimedia in Web pages, which tend to embed video, animation (include Flash animations), and music files within the HTML code.
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.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m