Platform SDK: MAPI |
The OPTIONDATA structure describes properties supported by a transport provider.
Header file: | MAPISPI.H |
typedef struct _OPTIONDATA { ULONG ulFlags; LPGUID lpRecipGUID; LPTSTR lpszAdrType; LPTSTR lpszDLLName; ULONG ulOrdinal; ULONG cbOptionsData; LPBYTE lpbOptionsData; ULONG cOptionsProps; LPSPropValue lpOptionsProps; } OPTIONDATA, FAR *LPOPTIONDATA;
Option properties can apply to a recipient or to a message. They often relate to an address type or GUID supported by a transport provider. Transport providers register to support option properties when MAPI calls their IXPLogon::RegisterOptions method.
RegisterOptions writes one or two OPTIONDATA structures for each supported address type, depending on whether the provider registers for both recipient and message options, recipient options only, or message options only. If a provider is registered for both option types, RegisterOptions writes one structure containing message option properties and one structure containing recipient option properties.
Clients can retrieve the current settings for these options either interactively with a property sheet or programmatically with a property value array. To display option properties to the user, clients call IMAPISession::MessageOptions or IAddrBook::RecipOptions. To retrieve option properties without user intervention, clients call IMAPISession::QueryDefaultMessageOpt or IAddrBook::QueryDefaultRecipOpt.
When a client calls MessageOptions or RecipOptions, MAPI invokes a callback function created by the transport provider that conforms to the OPTIONCALLBACK prototype. This function typically resides in the same DLL as the transport provider and is called to retrieve an IMAPIProp implementation to use with a display table for showing the message and recipient options described in the OPTIONDATA structures.
The DLL name in the lpszDLLname member should not indicate the platform when included in an OPTIONDATA structure that is passed in the lppOptions parameter to IXPLogon::RegisterOptions.
For more information, see Implementing Message and Recipient Options with Transport Providers and Message and Recipient Options.
IXPLogon::AddressTypes, IXPLogon::RegisterOptions, SPropValue