Metode IAccessible::get_accFocus (oleacc.h)

Metode IAccessible::get_accFocus mengambil objek yang memiliki fokus keyboard. Semua objek yang mungkin menerima fokus keyboard harus mendukung properti ini.

Sintaks

HRESULT get_accFocus(
  [out, retval] VARIANT *pvarChild
);

Parameter

[out, retval] pvarChild

Jenis: VARIAN*

Alamat struktur VARIAN yang menerima informasi tentang objek yang memiliki fokus. Tabel berikut ini menjelaskan informasi yang dikembalikan dalam pvarID.

Nilai Makna
VT_EMPTY
Tidak ada. Objek ini maupun turunannya tidak memiliki fokus keyboard.
VT_I4
lVal CHILDID_SELF. Objek itu sendiri memiliki fokus keyboard.
VT_I4
lVal berisi ID anak dari elemen anak yang memiliki fokus keyboard.
VT_DISPATCH
Anggota pdispVal adalah alamat antarmuka IDispatch untuk objek anak yang memiliki fokus keyboard.

Mengembalikan nilai

Jenis: HRESULT

Jika berhasil, mengembalikan S_OK.

Jika tidak berhasil, mengembalikan salah satu nilai dalam tabel berikut, atau kode kesalahan COM standar lainnya. Server mengembalikan nilai-nilai ini, tetapi klien harus selalu memeriksa parameter output untuk memastikan bahwa nilai tersebut berisi nilai yang valid. Untuk informasi selengkapnya, lihat Memeriksa Nilai Pengembalian IAccessible.

Kesalahan Deskripsi
S_FALSE
Objek adalah jendela tetapi bukan jendela latar depan.
DISP_E_MEMBERNOTFOUND
Objek tidak mendukung properti ini.

Keterangan

Konsep fokus keyboard terkait dengan jendela aktif. Jendela aktif adalah jendela latar depan tempat pengguna bekerja. Objek dengan fokus keyboard adalah jendela aktif atau objek anak dari jendela aktif.

Hanya satu objek atau item dalam kontainer yang memiliki fokus pada satu waktu. Objek dengan fokus keyboard tidak selalu objek yang dipilih. Untuk informasi selengkapnya tentang perbedaan antara pilihan dan fokus, lihat Pemilihan dan Properti dan Metode Fokus.

Metode ini mengembalikan penunjuk antarmuka IDispatch atau ID anak untuk pvarID. Untuk informasi selengkapnya tentang cara menggunakan penunjuk antarmuka IDispatch atau ID anak, lihat Cara ID Anak Digunakan dalam Parameter.

Seperti metode dan fungsi IAccessible lainnya, klien mungkin menerima kesalahan untuk penunjuk antarmuka IAccessible karena tindakan pengguna. Untuk informasi selengkapnya, lihat Menerima Kesalahan untuk Penunjuk Antarmuka IAccessible.

Contoh Server

Contoh kode berikut menunjukkan kemungkinan implementasi metode ini untuk kotak daftar pilihan tunggal kustom. Jika kontrol tidak memiliki fokus, VT_EMPTY dikembalikan dalam varian oleh objek standar yang dapat diakses untuk HWND. Jika kontrol memiliki fokus, dan item dipilih, ID anak dari item tersebut dikembalikan; jika tidak ada pilihan, CHILDID_SELF dikembalikan.

// m_pControl is the control object that is served by this implementation. 
// m_pStdAccessibleObject is the object returned by CreateStdAccessibleObject. 

HRESULT STDMETHODCALLTYPE AccServer::get_accFocus(VARIANT *pvarChild)
{
    FAIL_IF_NO_CONTROL;  // Macro that checks for existence of control. 

    HRESULT hr = m_pStdAccessibleObject->get_accFocus(pvarChild);  
    if (pvarChild->vt != VT_I4)
    {
        return hr;
    }
    else
    {
        int index = m_pControl->GetSelectedIndex();
        if (index <0)
        {
            pvarChild->lVal = CHILDID_SELF;
        }
        else
        {
            // Convert to 1-based index for child ID. 
            pvarChild->lVal = index + 1;
        }
    }
    return S_OK;
};


Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header oleacc.h
Pustaka Oleacc.lib
DLL Oleacc.dll
Redistribusi Aksesibilitas Aktif 1.3 RDK pada Windows NT 4.0 dengan SP6 dan yang lebih baru dan Windows 95

Lihat juga

IAccessible

IAccessible::accSelect

IAccessible::get_accSelection

IDispatch

Properti dan Metode Pemilihan dan Fokus