NotifyWinEvent 関数 (winuser.h)

定義済みイベントが発生したことをシステムに通知します。 クライアント アプリケーションがイベントのフック関数を登録している場合、システムはクライアントのフック関数を呼び出します。

構文

void NotifyWinEvent(
  [in] DWORD event,
  [in] HWND  hwnd,
  [in] LONG  idObject,
  [in] LONG  idChild
);

パラメーター

[in] event

種類: DWORD

発生したイベントを指定します。 この値は 、イベント定数のいずれかである必要があります。

[in] hwnd

種類: HWND

イベントを生成したオブジェクトを含むウィンドウを処理します。

[in] idObject

型: LONG

イベントを生成したオブジェクトを識別します。 この値は、定義済みの オブジェクト識別子 またはカスタム オブジェクト ID 値のいずれかです。

[in] idChild

型: LONG

イベントがオブジェクトによって生成されたか、オブジェクトの子要素によって生成されたかを識別します。 この値がCHILDID_SELF場合、イベントはオブジェクト自体によって生成されました。 CHILDID_SELFしない場合、この値はイベントを生成した要素の子 ID です。

戻り値

なし

解説

サーバーはこの関数を呼び出して、イベントが発生したことをシステムに通知します。 Microsoft Active Accessibility は、クライアント アプリケーションがイベントのフック プロシージャを設定しているかどうかを確認し、その場合は適切なフック プロシージャを呼び出します。

イベントにフック プロシージャが登録されていない場合、この関数を呼び出すためのパフォーマンスの低下は軽微です。

サーバーは NotifyWinEvent を呼び出して、イベントが発生した後にシステムにイベントを読み上げる。イベントが発生する前に、イベントをシステムに通知してはなりません。

クライアントのフック プロシージャが呼び出されると、イベントを記述するパラメーターと、イベントを生成したオブジェクトを受け取ります。 フック プロシージャでは、 AccessibleObjectFromEvent 関数を使用して、イベントを生成したオブジェクトの IAccessible インターフェイスへのポインターを取得します。

サーバーは、この関数を呼び出した直後 にWM_GETOBJECT メッセージを受信する場合があります。 これは、イベント コールバックで AccessibleObjectFromEvent を呼び出すコンテキスト内クライアントがある場合に発生する可能性があります。

サーバーがこの関数を呼び出すときは、 WM_GETOBJECTを処理し、 IAccessible インターフェイス ポインターを返し、 IAccessible メソッドのいずれかを処理する準備ができている必要があります。

サーバー開発者への注意: NotifyWinEvent を呼び出すと、クライアントがコンテキスト内でそのイベントをリッスンしている場合、通常はWM_GETOBJECTを送信し、IAccessible メソッドを呼び出すイベント ハンドラーは、NotifyWinEvent が返される前に実行されます。 NotifyWinEvent を呼び出すときは、これらの呼び出しが発生した場合に処理する準備が整う必要があります。 これを可能にするために追加のセットアップを行う必要がある場合は、 NotifyWinEvent を呼び出す前に、後ではなく、それを行う必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
再頒布可能パッケージ SP6 以降および Windows 95 を使用した Windows NT 4.0 の Active Accessibility 1.3 RDK
API セット ext-ms-win-ntuser-server-l1-1-0 (Windows 8で導入)

こちらもご覧ください

AccessibleObjectFromEvent

SetWinEventHook

UnHookWinEvent

WinEvents