Menggunakan Anotasi Langsung
Untuk menggunakan anotasi langsung untuk mengambil alih nilai properti
- Gunakan fungsi CoCreateInstance atau CoCreateInstanceEx untuk membuat objek IAccPropServices .
- Panggil IAccPropServices::SetHwndProp, melewati HWND, ID objek, ID anak, properti yang akan ditimpa, dan VARIAN yang berisi nilai baru properti. Langkah ini membuat anotasi nilai.
- Lepaskan pointer antarmuka dan memori kosong.
Contoh berikut menunjukkan cara membuat anotasi properti Peran dari kontrol teks statis.
HRESULT CMyTextControl::SetAccessibleProperties()
{
// COM is assumed to be initialized...
IAccPropServices* pAccPropServices = NULL;
HRESULT hr = CoCreateInstance(CLSID_AccPropServices,
NULL, CLSCTX_SERVER, IID_IAccPropServices,
(void**)&pAccPropServices);
if (SUCCEEDED(hr))
{
// Annotating the Role of this object to be STATICTEXT
VARIANT var;
var.vt = VT_I4;
var.lVal = ROLE_SYSTEM_STATICTEXT;
hr = pAccPropServices->SetHwndProp(_hwnd,
OBJID_CLIENT,
CHILDID_SELF,
PROPID_ACC_ROLE,
var);
pAccPropServices->Release();
}
return hr;
}
Properti yang Didukung Saat Menentukan Nilai
Properti Aksesibilitas Aktif Microsoft berikut ini dapat diannotasi saat menentukan nilai (di mana nilai harus dari jenis yang dicatat) untuk anotasi langsung. Untuk mengambil alih atau menambahkan properti Microsoft UI Automation ke kontrol, Anda dapat menentukan ID properti Automation UI alih-alih ID properti Aksesibilitas Aktif Microsoft. Untuk daftar ID Otomatisasi UI, lihat Pengidentifikasi Properti.
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 |