次の方法で共有


ComponentDispatcher クラス

定義

相互運用シナリオで、Win32 と WPF の間でメッセージ ポンプの制御を共有できるようにします。

public ref class ComponentDispatcher abstract sealed
public static class ComponentDispatcher
type ComponentDispatcher = class
Public Class ComponentDispatcher
継承
ComponentDispatcher

注釈

クラス自体は静的ですが、 のすべてのメンバーは特定の ComponentDispatcher スレッドに固有です。 たとえば、2 つの異なるスレッドで の IsThreadModal 値を調べると、異なる値が得られる場合があります。

メソッドは静的ですが、スレッドごとのデータ構造によってサポートされます。 静的メソッドはシングルトン アクセスを許可しますが、 ComponentDispatcher はスレッドごとの適切な操作を並べ替えます。

メッセージ ポンプの所有者は、Win32 関数 GetMessage を呼び出すコードによって定義されます。 所有者は、すべてのキーボード メッセージを呼び出 RaiseThreadMessage します。 このメソッドは、イベント データに ThreadFilterMessage 含まれるメッセージを使用して イベントを発生させます。 そのイベントが処理されない場合、所有者はイベント引数に ThreadPreprocessMessage 含まれるメッセージを使用してイベントを発生させます。

注意

キーボード メッセージのみがサポートされています。

プロパティ

CurrentKeyboardMessage

最後に発生したメッセージを取得します。

IsThreadModal

スレッドがモーダルかどうかを示す値を取得します。

メソッド

PopModal()

モーダル スレッドがモーダルでなくなったことを示すために呼び出されます。

PushModal()

スレッドがモーダルであることを示すために呼び出されます。

RaiseIdle()

スレッドがアイドル状態であることを示すために呼び出されます。

RaiseThreadMessage(MSG)

処理できる新しいメッセージがあることを示します。

イベント

EnterThreadModal

スレッドがモーダルになったときに発生します。

LeaveThreadModal

モーダル スレッドが非モーダルになったときに発生します。

ThreadFilterMessage

メッセージ ポンプがキーボード メッセージを受信すると発生します。

ThreadIdle

スレッドがアイドル状態のときに発生します。

ThreadPreprocessMessage

メッセージ ポンプがキーボード メッセージを受信すると発生します。

適用対象

こちらもご覧ください