Элемент ExtensionPoint

Определяет, где доступны функции надстройки в пользовательском интерфейсе Office. Элемент <ExtensionPoint> является дочерним элементом AllFormFactors, DesktopFormFactor или MobileFormFactor.

Тип надстройки: документ, почта, презентация, область задач, книга

Допустимо только в следующих схемах VersionOverrides:

  • Область задач 1.0
  • Почта 1.0
  • Почта 1.1

Дополнительные сведения см. в статье "Переопределения версий в манифесте только для надстроек".

Атрибуты

Атрибут Обязательный Описание
xsi:type Да Тип определяемой точки расширения. Возможные значения зависят от ведущего приложения Office, определенного в значении родительского <элемента Host> .

Точки расширения для Excel, Outlook, PowerPoint и Word

  • LaunchEvent — активирует задачи на основе событий приложения, таких как открытие.

LaunchEvent

Эта точка расширения позволяет активировать надстройку на основе поддерживаемых событий как в настольном, так и в мобильном режиме. Дополнительные сведения об активации на основе событий и полный список поддерживаемых событий см. в разделе Активация надстроек с помощью событий.

Важно!

Регистрация Mailbox и Itemсобытия недоступны с этой точкой расширения.

Дочерние элементы

Элемент Описание
LaunchEvents Список событий LaunchEvent для активации на основе событий.
SourceLocation Расположение исходного файла JavaScript.

Важно! Значениеresid<элемента SourceLocation> должно совпадать со resid значением <элемента Runtime>, представляющего среду выполнения браузера. Например, если определена среда выполнения как <Runtime resid="WebViewRuntime.Url">, укажите <SourceLocation resid="WebViewRuntime.Url"/>

Пример

<ExtensionPoint xsi:type="LaunchEvent">
  <LaunchEvents>
    <LaunchEvent Type="OnNewMessageCompose" FunctionName="onMessageComposeHandler"/>
    <LaunchEvent Type="OnNewAppointmentOrganizer" FunctionName="onAppointmentComposeHandler"/>
  </LaunchEvents>
  <!-- Identifies the runtime to be used. The resid value must match the resid value of the Runtime element that represents the browser runtime. -->
  <SourceLocation resid="WebViewRuntime.Url"/>
</ExtensionPoint>

Точки расширения для команд надстроек Excel, OneNote, PowerPoint и Word

На некоторых или всех из этих узлов доступны три типа точек расширения.

  • PrimaryCommandSurface (допустимо в Word, Excel, PowerPoint и OneNote) — лента в Office.
  • ContextMenu (действительно в Word, Excel, PowerPoint и OneNote) — контекстное меню, которое появляется при щелчке правой кнопкой мыши (или выборе и удержании) в пользовательском интерфейсе Office.
  • CustomFunctions (применимо только для Excel) — настраиваемая функция, написанная на JavaScript для Excel.

Следующие подразделы содержат дочерние элементы и примеры этих типов точек расширения.

PrimaryCommandSurface

Основной панелью команд в Word, Excel, PowerPoint и OneNote является лента.

Дочерние элементы

Элемент Описание
CustomTab Обязательный, если требуется добавить пользовательскую вкладку в ленту (с помощью элемента PrimaryCommandSurface). Если вы используете <элемент CustomTab> , вы не сможете использовать <элемент OfficeTab> . Атрибут id является обязательным. Не может быть более одного <дочернего элемента CustomTab.>
OfficeTab Необходимо, если вы хотите расширить стандартную вкладку ленты приложения Office (с помощью PrimaryCommandSurface). Если вы используете <элемент OfficeTab> , вы не сможете использовать <элемент CustomTab> .

Важно!

В надстройке не может быть больше одного <элемента ExtensionPoint>, имеющего дочерний <элемент CustomTab>; и один <элемент ExtensionPoint> может иметь только одну <CustomTab,> поэтому на всех <элементах ExtensionPoint будет только один элемент CustomTab>>.<

Пример

В следующем примере показано, как использовать <элемент ExtensionPoint> с PrimaryCommandSurface. Она добавляет настраиваемую вкладку на ленту.

Важно!

Убедитесь, что для элементов, которые содержат атрибут 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>

Контекстное меню

Контекстное меню — это контекстное меню, которое появляется при щелчке правой кнопкой мыши (или выборе и удержании) пользовательского интерфейса Office.

Дочерние элементы

Элемент Описание
OfficeMenu Обязательный при добавлении команд надстройки в контекстное меню по умолчанию (с помощью элемента ContextMenu). Атрибуту id необходимо задать одну из следующих строк.
  • ContextMenuText , если контекстное меню должно открываться, когда пользователь щелкает правой кнопкой мыши (или выбирает и удерживает) выделенный текст.
  • ContextMenuCell , если контекстное меню должно открываться, когда пользователь щелкает правой кнопкой мыши (или выбирает и удерживает) ячейку в электронной таблице Excel.

Пример

Ниже описывается контекстное меню, открываемое для выделенного текста в поддерживаемом приложении Office. Используемый элемент управления контекстного меню имеет тип Button.

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

Настраиваемые функции

Специальная функция, написанная на JavaScript или TypeScript для Excel.

Дочерние элементы

Элемент Описание
Script Обязательно. Ссылки на файл JavaScript с определением и регистрационным кодом пользовательской функции.
Page Обязательно. Ссылка на HTML-страницу для пользовательских функций.
Метаданные Обязательно. Определяет параметры метаданных, используемые пользовательской функцией в Excel.
Namespace Необязательный параметр. Определяет пространство имен, используемых пользовательской функцией в Excel.

Пример

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

Точки расширения для Outlook

MessageReadCommandSurface

Эта точка расширения помещает кнопки на панель команд для чтения почты. В классической версии Outlook эта панель отображается на ленте.

Дочерние элементы

Элемент Описание
OfficeTab Добавляет команды на вкладку ленты по умолчанию.
CustomTab Добавляет команды на специальную вкладку ленты.

Пример элемента OfficeTab

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

Пример элемента CustomTab

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

MessageComposeCommandSurface

Эта точка расширения добавляет кнопки на ленту для надстроек, использующих форму создания сообщения.

Дочерние элементы

Элемент Описание
OfficeTab Добавляет команды на вкладку ленты по умолчанию.
CustomTab Добавляет команды на специальную вкладку ленты.

Пример элемента OfficeTab

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

Пример элемента CustomTab

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

AppointmentOrganizerCommandSurface

Эта точка расширения добавляет кнопки на ленту для формы, предназначенной для организатора собрания.

Дочерние элементы

Элемент Описание
OfficeTab Добавляет команды на вкладку ленты по умолчанию.
CustomTab Добавляет команды на специальную вкладку ленты.

Пример элемента OfficeTab

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

Пример элемента CustomTab

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

AppointmentAttendeeCommandSurface

Эта точка расширения добавляет кнопки на ленту для формы, предназначенной для участника собрания.

Дочерние элементы

Элемент Описание
OfficeTab Добавляет команды на вкладку ленты по умолчанию.
CustomTab Добавляет команды на специальную вкладку ленты.

Пример элемента OfficeTab

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

Пример элемента CustomTab

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

Module

Эта точка расширения добавляет надстройку расширения модуля на панель навигации Outlook. Он также добавляет кнопки на настраиваемую вкладку на ленте для расширения модуля. Дополнительные сведения о создании расширений модуля см. в статье Надстройки расширения модуля для Outlook.

Важно!

Регистрация Mailbox и Itemсобытия недоступны с этой точкой расширения.

Дочерние элементы

Элемент Описание
SourceLocation Определяет расположение HTML-файла, который настраивает основной пользовательский интерфейс надстройки.
Label Указывает метку расширения модуля. Его атрибут resid может содержать не более 32 символов и должен быть установлен в значение атрибута <id элемента String> в элементе ShortStrings.
CommandSurface Добавляет группу кнопок надстроек на настраиваемую вкладку ленты.

Пример

<ExtensionPoint xsi:type="Module">
  <SourceLocation resid="residExtensionPointUrl"/>
  <Label resid="residExtensionPointLabel"/>
  <CommandSurface>
    <CustomTab id="idTab">
      <Group id="idGroup">
        <Label resid="residGroupLabel"/>
        <Control xsi:type="Button" id="group.changeToAssociate">
          <Label resid="residChangeToAssociateLabel"/>
          <Supertip>
            <Title resid="residChangeToAssociateLabel"/>
            <Description resid="residChangeToAssociateDesc"/>
          </Supertip>
          <Icon>
            <bt:Image size="16" resid="residAssociateIcon16"/>
            <bt:Image size="32" resid="residAssociateIcon32"/>
            <bt:Image size="80" resid="residAssociateIcon80"/>
          </Icon>
          <Action xsi:type="ExecuteFunction">
            <FunctionName>changeToAssociateRate</FunctionName>
          </Action>
        </Control>
      </Group>
      <Label resid="residCustomTabLabel"/>
    </CustomTab>
  </CommandSurface>
</ExtensionPoint>

MobileMessageReadCommandSurface

Эта точка расширения помещает кнопки на панель команд для чтения почты в форм-факторе мобильного устройства.

Дочерние элементы

Элемент Описание
Group Добавляет группу кнопок на панель команд.

<Элементы ExtensionPoint> этого типа могут иметь только один дочерний элемент: <элемент Group> .

<Управляющие> элементы, содержащиеся в этой точке расширения, должны иметь атрибут xsi:type , установленный в MobileButton.

Пример

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

MobileOnlineMeetingCommandSurface

Эта точка расширения помещает соответствующий режим переключатель на панели команд для встречи в мобильном форм-факторе. Организатор собрания может создать собрание по сети. Впоследствии участник может присоединиться к собранию по сети. Дополнительные сведения об этом сценарии см. в статье "Создание надстройки Outlook Mobile для поставщика собраний по сети".

Примечание.

Эта точка расширения поддерживается только на Android и iOS при наличии подписки Microsoft 365.

Регистрация Mailbox и Itemсобытия недоступны с этой точкой расширения.

Дочерние элементы

Элемент Описание
Control Добавляет кнопку в область команд.

<Элементы ExtensionPoint> этого типа могут иметь только один дочерний элемент: <элемент Control> .

Элемент< управления>, содержащийся в этой точке расширения, должен иметь атрибут xsi:type, установленный в MobileButton.

Изображения, указанные в элементе Icon>, должны быть в оттенках< серого с шестнадцатеричным кодом #919191 или его эквивалентом в других цветовых форматах.

Пример

<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

Эта точка расширения контекстно помещает кнопку действия журнала в область команд для встречи в мобильном форм-факторе. Участники встречи, у которых установлена надстройка, могут одним щелчком сохранить свои заметки о встрече во внешнем приложении. Эта точка расширения поддерживает функциональность панели задач и функциональных команд. Дополнительные сведения об этом сценарии см. в статье Регистрация заметок о встречах во внешнем приложении в надстройках Outlook Mobile.

Примечание.

Эта точка расширения поддерживается только на Android и iOS при наличии подписки Microsoft 365.

Регистрация Mailbox и Itemсобытия недоступны с этой точкой расширения.

Дочерние элементы

Элемент Описание
Control Добавляет кнопку в область команд.

<Элементы ExtensionPoint> этого типа могут иметь только один дочерний элемент: <элемент Control> .

Элемент< управления>, содержащийся в этой точке расширения, должен иметь атрибут xsi:type, установленный в MobileButton.

Изображения, указанные в элементе Icon>, должны быть в оттенках< серого с шестнадцатеричным кодом #919191 или его эквивалентом в других цветовых форматах.

Пример

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

События

Эта точка расширения добавляет обработчик для указанного события. Дополнительные сведения об использовании этой точки расширения см. в статье Функция отправки для надстроек Outlook.

Важно!

Регистрация Mailbox и Itemсобытия недоступны с этой точкой расширения.

Примечание.

Интеллектуальные оповещения, являющиеся более новой версией функции при отправке, используют точку расширения LaunchEvent для включения активации событий в надстройке. Дополнительные сведения об основных различиях между интеллектуальными оповещениями и функцией при отправке см. в статье "Различия между интеллектуальными оповещениями и функцией при отправке". Приглашаем вас опробовать интеллектуальные оповещения, пройдя пошаговое руководство.

Элемент Описание
Event Задает событие и функцию его обработчика.

Пример события ItemSend

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

DetectedEntity

Эта точка расширения добавляет активацию контекстной надстройки для указанного типа сущности. Дополнительные сведения об использовании этой точки расширения см. в статье "Контекстные надстройки Outlook".

Важно!

Контекстно-зависимые надстройки Outlook на основе сущностей теперь упразднены. В качестве альтернативного решения можно реализовать правила регулярных выражений в контекстной надстройке. Рекомендации по реализации этих правил см. в статье "Контекстные надстройки Outlook".

Содержащий элемент VersionOverrides должен иметь значение атрибута xsi:type , равное VersionOverridesV1_1.

Примечание.

Элемент Описание
Label Задает метку для надстройки в контекстном окне.
SourceLocation Задает URL-адрес контекстного окна.
Rule Задает одно или несколько правил, определяющих, когда активируется надстройка.

Label

Обязательный элемент. Метка группы. Атрибут resid может содержать не более 32 символов и должен быть установлен в значение атрибута <id элемента String> в элементе <ShortStrings> в элементе Resources.

Требования к выделению

Единственный способ, которым пользователь может активировать контекстную надстройку, — взаимодействие с выделенной сущностью. Разработчики могут управлять тем, какие сущности выделяться, с помощью атрибута <Highlight элемента правила> для ItemHasRegularExpressionMatch типа правила.

Однако следует учитывать некоторые ограничения. Они гарантируют, что в соответствующих сообщениях и встречах всегда есть выделенная сущность, с помощью которой пользователь может активировать надстройку.

  • При использовании одного правила атрибуту Highlight НЕОБХОДИМО задать значение all.
  • При использовании RuleCollection типа Mode="And" правила для объединения нескольких правил хотя бы одно из правил ДОЛЖНО иметь значение .all
  • При использовании RuleCollection типа правила для Mode="Or" объединения нескольких правил все правила ДОЛЖНЫ иметь атрибут Highlight со значением all.

Пример события 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

Эта точка расширения активирует надстройку для отчетов о спаме на ленте Outlook и предотвращает ее появление в конце ленты или в меню переполнения.

Дополнительные сведения о том, как включить в надстройку отчеты о спаме, см. в статье "Реализация интегрированной надстройки для отчетов о спаме".

Дочерние элементы

Элемент Описание
Элемент ReportPhishingCustomization Настраивает кнопку ленты и диалоговое окно предварительной обработки надстройки, сообщающей о спаме.

Пример

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