开发一个插件,将 Outlook 中的事件与外部系统同步。
但是,Outlook 经常在以下行崩溃:
m_Event->get_ResponseStatus( &olAppointmentResponseStatus );
或 m_Event->GetOrganizer( &spAddrEntry );
对于同一个事件,一次运行它有效,另一次运行它崩溃,这里没有可预测的模式。
同时,其他属性工作正常,如下所示:
m_Event->get_ReminderSet( &bReminderSet );
m_Event 声明为:CComPtr m_Event;
看起来问题发生在事件不是绝对正确时,例如当它的组织者状态未知时。我认为我能够处理(甚至修复)Outlook 没有崩溃的此类事件。
显然,try catch (...) 没有帮助,因为访问冲突不是 C++ 异常。有什么方法可以让 Outlook 在读取事件属性时不会崩溃?也许,某种“启用安全模式”,或者其他什么..
另一个问题为什么会出现坏事件,因为我的插件只通过 Outlook API 创建事件(这是否意味着 Outlook 可以保存一个事件,然后它无法在不崩溃的情况下读取?)但理想情况下,我想处理它可能遇到的任何事件Outlook 数据库。