典型的DDE对话包括以下事件:
1.客户端应用程序启动会话,服务器应用程序响应。
2.应用程序通过以下任何或全部方式交换数据:
*服务器应用程序根据客户的要求向客户端发送数据。
*客户端应用程序将未经请求的数据发送到服务器应用程序。
*客户端应用程序请求服务器应用程序在数据项更改时通知客户(热数据链接)。
*客户端应用程序请求服务器应用程序在数据更改(热数据链接)时发送数据。
*服务器应用程序根据客户的要求执行命令。
3.客户端或服务器应用程序终止会话。
处理来自客户端或服务器的请求的应用程序窗口必须严格按照接收的顺序进行处理。
客户端可以与多个服务器建立对话;服务器可以与多个客户端进行对话。当处理来自多个源的消息时,客户端或服务器必须同时处理给定会话的消息,但不需要同步处理所有消息。换句话说,它可以根据需要从一个会话转移到另一个会话。
如果应用程序由于正在等待DDE响应而无法处理传入请求,则必须通过发布WM_DDE_ACK FBUSY FBUSY结构的FBUSY结果设置为1来防止死锁。如果由于任何原因,在合理的时间内无法处理传入的请求,应用程序也可以发送忙碌的WM_DDE_ACK消息。
应用程序应该能够处理客户端或服务器在一定时间内对消息进行响应的失败。由于超时间隔可以根据应用的性质和用户系统的配置(包括是否连接到网络)而变化,所以应用程序应该为用户指定间隔提供一种方式。