Sdílet prostřednictvím


Úprava funkce uživatelského rozhraní pomocí rozšíření rozhraní

Vývojové nástroje sady Office v sadě Visual Studio poskytují třídy a návrhářů, které při použití v doplňku úrovni aplikace vytvořit vlastní podokna úloh, vlastní nastavení pásu karet a oblastí formulářů aplikace Outlook zpracovávat mnoho podrobnosti implementace.Však můžete implementovat Rozšiřitelnost rozhraní pro každou funkci sami, pokud máte zvláštní požadavky.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni aplikace v systému Microsoft Office 2013 a Microsoft Office 2010. Další informace naleznete v tématu Funkce aplikace Office a typ projektu.

Přehled rozšiřitelnosti rozhraní

Microsoft Office definuje sadu rozhraní rozšíření, které doplňky modelu COM lze přizpůsobit určité funkce, například na pásu karet.Tato rozhraní poskytují funkce, které poskytují přístup k úplné řízení.Implementace těchto rozhraní však vyžaduje určitou znalost COM interoperability ve spravovaném kódu.V některých případech programovací model těchto rozhraní je také intuitivní pro vývojáře, kteří jsou zvyklí na rozhraní.NET Framework.

Když vytvoříte pomocí šablony projektu Visual Studio-v, nemají implementovat rozhraní rozšiřitelnosti upravit funkce jako na pásu karet.Visual Studio Tools for Office runtime Těchto rozhraní implementuje.Místo toho můžete použít více intuitivní třídy a návrháři poskytované Visual Studio.Nicméně můžete stále implementovat rozšiřitelnost rozhraní přímo v doplňku Pokud chcete.

Další informace o třídách a návrhářů, které tyto funkce poskytuje Visual Studio, viz Vlastní podokna úloh, Návrhář pásu karet, a Vytvoření oblasti formulářů aplikace Outlook.

Rozšiřitelnost rozhraní lze implementovat v doplňku

Následující tabulka uvádí rozšiřitelnost rozhraní, které mohou implementovat a aplikací, které je podporují.

Rozhraní

Description

Aplikace

Microsoft.Office.Core.IRibbonExtensibility

Implementujte toto rozhraní přizpůsobit uživatelské rozhraní pásu karet.

PoznámkaPoznámka
Můžete přidat Pásu karet (XML) položky projektu vygenerovat výchozí Microsoft.Office.Core.IRibbonExtensibility implementace v doplňku.Další informace naleznete v tématu Pás karet XML.

Excel 2013

InfoPath 2013

Outlook 2013

PowerPoint 2013

Project 2013

Visio 2013

Word 2013

Aplikace Excel 2010

Aplikace InfoPath 2010

Outlook 2010

Aplikace PowerPoint 2010

Aplikace Project 2010

Visio 2010

Word 2010

Microsoft.Office.Core.ICustomTaskPaneConsumer

Implementujte toto rozhraní vytvořit vlastní podokno úloh.

Excel 2013

Outlook 2013

PowerPoint 2013

Word 2013

Aplikace Excel 2010

Outlook 2010

Aplikace PowerPoint 2010

Word 2010

Microsoft.Office.Interop.Outlook.FormRegionStartup

Implementujte toto rozhraní vytvořit oblasti formuláře aplikace Outlook.

Outlook 2013

Outlook 2010

Existuje několik dalších rozšiřitelnost rozhraní, které jsou definovány jako například Microsoft Office Microsoft.Office.Core.IBlogExtensibility, Microsoft.Office.Core.EncryptionProvider, a Microsoft.Office.Core.SignatureProvider.Visual Studio nepodporuje provádění těchto rozhraní v doplňku vytvořené pomocí šablony projektu.

Pomocí rozšíření rozhraní

Přizpůsobit uživatelské rozhraní funkce pomocí rozšíření rozhraní, implementujte rozhraní vhodné přidat do projektu.Potom přepsat RequestService metoda vrátí instanci třídy, která implementuje rozhraní.

Pro ukázku aplikace, která ukazuje, jak implementovat Microsoft.Office.Core.IRibbonExtensibility, Microsoft.Office.Core.ICustomTaskPaneConsumer, a Microsoft.Office.Interop.Outlook.FormRegionStartup rozhraní přidat v aplikaci Outlook, viz ukázka uživatelského rozhraní správce v Ukázky vývoje Office.

Bb608601.collapse_all(cs-cz,VS.110).gifPříklad implementace rozšiřitelnost rozhraní

Následující příklad kódu ukazuje jednoduchou implementaci Microsoft.Office.Core.ICustomTaskPaneConsumer rozhraní vytvořit vlastní podokno úloh.Tento příklad definuje dvě třídy:

  • TaskPaneHelper Implementuje třída Microsoft.Office.Core.ICustomTaskPaneConsumer vytvoření a zobrazení vlastní podokno úloh.

  • TaskPaneUI Třída poskytuje uživatelské rozhraní podokno úloh.Atributy TaskPaneUI třídy zviditelnit třídy COM, který umožňuje zjistit třídu aplikace Microsoft Office.V tomto příkladu je uživatelské rozhraní prázdné UserControl, ale můžete přidat ovládací prvky úpravy kódu.

    [!POZNÁMKA]

    Vystavit TaskPaneUI třídy COM, musíte také nastavit Register for COM Interop vlastnost projektu.Další informace naleznete v tématu Správa vlastností kompilace.

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
{
}

Další informace o implementaci Microsoft.Office.Core.ICustomTaskPaneConsumer, viz Vytváření vlastních podoken v systému Office 2007 v dokumentaci Microsoft Office.

Bb608601.collapse_all(cs-cz,VS.110).gifPříklad přepsání metody RequestService

Následující příklad kódu ukazuje, jak přepsat RequestService metoda vrátí instanci TaskPaneHelper třídy z předchozího příkladu kódu.Kontroluje hodnotu serviceGuid parametr určit rozhraní, které jsou požadovány a vrátí objekt, který implementuje rozhraní.

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);
}

Viz také

Úkoly

Jak: vytvoření Office projekty v aplikaci Visual Studio

Koncepty

Volací kód v úrovni aplikace doplňky z dalších řešení sady Office

Architektura doplňků úroveň aplikace

Další zdroje

Ukázky vývoje Office a návody

Doplňky aplikace úroveň programování

Vývoj řešení sady Office