View Single Post
  #2  
Old May 24th 06, 05:19 AM posted to microsoft.public.outlook.program_addins
Dave Kane [MVP - Outlook]
external usenet poster
 
Posts: 33
Default Problem for getting the source item with ItemRemoveEventHandler

You'll need to add an ItemAdd handler to the Deleted Items folder to find
out which appointment was actually removed. Keep in mind that the
appointment's EntryID will have changed since it's in a new folder, so you
will need to use some other property to identify the item.

As you may know, Outlook 2003 SP2 made changes in the way calendar items are
handled (http://support.microsoft.com/?kbid=899919) From the article "The
new design works as follows. When a user accepts or tentatively accepts a
meeting, either from a meeting request or from a calendar item, the existing
calendar item is deleted from the calendar. Additionally, a duplicate of the
calendar item is created for the deleted item. Therefore, the new calendar
item has an Entry ID that is different from the Entry ID of the old calendar
item."

This means that your handlers may trap a delete and an add that are both for
the same appointment. The article describes how the Global Object ID
property is a more reliable way to track appointments. Unfortunately it's
not exposed by the Outlook object model, so you will need to use an Extended
MAPI library to get it.

"Nico" wrote in message
...
Hello

I have a problem for getting the Appointment Item that has been remove
because there is no parameter allowed in the method call after an
ItemsEvents_ItemRemoveEventHandler. With ItemsEvents_ItemAddEventHandler
and ItemsEvents_ItemChangeEventHandler event I can find the AppointItem
that has been change or modify but how to find it with a
ItemRemoveEventHandler event ?


Here is my code :

public void test(){

_application = new Outlook.Application();
_nameSpace = _application.GetNamespace("MAPI");
_mfCalendar =
_nameSpace.GetDefaultFolder(OlDefaultFolders.olFol derCalendar);
ItemsEvents_ItemRemoveEventHandler iaehRemove =
new
ItemsEvents_ItemRemoveEventHandler(this.Appointmen tItemRemove);
_itemsCalendar2.ItemRemove += iaehRemove;
}


public void AppointmentItemRemove()
{
// how to find here which Appointment item has been deleted ?
}

PS : I use Visual Studio 2005 with C#.

Thanks in advance




Ads