DDE Warm Link
Following are the steps of exchanging the messages between client and server engaged in DDE warm link conversation:
Following picture shows the sequence of message exchange between the client and server engaged in DDE warm link conversation.
Client Server
---- WM_DDE_INITIATE --->
(application, topic)
<----- WM_DDE_ACK -------
----- WM_DDE_ADVISE ---->
(item)
<----- WM_DDE_ACK ------
<----- WM_DDE_DATA ------
(NULL item)
------
WM_DDE_ACK ------>
----- WM_DDE_REQUEST ---->
(item)
<----- WM_DDE_DATA ------
(item)
------ [WM_DDE_ACK] ----->
(positive)
---- WM_DDE_UNADVISE --->
(item)
<----- WM_DDE_ACK ------
---- WM_DDE_TERMINATE --->
<-- WM_DDE_TERMINATE ----
DDE warm link combines the good features of both DDE cold link and DDE hot link. The problem with DDE cold link is that the client do not get any notification when the data on the server gets updated. This problem is solved in DDE hot link but then DDE hot link also introduces one problem. If the data on the server is getting update too frequently then the client may not be interested in receiving the whole data every time its updated.
In DDE warm link the server just sends a notification that the data item is being updated. Now if the client wants the updated data he can send a request to the server to get the updated data.