Fungsi AccessibleObjectFromEvent (oleacc.h)

Mengambil alamat antarmuka IAccessible untuk objek yang menghasilkan peristiwa yang saat ini sedang diproses oleh fungsi hook peristiwa klien.

Sintaks

HRESULT AccessibleObjectFromEvent(
  [in]  HWND        hwnd,
  [in]  DWORD       dwId,
  [in]  DWORD       dwChildId,
  [out] IAccessible **ppacc,
  [out] VARIANT     *pvarChild
);

Parameter

[in] hwnd

Jenis: HWND

Menentukan handel jendela jendela yang menghasilkan peristiwa. Nilai ini harus berupa handel jendela yang dikirim ke fungsi hook peristiwa.

[in] dwId

Jenis: DWORD

Menentukan ID objek dari objek yang menghasilkan peristiwa. Nilai ini harus berupa ID objek yang dikirim ke fungsi hook peristiwa.

[in] dwChildId

Jenis: DWORD

Menentukan apakah peristiwa dipicu oleh objek atau salah satu elemen turunannya. Jika objek memicu peristiwa, dwChildID CHILDID_SELF. Jika elemen anak memicu peristiwa, dwChildID adalah ID anak elemen. Nilai ini harus berupa ID anak yang dikirim ke fungsi hook peristiwa.

[out] ppacc

Jenis: IAccessible**

Alamat variabel pointer yang menerima alamat antarmuka IAccessible . Antarmuka adalah untuk objek yang menghasilkan peristiwa, atau untuk induk elemen yang menghasilkan peristiwa.

[out] pvarChild

Jenis: VARIAN*

Alamat struktur VARIAN yang menentukan ID anak yang dapat digunakan untuk mengakses informasi tentang elemen UI.

Mengembalikan nilai

Jenis: STDAPI

Jika berhasil, mengembalikan S_OK.

Jika tidak berhasil, mengembalikan salah satu dari kode kesalahan COM standar berikut atau lainnya.

Menampilkan kode Deskripsi
E_INVALIDARG
Argumen tidak valid.

Keterangan

Klien memanggil fungsi ini dalam fungsi hook peristiwa untuk mendapatkan penunjuk antarmuka IAccessible ke objek yang menghasilkan peristiwa atau ke induk elemen yang menghasilkan peristiwa. Parameter yang dikirim ke fungsi panggilan balik WinEventProc harus digunakan untuk parameter hwnd, dwObjectID, dan dwChildID fungsi ini.

Fungsi ini mengambil objek tingkat terendah yang dapat diakses dalam hierarki objek yang terkait dengan peristiwa. Jika elemen yang menghasilkan peristiwa bukan objek yang dapat diakses (yaitu, tidak mendukung IAccessible), maka fungsi mengambil antarmuka IAccessible dari objek induk. Objek induk harus memberikan informasi tentang elemen turunan melalui antarmuka IAccessible .

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.

Fungsi ini gagal jika dipanggil sebagai respons terhadap EVENT_OBJECT_CREATE karena objek tidak sepenuhnya diinisialisasi. Demikian pula, klien tidak boleh memanggil ini sebagai respons terhadap EVENT_OBJECT_DESTROY karena objek tidak lagi tersedia dan tidak dapat merespons. Klien watch untuk peristiwa EVENT_OBJECT_SHOW dan EVENT_OBJECT_HIDE daripada untuk EVENT_OBJECT_CREATE dan EVENT_OBJECT_DESTROY.

Contoh

Contoh kode berikut menunjukkan metode ini dipanggil dalam penanganan aktivitas WinEventProc .


void CALLBACK HandleWinEvent(HWINEVENTHOOK hook, DWORD event, HWND hwnd, 
                             LONG idObject, LONG idChild, 
                             DWORD dwEventThread, DWORD dwmsEventTime)
{
    IAccessible* pAcc = NULL;
    VARIANT varChild;
    HRESULT hr = AccessibleObjectFromEvent(hwnd, idObject, idChild, &pAcc, &varChild);  
    if ((hr == S_OK) && (pAcc != NULL))
    {
        // Do something with the accessible object, then release it.        
        // ... 
        pAcc->Release();
    }
}

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

AccessibleObjectFromPoint

AccessibleObjectFromWindow

IAccessible

VARIAN

WinEventProc