IMAPISupport::NewEntry
适用于:Outlook 2013 | Outlook 2016
将新收件人直接添加到通讯簿容器或传出邮件的收件人列表中。
HRESULT NewEntry(
ULONG_PTR ulUIParam,
ULONG ulFlags,
ULONG cbEIDContainer,
LPENTRYID lpEIDContainer,
ULONG cbEIDNewEntryTpl,
LPENTRYID lpEIDNewEntryTpl,
ULONG FAR * lpcbEIDNewEntry,
LPENTRYID FAR * lppEIDNewEntry
);
参数
ulUIParam
[in]对话框的父窗口的句柄。
ulFlags
[in]保留;必须为零。
cbEIDContainer
[in] lpEIDContainer 参数指向的条目标识符中的字节计数。
lpEIDContainer
[in]指向要接收新条目的容器的条目标识符的指针。 如果 cbEIDContainer 为 0 且 lpEIDContainer 为 NULL, 则 NewEntry 将创建一个一次性条目标识符,该标识符的类型与调用 IMAPISupport::CreateOneOff 方法生成的类型相同。
cbEIDNewEntryTpl
[in] lpEIDNewEntryTpl 参数指向的条目标识符中的字节计数。
lpEIDNewEntryTpl
[in]指向要用于创建新条目的模板的条目标识符的指针。 如果 cbEIDNewEntryTpl 为 0 且 lpEIDNewEntryTpl 为 NULL, 则 NewEntry 将显示一个对话框,使用户能够从用于添加新条目的模板列表中进行选择。
lEIDNewEntry
[out]指向 lppEIDNewEntry 参数指向的条目标识符中的字节计数的指针。
lppEIDNewEntry
[out]指向指向新创建的条目的条目标识符的指针的指针。
返回值
S_OK
已成功创建新条目。
备注
IMAPISupport::NewEntry 方法为通讯簿提供程序支持对象实现。 通讯簿提供程序调用 NewEntry 以创建新的通讯簿条目,以便直接添加到容器中或用于处理传出消息。
给调用方的说明
如果希望将新条目添加到特定容器,请将 lpEIDContainer 设置为容器的条目标识符,将 cbEIDContainer 设置为条目标识符中的字节计数。
如果希望将新条目添加到传出邮件的收件人列表中,请将 lpEIDContainer 设置为 NULL,将 cbEIDContainer 设置为 0。
如果要允许客户端应用程序的用户选择要创建的条目类型,请在 cbEIDNewEntryTpl 中传递 0,在 lpEIDNewEntryTpl 中传递 NULL。 NewEntry 显示 MAPI 一次性表,其中包含 MAPI 和会话支持中的每个通讯簿提供程序的模板列表。 每个模板可以为一个或多个地址类型创建收件人条目。
如果要保留新条目的条目标识符,请在 lEIDNewEntry 和 lppEIDNewEntry 参数中传递有效的指针。 通过调用 MAPIFreeBuffer 函数,负责释放此条目标识符。
若要使用特定模板向可修改容器添加新条目,请使用以下过程:
调用 IMAPISupport::OpenEntry 方法以打开目标容器,并将 lpEntryID 参数设置为容器的入口标识符。
调用目标容器的 IMAPIProp::OpenProperty 方法,并将 ulPropTag 参数设置为 PR_CREATE_TEMPLATES (PidTagCreateTemplates) 和 lpiid 参数以IID_IMAPITable。 容器将返回一个一次性表,其中列出了它支持创建新条目的所有模板。
检索表示要创建的特定类型的条目的模板的行。 PR_ADDRTYPE (PidTagAddressType) 列指示模板支持的地址类型。
调用 IMAPISupport::NewEntry 并将 lpEIDNewEntryTpl 参数设置为所选模板的条目标识符。 条目标识符是一次性表中模板行) 列 (PidTagEntryId 的PR_ENTRYID。 在 cbEIDContainer 中传递 0,在 lpEIDContainer 中传递 NULL。 如果要保留新条目的条目标识符,请传递 lppEIDNewEntry 参数中的有效指针。