Compartilhar via


Implementing the IRibbonExtensibility Interface

A Microsoft Outlook add-in that customizes the ribbon, shortcut menus, new-item menus, or Microsoft Office Backstage view must implement the following interfaces:

  • DTExtensibility2

  • IRibbonExtensibility](.. /.. /.. /api/Office.IRibbonExtensibility.md)

Nos suplementos do Visual C# e do Visual Basic, você deve implementar as interfaces na mesma classe. Depois de implementar o Office.IRibbonExtensibility, use o método IRibbonExtensibility.GetCustomUI para retornar a marcação XML para sua interface do usuário personalizada do Outlook. A maneira como o Outlook chama o GetCustomUI, e quando, é exclusiva entre os aplicativos do Microsoft Office:

  • Office calls GetCustomUI during Outlook startup to load ribbon customizations for the explorers.
  • Office calls GetCustomUI to load inspector-specific ribbon customizations when the first instance of a given inspector type, such as an appointment or contact inspector, is displayed.
  • Viewing an item in the Reading Pane does not cause GetCustomUI to be called because the ribbon is not displayed in the Reading Pane.

The ribbon ID is a string that is passed from Office to GetCustomUI and that specifies the UI customization to load. Add-in developers can use this string to determine the custom XML markup to return to Outlook. Você também pode usar a identificação da faixa de opções para determinar o tipo de item do Outlook a ser exibido.

Em alguns casos, como um MailItem ou PostItem, o Outlook chama GetCustomUI uma vez quando a primeira nota de composição é exibida (em que RibbonID = Microsoft.Outlook.Mail.Compose) e outra vez quando a primeira nota de leitura é exibida (onde RibbonID = Microsoft.Outlook.Mail.Read).

O Outlook usa as identificações de faixa exclusivas a seguir.

Identificação de faixa Classe de mensagem
Microsoft.OMS.MMS.Compose IPM. Note.Mobile.MMS.*
Microsoft.OMS.MMS.Read IPM. Note.Mobile.MMS.*
Microsoft.OMS.SMS.Compose IPM. Note.Mobile.MMS.*
Microsoft.OMS.SMS.Read IPM. Note.Mobile.MMS.*
Microsoft.Outlook.Appointment IPM. Nomeação.*
Microsoft.Outlook.Contact IPM. Contato.*
Microsoft.Outlook.DistributionList IPM. DistList.*
Microsoft.Outlook.Journal IPM. Atividade.*
Microsoft.Outlook.Mail.Compose IPM. Nota.*
Microsoft.Outlook.Mail.Read IPM. Nota.*
Microsoft.Outlook.MeetingRequest.Read IPM.Schedule.Meeting.Request or IPM.Schedule.Meeting.Canceled
Microsoft.Outlook.MeetingRequest.Send IPM.Schedule.Meeting.Request
Microsoft.Outlook.Post.Compose IPM.Post.*
Microsoft.Outlook.Post.Read IPM.Post.*
Microsoft.Outlook.Report IPM. Relatório.*
Microsoft.Outlook.Resend IPM. Reenviar.*
Microsoft.Outlook.Response.Compose IPM. Agendar.Meeting.Resp.*
Microsoft.Outlook.Response.CounterPropose IPM. Agendar.Meeting.Resp.*
Microsoft.Outlook.Response.Read IPM. Agendar.Meeting.Resp.*
Microsoft.Outlook.RSS IPM. Post.Rss
Microsoft.Outlook.Sharing.Compose IPM. Compartilhar.*
Microsoft.Outlook.Sharing.Read IPM. Compartilhar.*
Microsoft.Outlook.Task IPM. Tarefa. e IPM. TaskRequest.
Microsoft.Outlook.Explorer Não aplicável. Essa ID de faixa de opções permite que você retorne XML para faixas de opções de explorador, menus de atalho e exibição de bastidores.

| [! OBSERVAÇÃO] | Notas pegajosas não implementam a faixa de opções, portanto, IPM. StickyNote não está listado na tabela de IDs de faixa de opções e classes de mensagem.

Para todos os valores de ID da faixa de opções, exceto para Microsoft.Outlook.Explorer, observe que a classe de mensagem correspondente está listada como IPM. Tipo. na tabela. Isso significa que a primeira instância da classe de mensagem base (por exemplo, IPM.Contact), ou de uma classe de mensagem personalizada derivada (IPM.Contact.ShoeStore) que aparece em um inspetor, faz com que o Outlook chame GetCustomUI.

Como uma classe de mensagem base compartilha a mesma faixa de opções XML com as classes de mensagem personalizadas derivadas dela e, como o Outlook chama GetCustomUI apenas uma vez por ID de faixa de opções, você não pode especificar uma marcação XML de faixa de opções que é aplicada exclusivamente a uma classe de mensagem personalizada derivada e não à classe de mensagem base. However, if you want controls to appear in the ribbon on inspectors for one custom message class and not all other message classes with the same base message class, do the following:

  1. In GetCustomUI, return the XML markup for the ribbon ID for the custom message class (for example, IPM.Contact.ShoeStore) to the ribbon. All ribbons that are used by items with the same base message class (for example, IPM.Contact) will contain the added controls.
  2. In the ribbon XML, specify IRibbonControl.Context callbacks for each tab, group, and control that is specific to the custom message class. These callbacks will be used to display the controls for the custom message class and to hide the controls for the base message class and all other message classes with the same base message class.
  3. In each getVisible callback, cast the IRibbonControl.Context parameter that is passed to the callback to an Outlook Inspector object. Use the MessageClass property of Inspector.CurrentItem to determine whether to return True or False in the getVisible callback.

To customize the ribbon on all or multiple Outlook message classes, use the following recommendations:

  • Para personalizar a primeira guia interna em todos os inspetores do Outlook, você deve fornecer XML de faixa de opções separada para diferentes IDs de faixa de opções, pois as primeiras guias internas não têm o mesmo nome em todas as IDs de faixa de opções.
  • To customize the ribbon on multiple Outlook inspectors, you might have to supply separate ribbon XML for different ribbon IDs depending upon the tab name.

Para obter mais informações, incluindo exemplos, sobre como personalizar faixas de opções de explorador e inspetor, menus de atalho e exibição de bastidores, consulte Estender a Interface do Usuário no Outlook 2010 no site do MSDN.

Confira também

Extensibilidade da interface do usuário fluente do Office para Visão geral do Outlook da visão geral de erros de detecção de objeto IRibbonUIdo objeto IRibbonControl

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.