Если Outlook открывает файл MSG и моя надстройка обращается к Microsoft.Office.Interop.Outlook.Inspector.MailItem, а затем файл закрывается.Дескриптор файла остается открытым для файла, предотвращая его удаление или переименование, пока Outlook не завершит работу.
Идентификатор не имеет значения, сохранен файл или нет, или я вообще что-то делаю с MailItem.
Вот мой код GetCurrentMailItem (), который воспроизводит проблему.
private Outlook.MailItem GetCurrentMailItem()
{
Outlook.MailItem mailItem = null;
Microsoft.Office.Interop.Outlook.Inspector inspector = this.Application.ActiveInspector();
if (inspector != null && inspector.CurrentItem != null)
{
//if (inspector.CurrentItem is Outlook.MailItem)
//mailItem = inspector.CurrentItem;
}
return mailItem;
}
ПРИМЕЧАНИЕ. Мне даже не нужно возвращать CurrentItem, достаточно просто проверить его на NULL, чтобы воспроизвести это.
Если я не выполню тест «inspector.CurrentItem! = Null» в этом коде и просто верну NULL, проблем с дескриптором открытого файла не возникнет.
Добавление вложения с помощью стандартной кнопки вложенияне приводит к этой проблеме.