Freigeben über


Suchen nach einem bestimmten Termin in einer Terminserie

Dieses Beispiel zeigt, wie ein AppointmentItem-Objekt zurückgegeben wird, das einen bestimmten Termin in einer Terminserie darstellt.

Beispiel

Hinweis

Das folgende Codebeispiel ist ein Auszug aus Programming Applications für Microsoft Office Outlook 2007.

Verwenden Sie zum Auffinden einer Instanz einer Terminserie für ein angegebenes Datum mit angegebener Uhrzeit die GetOccurrence(DateTime) -Methode des RecurrencePattern -Objekts, um ein AppointmentItem-Objekt zurückzugeben.

Wenn Sie mit Terminserien arbeiten, müssen Sie vorherige Verweise freigeben, neue Verweise auf das Terminserienelement abrufen, bevor Sie das Element öffnen oder bearbeiten, und diese Verweise freigeben, sobald Sie Ihre Änderungen abgeschlossen und gespeichert haben. Diese Vorgehensweise gilt für das sich wiederholende AppointmentItem-Objekt und alle Exception- oder RecurrencePattern-Objekte. Um einen Verweis in Visual Basic freizugeben, legen Sie dieses vorhandene Objekt auf „Nothing“ fest. Geben Sie in C# den Arbeitsspeicher für dieses Objekt explizit frei.

Auch nachdem Sie Ihren Verweis freigegeben und versucht haben, einen neuen Verweis abzurufen, zeigt Ihr neuer Verweis, wenn es noch einen aktiven Verweis (der von einem anderen Add-In oder Outlook aktiviert wurde) auf eines der obigen Objekte gibt, weiter auf eine veraltete Kopie des Objekts. Deshalb müssen Sie stets Ihre Verweise freigeben, sobald Sie mit dem Bearbeiten der Terminserie fertig sind.

Im folgenden Codebeispiel verwendet CheckOccurrenceExample die Terminserie, die im Codebeispiel in Erstellen einer Terminserie mit wöchentlichem Muster erstellt wurde. Dann wird die GetOccurrence-Methode aufgerufen, um zu ermitteln, ob die Terminserie an dem angegebenen Datum und zu der angegebenen Uhrzeit beginnt. Zum Sicherstellen, dass die Prozedur fortgesetzt wird, auch wenn die bereitgestellten Informationen nicht dem Startdatum und der Startuhrzeit einer Instanz der Terminserie entsprechen, verwendet das Beispiel einen try…catch-Block. Nach Aufrufen der GetOccurrence-Methode für jeden Termin in der Terminserie testet CheckOccurrenceExample die singleAppt-Variable, um zu bestimmen, ob sie auf einen NULL-Verweis festgelegt ist, was bedeutet, dass die Methode keinen Erfolg hatte und kein AppointmentItem-Objekt zurückgegeben hat.

Wenn Sie Visual Studio verwenden, um dieses Codebeispiel zu testen, müssen Sie der Microsoft Outlook 15.0-Objektbibliothekkomponente zuerst einen Verweis hinzufügen und die Outlook-Variable angeben, wenn Sie den Microsoft.Office.Interop.Outlook-Namespace importieren. Die using-Anweisung darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgende Codezeile zeigt, wie Sie den Import und die Zuweisung in C# vornehmen.

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);
        }
    }
}

Siehe auch