Таблицы вложений
Область применения: Outlook 2013 | Outlook 2016
Таблица вложений содержит сведения обо всех объектах вложений, связанных с отправленным сообщением или сообщением в композиции.
В таблицу включаются только вложения, сохраненные с помощью вызова метода IMAPIProp::SaveChanges сообщения. Таблицы вложений реализуются поставщиками хранилища сообщений и используются клиентскими приложениями и поставщиками транспорта.
Доступ к таблице вложений можно получить, вызвав один из следующих вызовов:
IMAPIProp::OpenProperty, запрашивающий свойство PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments).
Таблицы вложений являются динамическими.
Поставщики хранилища сообщений не обязаны поддерживать сортировку в таблицах вложений. Если сортировка не поддерживается, таблица должна быть представлена по порядку путем отрисовки позиции — свойства PR_RENDERING_POSITION (PidTagRenderingPosition).
Поставщики хранилища сообщений также не обязаны поддерживать ограничения для таблиц вложений. Поставщики, которые не поддерживают ограничения, возвращают MAPI_E_NO_SUPPORT из своих реализаций IMAPITable::Restrict и IMAPITable::FindRow.
Таблицы вложений могут быть небольшими; В наборе обязательных столбцов есть только четыре столбца:
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 Record and Search Keys.
PR_RENDERING_POSITION указывает, как вложение должно отображаться в сообщении с форматированным текстом. Для него можно задать смещение в символах, при этом первый символ содержимого сообщения, хранящийся в свойстве PR_BODY (PidTagBody), будет смещением 0 или значением -1 (0xFFFFFFFF), что указывает на то, что вложение вообще не должно отображаться в тексте сообщения. Параметр не PR_RENDERING_POSITION также является параметром.
При сортировке таблицы вложений по позиции отрисовки поставщик хранилища сообщений обрабатывает ее как подписанное значение (PT_LONG). Таким образом, вложения с позициями отрисовки -1 сортируются перед вложениями с позициями отрисовки, отражающими допустимые смещения.
Дополнительные сведения о отрисовке вложения в виде обычного текстового сообщения см. в разделе Отрисовка вложения в виде обычного текста.
Сведения о отображении вложения в формате текста, например в формате RTF, см. в разделе Отрисовка вложения в тексте RTF.
Некоторые из поставщиков хранилища сообщений свойств обычно включаются в таблицу вложений, так как их легко вычислить или извлечь:
Property | ... |
---|---|
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) |