title: Event after a Outlook Appointment was saved
body: <p>I am writing an Outlook Add-in and want to do something (not relevant here) with the data of an Appointment after (when) it was saved.<br>
  (i am new to Outlook-Addins)<br>
  so i found that there is an <em>AfterWrite</em> event where i can register a Method.
  And there is an <em>ItemLoad</em> event on <em>Application</em>.</p>
  
  <p>so my first Efford was something like this:</p>
  
  <pre><code>private void ThisAddIn_Startup(object sender, System.EventArgs e)
  {
      // ...
      this.Application.ItemLoad += 
          new Outlook.ApplicationEvents_11_ItemLoadEventHandler(atItemLoad);
  }
  public void atItemLoad(Object item)
  {
      Outlook.AppointmentItem aitem = item as Outlook.AppointmentItem;
      if (aitem != null)
      {
          aitem.AfterWrite += 
              new Outlook.ItemEvents_10_AfterWriteEventHandler(afterWrite);
      }
  }
  public void afterWrite()
  {
      // Who was written?
      MessageBox.Show("it was written!");
  }
  </code></pre>
  
  <p>The problem is, that I don't know how to get to the data of the Appointment, that fired the event.
  <em>Application.ItemLoad</em> registers a function that gets an Object, that can be cast to an <em>Appointment</em>.<br>
  <em>AfterWrite</em> does not. I'd like something like this:</p>
  
  <pre><code>public void afterWrite(Outlook.AppointmentItem aitem)
  {
      // do something with the data from the Appointment
      MessageBox.Show(aitem.Subject + " was written!");
  }
  </code></pre>
  
  <p>I fear that I am researching in the totally wrong direction..</p>
  
  <p>*sorry if my english is a mess - it's not my mother language</p>
  
  <p>edit:</p>
  
  <p>i even tried a construct like this:</p>
  
  <pre><code>private List&lt;AppointmentEventHolder&gt; holderList = new List&lt;AppointmentEventHolder&gt;();
  
  internal class AppointmentEventHolder
  {
      private Outlook.AppointmentItem aitem = null;
      public AppointmentEventHolder(Outlook.AppointmentItem item)
      {
          aitem = item;
      }
  
      public void onWrite()
      {
          MessageBox.Show("write: " + aitem.Subject);
      }
  }
  
  public void atItemLoad(Object item)
  {
      Outlook.AppointmentItem aitem = item as Outlook.AppointmentItem;
      if (aitem != null)
      {
          AppointmentEventHolder aHolder = new AppointmentEventHolder(aitem);
          holderList.Add(aHolder);
          aitem.AfterWrite += aHolder.onWrite;
      }
  }
  </code></pre>
  
  <p>but event doesn't get fired!
  i am very frustrated now</p>