Many of the DDE functions and subroutines require the ID of an established conversation as an argument.
The following table explains how the DDE client and server obtain an ID.
| DDE Participant | Typically Obtains ID: | 
| Client | As a return value from DDEInitiate. | 
| Server | From the built-in function eventparam during execution of a stimulus response. The following table lists the various DDE tasks and the types of subroutines and functions used to perform them. | 
| Task | Description | 
| Polling for topics | Functions and subroutines that obtain information on the availability of server application/topic pairs. | 
| Starting | Functions and subroutines necessary for | 
| Conversations | both servers and clients to start conversations, as well as functions used for keeping track of active conversations. | 
| Exchanging Data | Subroutines used to carry out the six types of data exchange transactions, as well as the subroutine for acknowledging receipt of data exchange request. | 
| Terminating Conversations | Subroutines used to terminate existing conversations. | 
| Getting Information on Existing Conversations | Functions that gain access to information about an active conversation. | 
| Manipulating Status Variables | Functions used for setting and querying the individual flags in a status variable. | 
| Default Processing Support | Function and subroutine used to enable or disable default processing. |