Прочитать на английском

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


Настраиваемые шаблоны Word

В этом разделе описываются пользовательские шаблоны автоматизации пользовательского интерфейса, предоставляемые в Microsoft Word для Windows. Эти шаблоны можно запрашивать и использовать из узла поставщика с текстовым шаблоном.

В целях экспериментов мы создали специальные скрипты PowerShell в коллекция PowerShell, которые осуществляют каждый Word пользовательского шаблона. Они явно называются с каждым шаблоном, или вы можете найтиCustomPatternClient_Word, чтобы просмотреть все скрипты Word. Эти скрипты можно запустить в окне PowerShell для работающего экземпляра Word на Windows 11, чтобы узнать, какие выходные данные создают пользовательские шаблоны. Скрипты самостоятельно документируются с помощью справки на основе комментариев.

Цель этих шаблонов main заключается в предоставлении дополнительных сведений о Word содержимом и выполнении действий, которые не могут быть достигнуты с помощью существующих интерфейсов автоматизации пользовательского интерфейса. Пользовательские шаблоны можно применять к любому элементу, присутствуют в иерархии специальных возможностей. С элементом могут быть один или несколько пользовательских шаблонов, которые можно определить по собственному GUID.

Операнды, общие для всех методов

Существует 3 фиксированных входных операнда для каждого вызова метода пользовательского шаблона.

Оператор Тип Описание
0 ConnectBoundObject Объект Pattern
1 GUID GUID метода
2 Int32 Общее количество входных и выходных аргументов

Возвращаемые значения

Каждый описанный здесь метод возвращает HRESULT для CallExtension, указывающий на успех или сбой. Успешная операция возвращает S_OK, а неудачная операция даст UIA_E_INVALIDOPERATON.

ITextRangeCustomProvider

Описание

Guid: {93514122-FF04-4B2C-A4AD-4AB04587C129}

Это шаблон для текстовых диапазонов и применяется к узлам Word в иерархии специальных возможностей, которая имеет набор шаблонов текста. ITextRangeCustomProvider предоставляет дополнительный набор методов, применимых к текстовым диапазонам. Клиенты могут запрашивать GetEnlcosingElement для текстового диапазона и использовать идентификатор GUID пользовательского шаблона для проверка, если элемент поддерживает пользовательский шаблон.

Сценарий PowerShell

CustomPatternClient_Word_TextRangeProvider.ps1

Методы

GetCustomAttributeValue

Guid: {081ACA91-32F2-46F0-9FB9-017038BC45F8}

Возвращает значения настраиваемых атрибутов для текстового диапазона, таких как номер строки, номер столбца, номер раздела, номер страницы и закладки. Он похож на API GetAttributeValue для ITextRange и возвращает variant, содержащий целочисленные или строковые значения для поддерживаемых в настоящее время настраиваемых атрибутов. Входные параметры и возвращаемые значения упаковываются в IInspectable.

Оператор Роль Тип Описание
3 Input ITextRangeProvider Диапазон входного текста
4 Input Int32 Идентификатор входного атрибута
5 Выходные данные Int32 или String Возвращаемое значение настраиваемого атрибута

В настоящее время Word поддерживает следующий набор пользовательских идентификаторов атрибутов:

Идентификатор атрибута Входное значение Возвращаемый тип
Номер строки 0 Int32
Номер страницы 1 Int32
Номер столбца 2 Int32
Section Number 3 Int32
Имя закладки 4 String

MoveBySentence

Guid: {F39655AC-133A-435B-A318-C197F0D3D203}

Как и API перемещения ITextRangeProvider, он перемещает текстовый диапазон вперед или назад на указанное количество единиц предложения.

Оператор Роль Тип Описание
3 Входные и выходные данные ITextRangeProvider Диапазон ввода и вывода текста
4 Input Int32 Количество единиц ввода при перемещении
5 Выходные данные Int32 Возвращаемое значение фактических перемещенных единиц

MoveEndpointBySentence

Guid: {368E89A2-1BC2-4402-8C58-33C63ECFFA3B}

Как и API MoveEndpoint ITextRangeProvider, он перемещает одну конечную точку текстового диапазона на указанное количество единиц предложений в диапазоне документов.

Оператор Роль Тип Описание
3 Входные и выходные данные ITextRangeProvider Диапазон ввода и вывода текста
4 Input Int32 Перемещаемая конечная точка
5 Input Int32 Количество единиц ввода при перемещении
6 Выходные данные Int32 Возвращаемое значение фактических перемещенных единиц

Значения конечной точки совпадают с перечислением TextPatternRangeEndpoint.

ExpandToEnclosingSentence

Guid: {98FE8B34-F317-459A-9627-21123EA95BEA}

Как и API ExpandToEnclosingUnit ITextRangeProvider, диапазон расширяется, если он меньше единицы предложения, или сокращается, если он длиннее единицы предложения.

Оператор Роль Тип Описание
3 Входные и выходные данные ITextRangeProvider Диапазон ввода и вывода текста

GetMathText

Guid: {380198E5-A51F-4618-A78D-57E9568A3862}

Для текстовых диапазонов, которые имеют тип Math и имеют аннотацию "Математика", этот API будет поддерживать различные форматы математического текста, такие как MathML. Word сейчас поддерживает только формат MathML. Этот API похож на GetText ITextRangeProvider без аргумента length и возвращает полный текст математической зоны.

Оператор Роль Тип Описание
3 Input ITextRangeProvider Диапазон входного текста
4 Input Int32 Тип математического формата
5 Выходные данные String Математический текст для заданного формата
Тип математического формата Входное значение (Int32) Возвращаемый тип
Mathml 0 String

Требования

Microsoft 365 версии 2112 (сборка 14725.xxxxx)

См. также

UIA_AutomationIdPropertyId

Пользовательские свойства, события и шаблоны элементов управления

Реализация пользовательских шаблонов элементов управления

клиентские скрипты Word пользовательских шаблонов