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
Versão do Microsoft Office
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
Chamar o código no nível de aplicativo Adicionar-ins de Outro soluções do Office