Использование идентификаторов дочерних элементов в параметрах
Статья
В этом разделе описываются входные параметры, выходные параметры и особые случаи интерпретации дочерних идентификаторов, возвращаемых методами IAccessible .
Входные параметры
Многие функции Microsoft Active Accessibility и большинство свойств IAccessible принимают в качестве входного параметра структуру VARIANT . Для большинства свойств IAccessible этот параметр позволяет разработчикам клиентов указать, нужны ли сведения о самом объекте или об одном из простых элементов объекта.
Microsoft Active Accessibility предоставляет постоянные CHILDID_SELF , указывающие, что требуются сведения о самом объекте. Чтобы получить сведения о простом элементе, клиентские разработчики указывают его дочерний идентификатор в параметре VARIANT .
При инициализации параметра VARIANT не забудьте указать VT_I4 в элементе vt в дополнение к значению дочернего идентификатора (или CHILDID_SELF) в элементе lVal .
Например, чтобы получить имя объекта, а не один из дочерних элементов объекта, инициализируйте VARIANT для первого параметра IAccessible::get_accName ( CHILDID_SELF в элементе lVal и VT_I4 в элементе vt ), а затем вызовите метод IAccessible::get_accName.
Выходные параметры
Некоторые функции и методы IAccessible имеют выходной параметр VARIANT*, содержащий идентификатор дочернего элемента или указатель интерфейса IDispatch на дочерний объект. Клиент должен выполнить различные действия в зависимости от того, получает ли он идентификатор дочернего VT_I4 (простой элемент) или указатель интерфейса IDispatch с CHILDID_SELF (полный объект). После выполнения этих действий вы получите указатель интерфейса IAccessible и идентификатор дочернего элемента, которые вместе позволяют клиентам использовать методы и свойства IAccess . Эти действия применяются к методам IAccessible::accHitTest, get_accFocus и get_accSelection . Они также применяются к клиентским функциям AccessibleObjectFromEvent, AccessibleObjectFromPoint и AccessibleObjectFromWindow .
В следующей таблице перечислены возможные возвращаемые результаты и необходимые шаги постобработки, чтобы клиенты имели указатель интерфейса IAccess и идентификатор дочернего элемента.
Это полный объект. Вызовите QueryInterface для доступа к указателю интерфейса IAccessible . Используйте указатель интерфейса IAccessible с CHILDID_SELF для доступа к методам и свойствам IAccessible .
идентификатор дочернего VT_I4
Вызовите метод IAccessible::get_accChild , используя идентификатор дочернего элемента, чтобы узнать, есть ли у вас указатель интерфейса IDispatch . Если вы получаете указатель интерфейса IDispatch , используйте его с CHILDID_SELF для доступа к методам и свойствам интерфейса IAccessible . Если вызов get_accChild завершается сбоем, у вас есть простой элемент. Используйте исходный указатель интерфейса IAccessible (тот, который использовался при вызове метода или функции, упомянутой выше) с идентификатором дочернего VT_I4 , возвращенного вызовом.
Прежде чем использовать параметр VARIANT , необходимо инициализировать его, вызвав функцию VariantInit Component Object Model (COM). Завершив работу со структурой, вызовите VariantClear , чтобы освободить память, зарезервированную для этого variant.
Особые случаи
Существуют исключения из рекомендаций в приведенной выше таблице, например, когда идентификатор дочернего элемента возвращается методом IAccessible::accHitTest . Серверы должны возвращать интерфейс IDispatch , если дочерний объект является доступным объектом. Если идентификатор дочернего элемента возвращается методом IAccessible::accHitTest, дочерним элементом является простой.
At Microsoft, we understand the power of technology, and that’s why we continue to innovate, create, and design in a way that gives everyone the ability to achieve more. Trainings like this learning path, which covers accessibility fundamentals, are an important and necessary part of Microsoft’s accessibility strategy to support customers of all abilities. Don’t forget to share your awards on social media after completing each module!