0
我正在使用Outlook插件,我尝试执行特定操作(如果删除)。它对所有我已经打开过的约会都可以正常工作。当约会被创建或从日历中删除而未被打开时,首先没有事件(BeforeDelete,Write)被触发。VSTO Addin Outlook约会删除和写入事件只有打开后才会触发
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;
}
}
我假设的解释就在于检查员仅在任命是开放的连接和路径,遵循的是更多的东西一样描述here,但我不知道。上述代码的作用就像是一种魅力,除非在约会被删除或创建之前未打开的具体情况例外。
任何指导将不胜感激。
+1对于我不知道的OutlookSpy。奇怪的是,写事件如果被解雇,因此应该是我可以捕获的东西。不幸的是,它不会发生。这可能是由于检查员检查currentItem是否来自Outlook约会类型。在没有打开的情况下进行编辑时,我认为该值为空。 – Salim