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

 

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值