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 [仅限桌面应用]
标头
Dde.h (包括 Windows.h)

请参阅

引用

IsWindowUnicode

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

UnpackDDElParam

WM_DDE_ACK

概念性

关于动态数据交换