J
Jan Agermose
Im trying to get started on this comaddin programming in outlook 2003. Im
using c# and created a solution in visual studio and created an example
using information from a microsoft example. It compiles and it does load
(using the installer created by the wizard).
The onstartup is posted below - look for "this fails" comments. It seams
commandBars["Standard"] returns a null pointer exception. Altså trying to
iterate the commandBars collections fails?
Any ideas? Does anyone have a all in one class example that simply adds a
button on the toolbar that pops up a messagebox if pressed?
Best regards
Jan Agermose
public void OnStartupComplete(ref System.Array custom)
{
CommandBars commandBars =
applicationObject.ActiveExplorer().CommandBars;
applicationObject.
IEnumerator ie = null;
try
{
// If our button is already
// on the Standard CommandBar, use it.
btnGetEMailStats = (CommandBarButton)
commandBars["Standard"].Controls["Statistics"];
}
catch
{
// OOPS! Our button is not there, so
// we need to make a new instance.
// Note that the Add() method was
// defined to take optional parameters,
// which are not supported in C#.
// Thus we must specify Missing.Value.
try
{
MessageBox.Show(commandBars.GetType().ToString());
// this fails:
MessageBox.Show(commandBars.ActiveMenuBar.Name);
// this fails (if the above line is delete of cause
btnGetEMailStats = (CommandBarButton)
commandBars["Standard"].Controls.Add(1,
System.Reflection.Missing.Value,
System.Reflection.Missing.Value,
System.Reflection.Missing.Value,
System.Reflection.Missing.Value);
btnGetEMailStats.Caption = "Statistics";
btnGetEMailStats.Style = MsoButtonStyle.msoButtonCaption;
}
catch (System.Exception e)
{
MessageBox.Show("fejl: "+e.ToString());
}
MessageBox.Show("Kører2!");
}
// Setting the Tag property is not required, but can be used
// to quickly reterive your button.
btnGetEMailStats.Tag = "Statistics";
// Setting OnAction is also optional, however if you specify
// the ProgID of the Add-in, the host will automatically
// load the Add-in if the user clicks on the CommandBarButton when
// the Add-in is not loaded. After this point, the Click
// event handler is called.
btnGetEMailStats.OnAction = "!<EMailStatsAddIn.Connect>";
btnGetEMailStats.Visible = true;
// Rig-up the Click event for the new CommandBarButton type.
btnGetEMailStats.Click += new
_CommandBarButtonEvents_ClickEventHandler(
btnGetEMailStats_Click);
}
using c# and created a solution in visual studio and created an example
using information from a microsoft example. It compiles and it does load
(using the installer created by the wizard).
The onstartup is posted below - look for "this fails" comments. It seams
commandBars["Standard"] returns a null pointer exception. Altså trying to
iterate the commandBars collections fails?
Any ideas? Does anyone have a all in one class example that simply adds a
button on the toolbar that pops up a messagebox if pressed?
Best regards
Jan Agermose
public void OnStartupComplete(ref System.Array custom)
{
CommandBars commandBars =
applicationObject.ActiveExplorer().CommandBars;
applicationObject.
IEnumerator ie = null;
try
{
// If our button is already
// on the Standard CommandBar, use it.
btnGetEMailStats = (CommandBarButton)
commandBars["Standard"].Controls["Statistics"];
}
catch
{
// OOPS! Our button is not there, so
// we need to make a new instance.
// Note that the Add() method was
// defined to take optional parameters,
// which are not supported in C#.
// Thus we must specify Missing.Value.
try
{
MessageBox.Show(commandBars.GetType().ToString());
// this fails:
MessageBox.Show(commandBars.ActiveMenuBar.Name);
// this fails (if the above line is delete of cause
btnGetEMailStats = (CommandBarButton)
commandBars["Standard"].Controls.Add(1,
System.Reflection.Missing.Value,
System.Reflection.Missing.Value,
System.Reflection.Missing.Value,
System.Reflection.Missing.Value);
btnGetEMailStats.Caption = "Statistics";
btnGetEMailStats.Style = MsoButtonStyle.msoButtonCaption;
}
catch (System.Exception e)
{
MessageBox.Show("fejl: "+e.ToString());
}
MessageBox.Show("Kører2!");
}
// Setting the Tag property is not required, but can be used
// to quickly reterive your button.
btnGetEMailStats.Tag = "Statistics";
// Setting OnAction is also optional, however if you specify
// the ProgID of the Add-in, the host will automatically
// load the Add-in if the user clicks on the CommandBarButton when
// the Add-in is not loaded. After this point, the Click
// event handler is called.
btnGetEMailStats.OnAction = "!<EMailStatsAddIn.Connect>";
btnGetEMailStats.Visible = true;
// Rig-up the Click event for the new CommandBarButton type.
btnGetEMailStats.Click += new
_CommandBarButtonEvents_ClickEventHandler(
btnGetEMailStats_Click);
}