IMAPISupport::Address

适用于:Outlook 2013 | Outlook 2016

显示“公用地址”对话框。

HRESULT Address(
  ULONG_PTR FAR * lpulUIParam,
  LPADRPARM lpAdrParms,
  LPADRLIST FAR * lppAdrList
);

参数

lpulUIParam

[in,out]指向对话框的父窗口句柄的指针。 输入时,必须始终传递窗口句柄。 在输出时,如果在 lpAdrParms 参数指向的 ADRPARM 结构中设置了DIALOG_SDI标志,则会返回无模式对话框的窗口句柄。

lpAdrParms

[in,out]指向 ADRPARM 结构的指针,该结构控制地址对话框的表示形式和行为。

lppAdrList

[in,out]指向指向地址列表的指针的指针。 输入时,此列表可以是邮件中的当前收件人列表,如果没有此类列表,则为 NULL。 输出时, lppAdrList 指向更新的邮件收件人列表。

返回值

S_OK

已成功显示地址对话框。

备注

IMAPISupport::Address 方法为通讯簿提供程序支持对象实现。 通讯簿提供商调用 Address 来创建或更新邮件收件人列表。

每个收件人在 ADRENTRY 结构中描述,该结构包含在 lppAdrList 参数指向的 ADRLIST 结构中。 ADRENTRY 结构包含收件人属性值数组,其中一个是收件人的类型,或PR_RECIPIENT_TYPE (PidTagRecipientType) 属性。 此 ADRLIST 结构可以传递给客户端,在调用 IMessage::ModifyRecipients 时用作 lpMods 参数。

可以解析 ADRLIST 结构中的每个收件人(指示其属性值之一是其PR_ENTRYID (PidTagEntryId) 属性)或未解析(指示缺少 PR_ENTRYID 属性)。

除了 PR_ENTRYID,解析的收件人还包含以下属性:

未解析的收件人通常只包括 PR_DISPLAY_NAMEPR_RECIPIENT_TYPE

给调用方的说明

调用方传入的 ADRLIST 结构的大小可能与 MAPI 返回的结构不同。 为 ADRLIST 结构分配内存时,请单独为每个 SPropValue 结构分配内存。

使用传递到 ABProviderInit 函数的 MAPI 内存分配函数的指针来分配内存。 使用 MAPIAllocateBuffer 函数为 ADRLIST 分配内存,并在 ADRLIST 中的 ADRENTRY 结构中分配每个属性值结构。

如果 Address 必须返回较大的 ADRLIST 结构,或者已为 lppAdrList 传递 NULL, 则 Address 将释放原始结构并分配一个新结构。 Address 还会在 ADRLIST 结构中分配其他属性值结构,并根据需要释放旧属性值结构。 有关如何为 ADRLIST 结构管理内存的详细信息,请参阅 管理 ADRLIST 的内存和 SRowSet 结构

如果在 lpAdrParms 参数的 ADRPARM 结构中设置了DIALOG_SDI标志,则地址将立即返回。

另请参阅

ABProviderInit
ADRENTRY
ADRLIST
ADRPARM
FreePadrlist
FreeProws
IMAPISupport::GetMemAllocRoutines
IMAPITable::QueryRows
IMessage::ModifyRecipients
MAPIAllocateBuffer
MAPIAllocateMore
MAPIFreeBuffer
PidTagAddressType 规范属性
PidTagDisplayName 规范属性
PidTagDisplayType 规范属性
PidTagEntryId 规范属性
PidTagRecipientType 规范属性
SPropValue
SRowSet
IMAPISupport:IUnknown管理 ADRLIST 和 SRowSet 结构的内存