Share via


Öffnen und Anzeigen des Inhalts einer iCalendar-Datei

In diesem Beispiel wird gezeigt, wie Inhalte einer iCalendar-Datei geöffnet und angezeigt werden, abhängig davon, ob die Datei einen einzelnen Termin, eine Terminserie oder eine Gruppe von Terminen enthält.

Beispiel

In diesem Codebeispiel wird zuerst versucht, die OpenSharedItem -Methode des NameSpace -Objekts zu verwenden, um die iCalendar-Datei als iCalendar-Datei mit einem einzelnen Termin zu öffnen. Ist dieser Versuch erfolgreich, werden die Einzelheiten des Termins in einem Inspektorfenster angezeigt. Das Element wird jedoch nicht in den Standardspeicher kopiert. Wenn die Datei durch das Codebeispiel nicht als iCalendar-Datei mit einem einzelnen Termin geöffnet werden kann, wird mithilfe der OpenSharedFolder -Methode des NameSpace-Objekts versucht, die Inhalte als neuen Kalender in den Standardspeicher zu importieren. Ist der Import erfolgt, wird der Kalender in einem Explorer-Fenster angezeigt.

In diesem Codebeispiel wird die OutlookItem-Hilfsklasse verwendet, die unter Erstellen einer Hilfsklasse zum Zugriff auf allgemeine Member von Outlook-Elementen definiert ist, um die OutlookItem.Display-Methode zum Anzeigen des Terminelements aufzurufen, ohne das Element zunächst umwandeln zu müssen.

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 Anweisung Imports oder using darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgenden Codezeilen zeigen, wie Sie den Import und die Zuweisung in Visual Basic und C# vornehmen.

Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub OpenICalendarFile(ByVal fileName As String)
    If String.IsNullOrEmpty(fileName) Then
        Throw New ArgumentException(_
        "Parameter must contain a value.", "exportFileName")
    End If
    If Not File.Exists(fileName) Then
        Throw New FileNotFoundException(fileName)
    End If

    '' First try to open the icalendar file as an appointment 
    '' (not a calendar folder).
    Dim item As Object = Nothing
    Try
         item = Application.Session.OpenSharedItem(fileName)
    Catch
    End Try

    If Not item Is Nothing Then
        '' Display the item
        Dim olItem As OutlookItem = New OutlookItem(item)
        olItem.Display()
        Return
    End If

    '' If unsucessful in opening it as an item, 
    '' try opening it as a folder
    Dim importedFolder As Outlook.Folder = Nothing
    Try
        importedFolder = TryCast( _
            Application.Session.OpenSharedFolder(fileName), _
            Outlook.Folder)
    Catch
    End Try

    '' If sucessful, open the folder in a new explorer window
    If Not importedFolder Is Nothing Then
        Dim explorer As Outlook.Explorer = _
            Application.Explorers.Add( _
            importedFolder, _
            Outlook.OlFolderDisplayMode.olFolderDisplayNormal)
        explorer.Display()
    End If
End Sub
private void OpenICalendarFile(string fileName)
{
    if (string.IsNullOrEmpty(fileName))
        throw new ArgumentException("exportFileName", 
        "Parameter must contain a value.");
    if (!File.Exists(fileName))
        throw new FileNotFoundException(fileName);

    // First try to open the icalendar file as an appointment 
    // (not a calendar folder).
    object item = null;
    try
    {
        item = Application.Session.OpenSharedItem(fileName);
    }
    catch
    { }

    if (item != null)
    {
         // Display the item
         OutlookItem olItem = new OutlookItem(item);
         olItem.Display();
         return;
    }

    // If unsucessful in opening it as an item, 
    // try opening it as a folder
    Outlook.Folder importedFolder = null;
    try
    {
        importedFolder = Application.Session.OpenSharedFolder(
            fileName, Type.Missing, Type.Missing, Type.Missing) 
            as Outlook.Folder;
    }
    catch
    { }

    // If sucessful, open the folder in a new explorer window
    if (importedFolder != null)
    {
        Outlook.Explorer explorer =
            Application.Explorers.Add(importedFolder, 
            Outlook.OlFolderDisplayMode.olFolderDisplayNormal);
        explorer.Display();
    }
}

Siehe auch