WM_DDE_EXECUTE

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

DDE客户端应用程序向DDE服务器应用程序发布WM_DDE_EXECUTE消息,以将字符串发送到要处理的服务器作为一系列命令。服务器应用程序预计将发布WM_DDE_ACK消息作为响应。

WM_DDE_EXECUTE

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

lParam = (LPARAM) hCommands; //处理全局对象

参数

【HWND】

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

【hCommands】

价值【lParam的】.包含引用ANSI或Unicode命令字符串的全局内存对象,具体取决于会话中涉及的窗口类型。

备注

命令字符串是由一个或多个包含在单括号([ ])中的一个或多个【操作码】字符串组成的以null结尾的字符串。

每个【操作码】字符串具有以下语法,其中【参数】列表是可选的:

【操作码参数】

【操作码】是任何应用程序定义的单一令牌。它不能包括空格,逗号,括号,括号或引号。

【参数】列表可以包含任何应用程序定义的值或值。多个参数用逗号分隔,整个参数列表括在括号中。参数不能包括逗号或括号,除了引用的字符串内。如果一个括号或括号字符出现在带引号的字符串中,则不需要像旧规则那样加倍。

以下是一些有效的命令字符串:

[connect][download(query1,results.txt)][disconnect]

[query("sales per employee for each district")]

[open("sample.xlm")][run("r1c1")]

[quote_case("This is a "" character")]

[bracket_or_paren_case("()s or []应该没有问题。“)]

请注意,根据旧规则,括号和括号必须加倍,如下所示:

[bracket_or_paren_case("(())s or [[]]应该没有问题。“)]

服务器应该能够以任一形式解析命令。

只有当客户机和服务器窗口句柄都使IsWindowUnicode函数返回TRUE时,才能使用Unicode执行字符串。

发帖

客户端应用程序通过调用PostMessage函数而不是SendMessage函数发布WM_DDE_EXECUTE消息。

客户端应用程序通过使用GMEM_DDESHARE选项调用GlobalAlloc函数来分配【hCommands】.

当处理服务器回复WM_DDE_EXECUTE消息的WM_DDE_ACK消息时,客户端应用程序必须删除在WM_DDE_ACK消息中发回的【hCommands】对象。

接收

服务器应用程序发布WM_DDE_ACK消息以反应积极或反应。服务器应重新使用【hCommands】对象。

除非由子协议指定,否则服务器不应发布WM_DDE_ACK消息,直到执行命令字符串指定的所有操作完成为止。此规则的一个例外是当字符串导致服务器终止对话。

也可以看看

GlobalAlloc, IsWindowUnicode, PackDDElParam, PostMessage, ReuseDDElParam, SendMessage, UnpackDDElParam, WM_DDE_ACK