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 de solo complemento.
Atributos
Atributo | Obligatorio | Descripción |
---|---|---|
xsi:type | Sí | 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 los comandos de complemento de Excel, OneNote, PowerPoint y Word
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 hacer clic con el botón derecho (o seleccionar y mantener presionado) 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 (o seleccionar y mantener presionado) 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.
|
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
- MessageComposeCommandSurface
- AppointmentOrganizerCommandSurface
- AppointmentAttendeeCommandSurface
- Módulo (solo se puede usar en DesktopFormFactor)
- MobileMessageReadCommandSurface
- MobileOnlineMeetingCommandSurface
- MobileLogEventAppointmentAttendee
- LaunchEvent
- Events
- DetectedEntity
- ReportPhishingCommandSurface
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.
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 MobileButton
en .
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 MobileButton
en .
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.
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.
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
Ahora se han retirado los complementos contextuales de Outlook basados en entidades. Como solución alternativa, implemente reglas de expresión regular en el complemento contextual. Para obtener instrucciones sobre cómo implementar estas reglas, vea Complementos contextuales de Outlook.
El elemento que contiene VersionOverrides debe tener un valor de atributo xsi:type de VersionOverridesV1_1
.
Nota:
- Este tipo de elemento está disponible para los clientes de Outlook compatibles con los conjuntos de requisitos 1.6 y posteriores.
- El registro de eventos Mailbox y Item no está disponible con este punto de extensión.
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 el tipo de ItemHasRegularExpressionMatch
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.
- Si se usa una sola regla, el atributo Highlight debe establecerse en
all
. - Si usa un
RuleCollection
tipo de regla conMode="And"
para combinar varias reglas, al menos una de las reglas debe tener el atributo Highlight establecido enall
. - Si usa un
RuleCollection
tipo de regla conMode="Or"
para combinar varias reglas, todas las reglas DEBEN tener el atributo Highlight establecido enall
.
Ejemplo de 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 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.
Elementos secundarios
Elemento | Descripción |
---|---|
Elemento ReportPhishingCustomization | 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>