Outlook VSTO加载项用于会议
我们已为Outlook会议创建了VSTO加载项 作为这项工作的一部分,我们在Outlook VSTO加载项用于会议,outlook,vsto,visual-studio-addins,Outlook,Vsto,Visual Studio Addins,我们已为Outlook会议创建了VSTO加载项 作为这项工作的一部分,我们在FormRegionShowing事件上捕获消息的SendEvent: _apptEvents.Send += new Microsoft.Office.Interop.Outlook.ItemEvents_SendEventHandler(_apptEvents_Send); 方法\u apptEvents\u Send然后测试几个属性,并在适当的地方退出 private void _apptEvents_Send(
FormRegionShowing
事件上捕获消息的SendEvent
:
_apptEvents.Send += new Microsoft.Office.Interop.Outlook.ItemEvents_SendEventHandler(_apptEvents_Send);
方法\u apptEvents\u Send
然后测试几个属性,并在适当的地方退出
private void _apptEvents_Send(ref bool Cancel)
{
if (!_Qualified)
{
MessageBox.Show("Meeting has not been qualified", "Not Qualified Meeting", MessageBoxButtons.OK, MessageBoxIcon.Information);
chkQualified.Focus();
Cancel = true;
}
}
我们面临的问题是,一些用户的消息会被发送两次。发送会议时一次,用户重新打开outlook时第二次
我一直在寻找内存泄漏,认为有些东西可能没有得到正确的处理,并在所有finally调用中添加了明确的对象处理,以尝试确保资源得到管理,但仍然在整个组织中不一致地获得功能。i、 e.我在开发过程中从未遇到过问题,也没有在测试期间遇到其他开发人员。所有用户都是Outlook框架(3.5 SP1)和修补程序的最新版本
有人知道是什么导致了这一切吗
任何人的任何想法都将不胜感激 我不是专业人士,但由于人们发送邮件的设置,我过去在进行outlook自动化时遇到过麻烦 例如,我的邮件仅在强制发送/接收周期时发送。尽管大多数人都有outlook要立即发送,但我记得当有人第一次要求提供真正简单的自动化脚本时,我感到有些头疼
看看这是否是所有开发人员的共同点,用户的设置是否不同 我不是专业人士,但由于人们发送邮件的设置,我过去在进行outlook自动化时遇到过麻烦 例如,我的邮件仅在强制发送/接收周期时发送。尽管大多数人都有outlook要立即发送,但我记得当有人第一次要求提供真正简单的自动化脚本时,我感到有些头疼
看看这是否是所有开发人员的共同点,用户的设置是否不同 为什么要使用
Microsoft.Office.Interop.Outlook.ApplicationEvents_10.Send Event
而不是反复添加给定的处理程序
在vsto加载项的启动方法中,只需添加:
((MSOutlook.ApplicationEvents_10_Event)_OutlookApp).ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_10_ItemSendEventHandler(Utils_ItemSend);
void Utils_ItemSend(object Item, ref bool Cancel)
{
//Do your operation here.
}
为什么要使用
Microsoft.Office.Interop.Outlook.ApplicationEvents_10.Send Event
而不是反复添加给定的处理程序
在vsto加载项的启动方法中,只需添加:
((MSOutlook.ApplicationEvents_10_Event)_OutlookApp).ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_10_ItemSendEventHandler(Utils_ItemSend);
void Utils_ItemSend(object Item, ref bool Cancel)
{
//Do your operation here.
}
你犯了一个小错误。按如下所示更改代码
private void _apptEvents_Send(ref bool Cancel)
{
if (!_Qualified)
{
MessageBox.Show("Meeting has not been qualified", "Not Qualified Meeting",
MessageBoxButtons.OK, MessageBoxIcon.Information);
chkQualified.Focus();
Cancel = true;
return; // need to add this one line
}
}
你犯了一个小错误。按如下所示更改代码
private void _apptEvents_Send(ref bool Cancel)
{
if (!_Qualified)
{
MessageBox.Show("Meeting has not been qualified", "Not Qualified Meeting",
MessageBoxButtons.OK, MessageBoxIcon.Information);
chkQualified.Focus();
Cancel = true;
return; // need to add this one line
}
}