gpt4 book ai didi

C# Outlook 加载项约会事件 'ItemSend' 未正确取消

转载 作者:太空宇宙 更新时间:2023-11-03 14:03:00 25 4
gpt4 key购买 nike

我正在使用 C# 开发一个小的 Outlook 加载项,但我无法让此加载项正确取消 ItemSend 进程。我特此想到以下场景:考虑这个小插件:

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
((Outlook.ApplicationEvents_Event)this.Application).ItemSend += new ApplicationEvents_ItemSendEventHandler(ThisAddIn_ItemSend);
}

void ThisAddIn_ItemSend(object Item, ref bool Cancel)
{
System.Windows.Forms.MessageBox.Show("You can't save it, it's in the past!");
Cancel = true;
return;
}

现在,当我尝试更改现有约会项目时,我会在约会窗口中打开时更改它的一些值,例如位置等。点击约会窗口中的“发送”按钮时,文本框中的消息出现预期。但问题是 Outlook 会忽略此取消并已保存更改。唯一发生的事情是约会窗口没有关闭。但是如果只是关闭窗口而不明确保存,您可以看到 Outlook 已经接受了您对约会项目所做的更改。

这是有意为之的行为吗?即使取消参数已更改为“true”,Outlook 是否可以停止保存更改?

最佳答案

你也可以使用 Application.Inspectors.NewInspector事件并锁定 AppointmentItem.Send事件。

根据 AppointmentItem.Send MSDN 文档 - 预期的行为是当 Cancel = true 时发送不会发生,检查器窗口保持打开状态并且更改仍会保存 - 只是不会发送给与会者。

如果您想取消保存 - 您需要锁定 AppointmentItem.Write在发送之前取消保存的事件。

关于C# Outlook 加载项约会事件 'ItemSend' 未正确取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10226095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com