Menggunakan Anotasi Server
Topik ini menyediakan informasi tentang menggunakan anotasi server untuk menentukan objek panggilan balik.
Untuk mengambil alih properti yang menentukan objek panggilan balik
- Dapatkan penunjuk antarmuka IAccessible ke elemen yang dapat diakses yang akan diannotasikan.
- Panggil QueryInterface pada elemen yang dapat diakses untuk mendapatkan penunjuk antarmuka IAccIdentity .
- Panggil IAccIdentity::GetIdentityString() pada penunjuk antarmuka IAccIdentity untuk mendapatkan string yang secara unik mengidentifikasi elemen yang dapat diakses yang akan diannotasi.
- Gunakan CoCreateInstance atau CoCreateInstanceEx untuk membuat objek IAccPropServices .
- Buat objek Model Objek Komponen (COM) yang mengimplementasikan IAccPropServer.
- Panggil IAccPropServices::SetPropServer, melewati string identitas, GUID yang menunjukkan properti yang akan ditimpa, dan penunjuk ke objek panggilan balik IAccPropServer .
- Lepaskan penunjuk antarmuka dan memori bebas.
Ketika klien meminta properti elemen yang dapat diakses, objek panggilan balik akan dipanggil dan akan mengembalikan nilai ke klien.
Seperti saat menentukan nilai, pengembang server dapat menggunakan metode IAccPropServices::ComposeHwndIdentityString untuk mendapatkan string identitas; atau mereka dapat menggunakan metode IAccPropServices::SetHwndPropServer dan menentukan parameter hwnd, idObject, atau idChild alih-alih string identitas.
Saat menggunakan SetPropServer atau SetHwndPropServer pada objek kontainer, pengembang server dapat secara opsional menentukan bahwa informasi penggantian juga harus berlaku untuk semua turunan elemen kontainer tersebut.
Server dapat secara eksplisit menghapus anotasi kapan saja dengan menggunakan IAccPropServices::ClearProps. Ini biasanya tidak diperlukan, karena layanan anotasi akan secara otomatis membersihkan dan merilis informasi anotasi ketika elemen yang dapat diakses yang dianotasikan menghilang.
Di bawah ini adalah daftar properti yang dapat diannotasi menggunakan prosedur ini.
Properti yang Didukung Saat Menentukan Panggilan Balik
Saat menentukan panggilan balik, properti berikut dapat dianotasi. Saat ini properti ini tidak dapat diannotasikan secara langsung dengan menentukan nilai.
Properti | Jenis |
---|---|
PROPID_ACC_NAME | VT_BSTR |
PROPID_ACC_DESCRIPTION | VT_BSTR |
PROPID_ACC_ROLE | VT_I4 |
PROPID_ACC_STATE | VT_I4 |
PROPID_ACC_HELP | VT_BSTR |
PROPID_ACC_KEYBOARDSHORTCUT | VT_BSTR |
PROPID_ACC_DEFAULTACTION | VT_BSTR |
PROPID_ACC_VALUEMAP | VT_BSTR |
PROPID_ACC_ROLEMAP | VT_BSTR |
PROPID_ACC_STATEMAP | VT_BSTR |
PROPID_ACC_FOCUS | VT_DISPATCH VT_I4 |
PROPID_ACC_SELECTION | VT_DISPATCH VT_I4 VT_UNKNOWN |
PROPID_ACC_PARENT | VT_DISPATCH |
PROPID_ACC_NAV_UP | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_DOWN | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_LEFT | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_RIGHT | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_PREV | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_NEXT | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_FIRSTCHILD | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_LASTCHILD | VT_DISPATCH VT_I4 |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk