Método MailItem.GetConversation (Outlook)

Obtiene un objeto Conversation que representa la conversación a la que pertenece este elemento.

Sintaxis

expresión. GetConversation

Expresión Variable que representa un objeto "MailItem".

Valor devuelto

Un objeto Conversation que representa la conversación a la que pertenece este elemento.

Comentarios

GetConversation devuelve Null (Nothing en Visual Basic) si no existen conversaciones para el elemento. Ninguna conversación existe para un elemento en los siguientes escenarios:

  • El elemento no se ha guardado. Un elemento se pueden guardar mediante programación, mediante acciones del usuario, o por guardado automático.

  • No se ha enviado el elemento para un elemento que puede ser enviado (por ejemplo, un elemento de correo, elemento de cita o elemento de contacto).

  • Se han deshabilitado las conversaciones mediante el Registro de Windows.

  • El almacén no admite la vista Conversación (por ejemplo, Outlook se está ejecutando en modo en línea clásico con una versión de Microsoft Exchange anterior a Microsoft Exchange Server 2010). Use la propiedad IsConversationEnabled del objeto Store para determinar si el almacén admite la vista Conversación.

Ejemplo:

El siguiente ejemplo de código administrado está escrito en C#. Para ejecutar un ejemplo de código administrado de .NET Framework que necesita llamar un modelo de objetos componentes (COM), debe utilizar un ensamblado de interoperabilidad que defina y asigne interfaces administradas a los objetos COM de la biblioteca de tipos de modelos de objetos. Para Outlook, puede utilizar Visual Studio y el ensamblado de interoperabilidad primario (PIA) de Outlook. Antes de ejecutar ejemplos de código administrado para Outlook 2013, compruebe que tiene el PIA de Outlook 2013 instalado y que ha añadido una referencia al componente biblioteca de objetos de Microsoft Outlook 15.0 en Visual Studio. Debe usar el código siguiente en la ThisAddIn clase de un complemento de Outlook (con Office Developer Tools para Visual Studio). El objeto Application del código debe ser un objeto Application de Outlook de confianza proporcionado por ThisAddIn.Globals. Si desea más información sobre el uso del PIA de Outlook para desarrollar soluciones de Outlook administradas, consulte Outlook 2013 Primary Interop Assembly Reference en MSDN.

En el ejemplo de código siguiente se supone que el elemento seleccionado en la ventana del explorador es un elemento de correo. El ejemplo de código obtiene la conversación que está asociado con el elemento de correo seleccionado y enumera cada elemento en esa conversación, mostrar al asunto del elemento. El DemoConversation método llama al método GetConversation del elemento de correo seleccionado para obtener el objeto Conversation asociado. DemoConversation , a continuación, llama a los métodos GetTable y GetRootItems del objeto conversación para obtener un objeto Table y una colección SimpleItems, respectivamente. DemoConversation se llama el método recurrente EnumerateConversation para enumerar y mostrar al asunto de cada elemento en esa conversación.

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, enumerate only 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, enumerate only 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); 
 } 
 } 
} 
 

Consulte también

Objeto MailItem

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.