Abrufen und Aufzählen von ausgewählten UnterhaltungenObtain and Enumerate Selected Conversations

Standardmäßig zeigt Microsoft Outlook Elemente im Posteingang nach Unterhaltung an.By default, Microsoft Outlook displays items in the Inbox by conversation. Wenn ein Benutzer im Posteingang eine Auswahl trifft, können Sie diese programmgesteuert einschließlich Unterhaltungskopfzeilen und -elementen abrufen.If a user makes a selection in the Inbox, you can obtain the selection programmatically, including conversation headers and conversation items. 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.The code example in this topic shows how to obtain a selection in the Inbox and enumerate the mail items in each conversation in the selection.

Das Beispiel enthält eine Methode, DemoConversationHeadersFromSelection.The example contains one method, DemoConversationHeadersFromSelection. Die-Methode legt die aktuelle Ansicht auf den Posteingang fest und überprüft dann, ob es sich bei der aktuellen Ansicht um eine Tabellenansicht handelt, in der Unterhaltungen nach Datum sortiert angezeigt werden.The method sets the current view to the Inbox, and then checks to see if the current view is a table view that displays conversations sorted by date. Zum Abrufen einer Auswahl, einschließlich ausgewählter ConversationHeader -Objekte DemoConversationHeadersFromSelection , wird die GetSelection -Methode des Selection -Objekts verwendet, wobei die OlSelectionContents. olConversationHeaders -Konstante als Argument angegeben wird.To obtain a selection, including any selected ConversationHeader objects, DemoConversationHeadersFromSelection uses the GetSelection method of the Selection object, specifying the OlSelectionContents.olConversationHeaders constant as an argument. Wenn Unterhaltungs Kopfzeilen ausgewählt sind, DemoConversationHeadersFromSelection verwendet das SimpleItems -Objekt zum Aufzählen von Elementen in jeder ausgewählten Unterhaltung und zeigt dann den Betreff dieser Unterhaltungselemente an, die MailItem -Objekte sind.If conversation headers are selected, DemoConversationHeadersFromSelection uses the SimpleItems object to enumerate items in each selected conversation, and then displays the subject of those conversation items that are MailItem objects.

Der folgende verwaltete Code ist in C# geschrieben.The following managed code is written in C#. Um ein verwaltetes Codebeispiel von .NET Framework auszuführen, das ein Component Object Model (COM) aufrufen muss, müssen Sie eine Interopassembly verwenden, die verwaltete Schnittstellen definiert und den COM-Objekten in der Object Model-Typbibliothek zuordnet.To run a .NET Framework managed code sample that needs to call into a Component Object Model (COM), you must use an interop assembly that defines and maps managed interfaces to the COM objects in the object model type library. Für Outlook können Sie Visual Studio und die Outlook Primary Interop Assembly (PIA) verwenden.For Outlook, you can use Visual Studio and the Outlook Primary Interop Assembly (PIA). Stellen Sie sicher, dass Sie die Outlook 2013 PIA installiert und eine Referenz zur Microsoft Outlook 15.0-Objektbibliothekkomponente in Visual Studio hinzugefügt haben, bevor Sie verwaltete Codebeispiele für Outlook 2013 ausführen.Before you run managed code samples for Outlook 2013, ensure that you have installed the Outlook 2013 PIA and have added a reference to the Microsoft Outlook 15.0 Object Library component in Visual Studio. Verwenden Sie den folgenden Code in der ThisAddIn Klasse eines Outlook-Add-Ins (mit Office-Entwicklertools für Visual Studio).You should use the following code in the ThisAddIn class of an Outlook add-in (using Office Developer Tools for Visual Studio). Das Objekt der Anwendung im Code muss ein vertrauenswürdiges Outlook- Anwendungsobjekt sein, das von ThisAddIn.Globals bereitgestellt wird.The Application object in the code must be a trusted Outlook Application object provided by ThisAddIn.Globals. Weitere Informationen zur Verwendung der Outlook-PIA zur Entwicklung verwalteter Outlook-Lösungen finden Sie auf MSDN unter Willkommen bei der Referenz zur primären Interopassembly von Outlook (PIA).For more information about using the Outlook PIA to develop managed Outlook solutions, see the Welcome to the Outlook Primary Interop Assembly Reference on MSDN.

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 the current view is a table view. 
    if (inbox.CurrentView.ViewType == 
        Outlook.OlViewType.olTableView) 
    { 
        Outlook.TableView view = 
            inbox.CurrentView as Outlook.TableView; 
        // And check if the table view organizes conversations by date. 
        if (view.ShowConversationByDate == true) 
        { 
            Outlook.Selection selection = 
                Application.ActiveExplorer().Selection; 
            Debug.WriteLine("Selection.Count = " + selection.Count); 
             
             // Call GetSelection to create a Selection object 
            //  that includes any selected conversation header objects. 
            Outlook.Selection convHeaders = 
                selection.GetSelection( 
                Outlook.OlSelectionContents.olConversationHeaders) 
                as Outlook.Selection; 
            Debug.WriteLine("Selection.Count (ConversationHeaders) = "  
                + convHeaders.Count); 
 
            // Check if any conversation headers are selected. 
            if (convHeaders.Count >= 1) 
            { 
                foreach (Outlook.ConversationHeader convHeader in convHeaders) 
                { 
                    // Enumerate the items in each conversation header object. 
                    Outlook.SimpleItems items = convHeader.GetItems(); 
                    for (int i = 1; i <= items.Count; i++) 
                    { 
                        // Only enumerate 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); 
                        } 
                    } 
                } 
            } 
        } 
    } 
} 

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.