Platform SDK: Interprocess Communications |
If the client requests that a specific data link be terminated, the client sends the server a WM_DDE_UNADVISE message, as shown in the following example.
if ((atomItem = GlobalAddAtom(szItemName)) != 0) { if (!PostMessage(hwndServerDDE, WM_DDE_UNADVISE, (WPARAM) hwndClientDDE, PackDDElParam(WM_DDE_UNADVISE, 0, atomItem))) { GlobalDeleteAtom(atomItem); FreeDDElParam(WM_DDE_UNADVISE, lParam); } } if (atomItem == 0) { // Handle errors. }
The server checks whether the client currently has a link to the specific item in this conversation. If a link exists, the server sends the client a positive WM_DDE_ACK message; the server is then no longer required to send updates about the item. If no link exists, the server sends the client a negative WM_DDE_ACK message.
The WM_DDE_UNADVISE message specifies a data format. A format of zero informs the server to stop all links for the specified item, even if several hot links are established and each uses a different format.
To terminate all links for a conversation, the client application sends the server a WM_DDE_UNADVISE message with a null item atom. The server determines whether the conversation has at least one link currently established. If a link exists, the server sends the client a positive WM_DDE_ACK message; the server then no longer has to send any updates in the conversation. If no link exists, the server sends the client a negative WM_DDE_ACK message.