Dynamic Data Exchange (DDE) is a message-based protocol that allows two applications to establish a connection through which they can exchange data, or commands, in any format that they mutually agree to support. Only applications that are specifically implemented to support DDE can establish such a connection.
The basic conceptual model for a DDE connection is a conversation. A DDE participant can be a client or a server:
•Client Initiates a conversation; controls the flow of the conversation.
•Server Responds to an initiation; responds to requests from the client.
Each conversation has an associated topic name, which is established at the time the conversation is started. Once a conversation is established, it is the client that controls the flow.
The client does any or all of the following:
•Issues one or more requests for data from a server.
•Sends unsolicited data to a server.
•Asks a server to execute commands.
•Establishes an advise state (also known as a hot link) with a server. An advise state is one where the client receives notification (and possibly data) from the server each time specific data is modified.
Each individual data exchange within a conversation has an associated item name and format. These are established at the time the data is requested, and can be any name and format on which the two applications agree.
The protocol contains provisions that allow the server to reject requests. Several requests for the same data may be required before the two partners agree on a data format that both can handle. Either partner can terminate the conversation at any time.
Although a single conversation involves only two participants, an individual application can carry on multiple conversations with one or more partner applications, presenting itself as a client, a server, or both.