31.2.17 Object Linking and Embedding

An application that uses OLE can cooperate with other OLE applications to produce a document containing different kinds of data, all of which can be easily manipulated by the user. The user editing such a document is able to improve the document by using 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 and toward a document-centered view. In application-centered computing the tool used to complete a task is often a single application; whereas, in document-centered computing, a user can combine the advantages of many tools to complete a job.

A document that uses linked and embedded objects 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 any 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.

The OLE functions include:

Function Description

OleActivate Activates an object
OleBlockServer Queues incoming requests for the server
OleClone Makes a copy of an object
OleClose Closes specified object
OleCopyFromLink Makes an embedded copy of a linked object
OleCopyToClipboard Puts the specified object on the clipboard
OleCreate Creates an object of a specified class
OleCreateFromClip Creates an object from the clipboard
OleCreateFromFile Creates an object from a file
OleCreateFromTemplate Creates an object from a template
OleCreateLinkFromClip Creates link to object from the clipboard
OleCreateLinkFromFile Creates link to object in a file
OleDelete Deletes an object
OleDraw Draws an object into a device context
OleEnumFormats Enumerates data formats for an object
OleEnumObjects Enumerates objects in a document
OleEqual Compares two objects for equality
OleExecute Sends DDE execute commands to a server
OleGetData Retrieves data for an object in a specified format
OleGetLinkUpdateOptions Retrieves update options for an object
OleLoadFromStream Loads an object from containing document
OleLockServer Keeps server in memory
OleObjectConvert Creates a new object using a specified protocol
OleQueryBounds Retrieves bounding rectangle for object
OleQueryClientVersion Retrieves version of client library
OleQueryCreateFromClip Retrieves create data for clipboard object
OleQueryLinkFromClip Retrieves link data for clipboard object
OleQueryName Retrieves the name of an object
OleQueryOpen Determines whether an object is open
OleQueryOutOfDate Determines whether an object is out-of-date
OleQueryProtocol Determines if an object supports a protocol
OleQueryReleaseError Determines status of released operation
OleQueryReleaseMethod Determines which operation released
OleQueryReleaseStatus Determines whether an operation released
OleQueryServerVersion Retrieves version of server library
OleQuerySize Retrieves the size of an object
OleQueryType Determines if object is linked, embedded, or static
OleReconnect Reconnects to an open linked object
OleRegisterClientDoc Registers a document with the library
OleRegisterServer Registers the specified server
OleRegisterServerDoc Registers document with server library
OleRelease Releases an object from memory
OleRename Informs library an object is renamed
OleRenameClientDoc Informs library a document is renamed
OleRenameServerDoc Informs library a document is renamed
OleRequestData Retrieves data from a server in a specified format
OleRevertClientDoc Informs library a doc reverted to saved state
OleRevertServerDoc Informs library a doc is reset to saved state
OleRevokeClientDoc Informs library a document is not open
OleRevokeObject Revokes access to an object
OleRevokeServer Revokes the specified server
OleRevokeServerDoc Revokes the specified document
OleSavedClientDoc Informs library a doc has been saved
OleSavedServerDoc Informs library a doc has been saved
OleSaveToStream Saves an object to the stream
OleSetBounds Sets bounding rectangle for object
OleSetColorScheme Specifies client's recommended object colors
OleSetData Sends data in specified format to server
OleSetHostNames Sets container name and container's object name
OleSetLinkUpdateOptions Sets update options for an object
OleSetTargetDevice Sets target device for an object
OleUnblockServer Processes requests from queue
OleUnlockServer Releases server locked with OleLockServer
OleUpdate Updates an object