Oultook 2013 InlineResponse - Disable Forward button

本文关键字:Forward button Disable 2013 InlineResponse Oultook | 更新日期: 2023-09-27 18:16:23

我有一个表单服务器在Outlook中运行,我指定了一个不同的MessageClass(说IPM.Note.Test)的项目是由我的表单服务器处理。如果选择一个项目,则使用MessageClass ipm。测试,在资源管理器视图中,并尝试从ribbon按钮转发,我阻止用户这样做,通过钩到Forward命令。

在ol2013中,如果你有一个可见的阅读窗格,并在资源管理器中选择一个项目,你可以看到它的预览,并可以从阅读窗格顶部的工具栏转发/回复/ReplyAll,这将创建一个内联响应。

我想钩住这个Forward动作,并阻止用户这样做,就像我对Explorer-Ribbon Forward命令所做的那样。

我知道探索者。InlineResponse事件,它在任何创建内联响应的操作上触发,但是这个事件是在操作之后触发的,而不是在操作之前,它会在Reply, ReplyAll和Forward这三个操作上触发。我只想拦截前进号。事件中没有信息说明是哪个操作触发了它。

在创建inlinerresponse之前,是否有一种方法可以识别触发事件的操作?

或者有没有办法阻止inlinerresponse被创建?(从代码中,据我所知,你可以在OL选项中禁用它)。

或者有没有办法从资源管理器中禁用这些操作/内联响应。SelectionChange事件吗?

我将感激任何帮助。

谢谢。

Oultook 2013 InlineResponse - Disable Forward button

MailItem对象公开Actions集合。检索Forward动作,设置Action.Enabled属性为true,调用MailItem.Save

需要将对应Action对象实例的Enabled属性设置为false

如果应用程序中启用了该操作,则True;如果该操作被禁用,则false

感谢大家花时间回答这个问题。

因为其他事情,我把这个问题搁置了一会儿。

正如我前面提到的,我有自己的Form Server和不同的MessageClass。所以我在ExplorerSelectionChange事件中得到的MailItem对象,不是一个 Outlook MailItem,而是我的 MailItem,不幸的是,目前,它无法获得它的Actions属性,可能是因为我的表单服务器实现没有返回一个正确的。

所以,虽然,对于一个正常的MailItem,启用属性将工作,它不能解决我的问题…(

我也在Outlook开发论坛发了x-post,有人建议如下:

Private Sub myOlExp_InlineResponse(ByVal Item As Object)
Dim a As MailItem
Set a = Item
If a.To = "" Then
    a.Close olDiscard ‘close the mail item
    MsgBox "Forward is not supported"
End If
End Sub

虽然有点粗糙,并不是一个很好的用户体验,但我把这个作为一个答案,因为它是有效的。

分享到这里,以防有人来找。

完成线程