2011-03-14 7 views
5

Estoy creando un complemento para Office 2007 con C#. Este complemento es responsable de mostrar la información del encabezado del correo electrónico en un nuevo panel siempre que un usuario haga clic en el correo electrónico de la lista de correo electrónico dentro del panel de la Bandeja de entrada. Ahora no estoy seguro de cómo obtengo el evento de clic del mouse en el panel de la Bandeja de entrada cuando un usuario selecciona un correo electrónico y lee la información del encabezado de ese correo electrónico. Cualquier puntero útil?Cómo obtener el evento de clic del mouse en el panel Bandeja de entrada cuando un usuario selecciona un correo electrónico

+6

un vistazo aquí, tal vez ayuda a: http://www.eggheadcafe.com/software/aspnet/34867978/event-for-email-message-select.aspx. No debería preocuparse por el clic del mouse, sino por un cambio de selección en la lista de correos electrónicos. –

+0

Gracias Daniel, el enlace que proporcionó fue útil. –

+1

¿Debería marcarse esto como respondido? – Rob

Respuesta

0

Puede utilizar la biblioteca de objetos de Outlook Microsoft V11.0 (agregar la referencia) y luego consultar un buzón de correo MAPI:

http://geekswithblogs.net/TimH/archive/2006/05/26/79720.aspx o http://support.microsoft.com/kb/310258

Algunos requisitos para acceder a las bandejas de entrada de cambio con MAPI o POP3 : C# MAPI to read exchange server inbox

Ahora, para conseguir el que la bandeja de entrada de mensajes ha sido seleccionado, se puede utilizar:

Outlook.Explorer explorer = null; 
explorer = outlookObj.ActiveExplorer(); 
      if (explorer.Selection.Count > 0) 
      { 
       var sel = explorer.Selection[1]; 
       if (sel is Microsoft.Office.Interop.Outlook.MailItem) 
       { 
        var item = sel as MSOutlook.MailItem; 
        MessageBox.Show("Selected letter: "+item.Body); 
       } 
      } 
0
private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 

     this.Application.Inspectors.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);   
    } 
void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector) 
     { 
      try 
      { 
       Outlook.MailItem tmpMailItem = (Outlook.MailItem)Inspector.CurrentItem; 
       if (tmpMailItem != null) 
       { 
        if (Inspector.CurrentItem is Outlook.MailItem) 
        { 
         tmpMailItem = (Outlook.MailItem)Inspector.CurrentItem; 
         string to= tmpMailItem.To; 
         string body = tmpMailItem.Body; 
        } 
       } 
      } 
      catch 
      { 

      } 
     } 
Cuestiones relacionadas