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旗標,則 Address 會立即傳回。 非 Outlook 用戶端會忽略DIALOG_SDI旗標。 如果忽略DIALOG_SDI,則會顯示對話框的強制回應版本,且在 lpulUIParam 中不應該預期句柄的指標。
如果在 lpAdrParms 參數的 ADRPARM的 ulFlags 成員中指定AB_UNICODEUI,則 Address 支援 ADRPARM 結構中的 Unicode 字符字串,而且它支援 ADRLIST 中的 Unicode 字符字串。 Unicode 字串會轉換成多位元組位元元字串, (MBCS) 格式,然後才會顯示在 Outlook 通訊簿對話框中。
MFCMAPI 參考
如需 MFCMAPI 範例程式代碼,請參閱下表。
檔案 | Function | Comment |
---|---|---|
MAPIStoreFunctions.cpp |
OpenOtherUsersMailboxFromGal |
MFCMAPI 會使用 Address 方法,讓用戶選取要開啟的信箱。 |