Использование заметки сервера
В этом разделе содержатся сведения об использовании заметки сервера для указания объекта обратного вызова.
Переопределение свойства, указывающего объект обратного вызова
- Получите указатель интерфейса 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_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 |
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 |