Share via


Abrufen und Aufzählen von ausgewählten Unterhaltungen

In diesem Beispiel werden ausgewählte Unterhaltungen mithilfe der GetSelection(OlSelectionContents)-Methode abgerufen und aufgezählt.

Beispiel

In Microsoft Outlook können Elemente im Posteingang nach Unterhaltungen angezeigt werden. Wenn ein Benutzer im Posteingang eine Auswahl trifft, können Sie diese programmgesteuert einschließlich Unterhaltungskopfzeilen und -elementen abrufen. Das Codebeispiel in diesem Thema zeigt, wie eine Auswahl im Posteingang abgerufen wird und die E-Mail-Elemente in jeder Unterhaltung der Auswahl aufgezählt werden.

Das Beispiel enthält eine Methode: DemoConversationHeadersFromSelection. Die Methode legt die aktuelle Ansicht auf den Posteingang fest und prüft dann, ob es sich bei der aktuellen Ansicht um eine Tabellenansicht handelt, in der Unterhaltungen nach Datum sortiert angezeigt werden. Zum Abrufen einer Auswahl, einschließlich ausgewählter ConversationHeader-Objekte, verwendet DemoConversationHeadersFromSelection die GetSelection-Methode des Selection-Objekts, wobei die olConversationHeaders -Konstante als Argument angegeben wird. Wenn Unterhaltungskopfzeilen ausgewählt wurden, verwendet DemoConversationHeadersFromSelection das SimpleItems-Objekt zum Aufzählen der Elemente in jeder ausgewählten Unterhaltung und zeigt dann den Betreff der Unterhaltungselemente an, die MailItem-Objekte darstellen.

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 DemoConversationHeadersFromSelection()
{
    // Obtain Inbox.
    Outlook.Folder inbox =
        Application.Session.GetDefaultFolder(
        Outlook.OlDefaultFolders.olFolderInbox)
        as Outlook.Folder;
    // Set ActiveExplorer.CurrentFolder to Inbox.
    // Inbox must be current folder.
    Application.ActiveExplorer().CurrentFolder = inbox;
    // Ensure that current view is TableView.
    if (inbox.CurrentView.ViewType ==
        Outlook.OlViewType.olTableView)
    {
        Outlook.TableView view =
            inbox.CurrentView as Outlook.TableView;
        if (view.ShowConversationByDate == true)
        {
            Outlook.Selection selection =
                Application.ActiveExplorer().Selection;
            Debug.WriteLine("Selection.Count = " + selection.Count);
            // Call GetSelection to create a Selection object
            // that contains ConversationHeader objects.
            Outlook.Selection convHeaders =
                selection.GetSelection(
                Outlook.OlSelectionContents.olConversationHeaders)
                as Outlook.Selection;
            Debug.WriteLine("Selection.Count (ConversationHeaders) = " 
                + convHeaders.Count);
            if (convHeaders.Count >= 1)
            {
                foreach (Outlook.ConversationHeader convHeader in convHeaders)
                {
                    // Enumerate the items in the ConversationHeader.
                    Outlook.SimpleItems items = convHeader.GetItems();
                    for (int i = 1; i <= items.Count; i++)
                    {
                        // Enumerate only MailItems in this example.
                        if (items[i] is Outlook.MailItem)
                        {
                            Outlook.MailItem mail = 
                                items[i] as Outlook.MailItem;
                            Debug.WriteLine(mail.Subject 
                                + " Received:" + mail.ReceivedTime);
                        }
                    }
                }
            }
        }
    }
}

Siehe auch