Click here to Skip to main content
Click here to Skip to main content
Go to top

Build Your Own Add-in For Microsoft Office Using .NET

, 10 Dec 2005
Rate this:
Please Sign up or sign in to vote.
How to build an add-in for Microsoft applications supporting add-ins, using C#.

Sample image

Introduction

In this article, we will learn how to create a simple Hello World browser add-in for Microsoft’s applications that supports add-in. A list of such applications is given here:

  1. Microsoft Word
  2. Microsoft VSMacros IDE
  3. Microsoft Visual Studio .NET
  4. Microsoft Visio
  5. Microsoft Publisher
  6. Microsoft Project
  7. Microsoft PowerPoint
  8. Microsoft Outlook
  9. Microsoft FrontPage
  10. Microsoft Excel
  11. Microsoft Access

In this article, we will take Microsoft Outlook as an example.

Prerequisites:

You must have the following …

  1. Microsoft Development Environment 2003 or higher
  2. Microsoft .NET Framework 2.0
  3. Office Primary Interop Assemblies (PIAs). For Office XP, click here to download.

Creating the Add-in

  • Run the Microsoft Development Environment.
  • Go to File> New Project>, a dialog will appear.
  • Go to Other Projects> Extensibility Project, select Shared Add-in type project template.

Add-In Wizard

When the Add-in wizard starts, press Next...

Sample image

Select programming language (example C#), press Next.

Sample image

Select applications in which you want to host your add-in, press Next.

Sample image

Provide add-in name and description, press Next.

Sample image

Choose add-in options, press Next.

Sample image

Press Finish.

Sample image

Setup Projects

Two projects will be added automatically.

  1. Add-in project.
  2. Setup project.

Creating the Browser Form

  1. Add a form for the Add-in project, named frmHelloWorld.cs.
  2. Add a Label, TextBox, and a PictureBox.
  3. Add a Microsoft web browser control to the form (you can get it by right clicking on the toolbox, selecting Add/Remove Items, and clicking on the “COM Components”: a lot of controls will be listed, select Microsoft Web Browser Control, and press OK.
  4. With the following code, create a function go():
void go()
{
    try
    {
        stbPanel1.Text="Trying to open "+tbURL+"..." ;
        object obj=new object ();
        browser.Navigate(tbURL.Text,ref obj,ref obj,ref obj,ref obj);
    }
    catch(Exception ex)
    {
        //error hanlder here......
    }
}

Call this function on the PictureBox's Click event.

Programming for Add-in Connection

Install PIAs and add a reference to the following DLL: Microsoft.Office.Interop.Outlook.DLL.

Sample image

There will be a file connect.cs in the add-in project, open it. Declare the following items globally:

//for Outlook Express you can mention here word, power point. 
private Microsoft.Office.Interop.Outlook.Application applicationObject; 
private object addInInstance; 
private CommandBarButton btnLaunch;

In the function OnStartupComplete, write the following code:

public void OnStartupComplete(ref System.Array custom)
{
    CommandBars commandBars = 
        applicationObject.ActiveExplorer().CommandBars;

    try
    {
        //if will be good if button exist use it
               btnLaunch= (CommandBarButton)
            commandBars["Standard"].Controls["HelloWorld"];
    }
    catch
    {
        //if error occur
                 btnLaunch = (CommandBarButton)
            commandBars["Standard"].Controls.Add(1, 
            System.Reflection.Missing.Value, 
            System.Reflection.Missing.Value, 
            System.Reflection.Missing.Value, 
            System.Reflection.Missing.Value);
        btnLaunch.Caption = "Hello World Browser!";
        btnLaunch.Style = MsoButtonStyle.msoButtonCaption;
    }
    //use tag for quick access of button.
    btnLaunch.Tag = "This is Hello World Browser!";


    btnLaunch.OnAction = "!<EMAILSTATSADDIN.CONNECT>";
    btnLaunch.Visible = true;
    btnLaunch.Click += new 
        _CommandBarButtonEvents_ClickEventHandler(
        btnLaunch_Click);
}

In the function OnBeginShutdown, write the following code:

public void OnBeginShutdown(ref System.Array custom)
{
    //delete our button...
    CommandBars commandBars = applicationObject.ActiveExplorer().CommandBars;
    try
    {
        //remove on unload...
        commandBars["Standard"].Controls["HelloWorld"].Delete(
                             System.Reflection.Missing.Value);
    }
    catch(System.Exception ex)
    {
        //code to show/log error...
    }
}

Write the following code in the btnLanuch event handler:

private void btnLaunch_Click(CommandBarButton Ctrl, 
                            ref bool CancelDefault)
{
    try
    {
        frmHelloWorld objfrmHelloWorld=new frmHelloWorld ();
        objfrmHelloWorld.Show();  
    }
    catch(Exception ex)
    {
        //code to show or log error...
    }
}

Rebuild and Installation

Right click on the setup project, click Rebuild, and it will automatically rebuild the add-in and the setup project. Then, right click on the setup project and click Install.

Running

Run Microsoft Outlook, and you will see “Hello World Browser!” on the toolbar. Click on it and your add-in will start. As you can see here...

Sample image

Known Issues

After uninstallation, the “Hello World Browser!” button is not removed from the Outlook toolbar.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Mubi | www.mrmubi.com
Business Analyst Valentia Technologies
Ireland Ireland
Mubi
^^^^^^^^^^^^^^^^^^^^^^^
www.mubshir.com
Follow on   Twitter

Comments and Discussions

 
QuestionHow to in Outlook Web Access page? Pinmembertiger200522-Feb-10 6:38 
GeneralHelp, How to: Create menu on MenuBar when click New/Mail Message Pinmembernguyennhutoan03ct2-Jul-07 23:44 
GeneralAddIn Deployment Pinmembernguyennhutoan03ct27-Jun-07 22:30 
AnswerRe: AddIn Deployment PinmemberMubshir Raza Ali27-Jun-07 23:14 
GeneralExcel PinmemberSergey Gorchichko7-Feb-07 4:18 
Questiondiasymreader.dll problem Pinmemberal866-Dec-06 22:37 
QuestionAssembly Office 11.0 PinmemberEckhart471116-Sep-06 0:09 
AnswerRe: Assembly Office 11.0 PinmemberMubshir Raza Ali17-Sep-06 19:17 
QuestionDocking?? Pinmemberjvlake26-Jun-06 16:07 
AnswerRe: Docking?? PinmemberLastGentleman25-Jan-07 20:41 
GeneralIn PowerPoint the button event is not firing. PinmemberAnil_gupta5-Jun-06 4:25 
GeneralExcel Worksheet Function Pinmemberchrisv16-Mar-06 13:17 
QuestionHow do i debug???? Pinmemberrajiv40422-Jan-06 1:10 
AnswerRe: How do i debug???? Pinmembermrmubi22-Jan-06 18:04 
GeneralI got the correct .dll now Pinmemberhalifaxdal21-Dec-05 4:21 
QuestionHow to add reference Pinmemberhalifaxdal21-Dec-05 4:04 
AnswerRe: How to add reference Pinmembermrmubi21-Dec-05 17:49 
GeneralOutlook button bar Pinmemberbsieber11-Dec-05 2:05 
GeneralRe: Outlook button bar Pinmembermrmubi11-Dec-05 17:13 
GeneralRe: Outlook button bar Pinmembereligazit22-Dec-05 20:36 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140916.1 | Last Updated 10 Dec 2005
Article Copyright 2005 by Mubi | www.mrmubi.com
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid