Aracılığıyla paylaş


Genişletilebilirlik Arabirimi Kullanarak Kullanıcı Arabirimi (KA) Özelliklerini Özelleştirme

Sınıflar ve tasarımcılar, uygulama düzeyi eklentilerinde özel görev bölmeleri, Şerit özelleştirmeleri ve Outlook form bölgeleri oluşturmak için kullandığınız birçok uygulama ayrıntılarını işleyen Visual Studio Office geliştirme araçları sağlar.Ancak, özel gereksinimleriniz varsa Genişletilebilirlik arabirimini her özellik için de uygulayabilirsiniz.

Uygulama alanı: Bu konudaki bilgiler Microsoft Office 2013 ve Microsoft Office 2010'un uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Genişletilebilirlik Arabirimleri Genel Bakışı

Microsoft Office com eklentilerinin Şerit gibi belirli özellikleri özelleştirmek için uygulayabileceğiniz genişletilebilirlik arabirimleri kümesi tanımlar.Bu arabirimler erişim sağladıkları özellikler üzerinde tam denetim sağlarlar.Ancak, bu arabirimleri uygulamak yönetilen kodda COM birlikte çalışabilirliği hakkında biraz bilgi gerektirir.Bazı durumlarda, bu arabirimlerin programlama modeli .NET Framework'e alışkın bazı geliştiriciler için de sezgisel değildir.

Bir eklentiyi Visual Studio'da Office proje şablonları kullanarak oluşturduğunuz zaman Şerit gibi özellikleri özelleştirmek için Genişletilebilirlik arabirimini uygulamak zorunda değildir.Office için Visual Studio Araçları çalışma zamanı modülü bu arabirimleri sizin için uygular.Bunun yerine, Visual Studio'nun sağladığı daha sezgisel sınıfları ve tasarımcıları kullanabilirsiniz.Ancak, isterseniz genişletilebilirlik arabirimini yine de uygulayabilirsiniz.

Bu özellikler için Visual Studio'nun sağladığı sınıflar ve tasarımcılar hakkında daha fazla bilgi için bkz. Özel görev bölmeleri, Şerit Tasarımcısı ve Outlook Form Bölgeleri Yaratma.

Bir Eklentide Uygulayabileceğiniz Genişletilebilirlik Arabirimleri

Aşağıdaki tablo, uygulayabileceğiniz genişletilebilirlik arabirimlerini ve onları destekleyen uygulamaları listeler.

Arabirim

Tanımlama

Applications

Microsoft.Office.Core.IRibbonExtensibility

Şerit UI ' ı özelleştirmek için bu arabirimi uygulayın.

NotNot
Ekleyebileceğiniz bir Şerit (xml) varsayılan oluşturmak için bir proje için madde Microsoft.Office.Core.IRibbonExtensibility eklenti uygulamasında.Daha fazla bilgi için bkz. Şerit XML.

Excel 2013

InfoPath 2013

Outlook 2013

PowerPoint 2013

Project 2013

Visio 2013

Word 2013

Excel 2010

InfoPath 2010

Outlook 2010

PowerPoint 2010

Project 2010

Visio 2010

Word 2010

Microsoft.Office.Core.ICustomTaskPaneConsumer

Özel görev bölmesi oluşturmak için bu arabirimi uygulayın.

Excel 2013

Outlook 2013

PowerPoint 2013

Word 2013

Excel 2010

Outlook 2010

PowerPoint 2010

Word 2010

Microsoft.Office.Interop.Outlook.FormRegionStartup

Özel görev bölmesi oluşturmak için bu arabirimi uygulayın.

Outlook 2013

Outlook 2010

Microsoft.Office.Core.IBlogExtensibility, Microsoft.Office.Core.EncryptionProvider ve Microsoft.Office.Core.SignatureProvider gibi Microsoft Office tarafından tanımlanan diğer birkaç genişletilebilirlik arabirimi vardır.Visual Studio, Office proje şablonları kullanılarak oluşturulmus bir eklentide bu arabirimlerin uygulanmasını desteklemez.

Genişletilebilirlik Arabirimlerini Kullanma

Genişletilebilirlik arabirimi kullanarak bir KA özelliğini özelleştirmek için eklenti projenizdeki münasip bir arabirimi uygulayın.Ardından, arabirimi uygulayan sınıfın bir örneğini döndürmek için RequestService yöntemini geçersiz kılın.

Nasıl uygulanacağını gösteren bir örnek uygulama için Microsoft.Office.Core.IRibbonExtensibility, Microsoft.Office.Core.ICustomTaskPaneConsumer, ve Microsoft.Office.Interop.Outlook.FormRegionStartup , Outlook bir eklenti arabirimleri Bkz: kullanıcı Arabirimi Yöneticisi örnek Office Geliştirme Örnekleri.

Bb608601.collapse_all(tr-tr,VS.110).gifBir Genişletilebilirlik Arabirimini Uygulama Örneği

Aşağıdaki kod örneğinde, özel görev bölmeleri oluşturmak için Microsoft.Office.Core.ICustomTaskPaneConsumer arabiriminin basit bir uygulaması gösterilmektedir.Bu örnekte iki sınıf tanımlanır:

  • TaskPaneHelper sınıfı özel bir görev bölmesi oluşturup görüntülemek için Microsoft.Office.Core.ICustomTaskPaneConsumer'ı uygulamaktadır.

  • TaskPaneUI sınıfı, görev bölmesinin KA'sını sağlar.TaskPaneUI sınıfının öznitelikleri, Microsoft Office uygulamalarını sınıfı keşfetmek için etkinleştiren COM'a sınıfı görünür kılar.Bu örnekte KA boş bir UserControl'dür, fakat kodu değiştirerek denetimler ekleyebilirsiniz.

    [!NOT]

    TaskPaneUI sınıfını COM'un kullanımına açmak için projenin COM Birlikte Çalışma için kaydol özelliğini ayarlamanız gerekir.Daha fazla bilgi için bkz. Derleme özelliklerini yönetme.

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

Microsoft.Office.Core.ICustomTaskPaneConsumer'ı uygulamak hakkında daha fazla bilgi için Microsof Office belgelerindeki 2007 Office Sisteminde Özel Görev Bölmeleri Oluşturma'ya bakınız.

Bb608601.collapse_all(tr-tr,VS.110).gifRequestService (Hizmet Talep Et) Yöntemini Geçersiz Kılma Örneği

Aşağıdaki kod örneğinde, bir önceki kod örneğindeki TaskPaneHelper sınıfının bir örneğini döndürmek için RequestService yönteminin nasıl geçersiz kılındığı gösterilmektedir.Kod, hangi arabirimin talep edildiğine karar vermek için serviceGuid parametresinin değerini kontrol eder ve arabirimi uygulayan bir nesne döndürür.

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

Ayrıca bkz.

Görevler

Nasıl yapılır: Visual Studio Office projeler oluşturmak

Kavramlar

Uygulama Düzeyi Eklentilerindeki Kodu Başka Office Çözümlerinden Çağırma

Uygulama Düzeyi Eklentisi Mimarisi

Diğer Kaynaklar

Office Geliştirme Örnekleri ve İzlenecek Yollar

Uygulama Düzeyi Eklentileri Programlama

Office Çözümlerini Geliştirme