Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

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

0.00/5 (No votes)
10 Dec 2005 1  
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