Partilhar via


Objeto Conversation (Outlook)

Representa uma conversa que inclui um ou mais itens armazenados em uma ou mais pastas e repositórios.

Comentários

O objeto de conversa é um objeto abstrato, agregado. Embora uma conversa pode incluir itens de diferentes tipos, o objeto Conversation não corresponde a um determinado objeto MAPI IMessage subjacente.

Uma conversa representa um ou mais itens em uma ou mais pastas ou repositórios. Se você mover um item de uma conversa para a pasta Itens Excluídos e subsequentemente enumerá-la usando o método GetChildren, GetRootItems ou GetTable, o item não será incluído no objeto retornado.

Para obter um objeto Conversation para uma conversa existente, use o método GetConversation do item.

Existem ações que você pode aplicar a itens em uma conversa chamando o método SetAlwaysAssignCategories, SetAlwaysDelete ou SetAlwaysMoveToFolder. Cada uma das seguintes ações é aplicada a todos os itens da conversa automaticamente quando o método é chamado; a ação também é aplicada aos itens futuros da conversa, desde que a ação é aplicável para a conversa. Há não explícitas salvar método no objeto de conversa.

Além disso, quando você aplica uma ação para itens em uma conversa, ocorre o evento correspondente. Por exemplo, o evento ItemChange do objeto Items ocorre quando você chamar SetAlwaysAssignCategories, e o evento BeforeItemMove do objeto Folder ocorre quando você chama SetAlwaysMoveToFolder.

Exemplo

The following managed code is written in C#. 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. For Outlook, you can use Visual Studio and the Outlook Primary Interop Assembly (PIA). 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. Você deve usar o código a ThisAddIn seguir na classe de um suplemento do Outlook (usando ferramentas de desenvolvedor do Office para Visual Studio). The Application object in the code must be a trusted Outlook Application object provided by ThisAddIn.Globals. For more information about using the Outlook PIA to develop managed Outlook solutions, see the Outlook 2013 Primary Interop Assembly Reference on MSDN.

O exemplo de código a seguir pressupõe que o item selecionado na janela do explorer é um item de email. O exemplo de código obtém a conversa que o item de email selecionado está associado e enumera cada item na conversa, exibindo o assunto do item. O DemoConversation método chama o método GetConversation do item de email selecionado para obter o objeto Conversation associado. DemoConversation chama os métodos GetTable e GetRootItems do objeto Conversation para obter um objeto Table e a coleção SimpleItems, respectivamente. DemoConversation chama o método recorrentes EnumerateConversation para enumerar e exibir o assunto de cada item na conversa.

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étodos

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

Propriedades

Nome
Aplicativo
Classe
ConversationID
Responsável
Sessão

Confira também

Membros do objeto conversationde referência do modelo de objeto do Outlook

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.