Bir Office COM Add-in Visual Basic .NET kullanarak üretme

Makale çevirileri Makale çevirileri
Makale numarası: 302896 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Microsoft Office 2000 ve sonraki uygulama eklentileri geliştirmek ve Office uygulamalarını denetlemek için oluşturmak için bir yeni, tutarlı bir tasarım mimarisini destekler. Bu eklentiler, COM eklentilerini olarak adlandırılır. Bu adım adım makalede, Office COM eklentileri açıklanır ve bir Office COM nasıl açıklar eklenti Microsoft Visual Basic .NET kullanarak.

IDTExensibility2 arabirimi

Bir COM eklentisi bir işlem içi COM sunucusu ya da Microsoft Add-in Tasarımcısı Tür kitaplığında (Msaddndr.dll) açıklandığı gibi IDTExensibility2 arabirimini uygulayan ActiveX dinamik bağlantı kitaplığı (DLL) olur. Tüm COM eklentilerini Bu arabirimden devralır ve her beş yöntemlerinden biri uygulamalıdır.

OnConnection

COM eklentisini bağlı her OnConnection olayı harekete. Eklentiyi başlatma sırasında son kullanıcı tarafından ya da Otomasyon yoluyla bağlı olabilir. OnConnection başarıyla dönerse, eklentinin yüklenmesi denir. Bir hata iletisi döndürdü, ana uygulama eklenti için başvuru hemen serbest bırakır ve nesne yok edilir.

OnConnection aşağıdaki dört parametre yer alır:
  • Uygulama - BIR ana uygulama nesnesine başvuru.
  • ConnectMode - eklentinin nasıl bağlanacağını belirleyen BIR sabit. Eklenti aşağıdaki yollarla bağlanabilir:
    • ext_cm_AfterStartup - eklenti <a0>COM eklentileri</a0> iletişim kutusundan son kullanıcı tarafından başlatıldı.
    • komut satırından ext_cm_CommandLine - eklenti bağlandı. Bu Office uygulamaları için COM eklentileri oluşturma için geçerli değildir not alın.
    • Otomasyon yoluyla bir dış uygulama tarafından ext_cm_External - eklenti bağlandı. Bu Office için COM eklentileri oluşturma için geçerli değildir Not uygulamaları.
    • ext_cm_Startup - eklenti, uygulamanın başlangıcında ana makinesi tarafından başlatıldı. Bu davranış, kayıt defterindeki bir ayar tarafından denetlenir.
  • AddInInst - bu eklenti ana bilgisayar uygulamasının <a1>COM eklentileri</a1> koleksiyonunda başvurduğu COMAddIn nesnesine BIR başvuru.
  • Özel - bir kullanıcı tanımlı veri saklayabilen bir Variant türü değerleri dizisi.

OnDisconnection

COM eklentisini kesildiğinde ve yalnızca bu belleği kaldırır önce OnDisconnection olayı harekete. Eklenti herhangi bir temizleme kaynakların bu durumda çalışmalıdır ve ana uygulamaya yapılan değişiklikleri geri yüklemelisiniz.

OnDisconnection aşağıdaki iki parametre alır:
  • RemoveMode - eklentinin nasıl kesildi belirten BIR sabit. Eklenti aşağıdaki yollarla kesilebilir:
    • ana uygulama kapatıldığında ext_dm_HostShutdown - eklenti bağlantısı kesildi.
    • ext_dm_UserClosed - eklenti-, son kullanıcı ya da bir Otomasyon bağlantısı kesildi denetleyicisi.
  • Özel - bir kullanıcı tanımlı veri saklayabilen bir Variant türü değerleri dizisi.

Onaddınsupdate

Kümesini COM kaydolurken Onaddınsupdate olayı harekete eklentileri değişiklikleri. Her bir COM eklentisi yüklenmiş veya ana bilgisayar uygulamadan kaldırıldı, başka bir deyişle, bu olay harekete.

OnStartupComplete ve OnBeginShutdown

Hem ana bilgisayar uygulamasının ayrıldı veya yükleme ya da kendisi bellekten kaldırılması uygulama meşgul olduğundan kullanıcı etkileşimi kaçınılmalıdır bir duruma girerken OnStartupComplete ve OnBeginShutdown yöntemleri olarak adlandırılır. Eklenti başlatılırken bağlandı ve ana bilgisayar kapatma sırasında eklentinin keser OnBeginShutdown yalnızca adlandırılır, OnStartupComplete yalnızca denir.

Bu olaylar ba?latmak için kullanıcı arabirimi için ana bilgisayar uygulamasının tam etkin olduğundan, aksi durumda OnConnection ve OnDisconnection kullanılamaz olacak belirli eylemleri gerçekleştirmek için tek yol olabilirler.

COM eklentisi, kayıt

Normal COM kayıt ek olarak, bir COM eklentisi kendisi içinde çalışan her Office uygulaması ile kaydetmeniz gerekir. Kendisini, belirli bir uygulama ile kaydetmek için <a0></a0>, eklenti, Progıd anahtarının altında aşağıda belirtilen konumda, adı kullanarak bir alt anahtarı oluşturmanız gerekir:
HKEY_CURRENT_USER\Software\Microsoft\Office\ OfficeApp \Addins\ ProgID
Eklenti kolay görünen ad hem de tam bir açıklaması için anahtar bu konumda bir değer sağlar. Buna ek olarak, eklentiyi istenen yükleme davranışı
LoadBehavior
adlı bir DWORD değeri'ni kullanarak belirtmeniz gerekir. Bu değer, nasıl eklenti ana bilgisayar uygulaması tarafından yüklenir ve aşağıdaki değerlerin birleşimini yapılan belirler:
  • 0 Bağlantıyı Kes'i = - yüklü değil.
  • 1 Bağlı = - yüklenen.
  • 2 Bootload - uygulama başlangıçta yükle =.
  • 8 - DemandLoad kullanıcı tarafından istendiğinde yükle =.
  • 16 - ConnectFirstTime yalnızca bir kez (başlangıçta sonraki) yük =.
Belirtilen normal 0x03 değeridir (bağlı | Bootload).

Ayrıca, ıdtextensibility2 uygulayan eklentileri eklentileri desteklemeyen bir kullanıcı arabirimi, operasyonlar için güvenli olup olmadığını belirtmek için
CommandLineSafe
adlı bir DWORD değeri belirtmeniz gerekir. Yanlış 0x00 değeri gösterir; true değerini 0x01 gösterir.

Visual Basic .NET kullanarak COM eklentisi oluşturma hakkında

Office COM eklenti daha önce belirtildiği gibi bir işlem içi COM olduğu sunucu COM çalıştırma katmanı üzerinden bir Office uygulaması tarafından etkinleştirildi. Bu nedenle, bir COM add-in Visual Basic. NET'te geliştirme eklenti bileşeni. NET'te uygulanan ve sonra COM istemcileri için açık olmasını gerektirir (diğer bir deyişle, Office uygulamalarının) üzerinden COM birlikte çalışabilirlik katmanı.

Bir COM eklentisi, Visual Basic. NET'te oluşturmak için aşağıdaki adımları izleyin:
  1. Visual Basic. NET'te bir sınıf kitaplığı oluşturma proje.
  2. ıdtextensibility2 uygulayan türündeki kitaplığa bir başvuru ekleyin. Bu bir ana birlikte çalışma derlemesi zaten Extensibility adıyla edinilebilir.
  3. Microsoft Office nesne kitaplığına bir başvuru ekleyin. Bu bir ana birlikte çalışma derlemesi zaten Office adıyla edinilebilir.
  4. Ortak bir sınıf içinde ıdtextensibility2 uygulayan sınıf kitaplığı oluşturun.
  5. Sonra sınıf kitaplığı yerleşik olarak bulunur, bu kitaplık COM birlikte çalışma için kaydolun. Bunu yapmak için <a0></a0>, COM birlikte çalışma ile kaydetmek ve güçlü bir derlemesi için bu sınıf kitaplığı adlı oluşturur. Regasm.exe, bir .NET bileşeni, COM birlikte çalışma için kaydetmek için kullanabilirsiniz.
  6. Kayıt defteri girdilerini oluşturun, böylece Office uygulamaları tanımak ve eklenti yüklenemedi.
Tüm bu adımları tamamlamak seçim yapabilirsiniz veya <a1>Tür</a1> Eklentisi paylaşılan bir .NET projesi oluşturabilirsiniz. Bu,. NET'te bir COM eklentisini oluşturmaya yardımcı genişletilebilirlik Sihirbazı başlar.

Genişletilebilirlik Sihirbazı ile birlikte bir Connect sınıf ıdtextensibility2 arabirimini uygulayan Visual Basic .NET sınıf kitaplığı proje oluşturur. Boş IDTExtensibility üyeleri uygulayan skeleton kodunu da oluşturulur. Bu proje Extensibility ve Office birleştirmeler için başvuru var. Proje oluşturma ayarlarını, seçilen COM birlikte çalışma için kaydı vardır. Birleştirme anahtarı (.snk) dosyası oluşturulur ve Assemblyinfo.vb AssemblyKeyfile özniteliğinde başvuruda bulunulan.

Sınıf kitaplığı birlikte proje, sihirbaz başka bilgisayarlardaki COM eklentisini dağıtmak için kullanabileceğiniz bir kurulum projesi oluşturur. Isterseniz, bu proje çıkarabilirsiniz.

Adım adım örnek

  1. Microsoft Visual Studio. NET'te Dosya menüsünden Yeni ' yi tıklatın ve sonra Project ' i tıklatın.
  2. Yeni proje) iletişim kutusunda, Diğer projelerProje türleri altında) genişletin, Extensibility Projects seçin ve sonra paylaşılan eklenti şablonu seçin.
  3. MyCOMAddin eklenti yazın ve Tamam ' ı tıklatın.
  4. Genişletilebilirlik Sihirbazı görüntülendiğinde, şu adımları izleyin:
    1. Sayfa 1'de, bir eklenti oluştur, Visual Basic kullanarak seçin ve ileri ' yi tıklatın.
    2. Sayfa 2, aşağıdaki ana bilgisayar uygulamaları seçin ve ileri ' yi tıklatın:
      • Microsoft Word
      • Microsoft PowerPoint
      • Microsoft Outlook
      • Microsoft Excel
      • Microsoft Access
    3. 3 Sayfa, ad ve açıklama için eklentinin girin ve ileri ' yi tıklatın.

      NotCOM eklentisi iletişim kutusunda Office uygulamasında adını ve eklentinin açıklaması görüntülenir.

    4. Sayfa 4'de, tüm kullanılabilir olan seçenekleri seçin ve ileri ' yi tıklatın.
    5. Son ' u tıklatın.
  5. Aşağıdaki üye Bağlan sınıfına ekleyin:
    Dim WithEvents MyButton As CommandBarButton 
  6. Aşağıdaki kodu ıdtextensibility2Bağlan sınıfındaki tüm üyelerinin uygulamak:
        Public Sub OnBeginShutdown(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnBeginShutdown
            On Error Resume Next
            ' Notify the user you are shutting down, and delete the button.
            MsgBox("Our custom Add-in is unloading.")
            MyButton.Delete()
            MyButton = Nothing
    
        End Sub
    
        Public Sub OnAddInsUpdate(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnAddInsUpdate
            '
        End Sub
    
        Public Sub OnStartupComplete(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnStartupComplete
    
            Dim oCommandBars As CommandBars
            Dim oStandardBar As CommandBar
    
            On Error Resume Next
            ' Set up a custom button on the "Standard" command bar.
            oCommandBars = applicationObject.CommandBars
            If oCommandBars Is Nothing Then
                ' Outlook has the CommandBars collection on the Explorer object.
                oCommandBars = applicationObject.ActiveExplorer.CommandBars
            End If
    
            oStandardBar = oCommandBars.Item("Standard")
            If oStandardBar Is Nothing Then
                ' Access names its main toolbar Database.
    
                oStandardBar = oCommandBars.Item("Database")
    
            End If
    
            ' In case the button was not deleted, use the exiting one.
            MyButton = oStandardBar.Controls.Item("My Custom Button")
            If MyButton Is Nothing Then
    
                MyButton = oStandardBar.Controls.Add(1)
                With MyButton
                    .Caption = "My Custom Button"
                    .Style = MsoButtonStyle.msoButtonCaption
    
                    ' The following items are optional, but recommended. 
                    ' The Tag property lets you quickly find the control 
                    ' and helps MSO keep track of it when more than
                    ' one application window is visible. The property is required
                    ' by some Office applications and should be provided.
    
                    .Tag = "My Custom Button"
    
                    ' The OnAction property is optional but recommended. 
                    ' It should be set to the ProgID of the add-in, so that if
                    ' the add-in is not loaded when a user clicks the button,
                    ' MSO loads the add-in automatically and then raises
                    ' the Click event for the add-in to handle. 
    
                    .OnAction = "!<MyCOMAddin.Connect>"
    
                    .Visible = True
                End With
            End If
    
            ' Display a simple message to show which application you started in.
            MsgBox("Started in " & applicationObject.Name & ".")
    
    
            oStandardBar = Nothing
            oCommandBars = Nothing
    
    
        End Sub
    
        Public Sub OnDisconnection(ByVal RemoveMode As Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnDisconnection
    
            On Error Resume Next
            If RemoveMode <> Extensibility.ext_DisconnectMode.ext_dm_HostShutdown Then _
               Call OnBeginShutdown(custom)
    
            applicationObject = Nothing
    
    
        End Sub
    
        Public Sub OnConnection(ByVal application As Object, ByVal connectMode As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnConnection
    
    
            MsgBox("On Connection In MyAddin")
            applicationObject = application
            addInInstance = addInInst
    
    
            ' If you aren't in startup, manually call OnStartupComplete.
            If (connectMode <> Extensibility.ext_ConnectMode.ext_cm_Startup) Then _
               Call OnStartupComplete(custom)
    
        End Sub
    
    
        Private Sub MyButton_Click(ByVal Ctrl As Microsoft.Office.Core.CommandBarButton, ByRef CancelDefault As Boolean) Handles MyButton.Click
            MsgBox("Our CommandBar button was pressed!")
        End Sub
    					
  7. Oluşturmak ve bir COM eklentisini sınayın. Bunu yapmak için şu adımları izleyin:
    1. Yapı) menüsünde, MyCOMAddin oluştur) tıklatın. COM eklentisi oluşturma kullanılacak .NET sınıfını COM birlikte çalışma'ile kaydedeceğini unutmayın.
    2. Bir ana bilgisayar uygulaması olarak, eklentiniz için (örneğin, Microsoft Word veya Microsoft Excel) seçili Office uygulamalarından biri başlatın.
    3. Eklenti başladıktan sonra OnConnection olayı harekete geçirilir ve bir ileti kutusu görüntülenir. Ne zaman OnStartupComplete olayı harekete geçirilir, ileti kutusunu kapatmak ve ikinci bir ileti kutusu görüntülenir. Ileti kutusunu kapatmak.
    4. Eklenti "My özel düğme" başlığını yeni bir özel düğme eklediğinizi, standart araç çubuğuna unutmayın.
    5. Benim özel düğmesini tıklatın. Düğmeyi tıklatarak olayı eklenti tarafından işlenen ve bir ileti kutusu görüntülenir. Ileti kutusunu kapatmak.
    6. Office uygulaması'nden çıkın.
    7. Uygulamanın OnBeginShutDown çıktığınızda olay geçirilir ve bir ileti kutusu görüntülenir. Ileti kutusu gösteri sona erdirmek için iptal.

Referanslar

COM eklentileri yazma hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
190253BILGI: VB6 tasarımcıları VB5'de çalışmıyor
Microsoft ınternet Explorer için Web tabanlı çözümler geliştirme hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
http://msdn2.microsoft.com/en-us/ie/default.aspx

http://support.microsoft.com/iep
(c) Microsoft Corporation 2001, tüm hakları saklıdır. Katkıyı Ranjit R'ye Sawant, Microsoft Corporation.

Özellikler

Makale numarası: 302896 - Last Review: 25 Aralık 2006 Pazartesi - Gözden geçirme: 11.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbautomation kbhowtomaster KB302896 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:302896

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com