Ako Vybuduj Office COM doplnok pomocou Visual C#.NET

Preklady článku Preklady článku
ID článku: 302901 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Microsoft Office XP, Microsoft Office 2003 a Microsoft Office 2007 podporovať jednotné dizajn architektúry pre budovanie uplatňovanie doplnkov posilniť a na ovládanie aplikácie balíka Office. Tieto doplnky sa nazývajú Microsoft Component Object Model (COM) doplnky. V tomto krokovom diskutuje doplnky Office COM a popisuje, ako vybudovať Office COM doplnok programu prostredníctvom pomocou programu Microsoft Visual C#.NET.

Rozhranie IDTExensibility2

COM doplnok je v procesom servera, alebo ActiveX dynamická odkaz knižnica (DLL), ktorá implementuje IDTExensibility2 rozhranie, ako je opísané v typu Microsoft Add-in Designer knižnica (Msaddndr.dll). Všetky doplnky COM dedia z tohto rozhrania a musia implementovať každej z jeho piatich metód.

OnConnection

The OnConnection udalosť požiare kedykoľvek doplnok COM je pripojený. Doplnok môže byť po spustení pripojený, koncový používateľ, alebo prostredníctvom Automatizácie. Ak OnConnection udalosť úspešne, vráti doplnok je povedal, aby sa naložené. Ak sa vráti chybové hlásenie, okamžite hostiteľská aplikácia vydania jeho odkaz na doplnok a objekt sa zničí.

The OnConnection udalosť trvá nasledujúce štyri parametre:
  • Uplatňovanie: Odkaz na objekt application hostiteľa.
  • ConnectMode: Konštanta, ktorý určuje, ako doplnok je pripojený. The doplnok môže byť pripojený nasledovnými spôsobmi:
    • ext_cm_AfterStartup: Doplnok je spustená konečným užívateľom z Doplnky COM dialógové okno.
    • ext_cm_CommandLine: Doplnok je pripojený z príkazového riadka. Poznámka to nevzťahuje sa na budovaní doplnky COM pre aplikácie balíka Office.
    • ext_cm_External: Doplnok je pripojený Externá aplikácia prostredníctvom Automatizácie. Všimnite si, že toto sa neuplatňuje na budovaní doplnky COM pre balík Office aplikácie.
    • ext_cm_Startup: Doplnok je spustená hostiteľom pri spustení aplikácie. Toto správanie sa riadi nastavením databázy registry.
  • AddInInst: Odkaz na COMAddIn objekt, ktorý sa vzťahuje na tento doplnok v COMAddIns zhromažďovanie hostiteľská aplikácia.
  • Vlastné: Pole Variant Zadajte hodnoty, ktoré môžete uchovať užívateľské dáta.

OnDisconnection

The OnDisconnection udalosť požiare keď doplnok COM odpojí a krá uvoľní z pamäte. Doplnok by mali vykonávať akékoľvek čistenie zdrojov v tejto udalosti a obnovenia zmenách Hostiteľská aplikácia.

The OnDisconnection udalosť trvá nasledujúce dva parametre:
  • RemoveMode: Konštanta, ktorý určuje, ako doplnok bol odpojený. The doplnok môže byť odpojený nasledovnými spôsobmi:
    • ext_dm_HostShutdown: Doplnok je odpojená keď hostiteľská aplikácia zavrie.
    • ext_dm_UserClosed: Doplnok je odpojená koncového používateľa alebo automatizácia radič.
  • Vlastné: Pole Variant Zadajte hodnoty, ktoré môžete uchovať užívateľské dáta.

OnAddInsUpdate

The OnAddInsUpdate udalosť požiare, keď súbor registrované COM doplnky zmeny. Inými slovami, kedykoľvek COM doplnok je nainštalované alebo odstránené z hostiteľa aplikácie, táto udalosť požiare.

OnStartupComplete a OnBeginShutdown

Obe OnStartupComplete metóda a OnBeginShutdown volaná metóda keď hostiteľská aplikácia opustil alebo vstupuje štát v ktorý používateľ interakcia by sa malo zabrániť, pretože aplikácia je zaneprázdnená nakládky alebo vykládky sám z pamäte. The OnStartupComplete metóda sa nazýva iba ak doplnok bol pripojený počas spustenia, a OnBeginShutdown metóda sa nazýva iba ak hostiteľského odpojí doplnok počas vypnutia.

Pretože používateľského rozhrania Hostiteľská aplikácia je plne aktívnym, keď tieto udalosti požiaru, môžu byť jediný spôsob, ako vykonávať určité činnosti, ktoré by sa inak nedostupné z OnConnection udalosti a OnDisconnection udalosť.

COM doplnok registrácie

Popri bežných registráciu COM, COM doplnok potrebuje sám zaregistruje každá aplikácia balíka Office, v ktorom beží. Registrovať sama s konkrétny aplikácie, doplnok by mali vytvoriť podkľúč, pomocou jeho ProgID ako názov kľúča, podľa nasledovného umiestnenia:
HKEY_CURRENT_USER\Software\Microsoft\Office\<OfficeApp>\Addins\<ProgID> </ProgID> </OfficeApp>
Doplnok môže poskytnúť hodnoty toto kľúčové umiestnenie pre priateľské zobrazované meno a úplný opis. Okrem toho, doplnok by mali zadať jeho požadovaný zaťaženie správania pomocou hodnotu DWORD s názvom LoadBehavior. Táto hodnota určuje, ako doplnok načítať hostiteľského žiadosti, a skladá sa z kombinácie nasledujúcich hodnôt:
  • 0 = Odpojiť - nie je zavedený.
  • 1 = Pripojené - je načítaný.
  • 2 = Bootload - zaťaženie pri štarte aplikácie.
  • 8 = DemandLoad - zaťaženie iba vtedy, ak o to požiada používateľ.
  • 16 = ConnectFirstTime - zaťaženie len raz (ďalej pri spustení).
Typická hodnota zadaná je 0x03 (pripojené | Bootload).

Doplnky, ktoré implementujú IDTExtensibility2 by malo tiež vyšpecifikovať hodnotu DWORD s názvom
CommandLineSafe
na Uveďte, či doplnky sú bezpečné pre operácie, ktoré nepodporujú používateľ rozhranie. Hodnota 0x00 označuje False, a hodnota 0x01 označuje pravda.

Ako Vybuduj COM doplnok pomocou Visual C#.NET

Ako už bolo spomenuté, doplnok programu Office COM je v procese COM Server, ktorý je vyvolaný aplikácie balíka Office prostredníctvom COM run-time vrstva. Preto sa rozvíja COM doplnok v.NET vyžaduje, aby doplnok súčasť realizované vo.NET a potom vystavené COM klientov (to znamená, Kancelárske aplikácie) cez COM objektovému vrstvu.

Ak chcete vytvoriť COM doplnok v Visual C#.ČISTÁ, postupujte nasledovne:
  1. V Visual C#.ČISTÁ, vytvoriť knižnicu triedy projekt.
  2. Pridať odkaz na druh knižnica, ktorá implementuje IDTExtensibility2. Primárne objektovému zhromaždenia pre toto je už k dispozícii pod názov Rozšíriteľnosť.
  3. Pridať odkaz na Objektová knižnica balíka Microsoft Office. V primárne objektovému zhromaždenia pre toto je už k dispozícii pod názvom Office.
  4. Vytvoriť verejné triedy v triedy knižnica, ktorá implementuje IDTExtensibility2.
  5. Po triedy knižnica je postavená, zaregistrovať knižnicu pre COM interop. Vykonáte to generovať silný, s názvom montáž pre túto triedu Knižnica a potom ho zapísať s COM interop. Môžete použiť Regasm.exe na zaregistrovať.ČISTÉ zložky pre COM interop.
  6. Vytvoriť položky databázy registry, aby aplikácie balíka Office môžete rozpoznať a načítajte doplnok.
Môžete vybrať dokončiť všetky tieto kroky, alebo môžete vytvoriť.ČISTÝ projekt typu Zdieľané doplnok programu. Spustí Sprievodcu rozšíriteľnosti, ktorý vám pomôže vytvoriť COM doplnok v.NET.

Rozšíriteľnosť sprievodca vytvorí Visual C# .Projekt Knižnica čistá trieda spolu s Pripojte trieda, ktorá implementuje IDTExtensibility2 rozhranie. Kostra kód, ktorý implementuje prázdne členov IDTExtensibility tiež vygenerovaný. Tento projekt má odkazy na rozšíriteľnosť a úrad zostavy. Vybudovať nastavenia projektu Zaregistrujte sa na COM Interop vybratá. Zhromaždenie kľúč (.snk) súbor sa generuje a Odkazovaný v AssemblyKeyfile atribút v Assemblyinfo.vb.

Spolu s triedy projekt knižnica, Sprievodca vytvára inštalačný projekt, ktorý môžete použiť na nasadenie COM doplnok na iných počítačoch. Tento projekt môže odstrániť, ak požadovanú.

Podrobný príklad

  1. Na Súbor menu v Microsoft Visual Studio.ČISTÉ, kliknite Nové, a potom kliknite na tlačidlo Project.
  2. V Nový projekt dialógové okno, rozbaľte položku Iné projekty podľa Projekt typy, vyberte Rozšíriteľnosť projektov, a potom vyberte Zdieľané doplnok šablóna.
  3. Typ MyCOMAddin ako názov doplnok a potom kliknite na tlačidlo ok.
  4. Keď sa zobrazí sprievodca rozšíriteľnosť, postupujte nasledovne:
    1. Na strane 1, vyberte Vytvoriť pridať v pomocou Visual C#, a potom kliknite na tlačidlo Next.
    2. Na strane 2, vyberte nasledujúce hostiteľa aplikácie, a kliknite na tlačidlo Next:
      • Microsoft Word
      • Microsoft PowerPoint
      • Program Microsoft Outlook
      • Microsoft Excel
      • Programu Microsoft Access
    3. Na strane 3, poskytne meno a popis doplnok a potom kliknite na tlačidlo Next.

      Poznámka: Názov a opis doplnok zobrazia v Doplnok COM dialógové okno v aplikácia balíka Office.

    4. Na strane 4, vyberte všetky dostupné možnosti, a potom kliknite na tlačidlo Next.
    5. Kliknite na položku Dokončiť.
  5. Na Project ponuky, kliknite na tlačidlo Pridať odkaz. Kliknite na položku System.Windows.Forms.dll v zozname súčastí, kliknite na tlačidlo Vyberte, a potom kliknite na tlačidlo ok.
  6. Pridať nasledujúce do zoznamu priestory názvov v Pripojte trieda:
    using System.Reflection;
  7. Pridať nasledujúce člena, aby Pripojte trieda:
    private CommandBarButton MyButton; 
  8. Vykonávaní kódexu pre členov IDTExtensibility2 v Pripojte trieda, takto:
    public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) {
       applicationObject = application;
       addInInstance = addInInst;
    
       if(connectMode != Extensibility.ext_ConnectMode.ext_cm_Startup)
       {
          OnStartupComplete(ref custom);
       }
    
    }
    
    public void OnDisconnection(Extensibility.ext_DisconnectMode disconnectMode, ref System.Array custom) {
       if(disconnectMode != Extensibility.ext_DisconnectMode.ext_dm_HostShutdown)
       {
          OnBeginShutdown(ref custom);
       }
       applicationObject = null;
    }
    
    
    public void OnAddInsUpdate(ref System.Array custom)
    {
    }
    
    public void OnStartupComplete(ref System.Array custom)
    {
       CommandBars oCommandBars;
       CommandBar oStandardBar;
    
       try
       {
       oCommandBars = (CommandBars)applicationObject.GetType().InvokeMember("CommandBars", BindingFlags.GetProperty , null, applicationObject ,null);
       }
       catch(Exception)
       {
       // Outlook has the CommandBars collection on the Explorer object.
       object oActiveExplorer;
       oActiveExplorer= applicationObject.GetType().InvokeMember("ActiveExplorer",BindingFlags.GetProperty,null,applicationObject,null);
       oCommandBars= (CommandBars)oActiveExplorer.GetType().InvokeMember("CommandBars",BindingFlags.GetProperty,null,oActiveExplorer,null);
       }
    
       // Set up a custom button on the "Standard" commandbar.
       try
       {
       oStandardBar = oCommandBars["Standard"];        
       }
       catch(Exception)
       {
       // Access names its main toolbar Database.
       oStandardBar = oCommandBars["Database"];      
       }
    
       // In case the button was not deleted, use the exiting one.
       try
       {
       MyButton = (CommandBarButton)oStandardBar.Controls["My Custom Button"];
       }
       catch(Exception)
       {
          object omissing = System.Reflection.Missing.Value ;
          MyButton = (CommandBarButton) oStandardBar.Controls.Add(1, omissing , omissing , omissing , omissing);
          MyButton.Caption = "My Custom Button";
          MyButton.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.
       MyButton.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 presses the button,
       //MSO loads the add-in automatically and then raises
       //the Click event for the add-in to handle. 
       MyButton.OnAction = "!<MyCOMAddin.Connect>";
    
       MyButton.Visible = true;
       MyButton.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(this.MyButton_Click);
    
    
       object oName = applicationObject.GetType().InvokeMember("Name",BindingFlags.GetProperty,null,applicationObject,null);
    
       // Display a simple message to show which application you started in.
       System.Windows.Forms.MessageBox.Show("This Addin is loaded by " + oName.ToString()   , "MyCOMAddin");
       oStandardBar = null;
       oCommandBars = null;
    }
    
    public void OnBeginShutdown(ref System.Array custom)
    {
       object omissing = System.Reflection.Missing.Value ;
       System.Windows.Forms.MessageBox.Show("MyCOMAddin Add-in is unloading.");
       MyButton.Delete(omissing);
       MyButton = null;
    }
    
    private void MyButton_Click(CommandBarButton cmdBarbutton,ref bool cancel) {
       System.Windows.Forms.MessageBox.Show("MyButton was Clicked","MyCOMAddin"); }
    					
  9. Vybudovať a test doplnok COM. Chcete urobiť, postupujte podľa týchto kroky:
    1. Na Vybudovať ponuky, kliknite na tlačidlo Riešenie. Všimnite si, že budovanie COM doplnok registrov.ČISTÁ trieda s COM interop.
    2. Spustiť jednu z aplikácií balíka Office, ktorý ste vybrali ako hostiteľa aplikácie pre doplnok (napríklad Microsoft Word alebo Microsoft Excel).
    3. Po spustení doplnok, OnStartupCompletev prípade doplnok je vyhodili a zobrazí hlásenie. Zrušiť správu rámček. Všimnite si, že doplnok pridá nové vlastné tlačidlo s titulky "Moje vlastné tlačidlo" na paneli s nástrojmi Štandardný.
    4. Kliknite na tlačidlo Moje vlastné tlačidlo. The Kliknite na tlačidlo udalosť tlačidla spracuje doplnok a dostanete okno s hlásením. Zamietnuť v okne s hlásením.
    5. Ukončite aplikácie balíka Office.
    6. Keď ukončíte aplikáciu, OnBeginShutDownudalosť požiarov a ste hlásenie. Zamietol v okne s hlásením na konci demonštrácie.

ODKAZY

Ďalšie informácie o písaní doplnky COM, po kliknutí na nasledovné číslo článku databázy Microsoft Knowledge Base:
190253INFO: VB6 návrhári nefungujú VB5

Vlastnosti

ID článku: 302901 - Posledná kontrola: 31. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
Kľúčové slová: 
kbautomation kbhowtomaster kbmt KB302901 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:302901

Odošlite odozvu

 

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