Try this 
using System;
using System.Collections.Generic;
namespace ProjectAddin
{
[System.AddIn.AddIn("ThisProject", Version = "1.0", Publisher = "", Description = "")]
public partial class ThisProject
{
zenOn.IAlarm zAlarm;
private void ThisProject_Startup(object sender, EventArgs e)
{
try
{
//init the alarm object for events
zAlarm = this.Alarm();
//Initial Events
zAlarm.AlarmAcknowledged += new zenOn.AlarmAcknowledgedEventHandler(zAlarm_AlarmAcknowledged);
zAlarm.AlarmComes += new zenOn.AlarmComesEventHandler(zAlarm_AlarmComes);
zAlarm.AlarmGoes += new zenOn.AlarmGoesEventHandler(zAlarm_AlarmGoes);
}
catch (Exception ex)
{
System.Diagnostics.Debug.Print("ERROR ThisProject_Startup:" + ex.Message + " " + ex.Source);
}
}
private void ThisProject_Shutdown(object sender, EventArgs e)
{
try
{
zAlarm.AlarmAcknowledged -= new zenOn.AlarmAcknowledgedEventHandler(zAlarm_AlarmAcknowledged);
zAlarm.AlarmComes -= new zenOn.AlarmComesEventHandler(zAlarm_AlarmComes);
zAlarm.AlarmGoes -= new zenOn.AlarmGoesEventHandler(zAlarm_AlarmGoes);
}
catch (Exception ex)
{
System.Diagnostics.Debug.Print("ERROR ThisProject_Startup:" + ex.Message + " " + ex.Source);
}
}
///
/// procedure is executed when an Alarm has gone
///
/// AlarmItem Alarm has gone
void zAlarm_AlarmGoes(zenOn.IAlarmItem obItem)
{
System.Windows.Forms.MessageBox.Show("AlarmGoes from " + obItem.Name + " " + obItem.Text);
}
///
/// procedure is executed when an Alarm comes
///
/// AlarmItem Alarm comes
void zAlarm_AlarmComes(zenOn.IAlarmItem obItem)
{
System.Windows.Forms.MessageBox.Show("AlarmComes from " + obItem.Name);
}
///
/// procedure is executed when an Alarm was acknowledged by a user
///
/// AlarmItem Alarm acknowledged
void zAlarm_AlarmAcknowledged(zenOn.IAlarmItem obItem)
{
System.Windows.Forms.MessageBox.Show("AlarmAcknowledged from " + obItem.Name);
}
#region VSTA generated code
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisProject_Startup);
this.Shutdown += new System.EventHandler(ThisProject_Shutdown);
}
#endregion
}
}