Platform SDK: MAPI

CMC_recipient

A CMC_recipient structure contains information about a messaging user, either a message recipient or the message sender.

Quick Info

Header file: XCMC.H

typedef struct { 
     CMC_string     name; 
     CMC_enum      name_type; 
     CMC_string     address; 
     CMC_enum role; 
     CMC_flags recip_flags; 
     CMC_extension *recip_extensions; 
} CMC_recipient; 
 

Members

name
Pointer to a string that identifies the recipient or sender display name. When the CMC implementation resolves the name to an address, it determines whether it should interpret the name as the name of an individual first and then as the name of a group if the individual name is not found, or vice versa, according to the value of the name_type member.
name_type
Enumeration that indicates whether the structure contains information for a message recipient or a message sender. Possible values are:
CMC_TYPE_GROUP
The recipient or sender name belongs to a distribution list.
CMC_TYPE_INDIVIDUAL
The recipient or sender name belongs to an individual messaging user.
CMC_TYPE_UNKNOWN
An unknown recipient or originator name.

The name_type member is meaningful only if the name member is present. The CMC implementation sets name_type on output. On input, the name_type information can be used by the addressing mechanism in the message service to optimize resolution of the name.

address
Pointer to a recipient or sender address string in a format recognized by the underlying messaging system. CMC does not define the format of the string. This member therefore accommodates any string notations supported by the CMC implementation, as configured at installation.
role
Enumeration that indicates the role of the message recipient or sender. Possible values are:
CMC_ROLE_AUTHORIZING_USER
The user authorizing the message, in cases of messages sent by proxy or in the name of another user.
CMC_ROLE_BCC
A blind carbon copy (BCC) recipient.
CMC_ROLE_CC
A carbon copy (CC) recipient.
CMC_ROLE_ORIGINATOR
The sender of the message.
CMC_ROLE_TO
A primary recipient.
recip_flags
Bitmask of recipient flags. The following flags can be set:
CMC_RECIP_IGNORE
CMC should ignore the specified recipient. This flag is useful for reusing an incoming message's recipient list for a reply. If this flag is set to zero, it indicates that the recipient should not be ignored.
CMC_RECIP_LAST_ELEMENT
The last structure in an array of CMC_recipient structures. The structure with this flag set must be at the end of the array. If this flag is set to zero for any structure, that structure is not the last array element.
CMC_RECIP_LIST_TRUNCATED
CMC has not written all recipient or originator structures requested. The client application uses this flag only for the cmc_look_up function when the complete list of recipients matching the search name cannot be written. The function only sets this flag in the last structure in the array of CMC_recipient structures. If the flag is set to zero, cmc_look_up has written a complete recipient array.
recip_extensions
Pointer to the first structure in an array of CMC_extension structures that contain the recipient or sender data extensions, if any.

Remarks

If the underlying messaging system does not support carbon copy recipients, CMC can convert such a recipient to a primary recipient. Services that cannot support blind carbon-copy recipients should reject messages containing them. If a user designates the same recipient in more than one role, the client application should place multiple recipient entries in the recipient list, each differing from the others in role.

On output, the CMC implementation writes an array of CMC_recipient structures in a specific order. The message sender's structure should be the first element in the array, followed by the primary, carbon copy, and blind carbon-copy recipient structures grouped together in that order. If there is an authorizing user structure, it should be the final element in the array. The CMC implementation does not require ordering of the CMC_recipient structures on input.

See Also

CMC_extension, cmc_look_up