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,解析的收件人还包含以下属性:

调用方传入的 ADRLIST 结构的大小可能与 MAPI 返回的结构不同。 如果 MAPI 必须返回更大的 ADRLIST 结构,则会释放原始结构并分配一个新结构。 为 ADRLIST 结构分配内存时,请单独为每个 SPropValue 结构分配内存。 有关如何分配和释放 ADRLIST 结构的详细信息,请参阅 管理 ADRLIST 和 SRowSet 结构的内存

如果在 lpAdrParms 参数的 ADRPARM 结构的 ulFlags 成员中设置了DIALOG_SDI标志,则地址将立即返回。 对于非 Outlook 客户端,将忽略DIALOG_SDI标志。 如果忽略DIALOG_SDI,将显示对话框的模式版本,并且 lpulUIParam 中不应显示指向句柄的指针。

如果在 lpAdrParms 参数的 ADRPARMulFlags 成员中指定了 AB_UNICODEUI,则地址支持 ADRPARM 结构中的 Unicode 字符串,并且它支持 ADRLIST 中的 Unicode 字符串。 Unicode 字符串 (MBCS) 格式转换为多字节字符串,然后才会显示在 Outlook 通讯簿对话框中。

MFCMAPI 引用

有关 MFCMAPI 示例代码,请参阅下表。

文件 函数 Comment
MAPIStoreFunctions.cpp
OpenOtherUsersMailboxFromGal
MFCMAPI 使用 Address 方法允许用户选择要打开的邮箱。

另请参阅

ADRENTRY

ADRLIST

ADRPARM

FreePadrlist

FreeProws

IMAPITable::QueryRows

IMessage::ModifyRecipients

MAPIAllocateBuffer

MAPIAllocateMore

MAPIFreeBuffer

SPropValue

SRowSet

IAddrBook : IMAPIProp

MFCMAPI 代码示例

MFCMAPI 代码示例