Bagaimana membangun kantor COM Add-in dengan menggunakan Visual Basic.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 302896 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Microsoft Office 2000 dan kemudian dukungan baru, seragam desain arsitektur untuk membangun aplikasi tambahan untuk meningkatkan dan kontrol Aplikasi kantor. Ini add-in yang disebut peralatan tambahan COM. Ini langkah-demi-langkah Artikel membahas peralatan tambahan COM kantor dan menjelaskan bagaimana membangun kantor COM Add-in dengan menggunakan Microsoft Visual Basic.NET.

Antarmuka IDTExensibility2

COM add-in ini dalam proses COM server, atau link dinamis ActiveX Library (DLL), yang mengimplementasikan IDTExensibility2 antarmuka seperti yang dijelaskan dalam jenis Microsoft Tambah-in Designer perpustakaan (Msaddndr.dll). Semua peralatan tambahan com. mewarisi dari antarmuka ini dan harus menerapkan masing-masing metode lima.

OnConnection

The OnConnection peristiwa kebakaran ketika COM add-in terhubung. Tambahan dapat dihubungkan pada startup, oleh pengguna akhir, atau melalui Otomatisasi. Jika OnConnection kembali berhasil, tambahan dikatakan dimuat. Jika pesan kesalahan kembali, aplikasi host segera rilis referensi untuk tambahan, dan objek dihancurkan.

OnConnection mengambil empat parameter berikut:
  • Aplikasi -Referensi ke objek aplikasi host.
  • ConnectMode -Sebuah konstanta yang menentukan bagaimana tambahan terhubung. The Add-in dapat dihubungkan dengan cara berikut:
    • ext_cm_AfterStartup -Add-in yang dimulai oleh pengguna akhir dari Peralatan tambahan COM kotak dialog.
    • ext_cm_CommandLine -Tambah-in terhubung dari baris perintah. Catatan bahwa ini tidak berlaku untuk membangun peralatan tambahan COM untuk aplikasi kantor.
    • ext_cm_External -Tambah-in terhubung oleh aplikasi eksternal melalui Otomatisasi. Catatan bahwa ini tidak berlaku untuk membangun COM add-in untuk Office aplikasi.
    • ext_cm_Startup -Tambah-in dimulai oleh host pada aplikasi startup. Ini perilaku ini dikendalikan oleh pengaturan registri.
  • AddInInst -Referensi COMAddIn objek yang merujuk kepada add-in ini di COMAddIns Koleksi untuk aplikasi host.
  • Custom -Sebuah array Varian tipe nilai-nilai yang dapat menyimpan data yang ditetapkan pengguna.

OnDisconnection

The OnDisconnection peristiwa kebakaran ketika COM add-in terputus dan sebelum membongkar dari memori. Tambahan harus melakukan pembersihan setiap sumber daya dalam acara ini dan harus memulihkan perubahan yang dibuat untuk host aplikasi.

OnDisconnection mengambil dua berikut parameter:
  • RemoveMode -Sebuah konstanta yang menentukan bagaimana tambahan diputus. The Add-in dapat diputuskan dengan cara berikut:
    • ext_dm_HostShutdown -Tambah-in terputus ketika aplikasi host ditutup.
    • ext_dm_UserClosed -Tambah-in terputus oleh pengguna akhir atau otomatisasi controller.
  • Custom -Sebuah array Varian tipe nilai-nilai yang dapat menyimpan data yang ditetapkan pengguna.

OnAddInsUpdate

The OnAddInsUpdate peristiwa kebakaran ketika himpunan terdaftar COM Add-in perubahan. Dengan kata lain, setiap kali COM tambahan diinstal atau dihapus dari aplikasi tuan rumah, ini peristiwa kebakaran.

OnStartupComplete dan OnBeginShutdown

Kedua OnStartupComplete dan OnBeginShutdown metode yang disebut Ketika aplikasi host telah meninggalkan atau memasuki keadaan di mana pengguna interaksi harus dihindari karena aplikasi sibuk loading atau pembongkaran sendiri dari memori. OnStartupComplete hanya disebut jika tambahan terhubung selama Persiapan, dan OnBeginShutdown hanya disebut jika tuan rumah terputus tambahan selama pematian.

Karena antarmuka pengguna untuk aplikasi host sepenuhnya aktif ketika peristiwa kebakaran, mereka mungkin satu-satunya cara untuk melakukan tindakan tertentu yang kalau tidak akan menjadi tidak tersedia dari OnConnection dan OnDisconnection.

COM Add-in pendaftaran

Selain untuk normal COM pendaftaran, COM add-in perlu mendaftar sendiri dengan setiap aplikasi Office yang membentang. Untuk mendaftar itu sendiri dengan aplikasi tertentu, tambahan harus membuat subkunci, menggunakan ProgID sebagai nama untuk kunci, di bawah lokasi berikut:
HKEY_CURRENT_USER\Software\Microsoft\Office\OfficeApp\Addins\ProgID
Tambahan dapat memberikan nilai-nilai di lokasi ini kunci untuk nama tampilan ramah dan keterangan lengkap. Selain itu, Add-in harus menentukan perilaku beban yang dikehendaki dengan menggunakan nilai DWORD yang disebut
LoadBehavior
. Nilai ini menentukan bagaimana tambahan dimuat oleh host aplikasi, dan terdiri dari kombinasi nilai-nilai berikut:
  • 0 = Putuskan - tidak dimuat.
  • 1 = Connected - load.
  • 2 = Bootload - beban pada aplikasi startup.
  • 8 = DemandLoad - beban hanya ketika diminta oleh pengguna.
  • 16 = ConnectFirstTime - beban hanya sekali (berikutnya Startup).
Nilai khas yang ditentukan adalah 0x03 (Connected | Bootload).

Add-in yang menerapkan IDTExtensibility2 juga harus menentukan nilai DWORD yang disebut
CommandLineSafe
untuk menunjukkan apakah add-in aman untuk operasi yang tidak mendukung pengguna antarmuka. Nilai 0x00 menunjukkan palsu, dan nilai 0x01 menunjukkan benar.

Bagaimana membangun COM Add-in dengan menggunakan Visual Basic.NET

Seperti disebutkan sebelumnya, kantor COM add-in ini dalam proses COM server yang diaktifkan oleh aplikasi Office melalui COM run-time lapisan. Oleh karena itu, mengembangkan COM menambahkan-di dalam Visual Basic.NET mensyaratkan bahwa tambahan komponen diimplementasikan di.NET dan kemudian terkena klien COM (itu adalah, aplikasi Office) melalui lapisan interop COM.

Untuk membuat COM menambahkan-di dalam Visual Basic.NET, ikuti langkah berikut:
  1. Dalam Visual Basic.NET, menciptakan perpustakaan kelas proyek.
  2. Menambahkan referensi ke perpustakaan jenis yang menerapkan IDTExtensibility2. Majelis interop utama untuk ini sudah tersedia di bawah nama Ekstensibilitas.
  3. Menambahkan referensi ke perpustakaan objek Microsoft Office. The Majelis interop utama untuk ini sudah tersedia di bawah nama Office.
  4. Membuat kelas publik di perpustakaan kelas yang mengimplementasikan IDTExtensibility2.
  5. Setelah kelas perpustakaan dibangun, mendaftar perpustakaan untuk COM interop. Untuk melakukannya, menghasilkan kuat bernama perakitan untuk kelas ini Perpustakaan dan kemudian mendaftar dengan COM interop. Anda dapat menggunakan Regasm.exe untuk mendaftar.NET komponen untuk COM interop.
  6. Membuat entri registri sehingga aplikasi Office dapat mengenali dan beban tambahan.
Anda dapat memilih untuk menyelesaikan semua langkah ini, atau Anda dapat membuat.NET proyek jenis Addin bersama. Ini mulai Extensibility Wizard, yang akan membantu Anda untuk membuat COM add-in di.NET.

Wisaya Extensibility menciptakan Visual Dasar.Proyek perpustakaan kelas NET bersama Menghubungkan kelas yang mengimplementasikan IDTExtensibility2 antarmuka. Kerangka kode sumber yang mengimplementasikan anggota kosong IDTExtensibility juga dihasilkan. Proyek ini memiliki referensi ke Extensibility dan kantor Majelis. Pengaturan membangun proyek telah Mendaftar untuk COM Interop dipilih. Majelis kunci (.snk) file yang dihasilkan dan dalam AssemblyKeyfile atribut dalam Assemblyinfo.vb.

Bersama dengan kelas Proyek Perpustakaan, Wisaya penataan proyek yang dapat Anda gunakan untuk menghasilkan menyebarkan COM add-in pada komputer lain. Anda dapat menghapus proyek ini jika dikehendaki.

Contoh langkah demi langkah

  1. Pada Berkas menu di Microsoft Visual Studio.NET, klik Baru, lalu klik Project.
  2. Dalam Proyek baru kotak dialog, memperluas Proyek-proyek lain di bawah Jenis proyek, pilih Proyek-proyek diperpanjang, kemudian pilih Bersama Add-in template.
  3. Jenis MyCOMAddin sebagai nama Add-in, dan kemudian klik Oke.
  4. Ketika Wisaya Extensibility muncul, ikuti langkah berikut:
    1. Pada halaman 1, pilih Membuat Add-in menggunakan Visual Basic, lalu klik Berikutnya.
    2. Pada halaman 2, pilih aplikasi host berikut, dan kemudian klik Berikutnya:
      • Microsoft Word
      • Microsoft PowerPoint
      • Microsoft Outlook
      • Microsoft Excel
      • Microsoft Access
    3. Pada halaman 3, memberikan nama dan deskripsi untuk Add-in, dan kemudian klik Berikutnya.

      Catatan Nama dan deskripsi tambahan muncul di COM Add-in kotak dialog di aplikasi Office.

    4. Pada halaman 4, pilih semua pilihan yang tersedia, dan kemudian Klik Berikutnya.
    5. Klik Menyelesaikan.
  5. Menambahkan anggota berikut untuk Menghubungkan kelas:
    Dim WithEvents MyButton As CommandBarButton 
  6. Menerapkan kode untuk semua anggota IDTExtensibility2 dalam Menghubungkan kelas, sebagai berikut:
        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. Membangun dan menguji COM add-in. Untuk melakukannya, ikuti langkah-langkah:
    1. Pada Bangun menu, klik Membangun MyCOMAddin. Perhatikan bahwa bangunan COM tambahan register.NET kelas dengan COM interop.
    2. Memulai salah satu aplikasi Office yang Anda pilih sebagai aplikasi untuk Anda add-in (misalnya, Microsoft Word atau Microsoft Excel).
    3. Setelah tambahan telah dimulai, OnConnection acara ini dipecat, dan Anda menerima sebuah kotak pesan. Ketika Anda mengabaikan kotak pesan, OnStartupComplete peristiwa kebakaran, dan Anda menerima kotak pesan yang kedua. Mengabaikan kotak pesan.
    4. Perhatikan bahwa tambahan menambahkan tombol kustom baru dengan Keterangan "My Custom tombol" untuk toolbar standar.
    5. Klik Tombol kustom. The Klik acara untuk tombol ditangani oleh tambahan dan Anda menerima kotak pesan. Mengabaikan kotak pesan.
    6. Berhenti aplikasi Office.
    7. Ketika Anda keluar dari aplikasi, OnBeginShutDownperistiwa kebakaran, dan Anda menerima sebuah kotak pesan. Mengabaikan kotak pesan untuk mengakhiri demonstrasi.

REFERENSI

Untuk informasi tambahan tentang menulis peralatan tambahan COM, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
190253 INFO: VB6 desainer tidak bekerja di VB5
Untuk informasi lebih lanjut tentang mengembangkan solusi berbasis Web untuk Microsoft Internet Explorer, kunjungi Website Microsoft berikut:
http://msdn2.Microsoft.com/en-US/IE/default.aspx

http://support.microsoft.com/iep
(c) Microsoft Corporation 2001, All Rights Reserved. Kontribusi oleh Ranjit R. Sawant, Microsoft Corporation.

Properti

ID Artikel: 302896 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Word 2002
Kata kunci: 
kbautomation kbhowtomaster kbmt KB302896 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:302896

Berikan Masukan

 

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