Je travaille sur un Addin Outlook où j'essaye d'effectuer une action spécifique si elle est supprimée. Cela fonctionne bien avec tous les rendez-vous que j'ai déjà ouverts une fois. Lorsque le rendez-vous est créé ou supprimé du calendrier sans être ouvert en premier, aucun événement (BeforeDelete, Write) n'est déclenché.VSTO Addin Outlook Rendez-vous supprimer et écrire événement déclenché uniquement si ouvert en premier
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
inspectors = this.Application.Inspectors;
inspectors.NewInspector +=
new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);
}
void Inspectors_NewInspector(Microsoft.Office.Interop.Outlook.Inspector Inspector)
{
appointmentItem = Inspector.CurrentItem as Outlook.AppointmentItem;
if (appointmentItem != null)
{
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).Send += _appointment_Send;
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).BeforeDelete += _appointment_Delete;
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).Write += _appointment_Write;
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).Open += _appointment_Open;
(appointmentItem as Microsoft.Office.Interop.Outlook.ItemEvents_10_Event).Close += _appointment_Close;
}
}
Je suppose que l'explication réside dans le fait inspecteurs ne sont attachés lorsque la nomination est ouverte et que le chemin à suivre est quelque chose de plus comme décrit here mais je ne suis pas sûr. Le code ci-dessus fonctionne comme un charme sauf pour le cas spécifique où le rendez-vous n'est pas ouvert avant d'être supprimé ou créé.
Tout guidage sera très apprécié.
+1 pour l'OutlookSpy que je ne connaissais pas. Curieusement, l'événement Write est déclenché et devrait donc être quelque chose que je peux capturer. Malheureusement, cela n'arrive pas. Cela peut être dû au fait que l'inspecteur vérifie si l'élément currentItem provient d'un type de rendez-vous Outlook. En faisant édition sans ouverture, je crois que la valeur est nulle. – Salim