Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Object Linking and Embedding
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== ===OLE 1.0=== OLE 1.0, released in 1990, was an evolution of the original [[Dynamic Data Exchange]] (DDE) concept that [[Microsoft]] developed for earlier versions of [[Microsoft Windows|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 [[Compound document|embedding]] one type of document within another. OLE servers and clients communicate with system libraries using [[virtual function table]]s, or VTBLs. The VTBL consists of a structure of [[function pointer]]s that the system library can use to communicate with the server or client. The server and client libraries, {{mono|OLESVR.DLL}} and {{mono|OLECLI.DLL}}, were originally designed to communicate between themselves using the {{mono|WM_DDE_EXECUTE}} message. OLE 1.0 later evolved to become an architecture for [[software componentry|software components]] known as the [[Component Object Model]] (COM), and later [[Distributed Component Object Model|DCOM]]. 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. The '''Object Packager''', a component of OLE, shipping from [[Windows 3.1]] up to [[Windows XP]] allows a non-OLE object to be "packaged" so it can be embedded into an OLE client. ===OLE 2.0=== OLE 2.0 was the next evolution of OLE, sharing many of the same goals as version 1.0, but was re-implemented on top of the COM instead of using VTBLs directly. New features were [[OLE Automation|OLE automation]], [[drag-and-drop]], [[in-place activation]] and [[COM Structured Storage|structured storage]]. Monikers evolved from OLE 1 object names, and provided a hierarchical object and resource naming system similar to [[URI|URLs or URIs]], which were independently invented. Windows now has merged the two technologies supporting a URL Moniker type, and a Moniker URL scheme. OLE 2.0 introduced [[UUID]] to label API objects.<ref>Advanced Windows (The Developer's Guide to the Win32 API for Windows NT 3.5 and Windows 95)</ref> ===OLE custom controls=== OLE custom controls were introduced in 1994 as a replacement for the now deprecated 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 Control]]s.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)