次の方法で共有


WM_DDE_ACK メッセージ

WM_DDE_ACK メッセージは、動的データ交換 (DDE) アプリケーションに、WM_DDE_POKE、WM_DDE_EXECUTE、WM_DDE_DATAWM_DDE_ADVISEWM_DDE_UNADVISEWM_DDE_INITIATE、またはWM_DDE_REQUEST (場合によっては) のメッセージの受信と処理を通知します。

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

#define WM_DDE_ACK     0x03E4

パラメーター

wParam

WM_DDE_INITIATEに応答する場合、このパラメーターはメッセージを送信するサーバー ウィンドウへのハンドルです。

WM_DDE_EXECUTEに応答する場合、このパラメーターはメッセージを投稿するサーバー ウィンドウへのハンドルです。

他のすべてのメッセージに応答する場合、このパラメーターは、メッセージを投稿するクライアントまたはサーバー ウィンドウへのハンドルです。

lParam

WM_DDE_INITIATEに応答する場合、下位ワードには応答アプリケーションを識別するアトムが含まれます。 上位の単語には、会話が確立されているトピックを識別するアトムが含まれています。

WM_DDE_EXECUTEに応答する場合、下位ワードは、応答の状態を示す一連のフラグを含む DDEACK 構造体を指定します。 上位ワードは、 WM_DDE_EXECUTE メッセージで受信したコマンド文字列を含むグローバル メモリ オブジェクトへのハンドルです。

他のすべてのメッセージに応答する場合、下位ワードは、応答の状態を示す一連のフラグを含む DDEACK 構造体を指定します。 上位ワードには、応答が送信されるデータ項目の名前を識別するグローバルアトムが含まれています。

注釈

投稿

WM_DDE_INITIATE メッセージへの応答を除き、アプリケーションは SendMessage関数を呼び出すのではなく、PostMessage 関数を呼び出してWM_DDE_ACK メッセージを投稿します。 WM_DDE_INITIATEに応答すると、アプリケーションは SendMessage を呼び出してWM_DDE_ACK メッセージを送信します。 この場合、application-name atom も topic-name atom も NULL にすることはできません ( WM_DDE_INITIATE メッセージで NULL アトムが指定されている場合でも)。

付随するアトムを含むメッセージを認識する場合、アプリケーションの投稿 WM_DDE_ACK は、元のメッセージに付随するアトムを再利用するか、削除して新しいメッセージを作成することができます。

WM_DDE_EXECUTEを確認する場合、WM_DDE_ACKを投稿するアプリケーションは、元のWM_DDE_EXECUTE メッセージで識別されたグローバル メモリ オブジェクトを再利用する必要があります。

投稿されたすべてのWM_DDE_ACKメッセージは、PackDDElParam 関数または ReuseDDElParam 関数を呼び出してlParam パラメーターを作成または再利用する必要があります。

アプリケーションが WM_DDE_TERMINATE を投稿して会話の終了を開始し、確認を待機している場合、待機中のアプリケーションは、他のアプリケーションから送信された後続のメッセージを確認 (肯定的または否定的) しないようにする必要があります。 待機中のアプリケーションは、これらの介在するメッセージで受信したアトムまたは共有メモリ オブジェクトを削除する必要があります。 WM_DDE_POKEおよびWM_DDE_DATAメッセージで fRelease フラグが FALSE に設定されている場合は、メモリ オブジェクト解放しないでください。

受信

WM_DDE_ACK メッセージを受信するアプリケーションは、メッセージに付随するすべての原子を削除する必要があります。 アプリケーションが、付随するグローバル メモリ オブジェクトを含むメッセージに応答して WM_DDE_ACK を受信し、 fRelease フラグが FALSE に設定された状態でオブジェクトが送信された場合、アプリケーションはオブジェクトを削除します。

アプリケーションが、WM_DDE_ADVISE メッセージに応答して投稿された否定的なWM_DDE_ACK メッセージを受け取った場合、アプリケーションは、元のWM_DDE_ADVISE メッセージと共にポストされたグローバル メモリ オブジェクトを削除する必要があります。 アプリケーションがWM_DDE_DATA、WM_DDE_POKE、またはWM_DDE_EXECUTEメッセージに応答して投稿された否定的なWM_DDE_ACK メッセージ受け取った場合、アプリケーションは、元のWM_DDE_DATAWM_DDE_POKE、またはWM_DDE_EXECUTE メッセージと共に投稿されたグローバル メモリ オブジェクトを削除する必要があります。

投稿されたWM_DDE_ACK メッセージを受け取るアプリケーションは、FreeDDElParam 関数を使用して lParam パラメーターを解放する必要があります。

要件

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

関連項目

参照

DDEACK

FreeDDElParam

PackDDElParam

PostMessage

ReuseDDElParam

SendMessage

UnpackDDElParam

WM_DDE_ADVISE

WM_DDE_DATA

WM_DDE_EXECUTE

WM_DDE_INITIATE

WM_DDE_POKE

WM_DDE_REQUEST

WM_DDE_TERMINATE

WM_DDE_UNADVISE

概念

動的データ交換について