Élément ExtensionPoint

Définit l’emplacement où se trouvent les fonctionnalités d’un complément dans l’interface utilisateur Office. L’élément <ExtensionPoint> est un élément enfant de AllFormFactors, DesktopFormFactor ou MobileFormFactor.

Type de complément : Volet Office, Courrier

Valide uniquement dans les schémas VersionOverrides suivants :

  • Volet De tâches 1.0
  • Mail 1.0
  • Courrier 1.1

Pour plus d’informations, consultez Remplacements de version dans le manifeste.

Attributs

Attribut Obligatoire Description
xsi:type Oui Type de point d’extension défini. Les valeurs possibles dépendent de l’application hôte Office définie dans la valeur de l’élément Host> grand-parent<.

Points d’extension pour les commandes de complément Excel, OneNote, PowerPoint et Word

Trois types de points d’extension sont disponibles dans tout ou partie de ces hôtes.

  • PrimaryCommandSurface (valide pour Word, Excel, PowerPoint et OneNote) : ruban dans Office.
  • ContextMenu (Valide pour Word, Excel, PowerPoint et OneNote) : menu contextuel qui s’affiche lorsque vous sélectionnez et maintenez la touche (ou cliquez avec le bouton droit) dans l’interface utilisateur Office.
  • CustomFunctions (valide uniquement pour Excel) : fonction personnalisée écrite en JavaScript pour Excel.

Consultez les sous-sections suivantes pour connaître les éléments enfants et des exemples de ces types de points d’extension.

PrimaryCommandSurface

La surface de commande principale dans Word, Excel, PowerPoint et OneNote est le ruban.

Éléments enfants

Élément Description
CustomTab Obligatoire si vous souhaitez ajouter un onglet personnalisé au ruban (à l’aide de PrimaryCommandSurface). Si vous utilisez l’élément <CustomTab> , vous ne pouvez pas utiliser l’élément <OfficeTab> . L’attribut id est requis. Il ne peut pas y avoir plus d’un <élément enfant CustomTab> .
OfficeTab Obligatoire si vous souhaitez étendre un onglet de ruban d’application Office par défaut (à l’aide de PrimaryCommandSurface). Si vous utilisez l’élément <OfficeTab> , vous ne pouvez pas utiliser l’élément <CustomTab> .

Importante

Il ne peut pas y avoir plus d’un <élément ExtensionPoint> dans le complément qui a un élément CustomTab> enfant< ; et un seul <élément ExtensionPoint> ne peut avoir qu’un <seul élément CustomTab>, de sorte qu’il n’y a qu’un <seul élément CustomTab> dans tous les <éléments ExtensionPoint>.

Exemple

L’exemple suivant montre comment utiliser l’élément <ExtensionPoint> avec PrimaryCommandSurface. Il ajoute un onglet personnalisé au ruban.

Importante

Pour les éléments qui contiennent un attribut ID, veillez à fournir un ID unique.

<ExtensionPoint xsi:type="PrimaryCommandSurface">
  <CustomTab id="Contoso.MyTab1">
    <Label resid="residLabel4" />
    <Group id="Contoso.Group1">
      <Label resid="residLabel4" />
      <Icon>
        <bt:Image size="16" resid="icon1_32x32" />
        <bt:Image size="32" resid="icon1_32x32" />
        <bt:Image size="80" resid="icon1_32x32" />
      </Icon>
      <Tooltip resid="residToolTip" />
      <Control xsi:type="Button" id="Contoso.Button1">
          <!-- information about the control -->
      </Control>
      <!-- other controls, as needed -->
    </Group>
  </CustomTab>
</ExtensionPoint>

Contextmenu

Un menu contextuel est un menu contextuel qui s’affiche lorsque vous cliquez avec le bouton droit dans l’interface utilisateur Office.

Éléments enfants

Élément Description
OfficeMenu Obligatoire pour ajouter des commandes de complément à un menu contextuel par défaut (en utilisant ContextMenu). L’attribut id doit être défini sur l’une des chaînes suivantes :
- ContextMenuText si le menu contextuel doit s’ouvrir lorsqu’un utilisateur clique avec le bouton droit sur le texte sélectionné.
- ContextMenuCell si le menu contextuel doit s’ouvrir lorsque l’utilisateur clique avec le bouton droit sur une cellule d’une feuille de calcul Excel.

Exemple

L’exemple suivant ajoute un menu contextuel personnalisé aux cellules d’une feuille de calcul Excel.

<ExtensionPoint xsi:type="ContextMenu">
  <OfficeMenu id="ContextMenuCell">
    <Control xsi:type="Menu" id="Contoso.ContextMenu2">
            <!-- information about the control -->
    </Control>
    <!-- other controls, as needed -->
  </OfficeMenu>
</ExtensionPoint>

CustomFunctions

Fonction personnalisée écrite en JavaScript ou TypeScript pour Excel.

Éléments enfants

Élément Description
Script Obligatoire. Liens vers le fichier JavaScript avec la définition et le code d’inscription de la fonction personnalisée.
Page Obligatoire. Liens vers la page HTML de vos fonctions personnalisées.
Métadonnées Obligatoire. Définit les paramètres de script utilisés par une fonction personnalisée dans Excel.
Namespace Facultatif. Définit les paramètres de script utilisés par une fonction personnalisée dans Excel.

Exemple

<ExtensionPoint xsi:type="CustomFunctions">
  <Script>
    <SourceLocation resid="Functions.Script.Url"/>
  </Script>
  <Page>
    <SourceLocation resid="Shared.Url"/>
  </Page>
  <Metadata>
    <SourceLocation resid="Functions.Metadata.Url"/>
  </Metadata>
  <Namespace resid="Functions.Namespace"/>
</ExtensionPoint>

Points d’extension pour Outlook

MessageReadCommandSurface

Ce point d’extension place des boutons dans la surface de commande pour le mode de lecture de courrier électronique. Dans l’application de bureau Outlook, cela apparaît dans le ruban.

Éléments enfants

Élément Description
OfficeTab Ajoute les commandes à l’onglet de ruban par défaut.
CustomTab Ajoute les commandes à l’onglet de ruban personnalisé.

Exemple OfficeTab

<ExtensionPoint xsi:type="MessageReadCommandSurface">
  <OfficeTab id="TabDefault">
        <-- OfficeTab Definition -->
  </OfficeTab>
</ExtensionPoint>

Exemple CustomTab

<ExtensionPoint xsi:type="MessageReadCommandSurface">
  <CustomTab id="Contoso.TabCustom2">
        <-- CustomTab Definition -->
  </CustomTab>
</ExtensionPoint>

MessageComposeCommandSurface

Ce point d’extension place des boutons sur le ruban pour les compléments à l’aide du formulaire de composition de messagerie.

Éléments enfants

Élément Description
OfficeTab Ajoute les commandes à l’onglet de ruban par défaut.
CustomTab Ajoute les commandes à l’onglet de ruban personnalisé.

Exemple OfficeTab

<ExtensionPoint xsi:type="MessageComposeCommandSurface">
  <OfficeTab id="TabDefault">
        <-- OfficeTab Definition -->
  </OfficeTab>
</ExtensionPoint>

Exemple CustomTab

<ExtensionPoint xsi:type="MessageComposeCommandSurface">
  <CustomTab id="Contoso.TabCustom3">
        <-- CustomTab Definition -->
  </CustomTab>
</ExtensionPoint>

AppointmentOrganizerCommandSurface

Ce point d’extension place des boutons sur le ruban pour le formulaire qui est affiché à l’intention de l’organisateur de la réunion.

Éléments enfants

Élément Description
OfficeTab Ajoute les commandes à l’onglet de ruban par défaut.
CustomTab Ajoute les commandes à l’onglet de ruban personnalisé.

Exemple OfficeTab

<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
  <OfficeTab id="TabDefault">
        <-- OfficeTab Definition -->
  </OfficeTab>
</ExtensionPoint>

Exemple CustomTab

<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
  <CustomTab id="Contoso.TabCustom4">
        <-- CustomTab Definition -->
  </CustomTab>
</ExtensionPoint>

AppointmentAttendeeCommandSurface

Ce point d’extension place des boutons sur le ruban pour le formulaire qui est affiché à l’intention du participant à la réunion.

Éléments enfants

Élément Description
OfficeTab Ajoute les commandes à l’onglet de ruban par défaut.
CustomTab Ajoute les commandes à l’onglet de ruban personnalisé.

Exemple OfficeTab

<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
  <OfficeTab id="TabDefault">
        <-- OfficeTab Definition -->
  </OfficeTab>
</ExtensionPoint>

Exemple CustomTab

<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
  <CustomTab id="Contoso.TabCustom5">
        <-- CustomTab Definition -->
  </CustomTab>
</ExtensionPoint>

Module

Ce point d’extension place des boutons sur le ruban pour l’extension de module.

Importante

L’inscription des événements de boîte aux lettres et d’élément n’est pas disponible avec ce point d’extension.

Éléments enfants

Élément Description
OfficeTab Ajoute les commandes à l’onglet de ruban par défaut.
CustomTab Ajoute les commandes à l’onglet de ruban personnalisé.

MobileMessageReadCommandSurface

Ce point d’extension place des boutons dans la surface de commande pour le mode de lecture de courrier électronique dans le facteur de forme pour environnement mobile.

Éléments enfants

Élément Description
Group Ajoute un groupe de boutons à la surface de commande.

Les éléments ExtensionPoint> de ce type ne peuvent avoir qu’un seul élément enfant : un élément Group.<<>

L’attribut xsi :type doit être défini sur les éléments control> contenus dans ce point d’extension.<MobileButton

Exemple

<ExtensionPoint xsi:type="MobileMessageReadCommandSurface">
  <Group id="Contoso.mobileGroup1">
    <Label resid="residAppName"/>
    <Control xsi:type="MobileButton" id="Contoso.mobileButton1">
      <!-- Control definition -->
    </Control>
  </Group>
</ExtensionPoint>

MobileOnlineMeetingCommandSurface

Ce point d’extension place un bouton bascule approprié au mode dans l’aire de commande pour un rendez-vous dans le facteur de forme mobile. Un organisateur de réunion peut créer une réunion en ligne. Un participant peut par la suite rejoindre la réunion en ligne. Pour en savoir plus sur ce scénario, voir Créer un complément mobile Outlook pour un fournisseur de réunions en ligne.

Remarque

Ce point d’extension est pris en charge uniquement sur Android et iOS avec un abonnement Microsoft 365.

L’inscription des événements de boîte aux lettres et d’élément n’est pas disponible avec ce point d’extension.

Éléments enfants

Élément Description
Contrôle Ajoute un bouton à l’aire de commande.

Les éléments ExtensionPoint> de ce type ne peuvent avoir qu’un seul élément enfant : un élément Control.<<>

L’élément <Control> contenu dans ce point d’extension doit avoir l’attribut xsi :type défini sur MobileButton.

Les images spécifiées dans l’élément <Icon> doivent être en nuances de gris à l’aide du code #919191 hexadécimal ou de son équivalent dans d’autres formats de couleur.

Exemple

<ExtensionPoint xsi:type="MobileOnlineMeetingCommandSurface">
  <Control xsi:type="MobileButton" id="Contoso.onlineMeetingFunctionButton1">
    <Label resid="residUILessButton0Name" />
    <Icon>
      <bt:Image resid="UiLessIcon" size="25" scale="1" />
      <bt:Image resid="UiLessIcon" size="25" scale="2" />
      <bt:Image resid="UiLessIcon" size="25" scale="3" />
      <bt:Image resid="UiLessIcon" size="32" scale="1" />
      <bt:Image resid="UiLessIcon" size="32" scale="2" />
      <bt:Image resid="UiLessIcon" size="32" scale="3" />
      <bt:Image resid="UiLessIcon" size="48" scale="1" />
      <bt:Image resid="UiLessIcon" size="48" scale="2" />
      <bt:Image resid="UiLessIcon" size="48" scale="3" />
    </Icon>
    <Action xsi:type="ExecuteFunction">
      <FunctionName>insertContosoMeeting</FunctionName>
    </Action>
  </Control>
</ExtensionPoint>

MobileLogEventAppointmentAttendee

Ce point d’extension place un bouton d’action Journal contextuel dans l’aire de commande pour un rendez-vous dans le facteur de forme mobile. Les participants aux rendez-vous qui ont installé le complément peuvent enregistrer leurs notes de rendez-vous dans une application externe en un seul clic. Ce point d’extension prend en charge les fonctionnalités des commandes de fonction et du volet Office. Pour en savoir plus sur ce scénario, voir Journaliser les notes de rendez-vous dans une application externe dans les compléments mobiles Outlook.

Remarque

Ce point d’extension est pris en charge uniquement sur Android et iOS avec un abonnement Microsoft 365.

L’inscription des événements de boîte aux lettres et d’élément n’est pas disponible avec ce point d’extension.

Éléments enfants

Élément Description
Contrôle Ajoute un bouton à l’aire de commande.

Les éléments ExtensionPoint> de ce type ne peuvent avoir qu’un seul élément enfant : un élément Control.<<>

L’élément <Control> contenu dans ce point d’extension doit avoir l’attribut xsi :type défini sur MobileButton.

Les images spécifiées dans l’élément <Icon> doivent être en nuances de gris à l’aide du code #919191 hexadécimal ou de son équivalent dans d’autres formats de couleur.

Exemple

<ExtensionPoint xsi:type="MobileLogEventAppointmentAttendee">
  <Control xsi:type="MobileButton" id="appointmentReadFunctionButton">
    <Label resid="LogButtonLabel" />
    <Icon>
      <bt:Image resid="Icon.16x16" size="25" scale="1" />
      <bt:Image resid="Icon.16x16" size="25" scale="2" />
      <bt:Image resid="Icon.16x16" size="25" scale="3" />
      <bt:Image resid="Icon.32x32" size="32" scale="1" />
      <bt:Image resid="Icon.32x32" size="32" scale="2" />
      <bt:Image resid="Icon.32x32" size="32" scale="3" />
      <bt:Image resid="Icon.80x80" size="48" scale="1" />
      <bt:Image resid="Icon.80x80" size="48" scale="2" />
      <bt:Image resid="Icon.80x80" size="48" scale="3" />
    </Icon>
    <Action xsi:type="ExecuteFunction">
      <FunctionName>logToCRM</FunctionName>
    </Action>
  </Control>
</ExtensionPoint>

LaunchEvent

Ce point d’extension permet à un complément de s’activer en fonction des événements pris en charge dans les facteurs de forme de bureau et mobiles. Pour en savoir plus sur l’activation basée sur les événements et pour obtenir la liste complète des événements pris en charge, voir Configurer votre complément Outlook pour l’activation basée sur les événements.

Importante

L’inscription des événements de boîte aux lettres et d’élément n’est pas disponible avec ce point d’extension.

Éléments enfants

Élément Description
LaunchEvents Liste de LaunchEvent pour l’activation basée sur les événements.
SourceLocation Emplacement du fichier JavaScript source.

Exemple

<ExtensionPoint xsi:type="LaunchEvent">
  <LaunchEvents>
    <LaunchEvent Type="OnNewMessageCompose" FunctionName="onMessageComposeHandler"/>
    <LaunchEvent Type="OnNewAppointmentOrganizer" FunctionName="onAppointmentComposeHandler"/>
  </LaunchEvents>
  <!-- Identifies the runtime to be used (also referenced by the Runtime element). -->
  <SourceLocation resid="WebViewRuntime.Url"/>
</ExtensionPoint>

Événements

Ce point d’extension ajoute un gestionnaire d’événements pour un événement spécifié. Pour plus d’informations sur l’utilisation de ce point d’extension, voir Fonctionnalité d’envoi pour les compléments Outlook.

Importante

L’inscription des événements de boîte aux lettres et d’élément n’est pas disponible avec ce point d’extension.

Remarque

Les alertes intelligentes, qui est une version plus récente de la fonctionnalité d’envoi, utilisent le point d’extension LaunchEvent pour activer l’activation d’événement dans un complément. Pour en savoir plus sur les principales différences entre les alertes intelligentes et la fonctionnalité d’envoi, consultez Différences entre les alertes intelligentes et la fonctionnalité d’envoi. Nous vous invitons à tester les alertes intelligentes en suivant la procédure pas à pas.

Élément Description
Event Indique l’événement et la fonction gestionnaire d’événements.

Exemple d’événement ItemSend

<ExtensionPoint xsi:type="Events">
  <Event Type="ItemSend" FunctionExecution="synchronous" FunctionName="itemSendHandler" />
</ExtensionPoint>

DetectedEntity

Ce point d’extension ajoute une activation de complément contextuel sur un type d’entité spécifié. Pour plus d’informations sur l’utilisation de ce point d’extension, consultez Compléments Outlook contextuels.

Importante

Les compléments Outlook contextuels basés sur des entités seront mis hors service au deuxième trimestre 2024. Le travail de mise hors service de cette fonctionnalité commencera en mai et se poursuivra jusqu’à la fin du mois de juin. Après juin, les compléments contextuels ne seront plus en mesure de détecter les entités dans les éléments de courrier pour effectuer des tâches sur ces derniers. Les API suivantes seront également mises hors service.

Pour réduire les interruptions potentielles, les éléments suivants seront toujours pris en charge une fois les compléments contextuels basés sur des entités mis hors service.

  • Une autre implémentation du bouton Participer à une réunion , qui est activé par les compléments de réunion en ligne, est en cours de développement. Une fois la prise en charge des compléments contextuels basés sur des entités terminée, les compléments de réunion en ligne passent automatiquement à l’implémentation alternative pour activer le bouton Participer à une réunion .
  • Les règles d’expression régulière continueront d’être prises en charge une fois les compléments contextuels basés sur des entités mis hors service. Nous vous recommandons de mettre à jour votre complément contextuel pour utiliser des règles d’expression régulière comme solution alternative. Pour obtenir des conseils sur la façon d’implémenter ces règles, voir Utiliser des règles d’activation d’expression régulière pour afficher un complément Outlook.

Pour plus d’informations, consultez Retrait des compléments Outlook contextuels basés sur des entités.

L’élément VersionOverrides contenant doit avoir une valeur d’attribut xsi :type de VersionOverridesV1_1.

Remarque

Élément Description
Label Spécifie l’étiquette pour le complément dans la fenêtre contextuelle.
SourceLocation Spécifie l’URL de la fenêtre contextuelle.
Règle Spécifie la ou les règles qui déterminent lorsqu’un complément s’active.

Étiquette

Obligatoire. Libellé du groupe. L’attribut resid ne peut pas comporter plus de 32 caractères et doit être défini sur la valeur de l’attribut id d’un <élément String> dans l’élément< ShortStrings> de l’élément Resources.

Exigences relatives à la mise en surbrillance

Le seul moyen pour qu’un utilisateur puisse activer un complément contextuel consiste à interagir avec une entité en surbrillance. Les développeurs peuvent contrôler les entités mises en surbrillance à l’aide de l’attribut Highlight de l’élément <Rule> pour ItemHasKnownEntity les types de règles et ItemHasRegularExpressionMatch .

Toutefois, il existe certaines limitations à connaître. Ces limitations sont en place pour vous assurer qu’il y aura toujours une entité en surbrillance dans les messages ou rendez-vous applicables pour permettre à l’utilisateur d’activer le complément.

  • Les types d’entité EmailAddress et Url ne peuvent pas être mis en surbrillance et par conséquent ne peuvent pas être utilisés pour activer un complément.
  • Si vous utilisez une seule règle, l’attribut Highlight DOIT être défini sur all.
  • Si vous utilisez un RuleCollection type de règle avec Mode="AND" pour combiner plusieurs règles, au moins l’une des règles DOIT avoir l’attribut Highlight défini sur all.
  • Si vous utilisez un RuleCollection type de règle avec Mode="OR" pour combiner plusieurs règles, l’attribut Highlight doit être défini sur all.

Exemple d’événement DetectedEntity

<ExtensionPoint xsi:type="DetectedEntity">
  <Label resid="residLabelName"/>
  <!--If you opt to include RequestedHeight, it must be between 140px to 450px, inclusive.-->
  <!--<RequestedHeight>360</RequestedHeight>-->
  <SourceLocation resid="residDetectedEntityURL" />
  <Rule xsi:type="RuleCollection" Mode="And">
    <Rule xsi:type="ItemIs" ItemType="Message" />
    <Rule xsi:type="ItemHasKnownEntity" EntityType="MeetingSuggestion" Highlight="all" />
    <Rule xsi:type="ItemHasKnownEntity" EntityType="Address" Highlight="none" />
  </Rule>
</ExtensionPoint>

ReportPhishingCommandSurface (préversion)

Ce point d’extension active votre complément de création de rapports de courrier indésirable dans le ruban Outlook et l’empêche d’apparaître à la fin du ruban ou dans le menu de dépassement.

Pour en savoir plus sur la façon d’implémenter la fonctionnalité de création de rapports de courrier indésirable dans votre complément, consultez Implémenter un complément de rapport de courrier indésirable intégré (préversion) .

Éléments enfants

Élément Description
Élément ReportPhishingCustomization (préversion) Configure le bouton du ruban et la boîte de dialogue de prétraitement d’un complément de création de rapports de courrier indésirable.

Exemple

<ExtensionPoint xsi:type="ReportPhishingCommandSurface">
  <ReportPhishingCustomization>
    <!-- Configures the ribbon button. -->
    <Control xsi:type="Button" id="ReportingButton">
      <Label resid="ReportingButton.Label"/>
      <Supertip>
        <Title resid="ReportingButton.Label"/>
        <Description resid="ReportingButton.Description"/>
      </Supertip>
      <Icon>
        <bt:Image size="16" resid="Icon.16x16"/>
        <bt:Image size="32" resid="Icon.32x32"/>
        <bt:Image size="64" resid="Icon.64x64"/>
        <bt:Image size="80" resid="Icon.80x80"/>
      </Icon>
      <Action xsi:type="ExecuteFunction">
        <FunctionName>onMessageReport</FunctionName>
      </Action>
    </Control>
    <!-- Configures the preprocessing dialog. -->
    <PreProcessingDialog>
      <Title resid="PreProcessingDialog.Label"/>
      <Description resid="PreProcessingDialog.Description"/>
      <ReportingOptions>
        <Title resid="OptionsTitle.Label"/>
        <Option resid="Option1.Label"/>
        <Option resid="Option2.Label"/>
        <Option resid="Option3.Label"/>
        <Option resid="Option4.Label"/>
      </ReportingOptions>
      <FreeTextLabel resid="FreeText.Label"/>
      <MoreInfo>
        <MoreInfoText resid="MoreInfo.Label"/>
        <MoreInfoUrl resid="MoreInfo.Url"/>
      </MoreInfo>
    </PreProcessingDialog>
    <SourceLocation resid="Commands.Url"/>
  </ReportPhishingCustomization>
</ExtensionPoint>