WM_DDE_ACK

【勇芳软件工作室】汉化HomePreviousNext

WM_DDE_ACK消息通知DDE应用程序收到并处理WM_DDE_POKE WM_DDE_EXECUTEWM_DDE_DATAWM_DDE_ADVISEWM_DDE_UNADVISEWM_DDE_INITIATE消息,在某些情况下,WM_DDE_REQUEST信息。

WM_DDE_ACK

//响应WM_DDE_INITIATE

wParam = (WPARAM) hwnd; //发布应用程序的句柄

lParam = MAKELPARAM(aApp, aTopic) //应用程序和主题原子

//响应WM_DDE_EXECUTE

wParam = (WPARAM) hwnd; //发布应用程序的句柄

lParam = (LPARAM) lPackedVal; //打包状态标志和数据句柄

//响应所有其他消息

wParam = (WPARAM) hwnd; //发布应用程序的句柄

lParam = (LPARAM) lPackedVal; //打包状态标志和项目

参数

当响应WM_DDE_INITIATE时:

【HWND】

价值【wParam中】.标识发布消息的服务器窗口。

【应用】

【lParam的】的低位字的值。包含标识回复应用程序的原子。

【特应性】

【lParam的】的高阶字的值。包含一个原子,用于标识正在建立会话的主题。

响应WM_DDE_EXECUTE时:

【HWND】

价值【wParam中】.标识发布消息的服务器窗口。

【lPackedVal】

价值【lParam的】.通过调用UnpackDDElParam函数提取打包到【lPackedVal】中的组件参数。低位字是【wStatuslb】.高位词与WM_DDE_EXECUTE消息中收到的相同【hCommands】.

参数描述
【wStatuslb】指定一个DDEACK结构,其中包含一系列指示响应状态的标志。
【hCommands】标识包含命令字符串的全局内存对象。

当回复所有其他消息时:

【HWND】

价值【wParam中】.标识发送消息的客户端或服务器窗口。

【lPackedVal】

价值【lParam的】.通过调用UnpackDDElParam函数提取打包到【lPackedVal】中的组件参数。低位字是【wStatuslb】.高位词是【项目】.

参数描述
【wStatuslb】指定一个DDEACK结构,其中包含指示响应状态的一系列标志。
【项目】包含一个全局原子,用于标识发送响应的数据项的名称。

备注

发帖

除了响应WM_DDE_INITIATE消息外,应用程序通过调用PostMessage函数发布WM_DDE_ACK消息,而不是调用SendMessage函数。当响应WM_DDE_INITIATE时,应用程序通过调用SendMessage发送WM_DDE_ACK消息。在这种情况下,应用程序名称atom和topic-name atom都不应为NULL(即使WM_DDE_INITIATE消息指定为NULL个原子)。

当发送带有【项目】原子的消息时,发布WM_DDE_ACK的应用程序可以重用原始消息附带的【项目】原子,或者可以删除它并创建一个新的。

当确认WM_DDE_EXECUTE时,发布WM_DDE_ACK的应用程序应该重新使用原始WM_DDE_EXECUTE消息中标识的全局内存对象。

所有发布的WM_DDE_ACK消息必须通过调用PackDDElParam函数或ReuseDDElParam函数创建或重用【lPackedVal】参数。

如果应用程序通过发布WM_DDE_TERMINATE并等待确认来启动会话终止,则等待的应用程序不应确认(正面或反面地)其他应用程序发送的任何后续消息。等待应用程序应删除在这些中间消息中接收的任何原子或共享内存对象。如果WM_DDE_POKEWM_DDE_DATA消息中的fRelease标志设置为FALSE,则不应释放内存对象。

接收

接收WM_DDE_ACK消息的应用程序应删除该消息附带的所有原子。如果应用程序响应于带有【HDATA】对象的消息接收到WM_DDE_ACK,并且该对象已发送,fRelease标志设置为FALSE,则应用程序负责删除【HDATA】对象。

如果应用程序接收到WM_DDE_ADVISE消息的回复消息WM_DDE_ACK消息,应用程序应该删除使用原始WM_DDE_ADVISE消息发布的全局内存对象(在【hOptions】)。如果应用程序收到WM_DDE_DATA,WM_DDE_POKE或WM_DDE_EXECUTE消息中发布的负WM_DDE_ACK消息,则应用程序应删除用原始WM_DDE_DATA,WM_DDE_POKE或WM_DDE_EXECUTE消息发布的全局内存对象(在【hCommands】))。

接收发布的WM_DDE_ACK消息的应用程序必须使用FreeDDElParam功能释放【lPackedVal】参数。

也可以看看

DDEACK, FreeDDElParam, PackDDElParam, PostMessage, ReuseDDElParam, SendMessage, UnpackDDElParam, WM_DDE_ADVISE, WM_DDE_DATA, WM_DDE_EXECUTE, WM_DDE_INITIATE, WM_DDE_POKE, WM_DDE_REQUEST, WM_DDE_TERMINATE, WM_DDE_UNADVISE