WM_DDE_EXECUTE消息
动态数据交换 (DDE) 客户端应用程序将 WM_DDE_EXECUTE 消息发布到 DDE 服务器应用程序,以将字符串发送到服务器,以作为一系列命令进行处理。 服务器应用程序应发布 WM_DDE_ACK 消息作为响应。
若要发布此消息,请使用以下参数调用 PostMessage 函数。
#define WM_DDE_EXECUTE 0x03E8
参数
-
wParam
-
发布消息的客户端窗口的句柄。
-
lParam
-
包含引用 ANSI 或 Unicode 命令字符串的全局内存对象,具体取决于会话中涉及的窗口类型。
备注
命令字符串是一个以 null 结尾的字符串,由括在单个方括号中的一个或多个操作码字符串组成, ([ ]) 。 每个操作码字符串都有以下语法,其中 参数 列表是可选的:
opcode 参数
操作码是任何应用程序定义的单一标记。 它不能包含空格、逗号、括号、方括号或引号。
参数列表可以包含任何应用程序定义的一个或多个值。 多个参数用逗号分隔,整个参数列表用括号括起来。 参数不能包含逗号或括号,除非在带引号的字符串内。 如果要在带引号的字符串中显示括号或括号字符,则不需要将其加倍,就像旧规则中的情况一样。
下面是有效的命令字符串:
[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 []s should be no problem.")]
请注意,根据旧规则,括号和括号必须加倍,如下所示:
[bracket_or_paren_case("(())s or [[]]s should be no problem.")]
服务器应该能够分析任一形式的命令。
仅当客户端和服务器窗口句柄都导致 IsWindowUnicode 函数返回 TRUE 时,才应使用 Unicode 执行字符串。
张贴
客户端应用程序通过调用 GlobalAlloc 函数分配全局内存对象。
处理服务器在答复 WM_DDE_EXECUTE 消息时发布的 WM_DDE_ACK 消息时,客户端应用程序必须删除 WM_DDE_ACK 消息返回的对象。
接收
服务器应用程序发布 WM_DDE_ACK 消息,以做出积极或消极的响应。 服务器应重复使用全局内存对象。
除非子协议另有指定,否则服务器不应在 execute 命令字符串指定的所有操作完成之前发布 WM_DDE_ACK 消息。 此规则的一个例外是字符串导致服务器终止会话。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|