Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As ferramentas de desenvolvimento do Office no Visual Studio fornecem classes e designers que lidam com muitos detalhes de implementação ao usá-los para criar painéis de tarefas personalizados, personalizações de faixa de opções e regiões de formulário do Outlook em um Suplemento VSTO. No entanto, você também pode implementar a interface de extensibilidade para cada recurso se tiver requisitos especiais.
Aplica-se a: As informações neste tópico se aplicam a projetos de suplemento VSTO. Para obter mais informações, consulte Os recursos disponíveis pelo aplicativo do Office e pelo tipo de projeto.
O Microsoft Office define um conjunto de interfaces de extensibilidade que os Suplementos COM VSTO podem implementar para personalizar determinados recursos, como o Ribbon. Essas interfaces fornecem controle total sobre os recursos aos quais fornecem acesso. No entanto, a implementação dessas interfaces requer algum conhecimento da interoperabilidade COM no código gerenciado. Em alguns casos, o modelo de programação dessas interfaces também não é intuitivo para desenvolvedores acostumados com o .NET Framework.
Ao criar um Suplemento VSTO usando os modelos de projeto do Office no Visual Studio, você não precisa implementar as interfaces de extensibilidade para personalizar recursos como a faixa de opções. O runtime das Ferramentas do Visual Studio para Office implementa essas interfaces para você. Em vez disso, você pode usar classes e designers mais intuitivos fornecidos pelo Visual Studio. No entanto, você ainda pode implementar as interfaces de extensibilidade diretamente em seu Suplemento VSTO, se desejar.
Para obter mais informações sobre as classes e designers que o Visual Studio fornece para esses recursos, consulte painéis de tarefas personalizados, Ribbon Designer e Criar regiões de formulário do Outlook.
Interfaces de extensibilidade que você pode implementar em um suplemento VSTO
A tabela a seguir lista as interfaces de extensibilidade que você pode implementar e os aplicativos que dão suporte a elas.
| Interfase | Description | Aplicativos |
|---|---|---|
| IRibbonExtensibility | Implemente essa interface para personalizar a faixa de opções. Nota: Você pode adicionar um item Ribbon (XML) a um projeto para gerar uma implementação padrão IRibbonExtensibility em seu Add-in VSTO. Para obter mais informações, consulte Ribbon XML. | Excel InfoPath 2013 InfoPath 2010 Perspectiva PowerPoint Projeto Visio Palavra |
| ICustomTaskPaneConsumer | Implemente essa interface para criar um painel de tarefas personalizado. | Excel Perspectiva PowerPoint Palavra |
| FormRegionStartup | Implemente essa interface para criar uma região de formulário do Outlook. | Perspectiva |
Há várias outras interfaces de extensibilidade definidas pelo Microsoft Office, como IBlogExtensibility, EncryptionProvidere SignatureProvider. O Visual Studio não dá suporte à implementação dessas interfaces em um Suplemento VSTO criado usando os modelos de projeto do Office.
Usar interfaces de extensibilidade
Para personalizar um recurso de interface do usuário usando uma interface de extensibilidade, implemente a interface apropriada em seu projeto de Suplemento VSTO. Em seguida, substitua o RequestService método para retornar uma instância da classe que implementa a interface.
Para um aplicativo de exemplo que demonstra como implementar as interfaces IRibbonExtensibility, ICustomTaskPaneConsumer, e FormRegionStartup em um suplemento VSTO para o Outlook, veja o Exemplo do Gerenciador de Interface do Usuário nos exemplos de desenvolvimento do Office.
Exemplo de implementação de uma interface de extensibilidade
O exemplo de código a seguir demonstra uma implementação simples da ICustomTaskPaneConsumer interface para criar um painel de tarefas personalizado. Este exemplo define duas classes:
A
TaskPaneHelperclasse implementa ICustomTaskPaneConsumer para criar e exibir um painel de tarefas personalizado.A
TaskPaneUIclasse fornece a interface do usuário do painel de tarefas. Os atributos daTaskPaneUIclasse tornam a classe visível para COM, o que permite que os aplicativos do Microsoft Office descubram a classe. Neste exemplo, a interface do usuário é vazia UserControl, mas você pode adicionar controles modificando o código.Observação
Para expor a
TaskPaneUIclasse ao COM, você também deve definir a propriedade Registrar para Interoperabilidade COM para o projeto.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 a implementação ICustomTaskPaneConsumer, consulte Criar painéis de tarefas personalizados no sistema do Office 2007 na documentação do Microsoft Office.
Exemplo de substituição do método RequestService
O exemplo de código a seguir demonstra como substituir o RequestService método para retornar uma instância da TaskPaneHelper classe do exemplo de código anterior. Ele verifica o valor do parâmetro serviceGuid para determinar qual interface está sendo solicitada e retorna um objeto que implementa essa interface.
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);
}