共用方式為


子 ID 在參數中的使用方式

本主題描述如何解釋從 IAccessible 方法傳回的子識別碼的輸入參數、輸出參數和特殊案例。

輸入參數

許多Microsoft Active Accessibility 函式和大部分 IAccessible 屬性都會採用 VARIANT 結構作為輸入參數。 對於大部分 IAccessible 屬性,此參數可讓客戶端開發人員指定他們想要物件本身的相關信息,還是想要有關其中一個對象簡單元素的資訊。

Microsoft Active Accessibility 提供常數 CHILDID_SELF,以表示需要查詢關於該物件本身的資訊。 若要取得簡單項目的相關信息,客戶端開發人員會在 VARIANT 參數中指定其子標識碼。

初始化 VARIANT 參數時,除了在 lVal 成員中指定子標識符值 (或 CHILDID_SELF)之外,請務必在 vt 成員中指定 VT_I4

例如,若要取得對象的名稱,而不是對象的子元素,請將變數 VARIANT 初始化為 IAccessible::get_accName 的第一個參數(在 lVal 成員中為 CHILDID_SELF,並在 vt 成員中為 VT_I4),然後呼叫 IAccessible::get_accName

輸出參數

數個 IAccessible 函式和方法具有 VARIANT* 輸出參數,其中包含子ID或指向子物件的 IDispatch 介面指標。 客戶端必須採取不同的步驟,視其是否接收 VT_I4 子標識碼(簡單元素)或 IDispatch 介面指標與 CHILDID_SELF (完整物件)而定。 遵循下列步驟會提供 IAccessible 介面指標和子標識碼,讓客戶端能夠使用 IAccessible 方法和屬性。 這些步驟適用於 IAccessible::accHitTestget_accFocusget_accSelection 方法。 它們也適用於 AccessibleObjectFromEventAccessibleObjectFromPointAccessibleObjectFromWindow 用戶端函式。

下表列出傳回的可能結果,以及必要的後續處理步驟,讓用戶端會有 IAccessible 介面指標和子標識碼。

返回的結果 傳回值的後續處理
IDispatch 介面指標 這是完整的物件。呼叫 QueryInterface,以存取 IAccessible介面指標
使用 IAccessible 介面指標搭配 CHILDID_SELF 來存取 IAccessible 方法和屬性
VT_I4子識別碼 使用子標識符呼叫 IAccessible::get_accChild,以查看您是否有 IDispatch 介面指標。如果您取得 IDispatch 介面指標,請使用它搭配 CHILDID_SELF 來存取 IAccessible 介面方法和屬性。
如果呼叫 get_accChild 失敗,您有一個簡單的元素。 使用您在上述方法或函式的呼叫中使用的原始 IAccessible 介面指標,以及呼叫傳回的 VT_I4 子標識碼。

您必須先呼叫 VariantInit 元件物件模型 (COM) 函式,才能使用 VARIANT 參數來初始化它。 當 結構完成時,請呼叫 VariantClear,以釋放保留給該 VARIANT的記憶體。

特殊案例

上表中的準則有例外狀況,例如當 IAccessible::accHitTest 方法傳回子識別碼時。 如果子系是可存取的對象,伺服器必須傳回 IDispatch 介面。 如果 IAccessible::accHitTest傳回子物件 ID,則該子物件是簡單元素。

此外,accNavigate也有特殊案例。 如需詳細資訊,請參閱 IAccessible::accNavigateSpatial and Logical Navigation

概念

IDispatch 介面

VARIANT (變數) 結構