C# VSTO加载项Outlook约会删除和写入事件仅在首先打开时激发

C# VSTO加载项Outlook约会删除和写入事件仅在首先打开时激发,c#,vsto,outlook-addin,inspector,C#,Vsto,Outlook Addin,Inspector,我正在处理Outlook加载项,如果删除,我将尝试执行特定操作。它可以很好地处理我已经打开过的所有约会。如果在未首先打开的情况下从日历中创建或删除约会,则在删除之前不会触发任何事件,此时将触发写入 private void ThisAddIn_Startup(object sender, System.EventArgs e) { inspectors = this.Application.Inspectors; inspectors.NewInspector += ne

我正在处理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;
    }
}
我认为原因在于,检查员只有在任命公开时才被附上,并且遵循的路径更像描述的那样,但我不确定。上述代码就像一个符咒,但在特定情况下,约会在被删除或创建之前没有打开


任何指导都将不胜感激。

是的,在Write不启动之前。如果我在Outlook中选择约会并查看OOM使用“选择约会”触发的事件,请单击“项目”按钮,转到“事件”选项卡并查看页面底部的日志,内联修改约会,我只能看到以下事件触发

删除约会时,BeforeDelete按预期触发

PropertyChange (ConversationIndex)
PropertyChange (Subject)
PropertyChange (Start)
PropertyChange (StartInStartTimeZone)
PropertyChange (StartUTC)
PropertyChange (End)
PropertyChange (EndInEndTimeZone)
PropertyChange (EndUTC)
PropertyChange (Duration)
PropertyChange (AllDayEvent)
PropertyChange (StartInStartTimeZone)
PropertyChange (StartUTC)
PropertyChange (End)
PropertyChange (EndInEndTimeZone)
PropertyChange (EndUTC)
PropertyChange (Start)
PropertyChange (EndInEndTimeZone)
PropertyChange (EndUTC)
PropertyChange (Duration)
PropertyChange (End)
PropertyChange (MeetingStatus)
Write (false)
BeforeCheckNames (false)
AfterWrite ()
<Unknown(DispID=0x0000FC95)> (false)

+我不认识的了望台间谍。奇怪的是,如果触发了Write事件,那么它应该是我可以捕获的东西。不幸的是,它没有发生。这可能是因为检查器检查currentItem是否来自Outlook约会类型。在不打开的情况下进行编辑时,我认为该值为空。