На самом деле моя потребность была немного иной, но может быть такой же: Я хотел получать уведомления об изменениях в папке (встречи в моем случае) после отправки/получения. Моя первая мысль (и я думаю, что вы на том же треке) должна была проверить событие отправки/получения и, возможно, получить какую-то коллекцию предметов или что-то подобное, но такой вещи нет. (Как это также объясняется в this forum post)
Мой второй путь пришел из following article: я могу зарегистрироваться на Item_Add
и Item_Change
(и даже Item_Removed
) случае папки (которых также срабатывает от изменений, сделанных с помощью отправки и получения):
Некоторый код:
// Get the folder calendar folder and subscribe to the events.
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).Items.ItemAdd += new Microsoft.Office.Interop.Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd);
Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).Items.ItemChange += new Microsoft.Office.Interop.Outlook.ItemsEvents_ItemChangeEventHandler(Items_ItemChange);
}
// Do something with it.
void Items_ItemAdd(object Item)
{
logItem(Item, "Add");
}
void logItem(object Item, string Action)
{
Outlook.AppointmentItem item = Item as Outlook.AppointmentItem;
File.AppendAllText(@"e:\log.txt", string.Format("Item {0}: {1}", Action, Item));
if (item != null)
{
File.AppendAllText(@"e:\log.txt", " - Appointment: " + item.Subject);
}
}