Bagikan melalui


Bagaimana ID Anak Digunakan dalam Parameter

Topik ini menjelaskan parameter input, parameter output, dan kasus khusus untuk menafsirkan ID anak yang dikembalikan dari metode IAccessible .

Parameter Input

Banyak fungsi Aksesibilitas Aktif Microsoft dan sebagian besar properti IAccessible mengambil struktur VARIAN sebagai parameter input. Untuk sebagian besar properti IAccessible , parameter ini memungkinkan pengembang klien untuk menentukan apakah mereka menginginkan informasi tentang objek itu sendiri atau tentang salah satu elemen sederhana objek.

Microsoft Active Accessibility menyediakan CHILDID_SELF konstanta untuk menunjukkan bahwa informasi diperlukan tentang objek itu sendiri. Untuk mendapatkan informasi tentang elemen sederhana, pengembang klien menentukan ID anaknya dalam parameter VARIAN .

Saat menginisialisasi parameter VARIAN , pastikan untuk menentukan VT_I4 di anggota vt selain menentukan nilai ID anak (atau CHILDID_SELF) di anggota lVal .

Misalnya, untuk mendapatkan nama objek, dan bukan salah satu elemen anak objek, inisialisasi VARIAN untuk parameter pertama IAccessible::get_accName ( CHILDID_SELF di anggota lVal dan VT_I4 di anggota vt ), lalu panggil IAccessible::get_accName.

Parameter Output

Beberapa fungsi dan metode IAccessible memiliki parameter output VARIANT* yang berisi ID anak atau penunjuk antarmuka IDispatch ke objek anak. Ada berbagai langkah yang harus dilakukan klien tergantung pada apakah mereka menerima ID anak VT_I4 (elemen sederhana) atau penunjuk antarmuka IDispatch dengan CHILDID_SELF (objek penuh). Mengikuti langkah-langkah ini akan menyediakan penunjuk antarmuka IAccessible dan ID anak yang bersama-sama memungkinkan klien untuk menggunakan metode dan properti IAccessible . Langkah-langkah ini berlaku untuk metode IAccessible::accHitTest, get_accFocus, dan get_accSelection . Mereka juga berlaku untuk fungsi klien AccessibleObjectFromEvent, AccessibleObjectFromPoint, dan AccessibleObjectFromWindow .

Tabel berikut mencantumkan kemungkinan hasil yang dikembalikan dan langkah-langkah pasca-pemrosesan yang diperlukan sehingga klien akan memiliki penunjuk antarmuka dan ID anak IAccessible .

Hasil dikembalikan Pasca-pemrosesan untuk nilai yang dikembalikan
Penunjuk antarmuka IDispatch Ini adalah objek lengkap. Panggil QueryInterface untuk mengakses penunjuk antarmuka IAccessible .
Gunakan penunjuk antarmuka IAccessible dengan CHILDID_SELF untuk mengakses metode dan properti IAccessible .
ID anak VT_I4 Panggil IAccessible::get_accChild menggunakan ID anak untuk melihat apakah Anda memiliki penunjuk antarmuka IDispatch . Jika Anda mendapatkan penunjuk antarmuka IDispatch , gunakan dengan CHILDID_SELF untuk mengakses metode dan properti antarmuka IAccessible .
Jika panggilan ke get_accChild gagal, Anda memiliki elemen sederhana. Gunakan penunjuk antarmuka IAccessible asli (yang Anda gunakan dalam panggilan Anda ke metode atau fungsi yang disebutkan di atas) dengan ID anak VT_I4 yang dikembalikan panggilan.

Sebelum dapat menggunakan parameter VARIAN , Anda harus menginisialisasinya dengan memanggil fungsi VariantInit Component Object Model (COM). Setelah selesai dengan struktur, panggil VariantClear untuk membebaskan memori yang disediakan untuk VARIAN tersebut.

Kasus Khusus

Ada pengecualian untuk pedoman dalam tabel di atas, seperti ketika ID anak dikembalikan oleh metode IAccessible::accHitTest . Server harus mengembalikan antarmuka IDispatch jika anak adalah objek yang dapat diakses. Jika ID anak dikembalikan oleh IAccessible::accHitTest, anak adalah elemen sederhana.

Selain itu, ada kasus khusus untuk accNavigate. Untuk informasi selengkapnya, lihat IAccessible::accNavigate dan Navigasi Spasial dan Logis.

Konseptual

Antarmuka IDispatch

Struktur VARIAN