Jak vytvořit Office doplňku COM pomocí jazyka .NET

Překlady článku Překlady článku
ID článku: 302896 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Microsoft Office 2000 a novější podporují architekturu nové, jednotný návrh pro vytváření aplikací doplňky vylepšit a řízení aplikací Office. Tyto doplňky jsou nazývá doplňky COM. Tento podrobný článek popisuje doplňky Office COM a popisuje, jak sestavit Office COM doplněk pomocí Microsoft Visual Basic .NET.

Rozhraní IDTExensibility2

Doplněk COM je v procesu serveru COM nebo knihovna DLL ActiveX (DLL), která implementuje rozhraní IDTExensibility2 popsaným v knihovně typů doplňku Microsoft Designer (Msaddndr.dll). Všechny doplňky COM dědí z tohoto rozhraní a každá z jeho pět metod musí implementovat.

OnConnection

Událost OnConnection je vždy připojen doplněk COM. Doplněk mohou být připojeny na spuštění koncovým uživatelem, nebo prostřednictvím automatizace. Pokud OnConnection vrátí úspěšně, je doplněk je označováno být načten. Pokud je vrácena chybová zpráva hostitelské aplikace okamžitě uvolní jeho odkaz doplněk a zničení objektu.

OnConnection trvá následující čtyři parametry:
  • Aplikace - odkaz na aplikační objekt hostitele.
  • ConnectMode - konstantu, která určuje, jak doplněk je připojena. Doplněk lze připojit následujícími způsoby:
    • ext_cm_AfterStartup - doplněk spuštěn koncového uživatele z dialogového okna Doplňky modelu COM.
    • ext_cm_CommandLine - doplněk je připojen z příkazového řádku. Všimněte si, že se netýká vytváření doplňků modelu COM pro aplikace sady Office.
    • ext_cm_External - doplněk je připojen externí aplikací prostřednictvím automatizace. Všimněte si, že se netýká vytváření doplňků modelu COM pro Office aplikací.
    • ext_cm_Startup - doplněk spuštěn hostitel při spuštění aplikace. Toto chování je řízeno nastavením v registru.
  • AddInInst - odkaz na objekt COMAddIn odkazující na tento doplněk v kolekci COMAddIns hostitelské aplikace.
  • Vlastní - pole Variant typ hodnot, který může pojmout dat definované uživatelem.

OnDisconnection

Událost OnDisconnection je při odpojení doplněk COM a těsně před uvolnění z paměti. Doplněk má provádět jakékoli Vyčištění prostředky v této události a obnovíte všechny změny provedené do hostitelské aplikace.

OnDisconnection trvá následující dva parametry:
  • RemoveMode - konstantu, která určuje, jak doplněk byl odpojen. Doplněk může být odpojen následujícími způsoby:
    • ext_dm_HostShutdown - doplněk je odpojen při zavření hostitelské aplikace.
    • ext_dm_UserClosed - the add - v odpojen podle koncového uživatele nebo automatizaci řadič.
  • Vlastní - pole Variant typ hodnot, který může pojmout dat definované uživatelem.

OnAddInsUpdate

Událost OnAddInsUpdate je při registraci sadu COM Doplňky změny. Jinými slovy kdykoli doplněk COM je nainstalovány nebo odebrány z hostitelské aplikace, tato událost je.

OnStartupComplete a OnBeginShutdown

Obě metody OnBeginShutdown a OnStartupComplete nazývají při opustil hostitelské aplikaci nebo zadávání stavu, ve které uživatelské interakce měli vyhnout protože aplikace je zaneprázdněna načítání nebo samotný uvolnění z paměti. Pokud doplněk byl připojen během spuštění a OnBeginShutdown nazývá pouze pokud hostitel odpojí doplněk během vypnutí pouze nazývá OnStartupComplete.

Protože je uživatelské rozhraní pro hostitelské aplikace při těchto událostech Požární plně aktivní, jejich může být pouze způsobem provádět určité akce jinak by nedostupné z OnConnection a OnDisconnection.

Registrace doplňku COM

Na normální registrace COM doplněk COM musí registrovat sám s každou aplikaci sady Office, ve kterém běží. Samotný zaregistrovat s konkrétní aplikace, doplněk byste vytvořit podklíč pomocí jeho ID jako název klíče pod následujícím umístění:
HKEY_CURRENT_USER\Software\Microsoft\Office\ OfficeApp \Addins\ ProgID
Doplněk může poskytovat hodnoty v tomto umístění klíče pro zobrazení popisný název a úplný popis. Kromě toho doplněk měli určit jeho chování požadované zatížení pomocí hodnotu DWORD s názvem
LoadBehavior
. Tato hodnota určuje, jak doplněk je zaveden hostitelské aplikace a je tvořena kombinací následujících hodnot:
  • 0 = Odpojit - není načten.
  • 1 = Připojeno - je načten.
  • 2 = Zatížení na spuštění aplikace bootload.
  • 8 = DemandLoad - načíst pouze v případě požadavku uživatele.
  • 16 = ConnectFirstTime - načíst pouze jednou (na další spuštění).
Typické zadaná hodnota je 0x03 (připojeno | Bootload).

Doplňky, které implementují IDTExtensibility2 byste také určit hodnotu DWORD s názvem
CommandLineSafe
označují, zda jsou doplňky bezpečné pro operace, které nepodporují uživatelského rozhraní. Hodnota 0x00 označuje False a TRUE označuje hodnotu 0x01.

Jak vytvořit doplňku COM pomocí jazyka .NET

Jak bylo uvedeno dříve, doplněk aplikace Office COM je COM v procesu serveru je aktivována aplikace Office prostřednictvím vrstvě COM run-time. Proto vývoj doplněk COM v aplikaci Visual Basic .NET vyžaduje, aby na součást být implementována .NET a pak vystavena klienty COM (to znamená aplikací Office) prostřednictvím vrstvě COM interop.

Vytvoření doplňku COM v aplikaci Visual Basic .NET, postupujte takto:
  1. V jazyce Visual Basic .NET vytvořit knihovny tříd projektu.
  2. Přidejte odkaz na knihovnu typů implementuje IDTExtensibility2. Primární sestavení interop pro tento je již k dispozici pod názvem rozšiřitelnost.
  3. Přidejte odkaz na knihovnu objektů Microsoft Office. Primární sestavení interop pro tento je již k dispozici pod názvem Office.
  4. Vytvoření veřejné třídy v knihovně třídy, která implementuje IDTExtensibility2.
  5. Po třídy je sestavena knihovna, zaregistrovat knihovnu COM interop. Generovat silným názvem sestavení pro tuto knihovnu třídy a zaregistrujte jej s COM interop. Regasm.exe můžete použít k evidenci komponenta .NET pro COM interop.
  6. Vytvořit položky registru, takže můžete rozpoznat a načíst doplněk aplikace Office.
Můžete zvolit dokončit všechny tyto kroky nebo vytvořit projektu .NET typu Sdílené doplněk. Spustí se Průvodce rozšiřitelnost, který vám pomůže vytvořit doplněk COM v .NET.

Rozšiřitelnost Průvodce vytvoří knihovnu projektu třídy Visual Basic .NET spolu s připojit třídy, která implementuje rozhraní IDTExtensibility2. Skeleton kód, který implementuje prázdné členy IDTExtensibility také generovány. Tento projekt obsahuje odkazy na sestavení rozšiřitelnost a Office. Nastavení sestavení projektu mají zaregistrovat COM InterOp vybrána. Soubor sestavení klíč (.snk) je generován a je odkazován v AssemblyKeyfile atribut v Assemblyinfo.vb.

Průvodce vygeneruje spolu s projektu knihovny třídy nastavení projektu, můžete zavést doplněk COM v jiných počítačích. Tento projekt může odebrat podle potřeby.

Podrobný příklad

  1. V nabídce soubor v aplikaci Microsoft Visual Studio .NET klepněte na příkaz Nový a klepněte na příkaz projekt.
  2. V dialogovém okně Nový projekt rozbalte Jiné projekty v části Typy projektu, vyberte Rozšiřitelnost projekty a vyberte šablonu doplňku Sdílené.
  3. Zadejte MyCOMAddin jako název doplňku a klepněte na tlačítko OK.
  4. Jakmile se zobrazí Průvodce rozšiřitelnost, postupujte takto:
    1. Na stránce 1 vytvořit doplněk pomocí jazyka vyberte a potom klepněte na tlačítko Další.
    2. Na stránce 2 vyberte následující aplikace hostitele a potom klepněte na tlačítko Další:
      • Microsoft Word
      • Microsoft PowerPoint
      • Microsoft Outlook
      • Microsoft Excel
      • Microsoft Access
    3. Na stránce 3 zadejte název a popis pro doplněk a potom klepněte na tlačítko Další.

      Poznámka: V dialogovém okně doplňku COM v aplikaci Office se zobrazí název a popis doplněk.

    4. Na stránce 4 vyberte všechny dostupné možnosti a potom klepněte na tlačítko Další.
    5. Klepněte na tlačítko Dokončit.
  5. Přidat následující člena třídy připojit:
    Dim WithEvents MyButton As CommandBarButton 
  6. Způsobem implementovat kód pro všechny členy IDTExtensibility2 třídy připojit:
        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. Vytvořit a otestovat doplněk COM. Postupujte takto:
    1. V nabídce vytvořit klepněte na příkaz Sestavit MyCOMAddin. Všimněte si, že vytváření doplněk COM registruje .NET třídy COM interop.
    2. Spusťte některou z aplikací sady Office vybrán jako hostitele aplikace pro váš doplněk (například Microsoft Word nebo Microsoft Excel).
    3. Po doplněk byl zahájen, aktivována událost OnConnection a zobrazí okno zprávy. Když zavřete zprávou aktivována událost OnStartupComplete a přijímat druhé okno zprávy. Zavřete okno zprávy.
    4. Poznámka, doplněk přidány nové vlastní tlačítko titulkem "Moje vlastní tlačítko „ standardní panel nástrojů.
    5. Klepněte na tlačítko má vlastní. Události Click tlačítka pro zpracován doplněk a zobrazí okno zprávy. Zavřete okno zprávy.
    6. Ukončete aplikaci Office.
    7. Ukončení aplikace OnBeginShutDown aktivována událost a se zobrazí okno zprávy. Zrušit zprávou demonstrační ukončit.

Odkazy

Další informace o psaní doplňky COM klepněte na článek číslo článku databáze Microsoft Knowledge Base:
190253INFORMACE: VB6 návrháři nefungují v VB5
Další informace o vývoji řešení založených na webu pro aplikaci Microsoft Internet Explorer navštivte následující weby:
http://msdn2.microsoft.com/en-us/ie/default.aspx

http://support.microsoft.com/iep
(c) Microsoft Corporation 2001 všechny rezervované práv. Příspěvky Ranjit R. Sawant, Microsoft Corporation.

Vlastnosti

ID článku: 302896 - Poslední aktualizace: 25. prosince 2006 - Revize: 11.3
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbautomation kbhowtomaster KB302896 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:302896

Dejte nám zpětnou vazbu

 

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