是否撤消在Outlook中设置邮件信封图标?

是否撤消在Outlook中设置邮件信封图标?,outlook,vsto,Outlook,Vsto,我们尝试使用以下几行代码来控制Outlook中的邮件信封图标: Dim PR_ICON_INDEX As String = "http://schemas.microsoft.com/mapi/proptag/0x10800003" Dim olkPA As Outlook.PropertyAccessor olkPA = mailitem.PropertyAccessor olkPA.SetProperty(PR_ICON_INDEX, 0) 这会将一大堆邮件(甚至是已读邮件)设置为封闭信封

我们尝试使用以下几行代码来控制Outlook中的邮件信封图标:

Dim PR_ICON_INDEX As String = "http://schemas.microsoft.com/mapi/proptag/0x10800003"
Dim olkPA As Outlook.PropertyAccessor
olkPA = mailitem.PropertyAccessor
olkPA.SetProperty(PR_ICON_INDEX, 0)
这会将一大堆邮件(甚至是已读邮件)设置为封闭信封图标。

我们已经决定这不是我们要走的路。但如何将图标重置为打开信封阅读邮件图标

我们已经试过了
olkPA.SetProperty(PR\u图标\u索引,1)

要查看1是否是已读邮件的图标,但它是一种固定的便笺图标:

在点击我们想要阅读的图标之前,尝试所有的数字是不现实的

你想知道是否有一个查找所有这些图标的地方


如果你用谷歌搜索这个问题,你会得到关于如何为你的信息设置自定义图标的说明。我们要撤消。

您只需使用PropertyAccessor.DeleteProperty删除属性即可


您无需猜测,只需使用或MFCMAPI比较好消息和坏消息。

谢谢Dmitry。如果我们只是想删除那些我们弄糟的邮件的属性,并将其设置为封闭信封(即,我们不想更改那些我们没有弄糟的邮件,例如,它们有一个合法的图标-例如,紫色箭头回复)。。。我们如何检测它?您可以先检查旧值-如果它是0(因为代码将其设置为0),则删除它,否则别管它,Dmitry我正在尝试DeleteProperty,但它抛出UnauthorizedAccessException,表示“属性”不支持此操作顺便说一句,谢谢你的帮助。这个问题没有引起太多的注意,所以谢谢你抽出时间。。。看起来OOM将其视为“特殊”属性之一。使用赎回是一种选择吗?您可以通过将RDOMail/SafeMailItem.Fields[]设置为null/Nothing来删除属性。