Personalizando os recursos de interface do usuário usando Interfaces de extensibilidade

Ferramentas de desenvolvimento do Office no Visual Studio fornecem as classes e designers que manipulam muitos detalhes de implementação quando você usa o para criar os painéis de tarefa personalizada, personalizações de fita, e formulário do Outlook regiões em um suplemento ao aplicativo.Em o entanto, você também pode implementar a interface de extensibilidade para cada recurso você mesmo se você tiver requisitos especiais.

Aplicável a: As informações neste tópico se aplicam a projetos em níveis de aplicativo o Microsoft Office 2013 e o Microsoft Office 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Visão geral de interfaces de extensibilidade

Microsoft Office define um conjunto de interfaces de extensibilidade de suplementos COM pode implementar para personalizar determinados recursos, como a fita.Essas classes fornecem o controle completo sobre os recursos que fornecem acesso a.Em o entanto, implementar essas interfaces requer algum conhecimento de interoperabilidade COM em código gerenciado.Em alguns casos, o modelo de programação de essas interfaces não é também intuitiva para os desenvolvedores que estão acostumados a .NET Framework.

Quando você cria um suplemento usando os modelos de projeto do Office no Visual Studio, você não tem que implementar as interfaces de extensibilidade para personalizar recursos como fita.Visual Studio Tools for Office Runtime implementar essas interfaces para você.Em vez de isso, você pode usar classes mais intuitivas e designers fornecidos pelo Visual Studio.Em o entanto, você ainda pode implementar as interfaces de extensibilidade diretamente no suplemento se você desejar.

Para obter mais informações sobre as classes e de designer que o Visual Studio fornece para esses recursos, consulte Painéis de tarefas personalizados, Designer de faixa de opções, e Criação de regiões de formulário do Outlook.

Interfaces que de extensibilidade você pode implementar em um suplemento

A tabela a seguir lista as interfaces de extensibilidade você pode implementar e aplicativos que as suportam.

Interface

Descrição

Aplicativos

Microsoft.Office.Core.IRibbonExtensibility

Implementar essa interface para personalizar a fita interface do usuário.

ObservaçãoObservação
Você pode adicionar um item de fita (XML) a um projeto para gerar uma implementação padrão de Microsoft.Office.Core.IRibbonExtensibility no suplemento.Para obter mais informações, consulte Faixa de opções XML.

Excel 2013

InfoPath 2013

Outlook 2013

PowerPoint 2013

Project 2013

Visio 2013

Word 2013

Excel 2010

InfoPath 2010

Outlook 2010

O Powerpoint 2010

Project 2010

Visio 2010

palavras 2010

Microsoft.Office.Core.ICustomTaskPaneConsumer

Implementar essa interface para criar um painel de tarefa personalizada.

Excel 2013

Outlook 2013

PowerPoint 2013

Word 2013

Excel 2010

Outlook 2010

O Powerpoint 2010

palavras 2010

Microsoft.Office.Interop.Outlook.FormRegionStartup

Implementar essa interface para criar uma região de formulário do Outlook.

Outlook 2013

Outlook 2010

Há várias outras interfaces de extensibilidade que são definidas pelo Microsoft Office, como Microsoft.Office.Core.IBlogExtensibility, Microsoft.Office.Core.EncryptionProvider, e Microsoft.Office.Core.SignatureProvider.Visual Studio não oferece suporte ao implementar essas interfaces em um suplemento criados usando os modelos de projeto do Office.

Usando interfaces de extensibilidade

Para personalizar um recurso de interface do usuário usando uma interface de extensibilidade, implemente a interface apropriada no projeto do suplemento.Em seguida, substituir o método de RequestService para retornar uma instância da classe que implementa a interface.

Para um aplicativo de exemplo que demonstra como implementar Microsoft.Office.Core.IRibbonExtensibility, Microsoft.Office.Core.ICustomTaskPaneConsumer, e as interfaces de Microsoft.Office.Interop.Outlook.FormRegionStartup em um suplemento para Outlook, consulte o exemplo do gerenciador de interface do usuário em Amostras de desenvolvimento do Office.

Bb608601.collapse_all(pt-br,VS.110).gifExemplo de implementar uma interface de extensibilidade

O exemplo de código a seguir demonstra uma implementação simples de interface de Microsoft.Office.Core.ICustomTaskPaneConsumer para criar um painel de tarefa personalizada.este exemplo define duas classes:

  • A classe de TaskPaneHelper implementa Microsoft.Office.Core.ICustomTaskPaneConsumer para criar e exibir um painel de tarefa personalizada.

  • A classe de TaskPaneUI fornece uma interface de usuário do painel de tarefas.Os atributos para a classe de TaskPaneUI tornam a classe visível COM a, que permite que aplicativos do Microsoft Office descobrir a classe.Em esse exemplo, a interface do usuário é UserControlvazia, mas você pode adicionar controles modificando o código.

    ObservaçãoObservação

    Para expor a classe da TaskPaneUI COM, você também deve definir a propriedade de Registre para COM Interop para o projeto.Para obter mais informações, consulte Gerenciar propriedades de compilação.

Public Class TaskPaneHelper
    Implements Office.ICustomTaskPaneConsumer

    Friend taskPane As Office.CustomTaskPane

    Public Sub CTPFactoryAvailable(ByVal CTPFactoryInst As Office.ICTPFactory) _
        Implements Office.ICustomTaskPaneConsumer.CTPFactoryAvailable

        If CTPFactoryInst IsNot Nothing Then
            ' Create a new task pane.
            taskPane = CTPFactoryInst.CreateCTP( _
                "Microsoft.Samples.Vsto.VB.TaskPaneUI", "Contoso")
            taskPane.Visible = True
        End If
    End Sub
End Class

<System.Runtime.InteropServices.ComVisible(True)> _
<System.Runtime.InteropServices.ProgId("Microsoft.Samples.Vsto.VB.TaskPaneUI")> _
<System.Runtime.InteropServices.Guid("FFA0920E-F7A5-453d-8AB2-249F4C25B4B2")> _
Public Class TaskPaneUI
    Inherits UserControl
End Class
public class TaskPaneHelper : Office.ICustomTaskPaneConsumer
{
    internal Office.CustomTaskPane taskPane;

    public void CTPFactoryAvailable(Office.ICTPFactory CTPFactoryInst)
    {
        if (CTPFactoryInst != null)
        {
            // Create a new task pane.
            taskPane = CTPFactoryInst.CreateCTP(
                "Microsoft.Samples.Vsto.CS.TaskPaneUI",
                "Contoso");
            taskPane.Visible = true;
        }
    }
}

[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.ProgId("Microsoft.Samples.Vsto.CS.TaskPaneUI")]
[System.Runtime.InteropServices.Guid("FFA0920E-F7A5-453d-8AB2-249F4C25B4B2")]
public class TaskPaneUI : UserControl
{
}

Para obter mais informações sobre como implementar Microsoft.Office.Core.ICustomTaskPaneConsumer, consulte Criando os painéis de tarefa personalizada no office system 2007 na documentação do Microsoft Office.

Bb608601.collapse_all(pt-br,VS.110).gifexemplo de substituir o método de RequestService

O exemplo de código a seguir demonstra como substituir o método de RequestService para retornar uma instância da classe de TaskPaneHelper o exemplo de código anterior.Verifica o valor do parâmetro de serviceGuid para determinar interface que está sendo solicitada, e então retorna um objeto que implementa a interface.

Friend taskPaneHelper1 As TaskPaneHelper

Protected Overrides Function RequestService( _
    ByVal serviceGuid As Guid) As Object

    If (serviceGuid = GetType(Office.ICustomTaskPaneConsumer).GUID) Then
        If (taskPaneHelper1 Is Nothing) Then
            taskPaneHelper1 = New TaskPaneHelper()
        End If
        Return taskPaneHelper1
    End If

    Return MyBase.RequestService(serviceGuid)
End Function
internal TaskPaneHelper taskPaneHelper1;

protected override object RequestService(Guid serviceGuid)
{
    if (serviceGuid == typeof(Office.ICustomTaskPaneConsumer).GUID)
    {
        if (taskPaneHelper1 == null)
        {
            taskPaneHelper1 = new TaskPaneHelper();
        }
        return taskPaneHelper1;
    }

    return base.RequestService(serviceGuid);
}

Consulte também

Tarefas

Como: criar projetos do Office em Visual Studio

Conceitos

Chamar código nos suplementos de nível de aplicativo de outras soluções do Office

Arquitetura dos suplementos de nível de aplicativo

Outros recursos

Passo a passo e amostras de desenvolvimento do office

Os suplementos de nível de aplicativo de programação.

Desenvolvendo soluções do Office