Conversation-Objekt (Outlook)

Stellt eine Unterhaltung dar, die mindestens ein Element enthält, das in mindestens einem Ordner oder Informationsspeicher gespeichert ist.

HinwBemerkungeneise

Das Conversation -Objekt ist eine abstrakte, aggregierten Objekt. Obwohl eine Unterhaltung Elementen mit unterschiedlichen Typen beinhalten kann, entspricht das Conversation -Objekt keinem bestimmten zugrunde liegende MAPI IMessage -Objekt.

Eine Unterhaltung stellt mindestens ein Element in mindestens einem Ordner oder Informationsspeicher dar. Wenn Sie ein Element in einer Unterhaltung in den Ordner Gelöschte Elemente verschieben und die Unterhaltung anschließend mithilfe der Methode GetChildren, GetRootItems oder GetTable aufzählen, ist das Element nicht im zurückgegebenen Objekt enthalten.

Um ein Conversation -Objekt für eine vorhandene Unterhaltung zu erhalten, verwenden Sie die GetConversation -Methode des Elements.

Es gibt Aktionen, die Sie auf Elemente in einer Unterhaltung anwenden können, indem Sie die Methode SetAlwaysAssignCategories, SetAlwaysDelete oder SetAlwaysMoveToFolder aufrufen. Jede dieser Aktionen wird automatisch auf alle Elemente in der Konversation angewendet, wenn die -Methode aufgerufen wird. Die Aktion wird auch auf zukünftige Elemente in der Unterhaltung angewendet, solange die Aktion noch auf die Unterhaltung anwendbar ist. Es gibt keine explizite Speichermethode für das Conversation-Objekt .

Wenn Sie eine Aktion für Elemente in einer Unterhaltung anwenden, tritt außerdem das entsprechende Ereignis auf. Das ItemChange -Ereignis des Items -Objekts tritt beispielsweise auf, wenn Sie die SetAlwaysAssignCategories aufrufen und das BeforeItemMove -Ereignis des Folder -Objekts tritt auf, wenn Sie SetAlwaysMoveToFolder aufrufen.

Beispiel

Der folgende verwaltete Code ist in C# geschrieben. 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. Für Outlook können Sie Visual Studio und die Outlook Primary Interop Assembly (PIA) verwenden. 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. Sie sollten den folgenden Code in der ThisAddIn Klasse eines Outlook-Add-Ins verwenden (mit Office Developer Tools für Visual Studio). Das Objekt der Anwendung im Code muss ein vertrauenswürdiges Outlook- Anwendungsobjekt sein, das von ThisAddIn.Globals bereitgestellt wird. 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).

Im folgenden Codebeispiel wird davon ausgegangen, dass das ausgewählte Element in das Explorer-Fenster ein e-Mail-Element ist. Im Codebeispiel wird die Unterhaltung, dass das ausgewählte e-Mail-Element zugeordnet ist, und listet jedes Element in dieser Unterhaltung, die den Betreff des Elements anzeigen. Die DemoConversation Methode ruft die GetConversation-Methode des ausgewählten E-Mail-Elements auf, um das zugeordnete Conversation-Objekt abzurufen. DemoConversation ruft dann die GetTable und GetRootItems -Methoden des Conversation -Objekt zu einem Table -Objekt und eine SimpleItems -Auflistung abzurufen. DemoConversation Ruft die wiederkehrenden Methode EnumerateConversation aufgelistet und den Betreff der einzelnen Elemente in dieser Unterhaltung anzeigen.

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

Methoden

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

Eigenschaften

Name
Anwendung
Klasse
ConversationID
Parent
Session

Siehe auch

Elemente des Outlook-Objektmodellreferenz-Unterhaltungsobjekts

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.