Использование прямой аннотации
Использовать прямую аннотацию для переопределения значения свойства
- Используйте функцию CoCreateInstance или CoCreateInstanceEx для создания объекта IAccPropServices.
- Вызовите IAccPropServices::SetHwndProp, передав HWND, идентификатор объекта, идентификатор дочернего элемента, свойство, подлежащее переопределению, и VARIANT, содержащий новое значение свойства. На этом шаге аннотируется значение.
- Отпустите указатели интерфейса и свободную память.
В следующем примере показано, как аномировать свойство Role статического текстового элемента управления.
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;
}
Свойства, поддерживаемые при указании значения
При указании значения (где значение должно быть нужного типа) для прямой аннотации можно указать следующие свойства Microsoft Active Accessibility. Чтобы переопределить или добавить свойство службы автоматизации пользовательского интерфейса Майкрософт в элемент управления, можно указать идентификатор свойства автоматизации пользовательского интерфейса вместо идентификатора свойства Microsoft Active Accessibility. Список идентификаторов автоматизации пользовательского интерфейса см. в разделе Идентификаторы свойств.
Свойство | Тип |
---|---|
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_СОЧЕТАНИЕ КЛАВИШ | VT_BSTR |
PROPID_ACC_DEFAULTACTION | VT_BSTR |
PROPID_ACC_VALUEMAP | VT_BSTR |
PROPID_ACC_ROLEMAP | VT_BSTR |
PROPID_ACC_STATEMAP | VT_BSTR |