Share via


WM_GETOBJECT訊息

由 Microsoft Active Accessibility 和 Microsoft 消費者介面自動化 傳送,以取得伺服器應用程式中所含可存取物件的相關資訊。

應用程式永遠不會直接傳送此訊息。 Microsoft Active Accessibility 會傳送此訊息,以回應 對 AccessibleObjectFromPointAccessibleObjectFromEventAccessibleObjectFromWindow的呼叫。 不過,伺服器應用程式會處理此訊息。 消費者介面自動化傳送此訊息以回應IUIAutomation::ElementFromHandleElementFromPointGetFocusedElement的呼叫,以及處理用戶端已註冊的事件時。

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所指定要求的值:

備註

當用戶端呼叫 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
標頭
Winuser.h (包含 Windows.h)

另請參閱

如何處理WM_GETOBJECT

WM_GETOBJECT的運作方式

LresultFromObject