Элемент ExtensionPoint

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

Тип надстройки: Область задач, почта

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

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

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

Атрибуты

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

Точки расширения для команд надстроек 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>
      <Tooltip resid="residToolTip" />
      <Control xsi:type="Button" id="Contoso.Button1">
          <!-- information about the control -->
      </Control>
      <!-- other controls, as needed -->
    </Group>
  </CustomTab>
</ExtensionPoint>

Contextmenu

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

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

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

Пример

Ниже показано, как добавить пользовательское контекстное меню в ячейки электронной таблицы 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>

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

Пользовательская функция, написанная на 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

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

Важно!

Регистрация событий почтовых ящиков и элементов недоступна в этой точке расширения.

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

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

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 для поставщика собраний по сети.

Примечание.

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

Регистрация событий почтовых ящиков и элементов недоступна в этой точке расширения.

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

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

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

Элемент <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 для мобильных устройств.

Примечание.

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

Регистрация событий почтовых ящиков и элементов недоступна в этой точке расширения.

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

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

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

Элемент <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>

LaunchEvent

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

Важно!

Регистрация событий почтовых ящиков и элементов недоступна в этой точке расширения.

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

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

Пример

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

События

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

Важно!

Регистрация событий почтовых ящиков и элементов недоступна в этой точке расширения.

Примечание.

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

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

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

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

DetectedEntity

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

Важно!

Контекстные надстройки Outlook на основе сущностей будут прекращены во 2-м квартале 2024 г. Работа по прекращению использования этой функции начнется в мае и продолжится до конца июня. После июня контекстные надстройки больше не смогут обнаруживать сущности в почтовых элементах для выполнения задач над ними. Следующие API также будут прекращены.

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

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

Дополнительные сведения см. в разделе Прекращение использования контекстных надстроек Outlook на основе сущностей.

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

Примечание.

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

Label

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

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

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

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

  • Сущности EmailAddress и Url не поддерживают выделение, поэтому их нельзя использовать для активации надстройки.
  • При использовании одного правила атрибуту Highlight должно быть присвоено значение all.
  • Если используется RuleCollection тип правила с для Mode="AND" объединения нескольких правил, по крайней мере для одного из правил атрибуту Highlight должно быть присвоено значение all.
  • Если используется RuleCollection тип правила с Mode="OR" для объединения нескольких правил, для всех правил атрибуту Highlight должно быть присвоено значение all.

Пример события 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 (предварительная версия)

Эта точка расширения активирует надстройку, сообщающую о спаме, на ленте 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>