When to Use the OLE Libraries or the DDEML

Last reviewed: February 17, 1995
Article ID: Q74805
The information in this article applies to:
  • Microsoft OLE version 1.0

This article discusses when to use the 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.


Additional reference words: 3.10 1.00 OLE DDEML
KBCategory: kbole kbprg
KBSubcategory: LeoneCliMisc LeoneSvrMisc


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: February 17, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.