Compartir a través de


IXPLogon::AddressTypes

Hace referencia a: Outlook 2013 | Outlook 2016

Devuelve los tipos de destinatarios que controla el proveedor de transporte.

HRESULT AddressTypes(
  ULONG FAR * lpulFlags,
  ULONG FAR * lpcAdrType,
  LPSTR FAR * FAR * lpppszAdrTypeArray,
  ULONG FAR * lpcMAPIUID,
  LPUID FAR * FAR * lpppUIDArray
);

Parameters

lpulFlags

[out] Máscara de bits de marcas que controla el tipo de cadenas devueltas. Se puede establecer la marca siguiente:

MAPI_UNICODE

Las cadenas devueltas están en formato Unicode. Si no se establece la marca de MAPI_UNICODE, las cadenas están en formato ANSI.

lpcAdrType

[out] Puntero al recuento de entradas de la matriz a la que apunta el parámetro lpppszAdrTypeArray .

lpppszAdrTypeArray

[out] Puntero a un puntero a una matriz de cadenas que identifican tipos de destinatarios.

lpcMAPIUID

[out] Puntero al recuento de entradas de la matriz a la que apunta el parámetro lpppUIDArray .

lpppUIDArray

[out] Puntero a un puntero a una matriz de punteros a estructuras MAPIUID que identifican tipos de destinatarios.

Valor devuelto

S_OK

El proveedor de transporte indicó correctamente los tipos de destinatarios que puede controlar.

Notas a los implementadores

La cola MAPI llama al método IXPLogon::AddressTypes inmediatamente después de que un proveedor de transporte vuelva de una llamada al método IXPProvider::TransportLogon para que el proveedor de transporte pueda indicar qué tipos de destinatarios controla. Para indicar esto, el proveedor de transporte debe devolver al parámetro lpppszAdrTypeArray un puntero a una matriz de punteros a cadenas, o bien devolver al parámetro lpppUIDArray un puntero a una matriz de punteros a estructuras MAPIUID o pasar valores en ambos parámetros.

Estas dos matrices se usan para diferentes procesos de identificación. MAPI y la cola MAPI usan las estructuras MAPIUID de la matriz lpppUIDArray para identificar los identificadores de entrada de destinatario que controla directamente el proveedor de transporte o el sistema de mensajería al que se conecta el proveedor de transporte. Ni MAPI ni la cola MAPI expanden las direcciones mediante el uso de identificadores de entrada contenidos en cualquiera de estas estructuras MAPIUID ; estas estructuras solo se usan para la identificación del tipo de destinatario.

La cola MAPI usa cada una de las cadenas del parámetro lpppszAdrTypeArray para una prueba de comparación cuando decide qué proveedor de transporte debe controlar qué destinatarios de un mensaje saliente. Si la propiedad PR_ADDRTYPE (PidTagAddressType) de un destinatario del mensaje coincide exactamente con una cadena que identifica uno de los tipos de dirección de mensajería que proporciona el proveedor de transporte, el proveedor puede entregar el mensaje a ese destinatario.

Si varios proveedores de transporte pueden controlar el mismo tipo de destinatario, MAPI selecciona un proveedor de transporte en función del orden de prioridad de transporte indicado en el perfil de la aplicación cliente. Para determinar qué proveedor de transporte usar, la cola MAPI examina todas las estructuras MAPIUID especificadas por el proveedor en orden de prioridad y, a continuación, todos los valores de tipo de dirección especificados por el proveedor en orden de prioridad. El primer proveedor de transporte que coincida con un destinatario determinado en este examen obtiene la primera oportunidad de controlar este destinatario. Si ese proveedor no controla el destinatario, la cola MAPI continúa el examen para buscar un proveedor de transporte para cualquier destinatario que aún no se haya controlado. El examen continúa hasta que no se encuentran más coincidencias, momento en el que se genera un informe nondelivery para cualquier destinatario que no se haya controlado.

Si el proveedor siempre admite un conjunto determinado de tipos de destinatarios, el tipo de dirección y las matrices MAPIUID que ha pasado el proveedor de transporte pueden ser estáticas. Si el proveedor de transporte construye dinámicamente estas matrices, puede asignar memoria mediante el objeto de soporte técnico que se pasó anteriormente en la llamada a TransportLogon, aunque esto no es necesario.

La memoria usada para el tipo de dirección y las matrices MAPIUID debe permanecer asignada hasta la llamada final al método IXPLogon::TransportLogoff , momento en el que el proveedor de transporte puede liberar la memoria, si es necesario. El proveedor de transporte no debe modificar el contenido de estas matrices después de que vuelva de la llamada TransportLogoff .

Un proveedor de transporte que puede controlar cualquier tipo de destinatario puede devolver NULL en el parámetro lpppszAdrTypeArray . Los proveedores de transporte para sistemas de mensajería basados en LAN que usan un servidor central para entregar mensajes salientes a varios sistemas de mensajes externos suelen hacerlo. Este tipo de proveedor de transporte debe instalarse en último lugar en el orden de prioridad de cola MAPI y MAPI de los proveedores de transporte en el perfil.

Un proveedor de transporte que no admita mensajes salientes que se le envíen en función del tipo de dirección debe devolver una sola cadena de longitud cero en lpppszAdrTypeArray. Si un proveedor de transporte no admite ningún tipo de destinatario, debe pasar NULL para la estructura MAPIUID y una cadena vacía para el tipo de dirección. Los proveedores de transporte de este tipo se usan con más frecuencia para instalar un preprocesador de mensajes.

Vea también

IXPLogon::TransportLogoff

IXPProvider::TransportLogon

MAPIUID

IXPLogon : IUnknown