View Single Post
  #3  
Old May 24th 06, 09:12 AM posted to microsoft.public.outlook.program_addins
Nico
external usenet poster
 
Posts: 2
Default Problem for getting the source item with ItemRemoveEventHandler


Thanks for this clear answer !

"Dave Kane [MVP - Outlook]" a écrit dans le message de
news: ...
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