Freigeben über


Anpassen von Features der Benutzeroberfläche mithilfe von Erweiterungsschnittstellen

Aktualisiert: November 2007

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Anwendungsebene

Microsoft Office-Version

  • 2007 Microsoft Office System

Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Visual Studio Tools for Office stellt Klassen und Designer bereit, die viele Implementierungsdetails behandeln, wenn Sie mit ihnen benutzerdefinierte Aufgabenbereiche, angepasste Multifunktionsleisten und Outlook-Formularbereiche in einem Add-In auf Anwendungsebene erstellen. Sie können die Erweiterungsschnittstelle für jedes Feature jedoch auch selbst implementieren, wenn Sie besondere Anforderungen haben.

Übersicht über Erweiterungsschnittstellen

Anwendungen in 2007 Microsoft Office System definieren einen Satz von Erweiterungsschnittstellen, die COM-Add-Ins implementieren können, um bestimmte Features der Benutzeroberfläche anzupassen. Visual Studio Tools for Office vereinfacht diesen Vorgang durch Implementieren dieser Schnittstellen und Bereitstellen von Klassen und Designern, die Sie stattdessen verwenden können. Sie können Erweiterungsschnittstellen aber auch direkt im Add-In implementieren.

Weitere Informationen über die Klassen und Designer, die Visual Studio Tools for Office für diese Features bereitstellt, finden Sie unter Übersicht über benutzerdefinierte Aufgabenbereiche, Multifunktionsleisten-Designer und unter Erstellen von Outlook-Formularbereichen.

In einem Add-In implementierbare Erweiterungsschnittstellen

In der folgenden Tabelle werden die implementierbaren Erweiterungsschnittstellen und die Anwendungen, die sie unterstützen, aufgeführt.

Schnittstelle

Beschreibung

Anwendungen

Microsoft.Office.Core.IRibbonExtensibility

Implementieren Sie diese Schnittstelle, um die Benutzeroberfläche der Multifunktionsleiste anzupassen. Weitere Informationen finden Sie unter IRibbonExtensibility-Objekt in der Dokumentation zu 2007 Microsoft Office.

Hinweis:
Sie können einem Projekt ein Element für die Multifunktionsleiste (XML) hinzufügen, um eine Standardimplementierung von Microsoft.Office.Core.IRibbonExtensibility im Add-In zu generieren. Weitere Informationen finden Sie unter Multifunktionsleisten-XML.

Excel 2007

InfoPath 2007

Outlook 2007

PowerPoint 2007

Word 2007

Microsoft.Office.Core.ICustomTaskPaneConsumer

Implementieren Sie diese Schnittstelle, um einen benutzerdefinierten Aufgabenbereich zu erstellen. Weitere Informationen finden Sie unter ICustomTaskPaneConsumer-Objekt in der Dokumentation zu 2007 Microsoft Office.

Excel 2007

Outlook 2007

PowerPoint 2007

Word 2007

Microsoft.Office.Interop.Outlook.FormRegionStartup

Implementieren Sie diese Schnittstelle, um einen Outlook-Formularbereich zu erstellen. Weitere Informationen finden Sie unter FormRegionStartup-Schnittstelle in der Dokumentation zu 2007 Microsoft Office.

Outlook 2007

Es gibt mehrere andere Erweiterungsschnittstellen, die durch Anwendungen in 2007 Microsoft Office System definiert werden, z. B. Microsoft.Office.Core.IBlogExtensibility, Microsoft.Office.Core.EncryptionProvider und Microsoft.Office.Core.SignatureProvider. Visual Studio Tools for Office unterstützt das Implementieren dieser Schnittstellen in einem Add-In nicht.

Verwenden von Erweiterungsschnittstellen

Um ein Feature der Benutzeroberfläche mit einer Erweiterungsschnittstelle anzupassen, implementieren Sie die entsprechende Schnittstelle im Add-In-Projekt. Überschreiben Sie anschließend die RequestService-Methode, um eine Instanz der Klasse zurückzugeben, die die Schnittstelle implementiert.

Eine Beispielanwendung, die veranschaulicht, wie die Microsoft.Office.Core.IRibbonExtensibility-Schnittstelle und die Microsoft.Office.Core.ICustomTaskPaneConsumer-Schnittstelle in einem Add-In für Excel implementiert werden, finden Sie unter Beispiel für Laufzeitdienste.

Beispiel für das Implementieren einer Erweiterungsschnittstelle

Im folgenden Codebeispiel wird eine einfache Implementierung der Microsoft.Office.Core.ICustomTaskPaneConsumer-Schnittstelle veranschaulicht, um einen benutzerdefinierten Aufgabenbereich zu erstellen. In diesem Beispiel werden zwei Klassen definiert:

  • Die TaskPaneHelper-Klasse implementiert Microsoft.Office.Core.ICustomTaskPaneConsumer, um einen benutzerdefinierten Aufgabenbereich zu erstellen und anzuzeigen.

  • Die TaskPaneUI-Klasse stellt die Benutzeroberfläche des Aufgabenbereichs zur Verfügung. Die Attribute für die TaskPaneUI-Klasse machen die Klasse für COM sichtbar, sodass Microsoft Office-Anwendungen die Klasse erkennen können. In diesem Beispiel besteht die Benutzeroberfläche aus einem leeren UserControl, Sie können jedoch durch Ändern des Codes Steuerelemente hinzufügen.

    Hinweis:

    Um die TaskPaneUI-Klasse für COM verfügbar zu machen, müssen Sie auch die Register for COM Interop-Eigenschaft für das Projekt festlegen. Weitere Informationen finden Sie unter Gewusst wie: Registrieren einer Komponente für COM-Interop.

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

Weitere Informationen zum Implementieren von Microsoft.Office.Core.ICustomTaskPaneConsumer finden Sie unter Erstellen benutzerdefinierter Aufgabenbereiche in 2007 Office System in der Dokumentation zu 2007 Microsoft Office.

Beispiel für das Überschreiben der RequestService-Methode

Im folgenden Codebeispiel wird veranschaulicht, wie die RequestService-Methode überschrieben wird, um eine Instanz der TaskPaneHelper-Klasse aus dem vorigen Codebeispiel zurückzugeben. Der Wert des serviceGuid-Parameters wird überprüft, um zu bestimmen, welche Erweiterungsschnittstelle angefordert wird. Anschließend wird ein Objekt zurückgegeben, das diese Schnittstelle implementiert.

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

Siehe auch

Aufgaben

Beispiel für Laufzeitdienste

Gewusst wie: Erstellen von Visual Studio Tools for Office-Projekte

Konzepte

Programmieren von Add-Ins auf Anwendungsebene

Entwickeln von Office-Projektmappen

AddIn-Hostelement

Aufrufen von Code in Add-Ins auf Anwendungsebene von anderen Office-Projektmappen

Architektur von Add-Ins auf Anwendungsebene