在定期约会系列中查找特定约会

此代码示例展示了如何返回代表定期约会系列中特定约会的 AppointmentItem 对象。

示例

注意

下面的代码示例摘录自 Microsoft Office Outlook 2007 应用程序编程

若要查找在指定日期和时间发生的定期约会的实例,请使用 RecurrencePattern 对象的 GetOccurrence(DateTime) 方法返回 AppointmentItem 对象。

当使用定期约会项目时,您应当先释放以前的所有引用,再获取对定期约会项目的新引用,然后才访问或修改项目,并在完成和保存更改后立即释放这些引用。 此做法适用于定期 AppointmentItem 对象,以及任何 ExceptionRecurrencePattern 对象。 若要在 Visual Basic 中释放引用,请将现有对象设置为“Nothing”。 在 C# 中,明确释放相应对象占用的内存。

请注意,即使是在您释放引用并尝试获取新引用之后,如果仍存在对以上对象之一的活动引用(由另一个加载项或 Outlook 保存),则新引用也仍将指向对象的过期副本。 因此,在完成使用定期约会后立即释放引用非常重要。

在下面的代码示例中,CheckOccurrenceExample 使用在创建模式为每周一次的定期约会的代码示例中创建的定期约会。 然后,它调用 GetOccurrence 方法,以确定定期约会的开始日期和时间是否为指定值。 为了确保过程在提供的信息与定期约会实例的开始日期和时间不匹配时仍可继续执行,此示例使用 try…catch 块。 对定期约会系列中的每个约会调用 GetOccurrence 方法后,CheckOccurrenceExample 测试 singleAppt 变量,以确定它是否设置为空引用(表明方法失败且未返回 AppointmentItem 对象)。

如果使用 Visual Studio 测试此代码示例,必须先添加对 Microsoft Outlook 15.0 对象库组件的引用,并在导入 Microsoft.Office.Interop.Outlook 命名空间时指定 Outlook 变量。 不得将 using 语句直接添加到此代码示例中的函数前面,这个语句必须后跟公共类声明。 下面的代码行演示了如何在 C# 中执行导入和分配。

using Outlook = Microsoft.Office.Interop.Outlook;
private void CheckOccurrenceExample()
{
    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 singleAppt =
                pattern.GetOccurrence(DateTime.Parse(
                "7/21/2006 2:00 PM"))
                as Outlook.AppointmentItem;
            if (singleAppt != null)
            {
                Debug.WriteLine("7/21/2006 2:00 PM occurrence found.");
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
        }
    }
}

另请参阅