WM_DDE_EXECUTE訊息
動態資料交換 (DDE) 用戶端應用程式會將 WM_DDE_EXECUTE 訊息張貼至 DDE 伺服器應用程式,以將字串傳送至要當做一系列命令處理的伺服器。 伺服器應用程式預期會在回應中張貼 WM_DDE_ACK 訊息。
若要張貼此訊息,請使用下列參數呼叫 PostMessage 函式。
#define WM_DDE_EXECUTE 0x03E8
參數
-
wParam
-
張貼訊息之用戶端視窗的控制碼。
-
lParam
-
包含參考 ANSI 或 Unicode 命令字串的全域記憶體物件,視交談所涉及的視窗類型而定。
備註
命令字串是以 Null 結尾的字串,其中包含一或多個以單一括弧括住的 opcode 字串, ([ ]) 。 每個 opcode 字串都有下列語法,其中 參數 清單是選擇性的:
opcode 參數
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 訊息,以正面或負面回應。 伺服器應該重複使用全域記憶體物件。
除非由子通訊協定指定否則,除非由子通訊協定指定,否則伺服器不應該張貼 WM_DDE_ACK 訊息,直到執行命令字串所指定的所有動作都完成為止。 此規則的其中一個例外狀況是當字串導致伺服器終止交談時。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
標頭 |
|