首页 文章

Outlook 2007 Addin GetProperty - 不支持属性

提问于
浏览
0

我有一个Office Outlook Addin . 我在2010年创建了它,但它在Office 2007,2010和2013上得到了支持 . 我们在Office 2007计算机上运行了测试并收到:

对象不支持属性“http://schemas.microsoft.com/mapi/proptag/0x37010102”

我正在访问MailItem附件 . 我得到附件的PropertyAccessor并调用GetProperty方法:

const string PR_ATTACH_DATA_BIN = @"http://schemas.microsoft.com/mapi/proptag/0x37010102";
PropertyAccessor propertyAccessor = attachment.PropertyAccessor;
var PR_ATTACH_DATA_BIN_Value = propertyAccessor.GetProperty(PR_ATTACH_DATA_BIN);

我可以访问附件类型,表明应该在上面的属性中找到数据 . 附加方法是ATTACH_BY_VALUE .

是否有一些我可以忽略的东西,因为它适用于运行Office 2010和2013的所有其他机器?

1 回答

  • 0

    PropertyAccessor类的GetProperty方法在检索大于约8KB的属性时可能会对PropertyAccessor产生限制 .

    在MAPI级别发生的是PropertyAccessor正在使用MAPI HrGetOneProp调用 . 这将导致大约8K的数据失败,然后你回到将属性作为IStream . 在2007年,由于性能原因以及实现该功能的成本,Outlook不会对PropertyAccessor执行此操作 . 因此,使用2007年的PropertyAccessor,您可以编写更大的属性,但不能读回 .

    在已修复的Outlook 2010中,即使对于非常大的附件,您也可以阅读附件内容 . 您需要使用OpenProperty方法(扩展MAPI)和IStream接口来弥补差距 . 您也可以考虑在扩展MAPI(兑换)周围使用第三方包装器 .

相关问题