WM_GETOBJECT訊息
由 Microsoft Active Accessibility 和 Microsoft 消費者介面自動化 傳送,以取得伺服器應用程式中所含可存取物件的相關資訊。
應用程式永遠不會直接傳送此訊息。 Microsoft Active Accessibility 會傳送此訊息,以回應 對 AccessibleObjectFromPoint、 AccessibleObjectFromEvent或 AccessibleObjectFromWindow的呼叫。 不過,伺服器應用程式會處理此訊息。 消費者介面自動化傳送此訊息以回應IUIAutomation::ElementFromHandle、ElementFromPoint和GetFocusedElement的呼叫,以及處理用戶端已註冊的事件時。
dwFlags = (WPARAM)(DWORD) wParam;
dwObjId = (LPARAM)(DWORD) lParam;
參數
-
dwFlags
-
提供訊息的其他資訊,而且僅供系統使用。 伺服器會在處理訊息時,將dwFlags當做LresultFromObject呼叫中的wParam參數傳遞。
-
dwObjId
-
物件識別碼。 這個值是其中一個 物件識別碼 常數或自訂物件識別碼。 伺服器應用程式必須檢查此值,以識別所要求的資訊類型。 在比較此值與OBJID_值之前,伺服器必須將此值轉換成 DWORD;否則,在 64 位 Windows 上, lParam 的符號延伸可能會干擾比較。
- 如果 dwObjId 是其中一個OBJID_值,例如 OBJID_CLIENT,則要求適用于實作 IAccessible的 Microsoft Active Accessibility 物件。
- 如果dwObjId等於UiaRootObjectId,則要求適用于消費者介面自動化提供者。 如果伺服器正在實作消費者介面自動化,它應該會使用UiaReturnRawElementProvider函式傳回提供者。
- 如果 dwObjId是OBJID_NATIVEOM,則要求適用于控制項的基礎物件模型。 如果控制項支援此要求,它應該藉由呼叫 LresultFromObject 函式來傳回適當的 COM 介面。
- 如果 dwObjId是OBJID_QUERYCLASSNAMEIDX,則要求是讓控制項將本身識別為標準 Windows 控制項或通用控制項程式庫 (ComCtrl.dll 所實作的通用控制項 (ComCtrl.dll) 。
傳回值
如果視窗或控制項不需要回應此訊息,它應該將訊息傳遞至 DefWindowProc 函式;否則,視窗或控制項應該會傳回對應至 dwObjId所指定要求的值:
- 如果視窗或控制項實作消費者介面自動化,則視窗或控制項應該傳回呼叫 UiaReturnRawElementProvider函式所取得的值。
- 如果 dwObjId是OBJID_NATIVEOM 且視窗公開原生物件模型,則視窗應該會傳回呼叫 LresultFromObject 函式所取得的值。
- 如果 dwObjId是OBJID_CLIENT 且視窗實作 IAccessible,則視窗應該會傳回呼叫 LresultFromObject 函式所取得的值。
備註
當用戶端呼叫 AccessibleObjectFromWindow 或任何其他可擷取物件介面的 AccessibleObjectFromX 函式時,Microsoft Active Accessibility 會將 WM_GETOBJECT 訊息傳送至適當伺服器應用程式內的適當視窗程式。 處理 WM_GETOBJECT時,伺服器應用程式會呼叫 LresultFromObject ,並使用此函式的傳回值做為訊息的傳回值。 Microsoft Active Accessibility 與 COM 程式庫搭配執行適當的封送處理,並將介面指標從伺服器傳回用戶端。
伺服器在物件完全初始化或開始關閉之前,不會回應 WM_GETOBJECT 。 當應用程式建立新的視窗時,系統會先傳送 EVENT_OBJECT_CREATE 通知用戶端,再將 WM_CREATE 訊息傳送至應用程式的視窗程式。 由於許多應用程式會使用WM_CREATE來啟動其初始化程式,所以伺服器在處理WM_CREATE訊息之前,不會回應WM_GETOBJECT訊息。
伺服器會使用 WM_GETOBJECT 來執行下列工作:
對於用戶端,這表示它們可能會根據伺服器的動作,接收相同使用者介面元素的相異介面指標。 若要判斷兩個介面指標是否指向相同的使用者介面專案,用戶端會比較 物件的 IAccessible 屬性。 比較指標無法運作。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限傳統型應用程式] |
可轉散發套件 |
Windows NT 4.0 上的 Active Accessibility 1.3 RDK 與 SP6 和更新版本和 Windows 95 |
標頭 |
|