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


Как серверы реализуют дочерние идентификаторы

Разработчики серверов могут назначать дочерние идентификаторы как простым элементам, так и доступным объектам. Однако рекомендуемый подход заключается в поддержке стандартного интерфейса COM IEnumVARIANT в каждом доступном объекте с дочерними элементами.

При реализации IEnumVARIANT необходимо:

  • Перечисление всех дочерних элементов, как простых элементов, так и доступных объектов. Укажите дочерние идентификаторы для всех простых элементов и укажите IDispatch для каждого доступного объекта.
  • Для объектов со специальными возможностями задайте для элемента vtvariant значение VT_DISPATCH. Элемент pdispVal должен содержать указатель на интерфейс IDispatch . Обратите внимание, что variant выделяется и освобождается клиентом.
  • Для простых элементов дочерним идентификатором является любое 32-разрядное положительное целое число. Обратите внимание, что ноль и отрицательные целые числа зарезервированы Microsoft Active Accessibility. Задайте для элемента vt структуры VARIANT значение VT_I4, а для элемента lVal — идентификатор дочернего элемента.

Если вы не поддерживаете IEnumVARIANT, необходимо назначить дочерние идентификаторы и нумерация дочерних элементов в каждом объекте последовательно, начиная с одного.

Клиентам рекомендуется использовать функцию Microsoft Active Accessibility AccessibleChildren , а не вызывать интерфейс IEnumVARIANT сервера напрямую.