IAccessible::get_accSelection 方法 (oleacc.h)

IAccessible::get_accSelection 方法會擷取這個對象的選取子系。 支援選取範圍的所有物件都必須支援這個屬性。

語法

HRESULT get_accSelection(
  [out, retval] VARIANT *pvarChildren
);

參數

[out, retval] pvarChildren

類型: VARIANT*

VARIANT 結構的位址,可接收所選取子系的相關信息。 下表描述 pvarChildren 中傳回的資訊。

vt 成員 值成員
VT_EMPTY
未選取任何子系。
VT_DISPATCH
選取一個子物件,並在 pdispVal 成員中設定其 IDispatch 介面的位址。
VT_I4
lVal 包含所選取子專案的子標識碼。 如果 lVal 是CHILDID_SELF,這表示已選取物件本身。
VT_UNKNOWN
選取多個子物件,而且 punkVal 成員包含 IUnknown 介面的位址。 用戶端會查詢這個介面中的 IEnumVARIANT 介面,此介面會用來列舉選取的物件。

傳回值

類型: HRESULT

如果成功,則傳回 S_OK。

如果未成功,則會傳回下表中的其中一個值,或另一個標準 COM 錯誤碼。 伺服器會傳回這些值,但客戶端必須一律檢查輸出參數,以確保它們包含有效的值。 如需詳細資訊,請參閱 檢查 IAccessible 傳回值

錯誤 Description
DISP_E_MEMBERNOTFOUND
物件不支援這個屬性。

備註

這個方法必須支援 IEnumVARIANT 介面。

這個方法會傳回 pvarChildren 參數的 IDispatch 介面指標或子標識碼。 如需如何使用 IDispatch 介面指標或子標識碼的詳細資訊,請參閱 如何在參數中使用子標識符。

如同其他 IAccessible 方法和函式,用戶端可能會因為用戶動作而收到 IAccessible 介面指標的錯誤。 如需詳細資訊,請參閱 接收 IAccessible 介面指標的錯誤

注意: 這個方法會擷取選取的專案,而不是選取的文字。

伺服器範例

下列範例程式代碼示範自定義單一選取清單框的這個方法可能實作。 如果未選取任何專案,其 GetSelectedIndex 方法會傳回 -1。

// m_pControl is the control that returns this accessible object. 

HRESULT STDMETHODCALLTYPE AccServer::get_accSelection(VARIANT *pvarChildren)
{
    int childID = m_pControl->GetSelectedIndex() + 1; // Convert from 0-based. 
    if (childID <= 0)
    {
        pvarChildren->vt = VT_EMPTY;
    }
    else 
    {
        pvarChildren->vt = VT_I4;
        pvarChildren->lVal = childID;
    }
    return S_OK;
};




規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 oleacc.h
程式庫 Oleacc.lib
Dll Oleacc.dll
可轉散發套件 Windows NT 4.0 上的 Active Accessibility 1.3 RDK 與 SP6 和更新版本和 Windows 95

另請參閱

IAccessible

IAccessible::accSelect

IAccessible::get_accFocus

IDispatch

選取範圍和焦點屬性和方法

變異