Outlook 2007 插件获取 属性 - 属性 不支持
Outlook 2007 Addin GetProperty - Property not supported
我有一个 Office Outlook 插件。我为 2010 创建了它,但它在 Office 2007、2010 和 2013 上受支持。我们 运行 在 Office 2007 计算机上进行了测试并收到:
Object does not support property
"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 上工作时,我是否忽略了什么?
PropertyAccessor class 的 GetProperty 方法不能用于较大的 属性 值(超过 8K 字节)。不幸的是,在 Outlook 2007 中,PropertyAccessor 在检索大于大约 8KB 的属性时存在限制。
在 MAPI 级别发生的情况是 PropertyAccessor 正在使用 MAPI HrGetOneProp 调用。这将在超过 8K 的数据上失败,然后您退回到将 属性 作为 IStream。由于性能原因以及实现该功能的成本,2007 年 Outlook 没有使用 PropertyAccessor 执行此操作。因此,使用 2007 年的 PropertyAccessor,您可以编写更大的属性,但不能读回它们。
在 Outlook 2010 中,这是固定的,即使是非常大的附件,您也可以阅读附件内容。您需要使用 OpenProperty 方法 (Extended MAPI) 和 IStream 接口来弥合差距。您也可以考虑在扩展 MAPI 周围使用第三方包装器(兑换)。
我有一个 Office Outlook 插件。我为 2010 创建了它,但它在 Office 2007、2010 和 2013 上受支持。我们 运行 在 Office 2007 计算机上进行了测试并收到:
Object does not support property "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 上工作时,我是否忽略了什么?
PropertyAccessor class 的 GetProperty 方法不能用于较大的 属性 值(超过 8K 字节)。不幸的是,在 Outlook 2007 中,PropertyAccessor 在检索大于大约 8KB 的属性时存在限制。
在 MAPI 级别发生的情况是 PropertyAccessor 正在使用 MAPI HrGetOneProp 调用。这将在超过 8K 的数据上失败,然后您退回到将 属性 作为 IStream。由于性能原因以及实现该功能的成本,2007 年 Outlook 没有使用 PropertyAccessor 执行此操作。因此,使用 2007 年的 PropertyAccessor,您可以编写更大的属性,但不能读回它们。
在 Outlook 2010 中,这是固定的,即使是非常大的附件,您也可以阅读附件内容。您需要使用 OpenProperty 方法 (Extended MAPI) 和 IStream 接口来弥合差距。您也可以考虑在扩展 MAPI 周围使用第三方包装器(兑换)。