Personalizando recursos de interface do usuário usando interfaces de extensibilidade

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office.

Tipo de Projeto

  • Projetos de nível de aplicativo

Versão do Microsoft Office

  • Microsoft Office Sistema de 2007

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

Ferramentas do Visual Studio para o Office fornece classes e os designers que tratam muitos detalhes de implementação quando você usa-los para criar painéis de tarefas personalizados, as personalizações da Faixa de Opções e regiões de formulário do Outlook em um aplicativo-nível Adicionar - in.No entanto, você também pode implementar de interface de extensibilidade para cada recurso mesmo se você tiver requisitos especiais.

Visão geral das interfaces de extensibilidade

Aplicativos no 2007 Microsoft Office Sistema Definirm um conjunto de interfaces de extensibilidade que COM Adicionar-ins pode implementar para personalizar alguns recursos de interface do usuário.Ferramentas do Visual Studio para o Office simplifica esse processo ao implementar essas interfaces para você e fornecendo classes e designers que você pode usar em vez disso.No entanto, você também pode implementar interfaces de extensibilidade diretamente em seu Adicionar - in.

Para obter mais informações sobre as classes e designers que Ferramentas do Visual Studio para o Office fornece esses recursos, consulte Visão geral de painéis de tarefas Personalizar, Designer de Faixa de Opçõese Criar regiões de formulário do Outlook.

Você pode implementar em interfaces de extensibilidade um Adicionar - no

A tabela a seguir lista as interfaces de extensibilidade que você pode implementar e os aplicativos que oferecem suporte a eles.

Interface

Descrição

Aplicativos

Microsoft.Office.Core.IRibbonExtensibility

Implementa esta interface para personalizar a interface do usuário da Faixa de Opções.Para obter mais informações, consulte objeto IRibbonExtensibility na documentação do Microsoft Office 2007.

Observação:
Você pode Adicionar um Item de da Faixa de Opções (XML) para um projeto para gerar uma implementação padrão de Microsoft.Office.Core.IRibbonExtensibility na sua Adicionar - in.For more information, see XML da Faixa de Opções.

O Excel 2007

InfoPath 2007

Outlook 2007

PowerPoint 2007

Word 2007

Microsoft.Office.Core.ICustomTaskPaneConsumer

Implementa esta interface para criar um painel de tarefas Personalizar.Para obter mais informações, consulte objeto ICustomTaskPaneConsumer na documentação do Microsoft Office 2007.

O Excel 2007

Outlook 2007

PowerPoint 2007

Word 2007

Microsoft.Office.Interop.Outlook.FormRegionStartup

Implementa esta interface para criar uma região de formulário do Outlook.Para obter mais informações, consulte FormRegionStartup interface na documentação do Microsoft Office 2007.

Outlook 2007

Há várias Outro interfaces de extensibilidade são definidas pelos aplicativos no 2007 Microsoft Office Sistema, como Microsoft.Office.Core.IBlogExtensibility, Microsoft.Office.Core.EncryptionProvidere Microsoft.Office.Core.SignatureProvider.Ferramentas do Visual Studio para o Office não oferece suporte a implementar essas interfaces em um Adicionar-in.

Usando interfaces de extensibilidade

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

Para um aplicativo de exemplo que demonstra como implementar a Microsoft.Office.Core.IRibbonExtensibility e Microsoft.Office.Core.ICustomTaskPaneConsumer interfaces um Adicionar - in para o Excel, consulte Exemplo de serviços de tempo de execução.

Exemplo de implementação de uma interface de extensibilidade

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

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

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

    Observação:

    Para expor o Classe de TaskPaneUI para COM, você também deve definir o Registrar para interoperabilidade COM propriedade para o projeto.For more information, see Como: Registrar um componente para interoperabilidade com..

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", Type.Missing);
            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 painéis de tarefas Personalizars in the 2007 Office Sistema na documentação do Microsoft Office 2007.

Exemplo de substituindo o método RequestService

O exemplo de código a seguir demonstra como substituir o método RequestService para retornar uma instância da classe TaskPaneHelper do exemplo de código anterior.Ele verifica o valor do parâmetro serviceGuid para determinar a interface que está sendo solicitada e, em seguida, retorna um objeto que implementa essa 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

Exemplo de serviços de tempo de execução

Como: Criar o Visual Studio Tools para projetos do Office

Conceitos

Programação Application-Nível Adicionar-ins

Desenvolvendo soluções do Office

Item de host addIn

Chamar o código no nível de aplicativo Adicionar-ins de Outro soluções do Office

Arquitetura de nível de aplicativo Adicionar-ins