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
Microsoft Office-Version
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
Gewusst wie: Erstellen von Visual Studio Tools for Office-Projekte
Konzepte
Programmieren von Add-Ins auf Anwendungsebene
Entwickeln von Office-Projektmappen
Aufrufen von Code in Add-Ins auf Anwendungsebene von anderen Office-Projektmappen