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