Partager via


Obtention et énumération des conversations sélectionnées

Cet exemple obtient et énumère les conversations sélectionnées à l’aide de la méthode GetSelection(OlSelectionContents).

Exemple

Microsoft Outlook peut être défini de manière à afficher les éléments de la Boîte de réception par conversation. Si un utilisateur effectue une sélection dans la Boîte de réception, vous pouvez obtenir cette sélection par programme, y compris les en-têtes et les éléments de conversation. L'exemple de code de cette rubrique montre comment obtenir une sélection dans la Boîte de réception et comment énumérer les éléments de courrier dans chaque conversation de la sélection.

L’exemple contient une méthode, DemoConversationHeadersFromSelection. La méthode définit l’affichage actuel sur la boîte de réception, puis vérifie si l’affichage actuel est un affichage tableau qui indique des conversations triées par date. Pour obtenir une sélection, y compris les objets ConversationHeader sélectionnés, DemoConversationHeadersFromSelection utilise la méthode GetSelection de l’objet Selection, en spécifiant la constante olConversationHeaders comme un argument. Si les en-têtes de conversation sont sélectionnés, DemoConversationHeadersFromSelection utilise l’objet SimpleItems pour énumérer les éléments dans chaque conversation sélectionnée, puis affiche l’objet de ces éléments de conversation qui sont des objets MailItem.

Si vous utilisez Visual Studio pour tester cet exemple de code, vous devez d’abord ajouter une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 et spécifier la variable lorsque vous importez l’espace de noms Microsoft.Office.Interop.Outlook. L’instruction using ne doit pas se produire juste avant les fonctions de l’exemple de code, mais doit être ajoutée avant la déclaration publique. La ligne de code suivante montre comment effectuer l’importation et l’affectation dans C#.

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

Voir aussi