【问题标题】:I want to discard changes made to the body of a mail item我想放弃对邮件正文所做的更改
【发布时间】:2018-01-23 22:57:37
【问题描述】:

我创建了一个 Outlook 加载项。在 Outlook 中打开/预览任何邮件时,我希望我的加载项更新邮件的正文。当邮件关闭或预览关闭时,我希望将更改恢复为原始更改。

为此,我跟踪了 SelectionChange 事件。 在其处理程序内部:

  1. 我已经使用mApp->ActiveExplorer(&mExplorer)函数获得了Active Explorer
  2. 然后使用 mExplorer->get_Selection(&lSelection) 从资源管理器中获取选择
  3. 然后使用QueryInterface()从Selection中获取邮件项
  4. 在这个邮件项目上,我正在使用 put_HTMLBody() 函数更新正文

现在,当用户点击任何其他邮件时,我想放弃我所做的更改。 但是,邮件项目会被保存,Outlook 也会创建另一封邮件。

我想放弃所有情况下的更改,例如用户双击并打开邮件并关闭它。

如何放弃对任何邮件项目所做的更改?

【问题讨论】:

    标签: c++ outlook outlook-addin


    【解决方案1】:

    不要那样做。临时更改 Outlook 中的任何内容都无法正常工作。如果你想显示自己的数据,显示在你自己的控件/自定义表单/等中。

    【讨论】:

    • 感谢 Dmitry 提供的有用信息。您能否澄清一下可能会出现哪些问题或哪些问题无法正常工作?如果显示自己的控件或自定义表单对我来说不是一个可能的解决方案,您能否建议我如何在 Outlook 中实现相同的功能?
    • 有问题吗?当然:如果用户按 Ctrl+S,您的临时数据可以保存。 Outlook 可以显示保存更改等的提示。您想要实现的究竟是什么?为什么要尝试替换 Outlook 数据?
    • 感谢您的回复。我想要实现的功能如下:当用户发送邮件时,实际邮件正文作为附件发送。在接收端,根据某些条件,用户将能够看到邮件正文。如果条件成功,该附件的内容将显示在邮件正文中,但不应保留在邮件中。怎么可能达到同样的效果?
    • 设计您自己的自定义表单,以任何适合您的方式显示您想要的任何数据。当邮件到达时,将邮件类别更改为您的自定义表单,以确保 Outlook 将调用它而不是内置表单。
    • 非常感谢 Dmitry 的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2011-06-17
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 2023-04-02
    • 2011-12-17
    相关资源
    最近更新 更多