Использование прямых заметок
Использование прямой заметки для переопределения значения свойства
- Используйте функцию 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 модель автоматизации пользовательского интерфейса в элемент управления, можно указать идентификатор свойства модель автоматизации пользовательского интерфейса вместо идентификатора свойства 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_KEYBOARDSHORTCUT | VT_BSTR |
PROPID_ACC_DEFAULTACTION | VT_BSTR |
PROPID_ACC_VALUEMAP | VT_BSTR |
PROPID_ACC_ROLEMAP | VT_BSTR |
PROPID_ACC_STATEMAP | VT_BSTR |