WM_DDE_DATA

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

DDE服务器应用程序将一个WM_DDE_DATA消息发送到DDE客户端应用程序,以将数据项传递给客户端或通知客户数据项的可用性。

WM_DDE_DATA

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

lParam = (LPARAM) lPackedVal; //打包DDEDATA和项目原子

参数

【HWND】

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

【lPackedVal】

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

参数描述
【HDATA】标识包含数据和附加信息的DDEDATA结构的全局内存对象。如果服务器通知客户端在热数据链接期间数据项值已更改,那么句柄应设置为NULL。客户端发送WM_DDE_ADVISE位设置的WM_DDE_ADVISE消息建立一个热链接。
【项目】包含一个原子,用于标识发送数据或通知的数据项。

备注

发帖

服务器应用程序通过调用PostMessage功能而不是SendMessage功能发布WM_DDE_DATA消息。

服务器应用程序通过使用GMEM_DDESHARE选项调用GlobalAlloc函数来分配【HDATA】.它通过调用GlobalAddAtom功能来分配【项目】.

服务器必须通过调用PackDDElParam功能或ReuseDDElParam功能创建或重新使用WM_DDE_DATA 【lPackedVal】功能,并以【HDATA】作为低位字提供【项目】作为高位字。

如果接收(客户端)应用程序使用否定的WM_DDE_ACK消息进行响应,则发布(服务器)应用程序必须删除【HDATA】对象;否则,客户端必须通过调用UnpackDDElParam函数来提取其内容后删除【HDATA】对象。

如果服务器应用程序将DDEDATA结构的fRelease成员设置为FALSE,则服务器负责在收到肯定或否定确认后删除【HDATA】.

服务器应用程序不应将DDEDATA结构的fAckReqfRelease成员设置为FALSE。如果两个成员都设置为FALSE,则服务器无法确定何时删除【HDATA】.

接收

如果fAckReq为TRUE,则客户端应用程序应发布WM_DDE_ACK消息以进行积极或消极的响应。当发布WM_DDE_ACK时,客户端可以重用【项目】原子,否则可以删除它并创建一个新的。

客户端必须通过调用PackDDElParam函数或ReuseDDElParam作为低位字提供的【wStatuslb】功能创建或重新使用WM_DDE_ACK 【lPackedVal】参数,并以【项目】作为高位字提供。

如果fAckReq为FALSE,则客户端应用程序应删除【项目】原子。

如果发布(服务器)应用程序将【HDATA】指定为NULL,则接收(客户端)应用程序可以通过发布WM_DDE_REQUEST消息来请求服务器发送数据。

在处理其中【HDATA】不为NULL的WM_DDE_DATA消息后,客户端应该释放【HDATA】,除非满足以下条件之一:

* fRelease成员为FALSE。

* fRelease成员为TRUE,但客户端应用程序使用负WM_DDE_ACK消息进行响应。

也可以看看

DDEDATA, FreeDDElParam, GlobalAddAtom, GlobalAlloc, PackDDElParam, PostMessage, ReuseDDElParam, SendMessage, UnpackDDElParam, WM_DDE_ACK, WM_DDE_ADVISE, WM_DDE_POKE, WM_DDE_REQUEST