lc.*_*lc. 1 .net events outlook interop
我有一个使用Microsoft.Office.Interop.Outlook互操作程序集的.NET应用程序。
该应用程序将打开一个新的Outlook MailItem,然后希望记录日志条目(如果已发送电子邮件(通过用户单击“发送”),或者知道是否已关闭而不发送电子邮件(另存为草稿或已丢弃)。
通过订阅该ItemEvents_10_Event.Send事件,可以很容易地完成发送项目的时间。
但是,要捕获关闭项目时的状态,我只能找到该ItemEvents_10_Event.Close事件。但是,这个事件触发时,该项目是CLOS 荷兰国际集团,而不是当产品CLOS 编。更糟糕的是,我收到事件后,用户仍然有机会取消操作。发生的是:
MailItem。ItemEvents_10_Event.Close被解雇了。有没有一种方法可以:
奖金是,如果如果邮件是我能区分关闭和废弃 VS 保存为草稿。
小智 5
使用检查器关闭事件:
inspector = mailItem.GetInspector;
((InspectorEvents_10_Event) inspector).Close += CloseEventHandler;
void CloseEventHandler(){
//execute only when email window is closed or closing
// without problem with confirmation dialog (yes/no/cancel)
}
Run Code Online (Sandbox Code Playgroud)
要解决关闭或关闭问题,您可以检查mailItem send事件。如果已触发,则“关闭”,否则,用户关闭窗口而不发送电子邮件。