我在Outlook 2010的加载项中使用IMAPIProp :: CopyTo将当前显示的IMessage保存到磁盘上的.msg文件中的新IMessage中。一切都适用于驻留在用户邮箱中的邮件。
当我尝试使用从磁盘上的.msg文件打开并包含附件的消息时,IMAPIProp :: CopyTo返回0x80070005(MAPI_E_NO_ACCESS)。从IMAPIProp :: GetLastError返回的详细信息为:
ulVersion: 0
lpszError: "A resource is busy or you lack sufficient access rights or permissions"
lpszComponent: ""
ulLowLevelError: 71
ulContext: 0
使用File-> Save As或File-> Save后,我对IMAPIProp :: CopyTo的调用也成功了。如果我排除PR_MESSAGE_ATTACHMENTS,IMAPIProp :: CopyTo也会成功。
Outlook可以做些什么来准备成功调用IMAPIProp :: CopyTo?
答案 0 :(得分:2)
CopyTo()在MSG文件之上创建的消息不能很好地工作(如果有的话)。 你唯一的选择是编写自己的GetPropList函数,然后一次复制一个属性(当然正确地转换命名属性),然后复制附件和收件人。