The Visual Basic MAPIAddress function enables users to create or modify a set of recipients. MAPIAddress generates an address-book dialog box that shows the contents of the recipient set and allows the user to select new entries or change existing entries.
Quick Info
Header file:
MAPIVB32.BAS
MAPIAddress(
Session as Long, UIParam as Long, Caption as String, EditFields as Long, Label as String, RecipCount as Long, Recipients() as MapiRecip, Flags as Long, Reserved as Long) as Long
Parameters
Session
[in] Session handle that represents a Simple MAPI session or zero. If the value of the Session parameter is zero, MAPI logs on the user and creates a session that exists only for the duration of the call. This temporary session can be an existing shared session or a new one. If necessary, a logon dialog box is displayed.
UIParam
[in] Parent window handle or zero, indicating that if a dialog box is displayed, it is application modal. If no dialog box is displayed during the call, the UIParam parameter is ignored.
Caption
[in] Caption of the address-list dialog box. If this parameter is an empty string, the default value "Address Book" is used.
EditFields
[in] The number of edit controls that should be present in the address list. The values 0 through 4are valid. If the value of the nEditFields parameter is 4, each recipient class supported by the underlying messaging system has an edit control. If the value of EditFields is zero, only address list browsing is possible. Values of 1, 2, or 3 control the number of edit controls present.
However, if the number of recipient classes in the Recipients parameter is greater than the value of EditFields, the number of classes in Recipients is used to indicate the number of edit controls instead of the value of EditFields. If the value of EditFields is 1 and more than one kind of entry exists in Recipients, then the Labels parameter is ignored.
Entries selected for the different controls are differentiated by the ulRecipClass member in the returned recipient structure.
Label
[in] Edit control label in the address-list dialog box. The Label parameter is ignored and should be an empty string except when the value of the EditFields parameter is 1. If you want a default control label "To:", Label should be an empty string.
RecipCount
[in] The number of entries in the Recipients parameter. If the value of the RecipCount parameter is zero, Recipients is ignored.
Recipients
[in] The initial array of recipient entries to be used to populate edit controls in the address-list dialog box. Recipient entries need not be grouped by recipient class. If the value of the greatest recipient class present is greater than the value of the EditFields parameter, the EditFields and Label parameters are ignored. This array is redimensioned as necessary to accommodate the entries made by the user in the address-list dialog box.
Flags
[in] Bitmask of flags. The following flags can be set:
MAPI_LOGON_UI
A dialog box should be displayed to prompt the user to log on if required. When the MAPI_LOGON_UI flag is not set, the client application does not display a logon dialog box and returns an error value if the user is not logged on.
MAPI_NEW_SESSION
An attempt should be made to create a new session rather than acquire the environment's shared session. If the MAPI_NEW_SESSION flag is not set, MAPIAddress uses an existing shared session.
Reserved
Reserved; must be zero.
Return Values
MAPI_E_FAILURE
One or more unspecified errors occurred while building recipient lists or browsing the address book. No list of recipients was returned.
MAPI_E_INSUFFICIENT_MEMORY
There was insufficient memory to proceed. No list of recipients was returned.
MAPI_E_INVALID_EDITFIELDS
The value of the nEditFields parameter was outside the range of 0 through 4. No list of recipients was returned.
MAPI_E_INVALID_RECIPS
One or more of the recipients in the address list was not valid or the Recipients parameter was not a valid array. No list of recipients was returned.
MAPI_E_INVALID_SESSION
An invalid session handle was used for the lhSession parameter. No list of recipients was returned.
MAPI_E_LOGIN_FAILURE
There was no default logon, and the user failed to log on successfully when the logon dialog box was displayed. No list of recipients was returned.
MAPI_E_NOT_SUPPORTED
The operation was not supported by the underlying messaging system. A list of recipients might have been returned.
MAPI_E_USER_ABORT
The user canceled one of the dialog boxes. No list of recipients was returned.
SUCCESS_SUCCESS
The call succeeded and a list of address entries was returned.
Remarks
The MAPIAddress function makes it possible for users to create or modify a set of address-list entries using a standard address-list dialog box. The dialog box cannot be suppressed, but function parameters allow the caller to set characteristics of the dialog box.
The call is made with an initial, and possibly empty, set of recipients. The address-list dialog box shows the contents of the recipient set; users can choose new entries to add to the set. The final set of recipients is returned to the caller in the RecipCount and Recipients parameters, destroying their initial values.
The declaration of this function for the 32-bit Visual Basic runtime is:
MAPIAddress(
Session As Long, UIParam As Long, Caption As String, nEditFields As Long, Label As String, nRecipients As Long, Recips() As MapiRecip, Flags As Long, Reserved As Long) As Long