Compartir a través de


Objeto Conversation (Outlook)

Representa una conversación que incluye uno o más elementos almacenados en una o más carpetas y almacenes.

Comentarios

La conversación es un objeto abstracto, agregado. Aunque una conversación puede incluir elementos de distintos tipos, el objeto de conversación no corresponde a un determinado objeto MAPI IMessage subyacente.

Una conversación representa uno o más elementos en una o más carpetas y almacenes. Si mueve un elemento de una conversación a la carpeta Elementos eliminados y después enumera la conversación usando los métodos GetChildren, GetRootItems o GetTable, el elemento no se incluirá en el objeto devuelto.

Para obtener un objeto de conversación para una conversación ya existente, utilice el método GetConversation del elemento.

Hay acciones que se pueden aplicar a los elementos de una conversación llamando al método SetAlwaysAssignCategories, SetAlwaysDelete o SetAlwaysMoveToFolder. Cada una de estas acciones se aplica a todos los elementos de la conversación automáticamente cuando se llama al método; la acción también se aplica a los elementos futuros de la conversación, siempre y cuando la acción es aplicable a la conversación. No hay save método en el objeto de conversación no explícita.

Además, cuando se aplica una acción a los elementos de una conversación, se produce el evento correspondiente. Por ejemplo, el evento ItemChange el objeto Items se produce cuando se llama a SetAlwaysAssignCategories, y el evento BeforeItemMove del objeto Folder se produce cuando se llama a SetAlwaysMoveToFolder.

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, 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

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

Propiedades

Nombre
Aplicación
Class
ConversationID
Parent
Session

Consulte también

Miembros de objeto de conversación de referencia del modelo de objetos de Outlook

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.