Partage via


Objet conversation (Outlook)

Représente une conversation qui inclut un ou plusieurs éléments stockés dans un ou plusieurs dossiers et magasins.

Remarques

L’objet Conversation est un objet abstrait et agrégé. Bien qu’une conversation puisse inclure des éléments de types différents, l’objet Conversation ne correspond pas à un objet IMessage MAPI sous-jacent spécifique.

Une conversation représente un ou plusieurs éléments, stockés dans un ou plusieurs dossiers et banques d’informations. Si vous déplacez un élément d’une conversation vers le dossier Éléments supprimés , puis énumérez la conversation à l’aide de la méthode GetChildren, GetRootItems ou GetTable , l’élément n’est pas inclus dans l’objet retourné.

Pour obtenir un objet Conversation pour une conversation existante, utilisez la méthode GetConversation de l’élément.

Il existe des actions que vous pouvez appliquer aux éléments d’une conversation en appelant la méthode SetAlwaysAssignCategories, SetAlwaysDelete ou SetAlwaysMoveToFolder . Chacune de ces actions est appliquée automatiquement à tous les éléments de la conversation lorsque la méthode est appelée ; l’action est également appliquée aux éléments futurs de la conversation tant que l’action est toujours applicable à la conversation. Il n’existe aucune méthode d’enregistrement explicite sur l’objet Conversation .

En outre, lorsqu’une action est appliquée aux éléments d’une conversation, l’événement correspondant se produit. Par exemple, l’événement ItemChange de l’objet Items se produit lorsque vous appelez SetAlwaysAssignCategories, et l’événement BeforeItemMove de l’objet Folder se produit lorsque vous appelez SetAlwaysMoveToFolder.

Exemple

Le code managé suivant est écrit dans C#. Pour exécuter un exemple de code managé .NET Framework qui doit appeler un modèle COM (Component Object Model), vous devez utiliser un assembly d’interopérabilité qui définit et mappe des interfaces managées avec des objets COM dans la bibliothèque de types de modèle objet. Pour Outlook, vous pouvez utiliser Visual Studio et l’assembly d’interopérabilité de base (PIA) d’Outlook. Avant d’exécuter des exemples de code managé pour Outlook 2013, assurez-vous que vous avez installé le PIA d’Outlook 2013 et que vous avez ajouté une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 dans Visual Studio. Vous devez utiliser le code suivant dans la ThisAddIn classe d’un complément Outlook (à l’aide des Outils de développement Office pour Visual Studio). L'objet Application dans le code doit être un objet Application Outlook approuvé fourni par ThisAddIn.Globals. Pour plus d’informations sur l’utilisation de l’assembly PIA Outlook pour développer des solutions Outlook managées, consultez bienvenue dans la référence de l’assembly d’interopérabilité principal Outlook sur MSDN.

L’exemple de code suivant part du postulat que l’élément sélectionné dans la fenêtre d’explorateur est un élément de messagerie. L’exemple de code obtient la conversation à laquelle l’élément de courrier sélectionné est associé et énumère chaque élément de cette conversation, en affichant l’objet de l’élément. La DemoConversation méthode appelle la méthode GetConversation de l’élément de courrier sélectionné pour obtenir l’objet Conversation associé. DemoConversation appelle ensuite les méthodes GetTable et GetRootItems de l’objet Conversation pour obtenir un objet Table et une collection SimpleItems , respectivement. DemoConversation appelle la méthode EnumerateConversation récurrente pour énumérer et afficher l’objet de chaque élément de cette conversation.

void DemoConversation() 
{ 
 object selectedItem = 
 Application.ActiveExplorer().Selection[1]; 
 // This example uses only 
 // MailItem. Other item types such as 
 // MeetingItem and PostItem can participate 
 // in the conversation. 
 if (selectedItem is Outlook.MailItem) 
 { 
 // Cast selectedItem to MailItem. 
 Outlook.MailItem mailItem = 
 selectedItem as Outlook.MailItem; 
 // Determine the store of the mail item. 
 Outlook.Folder folder = mailItem.Parent 
 as Outlook.Folder; 
 Outlook.Store store = folder.Store; 
 if (store.IsConversationEnabled == true) 
 { 
 // Obtain a Conversation object. 
 Outlook.Conversation conv = 
 mailItem.GetConversation(); 
 // Check for null Conversation. 
 if (conv != null) 
 { 
 // Obtain Table that contains rows 
 // for each item in the conversation. 
 Outlook.Table table = conv.GetTable(); 
 Debug.WriteLine("Conversation Items Count: " + 
 table.GetRowCount().ToString()); 
 Debug.WriteLine("Conversation Items from Table:"); 
 while (!table.EndOfTable) 
 { 
 Outlook.Row nextRow = table.GetNextRow(); 
 Debug.WriteLine(nextRow["Subject"] 
 + " Modified: " 
 + nextRow["LastModificationTime"]); 
 } 
 Debug.WriteLine("Conversation Items from Root:"); 
 // Obtain root items and enumerate the conversation. 
 Outlook.SimpleItems simpleItems 
 = conv.GetRootItems(); 
 foreach (object item in simpleItems) 
 { 
 // In this example, only enumerate MailItem type. 
 // Other types such as PostItem or MeetingItem 
 // can appear in the conversation. 
 if (item is Outlook.MailItem) 
 { 
 Outlook.MailItem mail = item 
 as Outlook.MailItem; 
 Outlook.Folder inFolder = 
 mail.Parent as Outlook.Folder; 
 string msg = mail.Subject 
 + " in folder " + inFolder.Name; 
 Debug.WriteLine(msg); 
 } 
 // Call EnumerateConversation 
 // to access child nodes of root items. 
 EnumerateConversation(item, conv); 
 } 
 } 
 } 
 } 
} 
 
 
void EnumerateConversation(object item, 
 Outlook.Conversation conversation) 
{ 
 Outlook.SimpleItems items = 
 conversation.GetChildren(item); 
 if (items.Count > 0) 
 { 
 foreach (object myItem in items) 
 { 
 // In this example, only enumerate MailItem type. 
 // Other types such as PostItem or MeetingItem 
 // can appear in the conversation. 
 if (myItem is Outlook.MailItem) 
 { 
 Outlook.MailItem mailItem = 
 myItem as Outlook.MailItem; 
 Outlook.Folder inFolder = 
 mailItem.Parent as Outlook.Folder; 
 string msg = mailItem.Subject 
 + " in folder " + inFolder.Name; 
 Debug.WriteLine(msg); 
 } 
 // Continue recursion. 
 EnumerateConversation(myItem, conversation); 
 } 
 } 
} 
 

Méthodes

Nom
ClearAlwaysAssignCategories
GetAlwaysAssignCategories
GetAlwaysDelete
GetAlwaysMoveToFolder
GetChildren
GetParent
GetRootItems
GetTable
MarkAsRead
MarkAsUnread
SetAlwaysAssignCategories
SetAlwaysDelete
SetAlwaysMoveToFolder
StopAlwaysDelete
StopAlwaysMoveToFolder

Propriétés

Nom
Application
Class
ConversationID
Parent
Session

Voir aussi

Membres del’objet De référence de l’objet Outlook

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.