Partager via


Motifs personnalisés de Word

Cette rubrique décrit les modèles de UI Automation personnalisés fournis dans Microsoft Word pour Windows. Ces modèles peuvent être interrogés et utilisés à partir du nœud fournisseur qui a un modèle de texte.

À des fins d’expérimentation, nous avons créé des scripts PowerShell spéciaux dans le PowerShell Gallery qui exercent chaque Word modèle personnalisé. Celles-ci sont explicitement appelées avec chaque modèle, ou vous pouvez rechercher pour CustomPatternClient_Word voir tous les scripts Word. Ces scripts peuvent être exécutés dans une fenêtre PowerShell sur une instance de Word en cours d’exécution sur Windows 11 pour voir la sortie produite par les modèles personnalisés. Les scripts sont auto-documentés avec une aide basée sur les commentaires.

L’objectif main de ces modèles est de fournir des informations supplémentaires sur Word contenu et d’effectuer des actions qui ne peuvent pas être réalisées via des interfaces UI Automation existantes. Les modèles personnalisés peuvent être appliqués à n’importe quel élément présent dans la hiérarchie d’accessibilité. Un ou plusieurs modèles personnalisés peuvent être associés à un élément qui peut être identifié par leur propre GUID.

Opérandes communs à toutes les méthodes

Il existe 3 opérandes d’entrée fixes pour chaque appel de méthode de modèle personnalisé.

Opérande Type Description
0 ConnectBoundObject Objet Pattern
1 GUID GUID de la méthode
2 Int32 Nombre total d’arguments d’entrée et de sortie

Valeurs de retour

Chaque méthode décrite ici retourne un HRESULT pour callExtension afin d’indiquer la réussite ou l’échec. Une opération réussie retourne S_OK et une opération ayant échoué génère UIA_E_INVALIDOPERATON.

ITextRangeCustomProvider

Description

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

Il s’agit d’un modèle pour les plages de texte et appliqué à ces nœuds Word dans la hiérarchie d’accessibilité qui a un modèle de texte défini. ITextRangeCustomProvider fournit un ensemble supplémentaire de méthodes applicables aux plages de texte. Les clients peuvent interroger GetEnlcosingElement pour une plage de texte et utiliser le GUID de modèle personnalisé pour case activée si l’élément prend en charge le modèle personnalisé.

PowerShell Script

CustomPatternClient_Word_TextRangeProvider.ps1

Méthodes

GetCustomAttributeValue

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

Retourne des valeurs d’attributs personnalisés pour une plage de texte, comme le numéro de ligne, le numéro de colonne, le numéro de section, le numéro de page et le signet. Il est similaire à l’API GetAttributeValue pour ITextRange et retourne un VARIANT contenant des valeurs entières ou de chaîne pour les attributs personnalisés actuellement pris en charge. Les paramètres d’entrée et les valeurs de retour sont empaquetés dans IInspectable.

Opérande Role Type Description
3 Input ITextRangeProvider Plage de texte d’entrée
4 Input Int32 Identificateur d’attribut d’entrée
5 Sortie Int32 ou String Valeur de retour de l’attribut personnalisé

Actuellement, Word prend en charge l’ensemble d’identificateurs d’attribut personnalisé suivant :

Identificateur d’attribut Valeur d’entrée Type renvoyé
Numéro de ligne 0 Int32
Numéro de page 1 Int32
Numéro de colonne 2 Int32
Section Number 3 Int32
Nom du signet 4 String
Colonnes sur la page 5 Int32
En-tête Développer/Réduire l’état 6 Int32

Pour En-tête Développer/Réduire l’état, voici les valeurs possibles :

Nom de l’état Valeur de sortie Description
Collapsed 0 Aucun enfant n’est visible
Étendu 1 Tous les enfants sont visibles
Nœud feuille 2 L’élément ne se développe pas ou ne se réduit pas

MoveBySentence

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

Comme l’API Move de ITextRangeProvider, elle déplace la plage de texte vers l’avant ou vers l’arrière selon le nombre spécifié d’unités de phrase.

Opérande Role Type Description
3 Entrée/sortie ITextRangeProvider Plage de texte d’entrée et de sortie
4 Input Int32 Nombre d’unités d’entrée à déplacer
5 Sortie Int32 Valeur de retour des unités réelles déplacées

MoveEndpointBySentence

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

Comme l’API MoveEndpoint d’ITextRangeProvider, elle déplace un point de terminaison de la plage de texte du nombre spécifié d’unités de phrases dans la plage de documents.

Opérande Role Type Description
3 Entrée/sortie ITextRangeProvider Plage de texte d’entrée et de sortie
4 Input Int32 Point de terminaison à déplacer
5 Input Int32 Nombre d’unités d’entrée à déplacer
6 Sortie Int32 Valeur de retour des unités réelles déplacées

Les valeurs de point de terminaison sont identiques à l’énumération TextPatternRangeEndpoint.

ExpandToEnclosingSentence

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

Comme l’API ExpandToEnclosingUnit de ITextRangeProvider, la plage est développée si elle est plus petite que l’unité de phrase ou raccourcie si elle est plus longue que l’unité de phrase.

Opérande Role Type Description
3 Entrée/sortie ITextRangeProvider Plage de texte d’entrée et de sortie

GetMathText

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

Pour les plages de texte qui sont de type Mathématique et dont l’annotation est « Mathématiques », cette API prend en charge différents formats de texte mathématiques tels que MathML. Word prend actuellement uniquement en charge le format MathML. Cette API est similaire à GetText de ITextRangeProvider sans argument de longueur et retourne le texte intégral de la zone mathématique.

Opérande Role Type Description
3 Input ITextRangeProvider Plage de texte d’entrée
4 Input Int32 Type de format mathématique
5 Sortie String Texte mathématique pour un format donné
Type de format mathématique Valeur d’entrée (Int32) Type renvoyé
MathML 0 String

Configuration requise

Microsoft 365 version 2112 (build 14725.xxxxx)

Voir aussi

UIA_AutomationIdPropertyId

Propriétés, événements et modèles de contrôle personnalisés

Implémentation de modèles de contrôle personnalisés

Word scripts clients de modèle personnalisé