附件表
适用于:Outlook 2013 | Outlook 2016
附件表包含与提交的邮件或撰写下的邮件关联的所有附件对象的相关信息。
表中仅包含通过调用邮件的 IMAPIProp::SaveChanges 方法保存的附件。 附件表由消息存储提供程序实现,并由客户端应用程序和传输提供程序使用。
可以通过调用以下任一项来访问附件表:
IMAPIProp::OpenProperty,请求 PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments) 属性。
附件表是动态表。
不需要消息存储提供程序支持对其附件表进行排序。 如果不支持排序,则必须按呈现位置( PR_RENDERING_POSITION (PidTagRenderingPosition) 属性)按顺序显示表。
消息存储提供程序也不需要支持对其附件表的限制。 不支持限制的提供程序从其 IMAPITable::Restrict 和 IMAPITable::FindRow 的实现中返回MAPI_E_NO_SUPPORT。
附件表可以很小;所需的列集中只有四列:
PR_ATTACH_NUM (PidTagAttachNumber)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_RECORD_KEY (PidTagRecordKey)
PR_RENDERING_POSITION
PR_ATTACH_NUM 不可传输,并且包含用于唯一标识邮件中的附件的值。 此属性通常用作表行的索引。 PR_ATTACH_NUM 的寿命较短:它仅在包含附件的邮件处于打开状态时有效。 只要附件表处于打开状态,其值就保证保持不变。
几乎每个表中都需要PR_INSTANCE_KEY。 它用于唯一标识特定行。
PR_RECORD_KEY 通常用于唯一标识对象以进行比较。 与 PR_ATTACH_NUM不同, PR_RECORD_KEY 具有与长期条目标识符相同的范围:即使消息关闭并重新打开,它仍然可用和有效。 有关在 MAPI 中使用记录键的详细信息,请参阅 MAPI 记录和搜索键。
PR_RENDERING_POSITION 指示应如何在富文本邮件中显示附件。 它可以设置为字符偏移量,邮件内容的第一个字符存储在 PR_BODY (PidTagBody) 属性的偏移量为 0,或设置为 -1 (0xFFFFFFFF) ,指示根本不应在邮件文本中呈现附件。 不设置 PR_RENDERING_POSITION 也是一个选项。
当附件表按呈现位置排序时,消息存储提供程序将其视为 (PT_LONG) 的有符号值。 因此,呈现位置为 -1 的附件在具有反映有效偏移的呈现位置的附件之前排序。
有关在纯文本邮件中呈现附件的详细信息,请参阅 在纯文本中呈现附件。
有关以 RTF) 格式文本(如 RTF 格式 (格式)呈现附件的信息,请参阅 在 RTF 文本中呈现附件。
某些属性消息存储提供程序通常包含在附件表中,因为它们易于计算或检索::
属性 | ... |
---|---|
PR_ATTACH_ENCODING (PidTagAttachEncoding) |
PR_ATTACH_EXTENSION (PidTagAttachExtension) |
PR_ATTACH_FILENAME (PidTagAttachFilename) |
PR_ATTACH_LONG_FILENAME (PidTagAttachLongFilename) |
PR_ATTACH_PATHNAME (PidTagAttachPathname) |
PR_ATTACH_LONG_PATHNAME (PidTagAttachLongPathname) |
PR_ATTACH_METHOD (PidTagAttachMethod) |
PR_ATTACH_TAG (PidTagAttachTag) |
PR_CREATION_TIME (PidTagCreationTime) |
PR_ATTACH_TRANSPORT_NAME (PidTagAttachTransportName) |
PR_DISPLAY_NAME (PidTagDisplayName) |
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime) |