Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Office-utvecklingsverktygen i Visual Studio innehåller klasser och designers som hanterar många implementeringsinformation när du använder dem för att skapa anpassade åtgärdsfönster, menyfliksområdesanpassningar och Outlook-formulärregioner i ett VSTO-tillägg. Du kan dock också implementera utökningsgränssnittet för varje funktion själv om du har särskilda krav.
Gäller för: Informationen i det här avsnittet gäller för VSTO-tilläggsprojekt. Mer information finns i Funktioner som är tillgängliga efter Office-program och projekttyp.
Microsoft Office definierar en uppsättning utökningsgränssnitt som COM VSTO-tillägg kan implementera för att anpassa vissa funktioner, till exempel menyfliksområdet. Dessa gränssnitt ger fullständig kontroll över de funktioner som de ger åtkomst till. För att implementera dessa gränssnitt krävs dock viss kunskap om COM-samverkan i hanterad kod. I vissa fall är programmeringsmodellen för dessa gränssnitt inte heller intuitiv för utvecklare som är vana vid .NET Framework.
När du skapar ett VSTO-tillägg med hjälp av Office-projektmallarna i Visual Studio behöver du inte implementera utökningsgränssnitten för att anpassa funktioner som menyfliksområdet. Visual Studio Tools for Office Runtime implementerar dessa gränssnitt åt dig. I stället kan du använda mer intuitiva klasser och designers som tillhandahålls av Visual Studio. Du kan dock fortfarande implementera utökningsgränssnitten direkt i ditt VSTO-tillägg om du vill.
Mer information om de klasser och designers som Visual Studio tillhandahåller för dessa funktioner finns i Anpassade åtgärdsfönster, Menyfliksområdesdesigner och Skapa Outlook-formulärregioner.
Utökningsgränssnitt som du kan implementera i ett VSTO-tillägg
I följande tabell visas de utökningsgränssnitt som du kan implementera och de program som stöder dem.
| Gränssnitt | Description | Ansökningar |
|---|---|---|
| IRibbonExtensibility | Implementera det här gränssnittet för att anpassa menyfliksområdets användargränssnitt. Observera: Du kan lägga till ett Menyfliksområde (XML) i ett projekt för att generera en standardimplementering IRibbonExtensibility i ditt VSTO-tillägg. Mer information finns i Ribbon XML. | Excel InfoPath 2013 InfoPath 2010 Framtidsutsikt PowerPoint Projekt Visio Ord |
| ICustomTaskPaneConsumer | Implementera det här gränssnittet för att skapa ett anpassat åtgärdsfönster. | Excel Framtidsutsikt PowerPoint Ord |
| FormRegionStartup | Implementera det här gränssnittet för att skapa en Outlook-formulärregion. | Framtidsutsikt |
Det finns flera andra utökningsgränssnitt som definieras av Microsoft Office, till exempel IBlogExtensibility, EncryptionProvideroch SignatureProvider. Visual Studio stöder inte implementering av dessa gränssnitt i ett VSTO-tillägg som skapats med hjälp av Office-projektmallarna.
Använda utökningsbarhetsgränssnitt
Om du vill anpassa en användargränssnittsfunktion med hjälp av ett utökningsgränssnitt implementerar du rätt gränssnitt i ditt VSTO-tilläggsprojekt. Åsidosätt RequestService sedan metoden för att returnera en instans av klassen som implementerar gränssnittet.
Ett exempelprogram som visar hur du implementerar gränssnitten IRibbonExtensibility, ICustomTaskPaneConsumeroch FormRegionStartup i ett VSTO-tillägg för Outlook finns i UI Manager-exemplet i Office-utvecklingsexempel.
Exempel på implementering av ett utökningsgränssnitt
Följande kodexempel visar en enkel implementering av ICustomTaskPaneConsumer gränssnittet för att skapa ett anpassat åtgärdsfönster. I det här exemplet definieras två klasser:
Klassen
TaskPaneHelperimplementerar ICustomTaskPaneConsumer för att skapa och visa ett anpassat åtgärdsfönster.Klassen
TaskPaneUIinnehåller användargränssnittet för åtgärdsfönstret. AttributenTaskPaneUIför klassen gör klassen synlig för COM, vilket gör att Microsoft Office-program kan identifiera klassen. I det här exemplet är användargränssnittet tomt UserControl, men du kan lägga till kontroller genom att ändra koden.Anmärkning
Om du vill exponera
TaskPaneUIklassen för COM måste du också ange egenskapen Registrera för COM Interop för projektet.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 { }
Mer information om hur du implementerar ICustomTaskPaneConsumerfinns i Skapa anpassade åtgärdsfönster i Office 2007-systemet i Microsoft Office-dokumentationen.
Exempel på åsidosättande av metoden RequestService
I följande kodexempel visas hur du åsidosätter RequestService metoden för att returnera en instans av TaskPaneHelper klassen från föregående kodexempel. Den kontrollerar värdet för parametern serviceGuid för att avgöra vilket gränssnitt som begärs och returnerar sedan ett objekt som implementerar gränssnittet.
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);
}