Создание встречи-исключения в серии повторяющихся встреч
В этом примере создается исключение из стандартного шаблона повтора встреч с помощью объекта Exception.
Пример
Примечание.
Приведенный ниже пример кода представляет собой фрагмент из книги Программирование приложений для Microsoft Office Outlook 2007.
После удаления или изменения одного экземпляра повторяющейся встречи Outlook создает объект Exception. Объект Exception позволяет создавать исключение из стандартного шаблона повторения. Свойства объекта содержат изменения, внесенные в экземпляр встречи. Коллекция Exceptions содержит все объекты Exception повторяющейся встречи и связана с объектом RecurrencePattern встречи.
Чтобы получить объект AppointmentItem, представляющий собой исключение из исходного шаблона повторения встречи, используйте свойство AppointmentItem объекта Exception. С помощью методов и свойств возвращенного объекта AppointmentItem можно задать свойства для исключения из встреч.
При работе с элементами повторяющейся встречи следует удалить все предыдущие ссылки, получить новые ссылки на элемент повторяющейся встречи перед обращением к элементу или его изменением и удалить эти ссылки сразу после завершения работы и сохранения изменений. Такой подход применяется к повторяющемуся объекту AppointmentItem и любому объекту Exception или RecurrencePattern. Чтобы удалить ссылку в Visual Basic, установите для существующего объекта значение Nothing. В C# следует явно освободить память для этого объекта.
Обратите внимание, что даже после высвобождения ссылки и попытки получения новой ссылки, если по-прежнему существует активная ссылка на любой из вышеупомянутых объектов, удерживаемая другой надстройкой или приложением Outlook, новая ссылка будет указывать на устаревшую копию объекта. В связи с этим важно высвобождать ссылки немедленно после завершения текущей встречи.
В следующем примере кода CreateExceptionExample изменяет тему повторяющейся встречи, которая была создана в разделе Поиск определенной встречи в серии повторяющихся встреч, а затем использует свойство AppointmentItem объекта Exception, чтобы получить AppointmentItem, соответствующий исключению. Затем CreateExceptionExample изменяет время начала и окончания для исключения.
Если вы используете Visual Studio для тестирования этого примера кода, сначала добавьте ссылку на компонент Microsoft Outlook 15.0 Object Library и задайте переменную Outlook при импорте пространства имен Microsoft.Office.Interop.Outlook. Инструкция using не должна находиться непосредственно перед функциями в примере кода, но ее нужно добавить перед объявлением общедоступного класса. В следующей строке кода показано, как выполнить импорт и назначение в C#.
using Outlook = Microsoft.Office.Interop.Outlook;
private void CreateExceptionExample()
{
Outlook.AppointmentItem appt = Application.Session.
GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).
Items.Find(
"[Subject]='Recurring Appointment DaysOfWeekMask Example'")
as Outlook.AppointmentItem;
if (appt != null)
{
try
{
Outlook.RecurrencePattern pattern =
appt.GetRecurrencePattern();
Outlook.AppointmentItem myInstance =
pattern.GetOccurrence(DateTime.Parse(
"7/21/2006 2:00 PM"))
as Outlook.AppointmentItem;
if (myInstance != null)
{
myInstance.Subject = "My Exception";
myInstance.Save();
Outlook.RecurrencePattern newPattern =
appt.GetRecurrencePattern();
Outlook.Exception myException =
newPattern.Exceptions[1];
if (myException != null)
{
Outlook.AppointmentItem myNewInstance =
myException.AppointmentItem;
myNewInstance.Start =
DateTime.Parse("7/21/2006 1:00 PM");
myNewInstance.End =
DateTime.Parse("7/21/2006 2:00 PM");
myNewInstance.Save();
}
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}