Elemento ExtensionPoint

Define onde um suplemento expõe a funcionalidade na interface de usuário do Office. O <elemento ExtensionPoint> é um elemento filho de AllFormFactors, DesktopFormFactor ou MobileFormFactor.

Tipo de suplemento: Painel de tarefas, Email

Válido somente nestes esquemas VersionOverrides:

  • Painel de tarefas 1.0
  • Email 1.0
  • Email 1.1

Para obter mais informações, consulte Substituições de versão no manifesto.

Atributos

Atributo Obrigatório Descrição
xsi:type Sim O tipo de ponto de extensão que está sendo definido. Os valores possíveis dependem do aplicativo host do Office definido no valor do <elemento host> avô.

Pontos de extensão para comandos de suplemento do Excel, OneNote, PowerPoint e Word

Há três tipos de pontos de extensão disponíveis em alguns ou em todos esses hosts.

  • PrimaryCommandSurface (válido para Word, Excel, PowerPoint e OneNote) – a faixa de opções no Office.
  • ContextMenu (Válido para Word, Excel, PowerPoint e OneNote) – O menu de atalho que aparece quando você seleciona e segura (ou clica com o botão direito do mouse) na interface do usuário do Office.
  • CustomFunctions (válido apenas para Excel) – uma função personalizada escrita no JavaScript para Excel.

Consulte as subseções a seguir para os elementos filho e exemplos desses tipos de pontos de extensão.

PrimaryCommandSurface

A superfície de comando principal em Word, Excel, PowerPoint e OneNote é a faixa de opções.

Elementos filho

Elemento Descrição
CustomTab Obrigatório se você quiser adicionar uma guia personalizada à faixa de opções (usando PrimaryCommandSurface). Se você usar o <elemento CustomTab> , não poderá usar o <elemento OfficeTab> . O atributo id é obrigatório. Não pode haver mais do que um <elemento filho CustomTab> .
OfficeTab Necessário se você quiser estender uma guia de faixa de opções de aplicativo do Office padrão (usando PrimaryCommandSurface). Se você usar o <elemento OfficeTab> , não poderá usar o <elemento CustomTab> .

Importante

Não pode haver mais do que um <elemento ExtensionPoint> no suplemento que tem um elemento CustomTab> filho<; e que um <elemento ExtensionPoint> pode ter apenas um <CustomTab>, portanto, há apenas um <elemento CustomTab> em todos os <elementos do ExtensionPoint>.

Exemplo

O exemplo a seguir mostra como usar o <elemento ExtensionPoint> com PrimaryCommandSurface. Ele adiciona uma guia personalizada à faixa de opções.

Importante

Forneça uma ID exclusiva para os elementos que contêm um atributo ID.

<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

Um menu de contexto é um menu de atalho que aparece quando você clica com o botão direito do mouse na interface do usuário do Office.

Elementos filho

Elemento Descrição
OfficeMenu Obrigatório se você estiver adicionando comandos de suplemento a um menu de contexto padrão (usando ContextMenu). O atributo id deve ser definido como uma das seguintes cadeias de caracteres:
- ContextMenuText se o menu de contexto deve ser aberto quando um usuário clicar com o botão direito do mouse no texto selecionado.
- ContextMenuCell se o menu de contexto deve ser aberto quando o usuário clicar com o botão direito do mouse em uma célula em uma planilha do Excel.

Exemplo

A seguir, adiciona um menu de contexto personalizado às células em uma planilha do 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

Uma função personalizada escrita em JavaScript ou TypeScript para Excel.

Elementos filho

Elemento Descrição
Script Obrigatório. Links para o arquivo JavaScript com a definição e o código de registro da função personalizada.
Page Obrigatório. Links para a página HTML de suas funções personalizadas.
Metadados Obrigatório. Define as configurações de metadados usados por uma função personalizada no Excel.
Namespace Opcional. Define o namespace usado por uma função personalizada no Excel.

Exemplo

<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>

Pontos de extensão para Outlook

MessageReadCommandSurface

Este ponto de extensão coloca os botões na superfície de comando para o modo de exibição de leitura de email. No Outlook para área de trabalho, isso aparece na faixa de opções.

Elementos filho

Elemento Descrição
OfficeTab Adiciona os comandos à guia da faixa de opções padrão.
CustomTab Adiciona os comandos à guia da faixa de opções personalizada.

Exemplo de OfficeTab

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

Exemplo de CustomTab

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

MessageComposeCommandSurface

Este ponto de extensão coloca botões na faixa de opções para suplementos que usam o formulário de composição de email.

Elementos filho

Elemento Descrição
OfficeTab Adiciona os comandos à guia da faixa de opções padrão.
CustomTab Adiciona os comandos à guia da faixa de opções personalizada.

Exemplo de OfficeTab

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

Exemplo de CustomTab

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

AppointmentOrganizerCommandSurface

Este ponto de extensão coloca botões na faixa de opções para o formulário exibido ao organizador da reunião.

Elementos filho

Elemento Descrição
OfficeTab Adiciona os comandos à guia da faixa de opções padrão.
CustomTab Adiciona os comandos à guia da faixa de opções personalizada.

Exemplo de OfficeTab

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

Exemplo de CustomTab

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

AppointmentAttendeeCommandSurface

Este ponto de extensão coloca botões na faixa de opções para o formulário exibido ao participante da reunião.

Elementos filho

Elemento Descrição
OfficeTab Adiciona os comandos à guia da faixa de opções padrão.
CustomTab Adiciona os comandos à guia da faixa de opções personalizada.

Exemplo de OfficeTab

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

Exemplo de CustomTab

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

Module

Este ponto de extensão coloca botões na faixa de opções para a extensão do módulo.

Importante

O registro de eventosde caixa de correio e item não está disponível com este ponto de extensão.

Elementos filho

Elemento Descrição
OfficeTab Adiciona os comandos à guia da faixa de opções padrão.
CustomTab Adiciona os comandos à guia da faixa de opções personalizada.

MobileMessageReadCommandSurface

Este ponto de extensão coloca os botões na superfície de comando para o modo de exibição de leitura de email no fator forma móvel.

Elementos filho

Elemento Descrição
Group Adiciona um grupo de botões à superfície de comando.

<Elementos do ExtensionPoint> desse tipo só podem ter um elemento filho: um <elemento Group> .

<Os> elementos de controle contidos neste ponto de extensão devem ter o atributo xsi:type definido como MobileButton.

Exemplo

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

MobileOnlineMeetingCommandSurface

Esse ponto de extensão coloca um alternância apropriado para modo na superfície de comando para um compromisso no fator de formulário móvel. Um organizador de reunião pode criar uma reunião online. Posteriormente, um participante pode ingressar na reunião online. Para saber mais sobre esse cenário, consulte Criar um suplemento móvel do Outlook para um provedor de reunião online.

Observação

Esse ponto de extensão só tem suporte no Android e no iOS com uma assinatura do Microsoft 365.

O registro de eventosde caixa de correio e item não está disponível com este ponto de extensão.

Elementos filho

Elemento Descrição
Control Adiciona um botão à superfície de comando.

<Elementos do ExtensionPoint> desse tipo só podem ter um elemento filho: um <elemento Control> .

O <elemento Control> contido neste ponto de extensão deve ter o atributo xsi:type definido como MobileButton.

As imagens especificadas no <elemento Icon> devem estar em escala de cinza usando código #919191 hex ou equivalente em outros formatos de cor.

Exemplo

<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

Esse ponto de extensão coloca um botão de ação log contextualmente na superfície de comando para um compromisso no fator de formulário móvel. Os participantes de compromisso que têm o suplemento instalado podem salvar suas anotações de compromisso em um aplicativo externo em um clique. Esse ponto de extensão dá suporte à funcionalidade para comandos de função e painel de tarefas. Para saber mais sobre esse cenário, confira Notas de compromisso de log para um aplicativo externo nos suplementos móveis do Outlook.

Observação

Esse ponto de extensão só tem suporte no Android e no iOS com uma assinatura do Microsoft 365.

O registro de eventosde caixa de correio e item não está disponível com este ponto de extensão.

Elementos filho

Elemento Descrição
Control Adiciona um botão à superfície de comando.

<Elementos do ExtensionPoint> desse tipo só podem ter um elemento filho: um <elemento Control> .

O <elemento Control> contido neste ponto de extensão deve ter o atributo xsi:type definido como MobileButton.

As imagens especificadas no <elemento Icon> devem estar em escala de cinza usando código #919191 hex ou equivalente em outros formatos de cor.

Exemplo

<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

Esse ponto de extensão permite que um suplemento seja ativado com base em eventos com suporte na área de trabalho e nos fatores de formulário móvel. Para saber mais sobre a ativação baseada em eventos e a lista completa de eventos com suporte, consulte Configurar o suplemento do Outlook para ativação baseada em eventos.

Importante

O registro de eventosde caixa de correio e item não está disponível com este ponto de extensão.

Elementos filho

Elemento Descrição
LaunchEvents Lista de LaunchEvent para ativação baseada em eventos.
SourceLocation O local do arquivo JavaScript de origem.

Exemplo

<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>

Eventos

Este ponto de extensão adiciona um manipulador de eventos para um evento especificado. Para obter mais informações sobre como usar esse ponto de extensão, consulte Recurso de envio para suplementos do Outlook.

Importante

O registro de eventosde caixa de correio e item não está disponível com este ponto de extensão.

Observação

Os Alertas Inteligentes, que é uma versão mais recente do recurso de envio, usam o ponto de extensão LaunchEvent para habilitar a ativação de eventos em um suplemento. Para saber mais sobre as principais diferenças entre alertas inteligentes e o recurso de envio, confira Diferenças entre alertas inteligentes e o recurso de envio. Convidamos você a experimentar alertas inteligentes concluindo o passo a passo.

Elemento Descrição
Event Especifica o evento e a função de manipulador de eventos.

Exemplo do evento ItemSend

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

DetectedEntity

Este ponto extensão adiciona uma ativação do suplemento contextual em um tipo de entidade especificada. Para obter mais informações sobre como usar esse ponto de extensão, consulte Suplementos contextuais do Outlook.

Importante

Os suplementos contextuais do Outlook baseados em entidade serão desativados no segundo trimestre de 2024. O trabalho para aposentar esse recurso começará em maio e continuará até o final de junho. Após junho, os suplementos contextuais não poderão mais detectar entidades em itens de email para executar tarefas neles. As APIs a seguir também serão retiradas.

Para ajudar a minimizar possíveis interrupções, o seguinte ainda será suportado depois que os suplementos contextuais baseados em entidade forem retirados.

  • Uma implementação alternativa do botão Ingressar Reunião , que é ativado por suplementos de reunião online, está sendo desenvolvida. Depois que o suporte para suplementos contextuais baseados em entidade terminar, os suplementos de reunião online farão a transição automática para a implementação alternativa para ativar o botão Ingressar Reunião .
  • As regras de expressão regular continuarão a ser suportadas depois que os suplementos contextuais baseados em entidade forem retirados. Recomendamos atualizar seu suplemento contextual para usar regras de expressão regulares como uma solução alternativa. Para obter diretrizes sobre como implementar essas regras, consulte Usar regras regulares de ativação de expressão para mostrar um suplemento do Outlook.

Para obter mais informações, consulte Aposentadoria de suplementos contextuais do Outlook baseados em entidade.

O elemento VersionOverrides contendo deve ter um valor de atributo xsi:type de VersionOverridesV1_1.

Observação

Elemento Descrição
Label Especifica o rótulo para o suplemento na janela contextual.
SourceLocation Especifica a URL para a janela contextual.
Rule Especifica a regra ou regras que determinam quando um suplemento é ativado.

Label

Obrigatório. O rótulo do grupo. O atributo resid não pode ter mais de 32 caracteres e deve ser definido como o valor do atributo id de um <elemento String> no <elemento ShortStrings> no elemento Resources .

Requisitos de realce

A única maneira que um usuário pode ativar um suplemento contextual é interagir com uma entidade realçada. Os desenvolvedores podem controlar quais entidades são realçadas usando o atributo Highlight do <elemento Rule> para ItemHasKnownEntity e ItemHasRegularExpressionMatch tipos de regra.

No entanto, há algumas limitações que devem ser consideradas. Essas limitações são para garantir que sempre haverá uma entidade realçada em compromissos ou mensagens aplicáveis para oferecer ao usuário uma maneira de ativar o suplemento.

  • Os tipos de entidade EmailAddress e Url não podem ser realçados e, portanto, não podem ser usados para ativar um suplemento.
  • Se estiver usando uma única regra, o atributo Highlight DEVE ser definido como all.
  • Se usar um tipo de RuleCollection regra com Mode="AND" para combinar várias regras, pelo menos uma das regras DEVE ter o atributo Highlight definido como all.
  • Se usar um RuleCollection tipo de regra com Mode="OR" para combinar várias regras, todas as regras DEVEM ter o atributo Highlight definido como all.

Exemplo do evento 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 (versão prévia)

Esse ponto de extensão ativa o suplemento de relatório de spam na faixa de opções do Outlook e impede que ele apareça no final da faixa de opções ou no menu de estouro.

Para saber mais sobre como implementar o recurso de relatório de spam em seu suplemento, confira Implementar um suplemento integrado de relatório de spam (versão prévia).

Elementos filho

Elemento Descrição
Elemento ReportPhishingCustomization (versão prévia) Configura o botão de faixa de opções e a caixa de diálogo de pré-processamento de um suplemento de relatório de spam.

Exemplo

<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>