ID Number: Q74805
3.10
WINDOWS
Summary:
This article discusses when to use the Object Linking and Embedding
(OLE) libraries or the Dynamic Data Exchange Management Library
(DDEML).
When to Choose OLE
------------------
Use the OLE libraries in an application that supports any or all of
the following:
- persistent embedding and linking of objects
- rendering of common data formats
- server rendering of specialized data formats
- creating objects and links from the Clipboard
- creating objects and links from files
- activating embedded and linked objects
When to Choose DDEML
--------------------
Use the DDEML for any application that must support simultaneous links
for many items, particularly if the items are updated very frequently.
The DDE example of a real-time stock information server is a good
example of an application best implemented using the DDEML rather than
the OLE libraries.
When to Choose Both OLE and DDEML
---------------------------------
Only in rare cases should an application need to use both the OLE and
DDEML. Generally, these are cases where an application needs OLE to
support persistent embedding and linking of objects and the other
features uniquely offered by OLE, but where the application also needs
DDE to support many simultaneous links for items that are updated very
frequently.
There are no complications when both the OLE libraries and the DDEML
are used simultaneously in a client application. Use the OLE libraries
to initiate conversations with OLE servers; and use the DDEML to
initiate conversations with DDE servers.
There is one complication, however, using both the OLE libraries and
the DDEML in a server application. Different service names (DDE
"application" names) must be used for OLE and DDE conversations. For
example, "myapp" might be assigned as the service name for DDE
conversations, while "myappOLE" might be assigned as the service name
for OLE conversations. This is required because the OLE libraries and
the DDEML have no other way to distinguish which one should respond on
behalf of the registered server when an initiation request is
received.
It probably makes more sense to modify the service name for OLE
conversations than to modify the service name for DDE conversations.
The SHELL.DLL registration services hide the service name for the OLE
conversations from other applications and end users. On the contrary,
other applications and end users must have knowledge of the service
name for the DDE conversation.