WM_DDE_EXECUTE メッセージ

Dynamic Data Exchange (DDE) クライアント アプリケーションは、 連のコマンドとして処理される文字列をサーバーに送信するために、DDE サーバー アプリケーションにWM_DDE_EXECUTE メッセージを送信します。 サーバー アプリケーションは、応答として WM_DDE_ACK メッセージを投稿する必要があります。

このメッセージを投稿するには、次のパラメーターを使用して PostMessage 関数を呼び出します。

#define WM_DDE_EXECUTE     0x03E8

パラメーター

wParam

メッセージを投稿するクライアント ウィンドウへのハンドル。

lParam

会話に関係するウィンドウの種類に応じて、ANSI または Unicode コマンド文字列を参照するグローバル メモリ オブジェクトが含まれます。

解説

コマンド文字列は、1 つの角かっこ ([ ]) で囲まれた 1 つ以上のオペコード文字列で構成される 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.")] 

古いルールでは、次のようにかっこと角かっこを 2 倍にする必要があることに注意してください。

[bracket_or_paren_case("(())s or [[]]s should be no problem.")] 

サーバーは、どちらの形式でもコマンドを解析できる必要があります。

Unicode 実行文字列は、クライアント とサーバーの両方のウィンドウ ハンドルによって IsWindowUnicode 関数が TRUE を返す場合にのみ使用する必要があります。

投稿

クライアント アプリケーションは、 GlobalAlloc 関数を呼び出してグローバル メモリ オブジェクトを割り当てます。

サーバーがWM_DDE_EXECUTE メッセージに応答して投稿するWM_DDE_ACK メッセージを処理する場合、クライアント アプリケーションは、WM_DDE_ACK メッセージによって返されるオブジェクトを削除する必要があります。

受信

サーバー アプリケーションは、肯定的または否定的に応答する WM_DDE_ACK メッセージを投稿します。 サーバーはグローバル メモリ オブジェクトを再利用する必要があります。

サブプロトコルで特に指定しない限り、実行コマンド文字列で指定されたすべてのアクションが完了するまで、サーバーは WM_DDE_ACK メッセージを投稿しないでください。 この規則の 1 つの例外は、文字列によってサーバーがメッセージ交換を終了する場合です。

必要条件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Dde.h (Windows.h を含む)

関連項目

参照

IsWindowUnicode

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

UnpackDDElParam

WM_DDE_ACK

概念

動的データ交換について