WM_DDE_ACK消息
WM_DDE_ACK消息通知动态 Data Exchange (DDE) 应用接收和处理以下消息:WM_DDE_POKE、WM_DDE_EXECUTE、WM_DDE_DATA、WM_DDE_ADVISE、WM_DDE_UNADVISE、WM_DDE_INITIATE或WM_DDE_REQUEST (在某些情况下) 。
若要发布此消息,请使用以下参数调用 PostMessage 函数。
#define WM_DDE_ACK 0x03E4
参数
-
wParam
-
响应 WM_DDE_INITIATE时,此参数是发送消息的服务器窗口的句柄。
响应 WM_DDE_EXECUTE时,此参数是发布消息的服务器窗口的句柄。
答复所有其他消息时,此参数是发布消息的客户端或服务器窗口的句柄。
-
lParam
-
响应 WM_DDE_INITIATE时,低位字包含一个用于标识答复应用程序的原子。 高序字包含一个原子,用于标识要为其建立会话的主题。
响应 WM_DDE_EXECUTE时,低序字指定包含一系列指示响应状态的标志的 DDEACK 结构。 高序字是全局内存对象的句柄,该对象包含 WM_DDE_EXECUTE 消息中收到的命令字符串。
答复所有其他消息时,低序字指定包含一系列指示响应状态的标志的 DDEACK 结构。 高序字包含一个全局原子,用于标识发送响应的数据项的名称。
备注
张贴
除了响应WM_DDE_INITIATE消息外,应用程序通过调用 PostMessage 函数而不是通过调用 SendMessage 函数来发布WM_DDE_ACK消息。 响应WM_DDE_INITIATE时,应用程序通过调用 SendMessage 发送WM_DDE_ACK消息。 在这种情况下,即使WM_DDE_INITIATE消息指定 NULL 原子) ,application-name atom 和 topic-name atom 都不应 (NULL。
当确认任何带有附带 Atom 的消息时,发布 WM_DDE_ACK 的应用程序可以重复使用原始消息附带的原子,也可以删除它并创建一个新的原子。
确认 WM_DDE_EXECUTE时,发布 WM_DDE_ACK 的应用程序应重复使用原始WM_DDE_EXECUTE消息中标识 的 全局内存对象。
所有发布的WM_DDE_ACK消息都必须通过调用 PackDDElParam 函数或 ReuseDDElParam 函数来创建或重用 lParam 参数。
如果应用程序已通过发布 WM_DDE_TERMINATE 启动会话终止,并且正在等待确认,则等待的应用程序不应确认 () 其他应用程序发送的任何后续消息。 等待的应用程序应删除在这些中间消息中收到的任何原子或共享内存对象。 如果在WM_DDE_POKE和WM_DDE_DATA消息中将 fRelease 标志设置为 FALSE,则不应释放内存对象。
接收
接收 WM_DDE_ACK 消息的应用程序应删除消息附带的所有原子。 如果应用程序收到 WM_DDE_ACK 以响应附带全局内存对象的消息,并且发送对象时 fRelease 标志设置为 FALSE,则应用程序负责删除对象。
如果应用程序收到在答复 WM_DDE_ADVISE 消息时发布的负面 WM_DDE_ACK 消息,则应用程序应删除随原始 WM_DDE_ADVISE 消息一起发布的全局内存对象。 如果应用程序收到在回复WM_DDE_DATA、WM_DDE_POKE或WM_DDE_EXECUTE消息时发布的负面WM_DDE_ACK消息,则应用程序应删除随原始WM_DDE_DATA、WM_DDE_POKE或WM_DDE_EXECUTE消息一起发布的全局内存对象。
接收已发布WM_DDE_ACK消息的应用程序必须使用 FreeDDElParam 函数释放 lParam 参数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|