在添加新的定期约会并添加定期约会的例外时,Outlook 2016会引发异常: System.Runtime.InteropServices.COMException(0x80040109):由于消息已更改,因此无法执行该操作。
以下代码示例保存新约会并添加异常:
AppointmentItem item1 = _calendar.Items.Add(OlItemType.olAppointmentItem)
//preparing app...
item1.Save();
item1.Session.Logoff();
item1.Session.Logon(null, null, null, null);
RecurrencePattern pattern1 = item1.GetRecurrencePattern();
//preparing pattern....
item1.Save();
item1.Session.Logoff();
item1.Session.Logon(null, null, null, null);
ArrayList list1 = appointment.Exceptions; //collection of exceptions
Utils.FreeComObject(pattern1);
pattern1 = null;
if (list1.Count > 0)
{
pattern1 = item1.GetRecurrencePattern();
foreach (ClsAppt appointment1 in list1)
{
DateTime time1 = Convert.ToDateTime(appointment1.StartDate.ToString("G"));
AppointmentItem item2 = null;
try
{
item2 = pattern1.GetOccurrence(time1);
//preparing exception
item2.Save();
item2.Session.Logoff();
item2.Session.Logon(null, null, null, null);
}
catch (System.Exception exception1)
{
LogError(exception1.ToString());
}
finally
{
Utils.FreeComObject(item2);
item2 = null;
Utils.FreeComObject(pattern1);
pattern1 = null;
}
item1.Save();
item1.Session.Logoff();
item1.Session.Logon(null, null, null, null);
pattern1 = item1.GetRecurrencePattern();
}
item1.Save();
item1.Session.Logoff();
item1.Session.Logon(null, null, null, null);
}
此代码可在任何地方使用,但一个Outlook实例2016会引发异常。 调用item2.Save()时出现错误。 当捕获到异常时,代码将尝试调用item1.Save(),但在此调用时再次引发相同的异常。
有人可以告诉我这些异常的原因是什么? 同样,可以将同一约会添加到另一个Outlook中而不会出现问题。