Partilhar via


Elemento ExtensionPoint

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

Tipo de suplemento: Painel de tarefas, Correio

Válido apenas nestes esquemas VersionOverrides:

  • Painel de tarefas 1.0
  • Email 1.0
  • Email 1.1

Para obter mais informações, veja Substituições de versões no manifesto apenas do suplemento.

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 da aplicação anfitriã do Office definida no valor do elemento anfitrião do avô<>.

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

Existem três tipos de pontos de extensão disponíveis em alguns ou em todos estes anfitriões.

  • PrimaryCommandSurface (Válido para Word, Excel, PowerPoint e OneNote) – o friso no Office.
  • ContextMenu (Válido para Word, Excel, PowerPoint e OneNote) – o menu de atalho que é apresentado quando clica com o botão direito do rato (ou seleciona sem soltar) na IU do Office.
  • CustomFunctions (Válido apenas para Excel) – uma função personalizada escrita em JavaScript para Excel.

Veja as seguintes subsecções para obter os elementos subordinados e exemplos destes tipos de pontos de extensão.

PrimaryCommandSurface

A superfície de comando principal no Word, Excel, PowerPoint e OneNote é o friso.

Elementos filho

Elemento Descrição
CustomTab Obrigatório se você quiser adicionar uma guia personalizada à faixa de opções (usando PrimaryCommandSurface). Se utilizar o <elemento CustomTab> , não pode utilizar o <elemento OfficeTab> . O atributo id é obrigatório. Não pode haver mais do que um <elemento subordinado CustomTab> .
OfficeTab Necessário se quiser expandir um separador predefinido do friso da aplicação do Office (utilizando PrimaryCommandSurface). Se utilizar o <elemento OfficeTab> , não pode utilizar o <elemento CustomTab> .

Importante

Não pode haver mais do que um <elemento do ExtensionPoint> no suplemento que tenha um elemento CustomTab> subordinado<; e que um <elemento do ExtensionPoint> só pode ter um <CustomTab>, pelo que existe apenas um <elemento CustomTab> em todos os <elementos do ExtensionPoint>.

Exemplo

O exemplo seguinte mostra como utilizar o <elemento ExtensionPoint> com PrimaryCommandSurface. Adiciona um separador personalizado ao friso.

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>
      <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 é apresentado quando clica com o botão direito do rato (ou seleciona sem soltar) na IU 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 tem de ser definido como uma das seguintes cadeias de carateres.
  • ContextMenuText se o menu de contexto deve abrir quando um utilizador clica com o botão direito do rato (ou seleciona e mantém) no texto selecionado.
  • ContextMenuCell se o menu de contexto deve abrir quando um utilizador clica com o botão direito do rato (ou seleciona e mantém) numa célula numa folha de cálculo do Excel.

Exemplo

O seguinte personaliza o menu de contexto aberto no texto selecionado numa aplicação do Office suportada. Tenha em atenção que o controlo subordinado tem de ser do tipo Botão.

<ExtensionPoint xsi:type="ContextMenu">
  <OfficeMenu id="ContextMenuText"> <!-- OR, for Excel only: <OfficeMenu id="ContextMenuCell"> -->
    <Control xsi:type="Button" id="ContextMenuButton">
      <Label resid="TaskpaneButton.Label"/>
      <Supertip>
        <Title resid="TaskpaneButton.Label" />
        <Description resid="TaskpaneButton.Tooltip" />
      </Supertip>
      <Icon>
        <bt:Image size="16" resid="tpicon_16x16" />
        <bt:Image size="32" resid="tpicon_32x32" />
        <bt:Image size="80" resid="tpicon_80x80" />
      </Icon>
      <Action xsi:type="ExecuteFunction">
        <FunctionName>action</FunctionName>
      </Action>
    </Control>
  </OfficeMenu>
</ExtensionPoint>

CustomFunctions

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

Elementos filho

Elemento Descrição
Script Obrigatório. Ligações para o ficheiro JavaScript com a definição e o código de registo 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 registo de eventos 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.

<Os elementos do ExtensionPoint> deste tipo só podem ter um elemento subordinado: um <elemento Grupo> .

<Os elementos de controlo> contidos neste ponto de extensão têm de 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

Este ponto de extensão coloca um botão de alternar adequado ao modo na superfície de comando para um compromisso no fator de forma móvel. Um organizador da reunião pode criar uma reunião online. Posteriormente, um participante pode participar na reunião online. Para saber mais sobre este cenário, consulte Criar um suplemento móvel do Outlook para um fornecedor de reuniões online.

Observação

Este ponto de extensão só é suportado no Android e iOS com uma subscrição do Microsoft 365.

O registo de eventos 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 comandos.

Os elementos do ExtensionPoint> deste tipo só podem ter um elemento subordinado: um elemento Controlo.<<>

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

As imagens especificadas no <elemento Icon> devem estar em tons de cinzento com código #919191 hexadecima ou equivalente noutros 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

Este ponto de extensão coloca um botão de ação De registo contextualmente na superfície de comando para um compromisso no fator de forma móvel. Os participantes do compromisso que têm o suplemento instalado podem guardar as notas de compromisso numa aplicação externa com um só clique. Este ponto de extensão suporta a funcionalidade para o painel de tarefas e comandos de função. Para saber mais sobre este cenário, veja Registar notas de compromisso para uma aplicação externa nos suplementos móveis do Outlook.

Observação

Este ponto de extensão só é suportado no Android e iOS com uma subscrição do Microsoft 365.

O registo de eventos 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 comandos.

Os elementos do ExtensionPoint> deste tipo só podem ter um elemento subordinado: um elemento Controlo.<<>

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

As imagens especificadas no <elemento Icon> devem estar em tons de cinzento com código #919191 hexadecima ou equivalente noutros 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

Este ponto de extensão permite que um suplemento seja ativado com base em eventos suportados nos fatores de forma móvel e de ambiente de trabalho. Para saber mais sobre a ativação baseada em eventos e para obter a lista completa de eventos suportados, veja Configurar o suplemento do Outlook para ativação baseada em eventos.

Importante

O registo de eventos 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 A localização do ficheiro 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 utilizar este ponto de extensão, consulte Funcionalidade de envio para suplementos do Outlook.

Importante

O registo de eventos 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 da funcionalidade no envio, utilizam o ponto de extensão LaunchEvent para ativar a ativação de eventos num suplemento. Para saber mais sobre as principais diferenças entre os Alertas Inteligentes e a funcionalidade de envio, consulte Diferenças entre Os Alertas Inteligentes e a funcionalidade de envio. Convidamo-lo a experimentar Alertas Inteligentes ao concluir as instruções.

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 utilizar este ponto de extensão, veja Suplementos contextuais do Outlook.

Importante

Os suplementos contextuais do Outlook baseados em entidades foram descontinuados. Como solução alternativa, implemente regras de expressão regulares no seu suplemento contextual. Para obter orientações sobre como implementar estas regras, veja Suplementos contextuais do Outlook.

O elemento versionOverrides que contém tem de 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 carateres e tem de ser definido para 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 programadores podem controlar as entidades realçadas com o atributo Realçar do <elemento Regra> para o ItemHasRegularExpressionMatch tipo 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.

  • Se utilizar uma única regra, o atributo Realçar TEM de ser definido como all.
  • Se utilizar um RuleCollection tipo de regra com Mode="And" para combinar várias regras, pelo menos uma das regras TEM de ter o atributo Realçar definido como all.
  • Se utilizar um RuleCollection tipo de regra com Mode="Or" para combinar múltiplas regras, todas as regras TÊM de ter o atributo Realçar definido como all.

Exemplo do evento DetectedEntity

<ExtensionPoint xsi:type="DetectedEntity">
  <Label resid="Context.Label"/>
  <SourceLocation resid="DetectedEntity.URL" />
  <Rule xsi:type="RuleCollection" Mode="And">
    <Rule xsi:type="ItemIs" ItemType="Message"/>
    <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="videoURL" RegExValue="http://www\.youtube\.com/watch\?v=[a-zA-Z0-9_-]{11}" PropertyName="BodyAsPlaintext"/>
  </Rule>
</ExtensionPoint>

ReportPhishingCommandSurface

Este ponto de extensão ativa o suplemento spam-reporting no friso do Outlook e impede-o de aparecer no final do friso ou no menu de excesso.

Para saber mais sobre como implementar a funcionalidade de relatórios de spam no seu suplemento, veja Implementar um suplemento integrado de relatórios de spam.

Elementos filho

Elemento Descrição
ReportPhishingCustomization element (Elemento ReportPhishingCustomization) Configura o botão do friso e a caixa de diálogo de pré-processamento de um suplemento spam-reporting.

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>