ADRLIST
適用於:Outlook 2013 |Outlook 2016
描述屬於一或多個收件者的零個或多個屬性。
值 | 描述 |
---|---|
標頭檔: |
Mapidefs.h |
相關宏: |
CbADRLIST、 CbNewADRLIST、 CbNewADRLIST |
typedef struct _ADRLIST
{
ULONG cEntries;
ADRENTRY aEntries[MAPI_DIM];
} ADRLIST, FAR *LPADRLIST;
成員
cEntries
由 aEntries 成員指定之陣列中的項目計數。
aEntries
ADRENTRY 結構的數位,每個收件者都有一個結構。
註解
ADRLIST 結構包含一或多個 ADRENTRY 結構,每個結構都描述收件者的屬性。 收件者無法解析。 這表示其屬性值陣列中缺少專案標識碼。 已解析的收件者表示 包含 PR_ENTRYID (PidTagEntryId) 屬性。 一般而言,解析的收件者也會有 PR_EMAIL_ADDRESS (PidTagEmailAddress) 屬性的電子郵件位址。 不過,不需要電子郵件位址。 例如,ADRLIST 結構可用來描述外寄郵件的收件者清單,以及使用MAPI來顯示通訊簿中的專案。
ADRLIST 結構類似於 SRowSet 結構,此結構用於表示數據表中的數據列。 事實上,這兩個結構的設計是為了讓它們可以交替使用。 兩者都包含結構的陣列,描述屬性群組和陣列中的值計數。 在 ADRLIST 結構中,數位包含 ADRENTRY 結構,而在 SRowSet 結構中,陣列包含 SRow 結構。 ADRENTRY 結構和 SRow 結構在版面配置中完全相同。 因為 ADRLIST 和 SRowSet 結構遵循相同的配置規則,所以從通訊簿容器的內容數據表擷取的 SRowSet 結構可以轉換成 ADRLIST 結構,並依原樣使用。
下圖顯示 ADRLIST 結構的版面配置。
ADRLIST 結構中的ADRENTRY和 SPropValue 部分必須與其他部分分開配置和釋放。 也就是說,每個 SPropValue 結構都必須在配置並釋放 ADRENTRY 結構的記憶體之後,再釋放 ADRENTRY 結構之後個別配置。 這種處理記憶體的獨立性可讓收件者和個別收件者屬性從地址清單中自由新增或刪除。
MAPIAllocateBuffer 和 MAPIFreeBuffer 函式必須用來配置和釋放 ADRLIST 結構及其所有元件。
如果收件者清單太大而無法放入記憶體中,用戶端可以呼叫 IMessage::ModifyRecipients 方法來處理清單的子集。 在這種情況下,用戶端不應該使用通訊簿通用對話框。
如需如何為 ADRENTRY 結構配置記憶體的詳細資訊,請參閱 管理 ADRLIST 和 SRowSet 結構的記憶體。