2009-06-18 10 views

Répondre

2

J'ai essayé

Application.ActiveExplorer().SyncObjects.AppFolders.SyncEnd += \\EventHandler 

Cette accroche pour envoyer/recevoir des dossiers par défaut ..

0

En fait, mon besoin était un peu différent mais peut être le même: Je voulais être informé des changements d'un dossier (rendez-vous dans mon cas) après un envoi/réception. Ma première pensée (et je pense que vous êtes sur la même piste) était de vérifier un événement d'envoi/réception et peut-être obtenir une collection d'éléments ou quelque chose de similaire, mais rien de tel n'est disponible. (Comme cela est également expliqué dans this forum post)

Ma deuxième chemin est venu du following article: Je peux vous inscrire au Item_Add et Item_Change (et même Item_Removed) cas d'un dossier (qui sont également déclenché par les modifications effectuées par un envoi RECEVOIR):

Certains code:

// Get the folder calendar folder and subscribe to the events. 
private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).Items.ItemAdd += new Microsoft.Office.Interop.Outlook.ItemsEvents_ItemAddEventHandler(Items_ItemAdd); 
    Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar).Items.ItemChange += new Microsoft.Office.Interop.Outlook.ItemsEvents_ItemChangeEventHandler(Items_ItemChange); 
} 

// Do something with it. 
void Items_ItemAdd(object Item) 
{ 
    logItem(Item, "Add"); 
} 
void logItem(object Item, string Action) 
{ 

    Outlook.AppointmentItem item = Item as Outlook.AppointmentItem; 

    File.AppendAllText(@"e:\log.txt", string.Format("Item {0}: {1}", Action, Item)); 

    if (item != null) 
    { 
     File.AppendAllText(@"e:\log.txt", " - Appointment: " + item.Subject); 
    } 
} 
0

Vous pouvez brancher l'envoi de courrier/réception événement et vérifiez que le type de courrier est un ContactItem. Voici un exemple de l'événement Send.

// hook up the event 
this.Application.ItemSend += ThisApplication_SentMail; 

puis dans votre gestionnaire d'événements, vous vérifiez le type d'élément de courrier;

internal void ThisApplication_SentMail(object item, ref bool cancel) 
{ 
    Outlook.ContactItem contactItem = item as Outlook.ContactItem; 

    // mail message is not a ContactItem, so exit. 
    if (contactItem == null) return; 

    // do whatever you need to here 

} 
Questions connexes