Elemento ExtensionPoint

Define dónde expone su función un complemento en la interfaz de usuario de Office. El <elemento ExtensionPoint> es un elemento secundario de AllFormFactors, DesktopFormFactor o MobileFormFactor.

Tipo de complemento: Panel de tareas, Correo

Solo es válido en estos esquemas VersionOverrides:

  • Panel de tareas 1.0
  • Correo 1.0
  • Correo 1.1

Para obtener más información, vea Invalidaciones de versión en el manifiesto.

Atributos

Atributo Obligatorio Descripción
xsi:type El tipo de punto de extensión que se está definiendo. Los valores posibles dependen de la aplicación host de Office definida en el valor del elemento host> principal<.

Puntos de extensión para excel, OneNote, PowerPoint y Word comandos de complemento

Hay tres tipos de puntos de extensión disponibles en algunos o todos estos hosts.

  • PrimaryCommandSurface (válido para Word, Excel, PowerPoint y OneNote): la cinta de opciones de Office.
  • ContextMenu (válido para Word, Excel, PowerPoint y OneNote): menú contextual que aparece al seleccionar y mantener presionado (o hacer clic con el botón derecho) en la interfaz de usuario de Office.
  • CustomFunctions (válido solo para Excel): función personalizada escrita en JavaScript para Excel.

Consulte las siguientes subsecciones para ver los elementos secundarios y ejemplos de estos tipos de puntos de extensión.

PrimaryCommandSurface

La superficie de comando principal en Word, Excel, PowerPoint y OneNote es la cinta de opciones.

Elementos secundarios

Elemento Descripción
CustomTab Es obligatorio si quiere agregar una pestaña personalizada a la cinta de opciones (con PrimaryCommandSurface). Si usa el <elemento CustomTab> , no puede usar el <elemento OfficeTab> . El atributo id es obligatorio. No puede haber más de un <elemento secundario CustomTab> .
OfficeTab Obligatorio si desea ampliar una pestaña predeterminada de la cinta de opciones de la aplicación de Office (mediante PrimaryCommandSurface). Si usa el <elemento OfficeTab> , no puede usar el <elemento CustomTab> .

Importante

No puede haber más de un <elemento ExtensionPoint> en el complemento que tenga un elemento CustomTab> secundario<; y que un <elemento ExtensionPoint> solo puede tener un <elemento CustomTab>, por lo que solo hay un <elemento CustomTab> en todos los <elementos ExtensionPoint>.

Ejemplo

En el ejemplo siguiente se muestra cómo usar el <elemento ExtensionPoint> con PrimaryCommandSurface. Agrega una pestaña personalizada a la cinta de opciones.

Importante

Para los elementos que contienen un atributo de id., asegúrese de especificar un id. exclusivo.

<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 menú contextual es un menú contextual que aparece al hacer clic con el botón derecho en la interfaz de usuario de Office.

Elementos secundarios

Elemento Descripción
OfficeMenu Es obligatorio si agrega comandos de complemento a un menú contextual predeterminado (con ContextMenu). El atributo id debe establecerse en una de las cadenas siguientes:
- ContextMenuText si el menú contextual debe abrirse cuando un usuario hace clic con el botón derecho en el texto seleccionado.
- ContextMenuCell si el menú contextual debe abrirse cuando el usuario hace clic con el botón derecho en una celda de una hoja de cálculo de Excel.

Ejemplo

A continuación se agrega un menú contextual personalizado a las celdas de una hoja de cálculo de 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

Función personalizada escrita en JavaScript o TypeScript para Excel.

Elementos secundarios

Elemento Descripción
Script Obligatorio. Vínculos al archivo JavaScript con la definición y el código de registro de la función personalizada.
Page Obligatorio. Vínculos a la página HTML para sus funciones personalizadas.
Metadatos Obligatorio. Define la configuración de metadatos que usa una función personalizada en Excel.
Namespace Opcional. Define el espacio de nombres que una función personalizada usa en Excel.

Ejemplo

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

Puntos de extensión solo Outlook

MessageReadCommandSurface

Este punto de extensión coloca botones en la superficie del comando de la vista de lectura de correo. En el escritorio de Outlook aparece en la cinta.

Elementos secundarios

Elemento Descripción
OfficeTab Agrega los comandos a la pestaña de la cinta predeterminada.
CustomTab Agrega los comandos a la pestaña de la cinta personalizada.

Ejemplo de OfficeTab

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

Ejemplo de CustomTab

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

MessageComposeCommandSurface

Este punto de extensión coloca botones en la cinta para complementos mediante el formulario de redacción de correo.

Elementos secundarios

Elemento Descripción
OfficeTab Agrega los comandos a la pestaña de la cinta predeterminada.
CustomTab Agrega los comandos a la pestaña de la cinta personalizada.

Ejemplo de OfficeTab

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

Ejemplo de CustomTab

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

AppointmentOrganizerCommandSurface

Este punto de extensión coloca botones en la cinta para el formulario que se muestra al organizador de la reunión.

Elementos secundarios

Elemento Descripción
OfficeTab Agrega los comandos a la pestaña de la cinta predeterminada.
CustomTab Agrega los comandos a la pestaña de la cinta personalizada.

Ejemplo de OfficeTab

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

Ejemplo de CustomTab

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

AppointmentAttendeeCommandSurface

Este punto de extensión coloca botones en la cinta para el formulario que se muestra al asistente de la reunión.

Elementos secundarios

Elemento Descripción
OfficeTab Agrega los comandos a la pestaña de la cinta predeterminada.
CustomTab Agrega los comandos a la pestaña de la cinta personalizada.

Ejemplo de OfficeTab

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

Ejemplo de CustomTab

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

Módulo

Este punto de extensión coloca botones en la cinta para la extensión de módulo.

Importante

El registro de eventos Mailbox y Item no está disponible con este punto de extensión.

Elementos secundarios

Elemento Descripción
OfficeTab Agrega los comandos a la pestaña de la cinta predeterminada.
CustomTab Agrega los comandos a la pestaña de la cinta personalizada.

MobileMessageReadCommandSurface

Este punto de extensión coloca botones en la superficie del comando de la vista de lectura de correo en el factor de forma móvil.

Elementos secundarios

Elemento Descripción
Group Agrega un grupo de botones a la superficie del comando.

<Los elementos ExtensionPoint> de este tipo solo pueden tener un elemento secundario: un <elemento Group> .

<Los elementos de control> contenidos en este punto de extensión deben tener el atributo xsi:type establecido en MobileButton.

Ejemplo

<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 punto de extensión coloca un botón de alternancia adecuado para el modo en la superficie de comandos para una cita en el factor de forma móvil. Un organizador de reuniones puede crear una reunión en línea. Posteriormente, un asistente puede unirse a la reunión en línea. Para obtener más información sobre este escenario, consulte Creación de un complemento móvil de Outlook para un proveedor de reuniones en línea.

Nota:

Este punto de extensión solo se admite en Android e iOS con una suscripción de Microsoft 365.

El registro de eventos Mailbox y Item no está disponible con este punto de extensión.

Elementos secundarios

Elemento Descripción
Control Agrega un botón a la superficie de comandos.

<Los elementos ExtensionPoint> de este tipo solo pueden tener un elemento secundario: un <elemento Control> .

El <elemento Control> contenido en este punto de extensión debe tener el atributo xsi:type establecido MobileButtonen .

Las imágenes especificadas en el <elemento Icon> deben estar en escala de grises mediante código #919191 hexadecimal o su equivalente en otros formatos de color.

Ejemplo

<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 punto de extensión coloca un botón Registrar acción contextualmente en la superficie de comandos para una cita en el factor de forma móvil. Los asistentes a la cita que tengan instalado el complemento pueden guardar sus notas de cita en una aplicación externa con un solo clic. Este punto de extensión admite funcionalidad para el panel de tareas y los comandos de función. Para obtener más información sobre este escenario, vea Registrar notas de citas en una aplicación externa en complementos móviles de Outlook.

Nota:

Este punto de extensión solo se admite en Android e iOS con una suscripción de Microsoft 365.

El registro de eventos Mailbox y Item no está disponible con este punto de extensión.

Elementos secundarios

Elemento Descripción
Control Agrega un botón a la superficie de comandos.

<Los elementos ExtensionPoint> de este tipo solo pueden tener un elemento secundario: un <elemento Control> .

El <elemento Control> contenido en este punto de extensión debe tener el atributo xsi:type establecido MobileButtonen .

Las imágenes especificadas en el <elemento Icon> deben estar en escala de grises mediante código #919191 hexadecimal o su equivalente en otros formatos de color.

Ejemplo

<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 punto de extensión permite que un complemento se active en función de los eventos admitidos en los factores de forma de escritorio y móvil. Para más información sobre la activación basada en eventos y la lista completa de eventos admitidos, consulte Configuración del complemento de Outlook para la activación basada en eventos.

Importante

El registro de eventos Mailbox y Item no está disponible con este punto de extensión.

Elementos secundarios

Elemento Descripción
LaunchEvents Lista de LaunchEvent para la activación basada en eventos.
SourceLocation Ubicación del archivo JavaScript de origen.

Ejemplo

<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 punto de extensión agrega un controlador de eventos para un evento especificado. Para obtener más información sobre el uso de este punto de extensión, vea Característica de envío para complementos de Outlook.

Importante

El registro de eventos Mailbox y Item no está disponible con este punto de extensión.

Nota:

Alertas inteligentes, que es una versión más reciente de la característica de envío, usa el punto de extensión LaunchEvent para habilitar la activación de eventos en un complemento. Para obtener más información sobre las diferencias clave entre las alertas inteligentes y la característica de envío, consulte Diferencias entre alertas inteligentes y la característica de envío. Le invitamos a probar alertas inteligentes completando el tutorial.

Elemento Descripción
Event Especifica el evento y la función del controlador de eventos.

Ejemplo del evento ItemSend

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

DetectedEntity

Este punto de extensión agrega una activación de complemento contextual en un tipo de entidad especificado. Para obtener más información sobre el uso de este punto de extensión, vea Complementos contextuales de Outlook.

Importante

Los complementos contextuales de Outlook basados en entidades se retirarán en el segundo trimestre de 2024. El trabajo para retirar esta característica comenzará en mayo y continuará hasta finales de junio. Después de junio, los complementos contextuales ya no podrán detectar entidades en elementos de correo para realizar tareas en ellos. También se retirarán las siguientes API.

Para ayudar a minimizar las posibles interrupciones, se seguirá admitiendo lo siguiente después de que se retiren los complementos contextuales basados en entidades.

  • Se está desarrollando una implementación alternativa del botón Unirse a la reunión , que se activa mediante complementos de reunión en línea. Una vez finalizada la compatibilidad con complementos contextuales basados en entidades, los complementos de reunión en línea pasarán automáticamente a la implementación alternativa para activar el botón Unirse a la reunión .
  • Las reglas de expresión regular seguirán siendo compatibles después de retirar los complementos contextuales basados en entidades. Se recomienda actualizar el complemento contextual para usar reglas de expresión regular como solución alternativa. Para obtener instrucciones sobre cómo implementar estas reglas, vea Usar reglas de activación de expresiones regulares para mostrar un complemento de Outlook.

Para obtener más información, vea Retirada de complementos contextuales de Outlook basados en entidades.

El elemento que contiene VersionOverrides debe tener un valor de atributo xsi:type de VersionOverridesV1_1.

Nota:

Elemento Descripción
Label Especifica la etiqueta del complemento en la ventana contextual.
SourceLocation Especifica la URL para la ventana contextual.
Rule Especifica la regla o reglas que determinan cuándo se activa un complemento.

Label

Obligatorio. La etiqueta del grupo. El atributo resid no puede tener más de 32 caracteres y debe establecerse en el valor del atributo id de un <elemento String> en el <elemento ShortStrings> del elemento Resources .

Requisitos de resaltado

La única manera que tiene un usuario de activar un complemento contextual es para interactuar con una entidad resaltada. Los desarrolladores pueden controlar qué entidades se resaltan mediante el atributo Highlight del <elemento Rule> para y ItemHasRegularExpressionMatch los ItemHasKnownEntity tipos de regla.

En cambio, hay algunas limitaciones que tener en cuenta. Estas limitaciones se usan para garantizar que siempre habrá una entidad resaltada en citas o mensajes aplicables para proporcionar al usuario una manera de activar el complemento.

  • Los tipos de entidad EmailAddress y Url no pueden resaltarse, y por lo tanto, no pueden usarse para activar un complemento.
  • Si se usa una sola regla, el atributo Highlight debe establecerse en all.
  • Si usa un RuleCollection tipo de regla con Mode="AND" para combinar varias reglas, al menos una de las reglas debe tener el atributo Highlight establecido en all.
  • Si usa un RuleCollection tipo de regla con Mode="OR" para combinar varias reglas, todas las reglas DEBEN tener el atributo Highlight establecido en all.

Ejemplo de 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 (versión preliminar)

Este punto de extensión activa el complemento de informes de correo no deseado en la cinta de Opciones de Outlook e impide que aparezca al final de la cinta de opciones o en el menú de desbordamiento.

Para obtener más información sobre cómo implementar la característica de informes de correo no deseado en el complemento, consulte Implementación de un complemento integrado de informes de correo no deseado (versión preliminar).

Elementos secundarios

Elemento Descripción
Elemento ReportPhishingCustomization (versión preliminar) Configura el botón de cinta de opciones y el cuadro de diálogo de preprocesamiento de un complemento de informes de correo no deseado.

Ejemplo

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