Поделиться через


IMessage::OpenAttach

Область применения: Outlook 2013 | Outlook 2016

Открывает вложение.

HRESULT OpenAttach(
  ULONG ulAttachmentNum,
  LPCIID lpInterface,
  ULONG ulFlags,
  LPATTACH FAR * lppAttach
);

Параметры

ulAttachmentNum

[в] Номер индекса открываемого вложения, который хранится в свойстве PR_ATTACH_NUM (PidTagAttachNumber) вложения. Этот номер индекса однозначно идентифицирует вложение в сообщении и действителен только в контексте сообщения.

lpInterface

[в] Указатель на идентификатор интерфейса (IID), представляющий интерфейс, используемый для доступа к вложению. Передача NULL приводит к возврату стандартного интерфейса вложения или IAttach.

ulFlags

[в] Битовая маска флагов, управляющая способом открытия вложения. Можно задать следующие флаги:

MAPI_BEST_ACCESS

Запрашивает открытие вложения с максимальными разрешениями сети, разрешенными для пользователя, и максимальным доступом к клиентскому приложению. Например, если клиент имеет разрешение на чтение и запись, вложение должно быть открыто с разрешением на чтение и запись; Если клиент имеет доступ только для чтения, вложение должно быть открыто с доступом только для чтения.

MAPI_DEFERRED_ERRORS

Позволяет OpenAttach успешно возвращать данные, возможно, до того, как вложение будет полностью доступно вызывающему клиенту. Если вложение недоступно, последующий вызов может привести к ошибке.

MAPI_MODIFY

Запрашивает разрешение на чтение и запись. По умолчанию вложения открываются с доступом только для чтения, и клиенты не должны работать при условии, что было предоставлено разрешение на чтение и запись.

lppAttach

[out] Указатель на указатель на открытое вложение.

Возвращаемое значение

S_OK

Вложение было успешно открыто.

Замечания

Метод IMessage::OpenAttach открывает вложение сообщения.

Примечания для вызывающих методов

Чтобы открыть вложение, необходимо иметь доступ к его номеру вложения или свойству PR_ATTACH_NUM . Вызовите IMessage::GetAttachmentTable , чтобы получить таблицу вложений сообщения и найти строку, представляющую открываемое вложение. Дополнительные сведения см. в разделе Открытие вложения .

Не пытайтесь открыть одно вложение несколько раз; Результаты не определены и зависят от поставщика хранилища сообщений.

Вы можете запросить открытие вложения в режиме чтения и записи, а не в режиме только для чтения по умолчанию. Однако, будет ли вложение открываться в режиме чтения и записи, определяет поставщик хранилища сообщений. Вы можете попытаться изменить вложение, подготовиться к обработке возможного сбоя или проверка уровень доступа, предоставленный путем получения свойства PR_ACCESS_LEVEL (PidTagAccessLevel) вложения, если оно доступно.

Справочные материалы по MFCMAPI

Пример кода MFCMAPI указан в приведенной ниже таблице.

Файл Функция Comment
AttachmentsDlg.cpp используется для
CAttachmentsDlg::OpenItemProp
MFCMAPI использует метод IMessage::OpenAttach для открытия объектов вложений.

См. также

IMessage: IMAPIPropMFCMAPI в качестве примера кода