2017-04-07 64 views
0

我有一个在Visual Basic 2010中使用Visual Basic 2010制作的Outlook 2007加载项。我在很长一段时间以前开发了它,它一直运行良好。我使用附件PropertyAccessor检测嵌入的图像。我现在必须回去做一些改变,并且遇到以下问题。试图获得财产现在给我以下错误(它从未做过) The property "http://schemas.microsoft.com/mapi/proptag/0x37140003" is unknown or cannot be found.其他属性我可以得到罚款。我看过其他帖子,其中提到PR_ATTACHMENT_HIDDEN属性没有设置。我不明白这一点,因为附件是我从另一个帐户发送的普通JPG。如果我在Outlook 2016中构建加载项并进行安装,那么它工作得很好。我觉得奇怪的是,它曾经没有错误地工作。我不知道它是否有所作为,但它在VirtualBox中运行。
任何想法都会受到欢迎。属性访问器错误

+1

将您的代码编辑到问题主体中,您可能会收到一些建议 –

回答

0

请记住,PropertyAccessor.GetProperty行为已改变(在Outlook 2010?)当涉及到不存在的属性 - GetProperty现在将引发异常而不是返回null。

您需要预期并处理该异常 - 不应期望MAPI属性存在。在您的具体情况下,缺少PR_ATTACHMENT_HIDDENPR_ATTACHMENT_HIDDEN == false相同。

查看OutlookSpy附件上的可用MAPI属性 - 选择消息,单击OutlookSpy功能区上的IMessage按钮,转到GetAttachmentTable选项卡,双击附件。

+0

非常感谢您的回复。这肯定发生在Outlook 2007的MS更新中,因为该程序自写入以来未更改过。根据OutlookSpy,没有PR_ATTACH_FLAGS或PR_ATTACH_CONTENT_ID。当我通过检查PR_ATTACH_FLAGS = 4来提取嵌入的图像时,我将不得不做更多的测试。 – Gerry

+0

PR_ATTACH_CONTENT_ID不是一个足够的检查 - HTML主体可以通过文件名引用图像。你真的需要看看HTML,看看哪些文件应该被视为图像。 –