У меня проблема с разработкой Office 365 Outlook Addin (Desktop).
Мне нужно изменить некоторые свойства MailItem, открытого с помощью пользовательской формы (форма, разработанная в Outlook, экспортированная в виде файла OFS и импортированная в проект Visual Studio AddIn), но вызов метода «Сохранить» для объекта MailItem
не работает, свойство «Сохранено» остается «ложным», и когда я закрываю инспектор, Outlook предлагает сохранить текущий элемент. При вызове «Сохранить» не возникло никаких исключений или сообщений об ошибках.
Но если я попытаюсь вызвать «Сохранить» в тот же MailItem в теле AddIn, сообщение будет сохранено.
Я попытался написать простой тест «addin» и получил тот же результат, но я не могу понять это поведение.
Примечание: с предыдущей версией Outlook у меня не было этой проблемы.
Любая идея?
Большое спасибо!
В настоящее время используется VS2017, C #, .NET Framework 4.5, Interop library version 15.0
// ADD-IN BODY
private Outlook.Inspectors inspectors;
public static MailItem CurrentMailItem;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
inspectors = this.Application.Inspectors;
inspectors.NewInspector += Inspectors_NewInspector;
}
private void Inspectors_NewInspector(Inspector Inspector)
{
if (Inspector.CurrentItem is MailItem)
{
MailItem item = (MailItem)Inspector.CurrentItem;
item.MessageClass = "IPM.Note.MyReader";
item.Save();
bool saved = item.Saved;
Marshal.ReleaseComObject(item);
item = null;
}
}
// CUSTOM FORM:
private void FormRegion2_FormRegionShowing(object sender, System.EventArgs e)
{
// from this.OutlookItem
MailItem item = this.OutlookItem as MailItem;
item.Save();
bool saved = item.Saved; // <== SAVED=FALSE!
// from global variable (static)
ThisAddin.CurrentMailItem.Save();
saved = ThisAddin.CurrentMailItem.Saved; // <=== SAVED=FALSE!!!!
}