ADRLIST 

The ADRLIST structure describes zero or more properties belonging to one or more recipients.

Quick Info

Header file:

MAPIDEFS.H

Related macros:

CbADRLIST4ANRB.P
CbNewADRLISTXV4XIH
SizedADRLISTJAEZKF

 

typedef struct _ADRLIST 

 

     ULONG      cEntries; 

     ADRENTRY   aEntries[MAPI_DIM]; 

} ADRLIST, FAR *LPADRLIST;

 

Members

cEntries

Count of entries in the array specified by the aEntries member.

aEntries

Array of ADRENTRY structures, one structure for each recipient.

 

Remarks

An ADRLIST structure contains one or more ADRENTRYWLHOWG structures, each describing the properties of a recipient. A recipient can be unresolved, meaning that it is lacking an entry identifier in its array of property values, or resolved, meaning that the PR_ENTRYID2JH9H8T property is included. Typically, resolved recipients also have an e-mail address   the PR_EMAIL_ADDRESSJ.C5HA property. However, the e-mail address is not required. ADRLIST structures are used, for example, to describe the recipient list for an outgoing message and by MAPI to display the entries in the address book.

ADRLIST structures resemble SRowSetC2IQB5 structures   the structures used for representing rows in tables. In fact, these two structures are designed so that they can be used interchangeably. Both contain an array of structures describing a group of properties and a count of the values in the array. Whereas in the ADRLIST structure, the array contains ADRENTRYWLHOWG structures, in the SRowSet structure the array contains SRowB8USB6 structures. ADRENTRY structures and SRow structures are identical in layout. Because ADRLIST and SRowSet structures follow the same allocation rules, an SRowSet structure that is retrieved from the contents table of an address book container can be cast to an ADRLIST structure and used as is.

The following diagram illustrates the layout of an ADRLIST structure.

{bmc bm5.WMF}

The ADRENTRYWLHOWG and SPropValue81C9._8 portions in an ADRLIST structure can be allocated and freed independently of the other parts. That is, each SPropValue structure can be allocated individually after memory for the ADRENTRY structure has been allocated and freed before the ADRENTRY structure is freed. This independence in handling memory allows recipients and individual recipient properties to be freely added or deleted from the address list.

If a recipient list is too large to fit in memory, clients can call the IMessage::ModifyRecipientsBTAS42 method to work with a subset of the list. Clients should not use the address book common dialog boxes in such a situation.

For more information on allocating memory for ADRENTRY structures, see Managing Memory for ADRLIST and SRowSet StructuresJEZ06_.

See Also

ADRENTRY, CbNewADRLIST, IMessage::ModifyRecipients, SRowSet