更改outlook MailItem图标
我正在开发一个outlook 2010插件,当用户单击菜单中的按钮时,该插件会将电子邮件导出到特定位置。
这部分不是问题,但如果导出成功,我还需要更改MailItem
图标 – 象形图。 我试图寻找解决方案,但我只是得到我需要使用表单区域 ,但我没有找到真正有用的解决方案。
任何想法我应该如何使用这个表单区域?!
我完成了加载项,从VS 2010调试时,一切似乎都很完美。我还创建了一个安装程序,但在安装应用程序后,Outlook将不会显示我想要的图标。 它不是显示你上面看到的内容,而是更改图标,但显示默认图标 – 而不是我的图标。 图标位于我使用的FormRegion的resx文件中(我使用dor默认和从清单中读取图标),我也尝试将它们移动到一般资源文件(Properties.Resource),但结果是相同的。 有人可以帮我弄这个吗?
所以我使用Replacement和ReplaceAll添加了一个FormRegion,在清单上的默认图标上添加了我的图标,并将其命名为IPM.Note.MyExportedItem。
在ThisAddin.cs中,我有以下代码:
MailItem mailItem =(selectedItem as MailItem);
itemGuid = mailItem.EntryID; string name = mailItem.Subject + ".msg"; name = "C:\\" + name.Replace(":", ""); try { mailItem.SaveAs(name, OlSaveAsType.olMSG); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } mailItem.MessageClass = "IPM.Note.MyExportedItem"; mailItem.Display(true); ........
但是,当我按照我想要的方式导出它时,这不会将邮箱中的mailItem(电子邮件)图标更改为我的图标,我可以看到的唯一更改是当我调用Display(true)并打开邮件消息时。 此外,如果我按下新项目,选择表格并打开我的表格区域,它会打开一个撰写邮件窗口,如果我发送电子邮件给我,那么它将有我的图标……很奇怪…你可以在图片中看到:-)你知道我做错了什么吗?
问候
以下是在Outlook中使用自定义图标所需的步骤:
- 您需要为导出的项目分配自定义
MailItem.MessageClass
( IPM.Note.MyCompany.MyExportedItem )。 - 创建与
MessageClass
匹配的替换表单区域 - 在“表单区域设计器”的“ 属性”窗格中分配图标。
- 使用自定义表单区域重新部署VSTO加载项 。
此MSDN论坛post也描述了该过程 。