WM_DDE_EXECUTE
A DDE client
application posts a WM_DDE_EXECUTE message to a DDE server application to send
a string to the server to be processed as a series of commands. The server
application is expected to post a WM_DDE_ACK
WM_DDE_EXECUTE
wParam = (WPARAM) hwnd; // handle of posting application
lParam = (LPARAM) hCommands; // handle to global object
Parameters
hwnd
Value of wParam.
Identifies the client window posting the message.
hCommands
Value of lParam.
Contains a global memory object that references an ANSI or Unicode command
string, depending on the types of windows involved in the conversation.
Remarks
The command
string is a null-terminated string consisting of one or more opcode
strings enclosed in single brackets ([ ]).
Each opcode
string has the following syntax, where the parameters list is optional:
opcode
parameters
The opcode
is any application-defined single token. It cannot include spaces, commas,
parentheses, brackets, or quotation marks.
The parameters
list can contain any application-defined value or values. Multiple parameters
are separated by commas, and the entire parameter list is enclosed in
parentheses. Parameters cannot include commas or parentheses except inside a
quoted string. If a bracket or parenthesis character is to appear in a quoted
string, it need not be doubled, as was the case under the old rules.
Following are
some valid command strings:
[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.")]
Note that,
under the old rules, parentheses and brackets had to be doubled, as follows:
[bracket_or_paren_case("(())s or [[]]s should
be no problem.")]
Servers
should be able to parse commands in either form.
Unicode
execute strings should be used only when both the client and server window
handles cause the IsWindowUnicode
Posting
The client
application posts the WM_DDE_EXECUTE message by calling the PostMessage
The client
application allocates hCommands by calling the GlobalAlloc
When
processing the WM_DDE_ACK
Receiving
The server
application posts the WM_DDE_ACK message to respond positively or negatively.
The server should reuse the hCommands object.
Unless
specified otherwise by a sub-protocol, the server should not post the
WM_DDE_ACK message until all the actions specified by the execute command
string are completed. The one exception to this rule is when the string causes
the server to terminate the conversation.
See Also