IAddrBook::Address
适用于:Outlook 2013 | Outlook 2016
显示 Outlook 通讯簿对话框。
HRESULT Address(
ULONG_PTR FAR * lpulUIParam,
LPADRPARM lpAdrParms,
LPADRLIST FAR * lppAdrList
);
参数
lpulUIParam
[in,out]指向对话框的父窗口句柄的指针。 输入时,必须始终传递窗口句柄。 在输出时,如果 lpAdrParms 参数的 ulFlags 成员设置为 DIALOG_SDI,则返回无模式对话框的窗口句柄。 请参阅注解。
lpAdrParms
[in,out]指向 ADRPARM 结构的指针,该结构控制地址对话框的表示形式和行为。
lppAdrList
[in,out]指向包含收件人信息的 ADRLIST 结构的指针的指针。 输入时,此参数可以为 NULL 或指向有效的指针。 输出时,此参数指向指向有效收件人信息的指针。
返回值
S_OK
已成功显示公共地址对话框。
备注
如果 lpAdrParms 参数的 ulFlags 成员设置为DIALOG_SDI预期输出时无模式对话框的窗口句柄返回,则 Outlook 中将忽略它;对话框的模式版本始终显示在非 Outlook 客户端中。
MAPI 通过 lppAdrList 参数传回给调用方的 ADRLIST 结构包含 ADRENTRY 结构的数组,每个接收方都有一个结构。 在 lpMods 参数中传递给传出邮件的 IMessage::ModifyRecipients 方法时,ADRLIST 结构可用于更新其收件人列表。
ADRLIST 结构中的每个 ADRENTRY 结构都包含零个或多个 SPropValue 结构,每个为收件人设置的属性都有一个结构。 当使用 Address 方法提供的对话框删除收件人时,SPropValue 结构可能为零。 当存在一个或多个 SPropValue 结构时,将使用相应的 ADRENTRY 结构添加或更新收件人。 可以解析收件人,这指示其中一个 SPropValue 结构描述收件人 PR_ENTRYID (PidTagEntryId) 属性,或未解析,这指示 缺少 PR_ENTRYID 属性。
除了 PR_ENTRYID,解析的收件人还包含以下属性:
PR_RECIPIENT_TYPE (PidTagRecipientType)
PR_DISPLAY_NAME (PidTagDisplayName)
PR_ADDRTYPE (PidTagAddressType)
PR_DISPLAY_TYPE (PidTagDisplayType)
调用方传入的 ADRLIST 结构的大小可能与 MAPI 返回的结构不同。 如果 MAPI 必须返回更大的 ADRLIST 结构,则会释放原始结构并分配一个新结构。 为 ADRLIST 结构分配内存时,请单独为每个 SPropValue 结构分配内存。 有关如何分配和释放 ADRLIST 结构的详细信息,请参阅 管理 ADRLIST 和 SRowSet 结构的内存
如果在 lpAdrParms 参数的 ADRPARM 结构的 ulFlags 成员中设置了DIALOG_SDI标志,则地址将立即返回。 对于非 Outlook 客户端,将忽略DIALOG_SDI标志。 如果忽略DIALOG_SDI,将显示对话框的模式版本,并且 lpulUIParam 中不应显示指向句柄的指针。
如果在 lpAdrParms 参数的 ADRPARM 的 ulFlags 成员中指定了 AB_UNICODEUI,则地址支持 ADRPARM 结构中的 Unicode 字符串,并且它支持 ADRLIST 中的 Unicode 字符串。 Unicode 字符串 (MBCS) 格式转换为多字节字符串,然后才会显示在 Outlook 通讯簿对话框中。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
MAPIStoreFunctions.cpp |
OpenOtherUsersMailboxFromGal |
MFCMAPI 使用 Address 方法允许用户选择要打开的邮箱。 |