Я разрабатываю надстройку для Outlook. Моя цель - назначить EntryId только что сохраненному элементу Outlook, в частности элементу Task. Итак, в классе подходящей оболочки у меня есть:
public TaskItemEventWrapper(Outlook.TaskItem item)
{
Item = item;
Id = new Guid();
Item.BeforeRead += new Outlook.ItemEvents_10_BeforeReadEventHandler(Item_BeforeRead);
Item.Read += new Outlook.ItemEvents_10_ReadEventHandler(Item_Read);
Item.Unload += new Outlook.ItemEvents_10_UnloadEventHandler(Item_Unload);
Item.AfterWrite += Item_AfterWrite;
Item.AttachmentAdd += Item_AttachmentAdd;
Item.AttachmentRead += Item_AttachmentRead;
Item.AttachmentRemove += Item_AttachmentRemove;
Item.BeforeAttachmentAdd += Item_BeforeAttachmentAdd;
Item.BeforeAttachmentPreview += Item_BeforeAttachmentPreview;
Item.BeforeAttachmentRead += Item_BeforeAttachmentRead;
Item.BeforeAttachmentSave += Item_BeforeAttachmentSave;
Item.BeforeAttachmentWriteToTempFile += Item_BeforeAttachmentWriteToTempFile;
Item.BeforeAutoSave += Item_BeforeAutoSave;
Item.BeforeCheckNames += Item_BeforeCheckNames;
Item.BeforeDelete += Item_BeforeDelete;
Item.CustomAction += Item_CustomAction;
Item.CustomPropertyChange += Item_CustomPropertyChange;
Item.Open += Item_Open;
Item.PropertyChange += Item_PropertyChange;
Item.ReadComplete += Item_ReadComplete;
Item.Write += Item_Write;
}
void Item_AfterWrite()
{
System.Diagnostics.Debug.WriteLine("Id --> " + Item.EntryID);
}
void Item_Write(ref bool Cancel)
{
if (!Cancel)
{
System.Diagnostics.Debug.WriteLine("Id --> " + Item.EntryID);
}
}
Если я попытаюсь проверить событие EntryId в записи, я получу нулевое значение. Если я пытаюсь проверить EntryId в событии After_Write, я получаю сообщение об ошибке:
1 : Ошибка взаимодействия
Итак, мой вопрос: когда и где находится правильное место для получения нового EntryId, назначенного элементу? Спасибо!