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 для открытия объектов вложений. |