Bagikan melalui


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
DISP_E_MEMBERNOTFOUND
Objek tidak mendukung metode ini. Nilai ini dikembalikan untuk kontrol yang tidak melakukan tindakan, seperti edit bidang.
E_INVALIDARG
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

Properti DefaultAction

IAccessible

IAccessible::get_accDefaultAction

IAccessible::get_accKeyboardShortcut

VARIAN