ENTRYID
适用于:Outlook 2013 | Outlook 2016
包含 MAPI 对象的条目标识符。
属性 | 值 |
---|---|
标头文件: |
Mapidefs.h |
相关宏: |
CbNewENTRYID、 SizedENTRYID |
typedef struct
{
BYTE abFlags[4];
BYTE ab[MAPI_DIM];
} ENTRYID, FAR *LPENTRYID;
Members
abFlags
提供描述对象的信息的标志的位掩码。 提供程序只能设置标志的第一个字节 abFlags[0];其他三个是保留的。 不得为永久条目标识符设置这些标志:它们仅为短期条目标识符设置。 对于客户端,此结构是只读的。 可以在 abFlags[0]中设置以下标志:
MAPI_NOTRECIP
条目标识符不能用作邮件的收件人。
MAPI_NOTRESERVED
其他用户无法访问条目标识符。
MAPI_NOW
其他时间无法使用条目标识符。
MAPI_SHORTTERM
条目标识符是短期的。 除非启用了条目标识符的其他用法,否则必须设置此字节中的所有其他值。
MAPI_THISSESSION
条目标识符不能用于其他会话。
Ab
指示服务提供程序使用的二进制数据的数组。 客户端应用程序不能使用此数组。
备注
ENTRYID 结构由消息存储和通讯簿提供程序用于为其对象构造唯一标识符。 条目标识符用于标识以下类型的对象:
消息存储
Folders
消息
通讯簿容器
通讯组列表
消息传送用户
状态对象
配置文件部分
每个提供程序对 ENTRYID 结构使用一种格式,该格式对该提供程序有意义。
不能直接对条目标识符进行比较,因为一个对象可以由两个不同的二进制值表示。 若要确定两个条目标识符是否表示同一对象,请调用 IMAPISession::CompareEntryIDs 方法。
当客户端调用对象的 IMAPIProp::GetProps 方法来检索其条目标识符时,该对象将返回最永久形式的条目标识符。 客户端可以通过检查 abFlags 成员的第一个字节中是否未设置任何标志来验证条目标识符是否长期。
当客户端通过表中的列访问条目标识符时,此条目标识符很可能是短期的,而不是长期的。 短期条目标识符只能用于在当前 MAPI 会话中打开其相应的对象。 客户端可以通过检查是否在 abFlags 成员的第一个字节中设置了所有标志来验证条目标识符是否是短期的。
某些条目标识符是短期的,但具有长期用途。 此类条目标识符将在其 abFlags 成员的第一个字节中设置一个或多个适当的标志。
ENTRYID 结构类似于 FLATENTRY 结构。 但是,存在一些差异:
ENTRYID 结构不存储条目标识符的大小;FLATENTRY 结构可以。
ENTRYID 结构分别存储标志数据和条目标识符的其余部分;FLATENTRY 结构使用条目标识符的其余部分存储标志数据。
ENTRYID 结构作为参数传递给 IMAPIProp 接口的方法和以下 OpenEntry 方法:IABLogon::OpenEntry、IAddrBook::OpenEntry、IMAPIContainer::OpenEntry、IMAPISession::OpenEntry、IMAPISupport::OpenEntry、IMsgStore::OpenEntry、IMSLogon::OpenEntry
ENTRYID 结构用于将条目标识符存储在磁盘上。 FLATENTRY 结构用于将条目标识符存储在文件中或以字节流形式传递。
客户端应始终传入自然对齐的条目标识符。 尽管提供程序应处理任意对齐的条目标识符,但客户端不应期望此行为。 未能将良好的对齐项标识符传递给方法可能会导致 RISC 处理器出现对齐错误。
自然对齐因子(通常为 8 个字节)是 CPU 支持的最大数据类型,通常与系统内存分配器使用的对齐因子相同。 自然对齐的内存地址允许 CPU 访问该地址支持的任何数据类型,而不会生成对齐错误。 对于 RISC CPU,大小为 N 字节的数据类型通常必须在 N 个字节的偶数倍上对齐,地址为 N 的偶数倍。
有关详细信息,请参阅 条目标识符。