Metode IAccessible::accDoDefaultAction (oleacc.h)
Metode IAccessible::accDoDefaultAction melakukan tindakan default objek yang ditentukan. Tidak semua objek memiliki tindakan default.
Sintaks
HRESULT accDoDefaultAction(
[in] VARIANT varChild
);
Parameter
[in] varChild
Jenis: VARIAN
Menentukan apakah tindakan default milik objek atau salah satu elemen anak objek. Untuk informasi selengkapnya tentang menginisialisasi VARIAN, lihat Bagaimana ID Anak Digunakan dalam Parameter.
Nilai kembali
Jenis: HRESULT
Jika berhasil, mengembalikan S_OK.
Jika tidak berhasil, mengembalikan salah satu nilai dalam tabel berikut, atau kode kesalahan COM standar lainnya.
Kesalahan | Deskripsi |
---|---|
|
Objek tidak mendukung metode ini. Nilai ini dikembalikan untuk kontrol yang tidak melakukan tindakan, seperti edit bidang. |
|
Argumen tidak valid. |
Keterangan
Klien mengambil string yang menjelaskan tindakan default objek dengan memanggil IAccessible::get_accDefaultAction.
Catatan untuk pengembang klien: Saat digunakan pada item menu di menu sistem standar, accDoDefaultAction mengembalikan S_OK tetapi gagal melakukan tindakan jika karakter yang digunakan dalam kunci akses (karakter bergaris bawah dalam teks nama item menu, juga disebut mnemonic) ?, !, @, atau karakter lain yang memerlukan kunci SHIFT atau kunci pengubah lainnya. Ini juga terjadi pada keyboard internasional dengan karakter kunci akses yang mengharuskan tombol ALT GR ditekan. Ini bukan masalah untuk menu di aplikasi lain, seperti Microsoft Office atau Windows Internet Explorer. Untuk informasi selengkapnya tentang kunci akses, lihat IAccessible::get_accKeyboardShortcut.
Selain itu, sementara accDoDefaultAction seharusnya segera kembali, beberapa implementasi memblokir pengembalian. Misalnya, jika mengklik tautan menampilkan dialog, beberapa implementasi akan memblokir pengembalian hingga dialog dihentikan. Penundaan tersebut dapat mencegah aplikasi klien memproses kotak dialog. Server harus menghindari implementasi yang mengembalikan blok.
Contoh Server
Contoh berikut menunjukkan kemungkinan implementasi untuk kontrol daftar kustom yang tindakan defaultnya adalah klik dua kali item anak. Untuk mencegah pemblokiran, metode memposting pesan kustom yang, ketika diterima oleh jendela kontrol, memicu tindakan, seperti menampilkan properti item.
// Assume a previous definition such as this:
// #define CUSTOMLB_DEFERDOUBLECLICK (WM_USER + 1)
HRESULT STDMETHODCALLTYPE AccServer::accDoDefaultAction(
VARIANT varChild)
{
if (varChild.vt != VT_I4)
{
return E_INVALIDARG;
}
if (varChild.lVal != CHILDID_SELF)
{
// It is assumed that the control does its own checking to see which
// item has the focus when it receives this message.
PostMessage(m_hwnd, CUSTOMLB_DEFERDOUBLECLICK, 0, 0);
}
return S_OK;
};
Contoh Klien
Contoh fungsi berikut melakukan tindakan default pada kontrol.
HRESULT DoAction(IAccessible* pAcc)
{
VARIANT varId;
varId.vt = VT_I4;
varId.lVal = CHILDID_SELF;
return pAcc->accDoDefaultAction(varId);
}
Persyaratan
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 di Windows NT Server 4.0 dengan SP6 dan yang lebih baru dan Windows 95 |
Lihat juga
Lampiran A: Referensi Elemen Antarmuka Pengguna yang Didukung
IAccessible::get_accDefaultAction