IMessage::OpenAttach

适用于:Outlook 2013 | Outlook 2016

打开附件。

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

参数

ulAttachmentNum

[in]要打开的附件的索引号,存储在附件 的 PR_ATTACH_NUM (PidTagAttachNumber) 属性中。 此索引号唯一标识邮件中的附件,并且仅在邮件上下文中有效。

lpInterface

[in]指向接口标识符的指针 (IID) 表示要用于访问附件的接口。 传递 NULL 会导致返回附件的标准接口或 IAttach

ulFlags

[in]控制附件打开方式的标志的位掩码。 可以设置以下标志:

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 作为代码示例