擷取 IAccessible 物件
Microsoft Active Accessibility 提供可讓用戶端擷取可存取物件的 函式,例如 AccessibleObjectFromWindow 和 AccessibleObjectFromPoint 。 這些函式會傳回 IDispatch 或 IAccessible 介面指標,用戶端可透過該指標取得可存取物件的相關資訊。
當用戶端呼叫 AccessibleObjectFromWindow 或任何其他可擷取物件介面的 AccessibleObjectFromX 函式時,Microsoft Active Accessibility 會將 WM_GETOBJECT 視窗訊息傳送至適當應用程式內的適用視窗程式。 若要提供資訊給用戶端,伺服器必須回應 WM_GETOBJECT 訊息。
若要收集 UI 元素的特定資訊,用戶端必須先擷取元素的 IAccessible 介面。 若要擷取專案的 IAccessible 物件,用戶端可以使用下列其中一個函式:
擷取 IAccessible 介面指標
用戶端會呼叫其中一個 AccessibleObjectFromX 函式。
Oleacc.dll會將 WM_GETOBJECT 訊息傳送至伺服器。
伺服器會決定哪個 UI 元素對應至要求。
伺服器會傳回零以要求Oleacc.dll Proxy,
Or
傳回原生實作 (IAccessible 物件) 。 若要這樣做,請執行下列動作:
- 建構 專案的 IAccessible 物件。
- 呼叫 LresultFromObject 以封送處理物件的指標。
- 傳回要Oleacc.dll的 LRESULT。
Oleacc.dll會檢查 WM_GETOBJECT的傳回值。
如果它是零,Oleacc.dll建構 Proxy 物件,並將它傳回給用戶端。
Or
如果是非零值,Oleacc.dll呼叫 ObjectFromLresult 來取消封存原生 IAccessible 物件指標,並將它傳回給用戶端。