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_RECIPIENT_TYPE
PR_DISPLAY_NAME (PidTagDisplayName)
PR_ADDRTYPE (PidTagAddressType)
PR_DISPLAY_TYPE (PidTagDisplayType)
未解析的收件人通常只包括 PR_DISPLAY_NAME 和 PR_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 结构的内存