Dela via


Anpassa gränssnittsfunktioner med hjälp av utökningsgränssnitt

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 TaskPaneHelper implementerar ICustomTaskPaneConsumer för att skapa och visa ett anpassat åtgärdsfönster.

  • Klassen TaskPaneUI innehåller användargränssnittet för åtgärdsfönstret. Attributen TaskPaneUI fö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 TaskPaneUI klassen 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);
}