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
識別產生事件的物件。 此值為其中一個預先定義的 物件標識碼 或自定義物件標識碼值。
[in] idChild
類型: LONG
識別事件是由物件或物件的子專案所產生。 如果此值CHILDID_SELF,則事件是由物件本身產生。 如果沒有CHILDID_SELF,這個值就是產生事件之專案的子標識符。
傳回值
無
備註
伺服器會呼叫此函式,以通知系統發生事件。 Microsoft Active Accessibility 會檢查是否有任何用戶端應用程式已設定事件的攔截程式,如果是的話,會呼叫適當的攔截程式。
如果未為事件註冊任何攔截程式,呼叫此函式的效能會是次要的。
伺服器呼叫 NotifyWinEvent ,在事件發生後向系統宣告事件;在事件發生之前,他們絕對不能通知系統事件。
呼叫客戶端的攔截程式時,它會收到一些參數,描述事件和產生事件的物件。 攔截程式會使用 AccessibleObjectFromEvent 函式來擷取產生事件之物件的 IAccessible 介面指標。
伺服器可能會在呼叫此函式之後立即收到 WM_GETOBJECT 訊息。 如果有任何在事件回呼中呼叫 AccessibleObjectFromEvent 的內容內用戶端,就會發生這種情況。
當伺服器呼叫此函式時,它們必須準備好處理 WM_GETOBJECT、傳回 IAccessible 介面指標,以及處理任何 IAccessible 方法。
伺服器開發人員注意事項: 當您呼叫 NotifyWinEvent 時,如果有任何用戶端在內容中接聽該事件,其事件處理程式通常會傳送 WM_GETOBJECT 並呼叫 IAccessible 方法,則會在 NotifyWinEvent 傳回之前執行。 當您呼叫 NotifyWinEvent 時,如果發生這些呼叫,您應該準備好處理這些呼叫。 如果您需要執行額外的設定以允許這麼做,您應該在呼叫 NotifyWinEvent 之前執行這項操作,而不是之後。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包括 Windows.h) |
程式庫 | 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) |