Мне нужно синхронизировать контакты Outlook с другой службой. Я могу подписаться создавать, изменять и удалять события следующим образом:Как получить идентификатор Entry удаленного объекта OutlookItem?
Outlook.MAPIFolder folderContacts = this.Application.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
Outlook.Items contacts = folderContacts.Items;
contacts.ItemAdd += Contacts_ItemAdd;
contact.ItemChange += Contacts_ItemChange;
contacts.ItemRemove += Contacts_ItemRemove;
Это отлично работает для создания и изменения, как я получить деталь в обработчик события:
private void Contacts_ItemAdd(object Item)
{
Outlook.ContactItem contact = (Outlook.ContactItem)Item;
...
}
Однако, в случае удалить событие, я не получаю информацию об удаленном элементе.
private void Contacts_ItemRemove() {
// how to get deleted item or at least it's EntryID?
}
Как получить идентификатор Entry удаленного объекта? Я использую этот идентификатор, чтобы идентифицировать элемент в другой службе.
Что о событии ContactItem.BeforeDelete (https://msdn.microsoft.com/en-us/l ibrary/офис/ff868306.aspx)? Могу ли я каким-то образом использовать это? – Sebi
BeforeDelete - это чистый пользовательский интерфейс, созданный Outlook. В старых версиях Outlook он действительно не работал, и он был поднят только на машине, где работает код. Если, например, вы удаляете элемент с помощью OWA, событие не будет срабатывать в Outlook. –