Eigentlich war mein Bedarf ein bisschen anders aber vielleicht gleich: Ich wollte über die Änderungen eines Ordners (Termine in meinem Fall) nach einem Senden/Empfangen benachrichtigt werden. Mein erster Gedanke (und ich denke, Sie sind auf der gleichen Spur) war, nach einem Sende-/Empfangs-Ereignis zu suchen und vielleicht eine Sammlung von Gegenständen daraus oder etwas ähnliches zu bekommen, aber keine solche Sache ist verfügbar. (Wie auch in this forum post erklärt)
Mein zweiten Weg vom following article kam: ich zum Item_Add
und Item_Change
anmelden kann (und sogar Item_Removed
) bei einem Ordner (der auch von einem Sende erfolgt durch die Veränderungen ausgelöst receive):
Einige Code:
// 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);
}
}