Использование серверной аннотации
В этом разделе содержатся сведения об использовании заметки сервера для указания объекта обратного вызова.
Переопределение свойства, указывающего объект обратного вызова
- Получите указатель интерфейса IAccessible на доступный элемент, который должен быть аннотирован.
- Вызовите на доступном элементе QueryInterface, чтобы получить указатель на интерфейс IAccIdentity.
- Вызов IAccIdentity::GetIdentityString()на указатель интерфейса IAccIdentity для получения строки, которая однозначно идентифицирует элемент доступа, который должен быть аннотирован.
- Используйте CoCreateInstance или CoCreateInstanceEx для создания объектаIAccPropServices.
- Создайте объект модели компонентов (COM), реализующий IAccPropServer.
- Вызовите IAccPropServices::SetPropServer, передав строку удостоверения, GUID, указывающий на свойство, которое нужно переопределить, и указатель на объект обратного вызова IAccPropServer.
- Освободите указатели интерфейса и очистите память.
Когда клиент запрашивает свойство доступного элемента, вызывается объект обратного вызова и возвращает значение клиенту.
Как и при указании значения, разработчики серверов также могут использовать метод IAccPropServices::ComposeHwndIdentityString для получения строки удостоверения; или они могут использовать метод IAccPropServices::SetHwndPropServer и указать hwnd, idObjectили параметры idChild вместо строки удостоверения.
При использовании SetPropServer или SetHwndPropServer в объекте контейнера разработчики серверов могут дополнительно указать, что переопределяющие сведения также должны применяться ко всем дочерним элементам этого контейнера.
Серверы могут в любое время явно удалить аннотацию с помощью IAccPropServices::ClearProps. Обычно это не обязательно, так как служба заметок автоматически очищает и освобождает сведения о заметках при исчезновении элемента со специальным доступом.
Ниже приведен список свойств, которые можно аннотировать с помощью этой процедуры.
Свойства, которые поддерживаются при указании функции обратного вызова
При указании обратного вызова можно аннотировать следующие свойства. В настоящее время эти свойства не могут быть аннотированы напрямую путем указания значения.
Свойство | Тип |
---|---|
PROPID_ACC_NAME | VT_BSTR |
PROPID_ACC_ОПИСАНИЕ | VT_BSTR |
PROPID_ACC_ROLE | VT_I4 |
ПропИдентификатор_Состояние_Доступа | VT_I4 |
PROPID_ACC_HELP | VT_BSTR |
PROPID_ACC_KEYBOARDSHORTCUT | VT_BSTR |
PROPID_ACC_ДЕЙСТВИЕ_ПО_УМОЛЧАНИЮ | VT_BSTR |
PROPID_ACC_VALUEMAP | VT_BSTR |
PROPID_ACC_ROLEMAP (карта ролей доступа) | VT_BSTR |
PROPID_ACC_STATEMAP | VT_BSTR |
PROPID_ACC_FOCUS | VT_DISPATCH VT_I4 |
PROPID_ACC_SELECTION | VT_DISPATCH VT_I4 VT_UNKNOWN |
PROPID_ACC_PARENT (свойство родителя учетной записи) | VT_DISPATCH |
PROPID_ACC_NAV_UP | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_DOWN | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_LEFT | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_RIGHT | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_PREV | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_NEXT | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_FIRSTCHILD | VT_DISPATCH VT_I4 |
PROPID_ACC_NAV_LASTCHILD | VT_DISPATCH VT_I4 |