Метод ITextProvider::RangeFromChild (uiautomationcore.h)
Извлекает текстовый диапазон, включающий указанный дочерний элемент (например, изображение, гиперссылку или другой внедренный объект).
Синтаксис
HRESULT RangeFromChild(
[in] IRawElementProviderSimple *childElement,
[out, retval] ITextRangeProvider **pRetVal
);
Параметры
[in] childElement
Тип: IRawElementProviderSimple*
Поставщик модель автоматизации пользовательского интерфейса указанного дочернего элемента.
[out, retval] pRetVal
Тип: ITextRangeProvider**
Текстовый диапазон, включающий дочерний элемент.
Этот диапазон полностью охватывает содержимое дочернего элемента таким образом, что:
- ITextRangeProvider::GetEnclosingElement возвращает сам дочерний элемент или самый внутренний потомок дочернего элемента, который имеет тот же текстовый диапазон, что и дочерний элемент.
- ITextRangeProvider::GetChildren возвращает дочерние элементы элемента из (1), которые полностью заключены в диапазон
- Обе конечные точки диапазона находятся на границах дочернего элемента.
Этот параметр передается неинициализированным.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Примечание
E_INVALIDARG возвращается, если childElement не является потомком ITextProvider или не заключен в допустимый текстовый диапазон.
Комментарии
Каждый элемент, полученный с помощью ITextRangeProvider::GetChildren, также имеет допустимый диапазон текста, который можно получить с помощью RangeFromChild. Сюда входят все элементы в дереве модель автоматизации пользовательского интерфейса между ITextProvider и дочерним элементом.
Примеры
В этом примере показан текстовый поток, содержащий ссылку на изображение. Ссылка является дочерним элементом изображения, но оба они охватывают один и тот же диапазон текста и предоставляются в виде внедренных объектов в текстовом потоке.
Hello <Image Link> World
- Изображение и ссылка также являются потомками ITextProvider потока, и любой из них можно указать в качестве childElement в вызове ITextProvider::RangeFromChild.
- Вызов ITextRangeProvider::RangeFromChild с помощью изображения или ссылки возвращает тот же текстовый диапазон (Range1).
- ITextRangeProvider::GetChildren не возвращает ссылку.
- ITextRangeProvider::GetEnclosingElement не возвращает изображение для любого текстового диапазона.
- ITextRangeProvider::GetEnclosingElement в Range1 возвращает ссылку.
- ITextRangeProvider::GetChildren в Range1 не возвращает дочерних элементов.
- ITextRangeProvider::GetEnclosingElement в текстовом диапазоне для ITextProvider потока возвращает поставщик.
- ITextRangeProvider::GetChildren в текстовом диапазоне для ITextProvider потока возвращает только изображение.
В этом примере показан текстовый поток, содержащий таблицу из двух ячеек, окруженную текстом.
Начальный текст
Ячейка таблицы 1 Ячейка таблицы 2 Конечный текст
- Случай 1. ITextProvider потока и весь текстовый диапазон
- ITextRangeProvider::GetEnclosingElement во всем текстовом диапазоне возвращает ITextProvider потока.
- GetChildren возвращает все дочерние элементы ITextProvider потока, в данном случае — только элемент table.
- Случай 2. Диапазон текста, полученный путем вызова ITextProvider::RangeFromChild в элементе table:
- ITextRangeProvider::GetEnclosingElement возвращает элемент table.
- ITextRangeProvider::GetChildren возвращает обе ячейки таблицы.
- Случай 3. Диапазон текста, охватывающий визуальное содержимое ячейки таблицы 1, ячейка таблицы 2:
- ITextRangeProvider::GetEnclosingElement возвращает элемент table.
- ITextRangeProvider::GetChildren возвращает обе ячейки таблицы.
- Случай 4. Диапазон текста, охватывающий слово Cell of Table Cell 1:
- ITextRangeProvider::GetEnclosingElement возвращает первый элемент ячейки.
- ITextRangeProvider::GetChildren не возвращает элементов.
- Случай 5. Вырожденный (пустой) текстовый диапазон, представляющий оба начала (таблица и первая ячейка):
- ITextRangeProvider::GetEnclosingElement возвращает первый элемент ячейки (самый внутренний элемент с диапазоном, который включает вырожденный диапазон).
- ITextRangeProvider::GetChildren не возвращает элементов.
- Случай 1. ITextProvider потока и весь текстовый диапазон
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | uiautomationcore.h (включая UIAutomation.h) |
См. также раздел
ITextProvider, ITextRangeProvider, ITextRangeProvider::GetEnclosingElement, ITextRangeProvider::GetChildren, модель автоматизации пользовательского интерфейса Providers Overview