Поделиться через


Использование серверной аннотации

В этом разделе содержатся сведения об использовании заметки сервера для указания объекта обратного вызова.

Переопределение свойства, указывающего объект обратного вызова

  1. Получите указатель интерфейса IAccessible на доступный элемент, который должен быть аннотирован.
  2. Вызовите на доступном элементе QueryInterface, чтобы получить указатель на интерфейс IAccIdentity.
  3. Вызов IAccIdentity::GetIdentityString()на указатель интерфейса IAccIdentity для получения строки, которая однозначно идентифицирует элемент доступа, который должен быть аннотирован.
  4. Используйте CoCreateInstance или CoCreateInstanceEx для создания объектаIAccPropServices.
  5. Создайте объект модели компонентов (COM), реализующий IAccPropServer.
  6. Вызовите IAccPropServices::SetPropServer, передав строку удостоверения, GUID, указывающий на свойство, которое нужно переопределить, и указатель на объект обратного вызова IAccPropServer.
  7. Освободите указатели интерфейса и очистите память.

Когда клиент запрашивает свойство доступного элемента, вызывается объект обратного вызова и возвращает значение клиенту.

Как и при указании значения, разработчики серверов также могут использовать метод 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