【问题标题】:Outlook Add In : Is it possible to discard changes to a mailItem programatically ?Outlook Add In:是否可以通过编程方式放弃对 mailItem 的更改?
【发布时间】:2014-11-24 19:25:29
【问题描述】:

我创建了一个 Outlook 插件,当用户打开邮件时,它会修改邮件的附件和正文。但是,每当我关闭窗口时,都会出现一个提示,询问我是否要保存对附件和消息属性所做的更改。

我想问的是,有什么方法可以让我以编程方式丢弃更改,以便邮件恢复到我打开它之前的状态?

我也使用了 Marshal.ReleaseComObject(_mailItem); ,但提示仍然出现。

【问题讨论】:

    标签: vsto outlook-addin


    【解决方案1】:

    尝试拨打mailItem.Close(OlInspectorClose.olDiscard);。

    【讨论】:

    • 我曾尝试在 mailItem 关闭事件中使用它,但会出现提示:“此邮件的附件已更改。您要保存吗?”不会出现,我的邮件会自动保存。还有其他选择吗?我只是希望它在关闭邮件窗口后恢复到原来的状态。提前致谢。
    • 我认为您不能从 Close 事件处理程序调用 Close。您可以在 Close 事件处理程序中将 Cancel 参数设置为 true,启动一个计时器,然后在计时器事件处理程序中调用 MailItem.Close(olDiscard) - 到那时您将退出 Close 事件处理程序。
    • 嗨,德米特里,感谢您的建议!它为我做我想做的事开辟了全新的可能性。它有效 =D。
    • Juts 确保您使用的是 Forms 命名空间中的 Timer(它在主线程上运行)而不是 System 命名空间中的 Timer(它使用辅助线程)。
    猜你喜欢
    • 1970-01-01
    • 2010-12-13
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多