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:
- Microsoft Word
- Microsoft VSMacros IDE
- Microsoft Visual Studio .NET
- Microsoft Visio
- Microsoft Publisher
- Microsoft Project
- Microsoft PowerPoint
- Microsoft Outlook
- Microsoft FrontPage
- Microsoft Excel
- Microsoft Access
In this article, we will take Microsoft Outlook as an example.
Prerequisites:
You must have the following �
- Microsoft Development Environment 2003 or higher
- Microsoft .NET Framework 2.0
- 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...
Select programming language (example C#), press Next.
Select applications in which you want to host your add-in, press Next.
Provide add-in name and description, press Next.
Choose add-in options, press Next.
Press Finish.
Setup Projects
Two projects will be added automatically.
- Add-in project.
- Setup project.
Creating the Browser Form
- Add a form for the Add-in project, named frmHelloWorld.cs.
- Add a
Label
, TextBox
, and a PictureBox
.
- 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.
- 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)
{
}
}
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.
There will be a file connect.cs in the add-in project, open it. Declare the following items globally:
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
{
btnLaunch= (CommandBarButton)
commandBars["Standard"].Controls["HelloWorld"];
}
catch
{
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;
}
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)
{
CommandBars commandBars = applicationObject.ActiveExplorer().CommandBars;
try
{
commandBars["Standard"].Controls["HelloWorld"].Delete(
System.Reflection.Missing.Value);
}
catch(System.Exception ex)
{
}
}
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)
{
}
}
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...
Known Issues
After uninstallation, the �Hello World Browser!� button is not removed from the Outlook toolbar.