tablas de One-Off
Hace referencia a: Outlook 2013 | Outlook 2016
Una tabla única contiene información sobre las plantillas que admite un proveedor de libreta de direcciones para crear nuevos destinatarios. Los proveedores de libretas de direcciones, los contenedores de libreta de direcciones individuales y MAPI implementan tablas únicas y pueden ser persistentes o temporales.
Nota:
No confunda las plantillas de tablas únicas con identificadores de plantilla; mientras que sus propósitos son similares, sus construcciones de código no son nada iguales. Las plantillas se usan para crear destinatarios de un tipo determinado, mientras que los identificadores de plantilla se usan para enlazar los datos de un destinatario que pertenece a un proveedor host con código para admitir a otro destinatario que pertenece a un proveedor externo.
Los clientes crean nuevos destinatarios:
Para agregar a la lista de destinatarios de un mensaje saliente.
Para agregar a uno de los contenedores de la libreta de direcciones.
En ambos escenarios, se pide a un proveedor de libreta de direcciones que devuelva una tabla única. Los proveedores de libretas de direcciones pueden implementar una sola tabla única que se usará en ambas situaciones o una tabla única única para cada situación.
Cuando el destinatario se incluirá con un mensaje saliente, MAPI llama al método IABLogon::GetOneOffTable del proveedor de libretas de direcciones para recuperar su tabla única. La tabla única incluye plantillas que permiten a un usuario escribir información que da lugar a la creación de un destinatario con una dirección válida. MAPI registra las notificaciones de esta tabla, manteniéndola abierta para que los cambios se puedan reflejar en el usuario. MAPI libera la tabla solo cuando se llama al método IMAPIStatus::ValidateState de su subsistema o del objeto de estado de la libreta de direcciones.
Cuando el destinatario se agregará a un contenedor, MAPI realiza una llamada diferente, invocando el método IMAPIProp::OpenProperty del contenedor para recuperar su propiedad PR_CREATE_TEMPLATES (PidTagCreateTemplates). El conjunto de plantillas incluidas en esta tabla única representa los tipos de destinatarios que se pueden agregar al contenedor. Por ejemplo, los servidores de correo suelen exponer un contenedor para cada puerta de enlace instalada para que cada contenedor solo contenga direcciones específicas de la puerta de enlace correspondiente.
MAPI proporciona una tabla única que incluye sus propias plantillas, así como plantillas de cada uno de los proveedores de libreta de direcciones de la sesión. MAPI proporciona una plantilla genérica que se puede usar para crear un nuevo destinatario para cualquier tipo de dirección, suponiendo que el usuario conoce su formato. Los proveedores de libreta de direcciones usan esta tabla única llamando a IMAPISupport::GetOneOffTable. Cada una de las plantillas incluidas en la tabla de un solo acceso MAPI da como resultado la creación de destinatarios con direcciones de destinatario válidas.
Los proveedores de libreta de direcciones suelen proporcionar una plantilla para cada tipo de dirección que admiten. Sin embargo, no se requiere compatibilidad con plantillas. Los proveedores de libreta de direcciones que no permiten la creación de nuevas direcciones pueden devolver MAPI_E_NO_SUPPORT cuando MAPI llama a para solicitar una tabla única. Los proveedores de libreta de direcciones que permiten la creación de nuevas direcciones pero no proporcionan ninguna plantilla pueden llamar a IMAPISupport::GetOneOffTable para usar las plantillas enumeradas en la tabla de uso único MAPI.
Las propiedades siguientes constituyen el conjunto de columnas necesario en tablas únicas:
PR_ADDRTYPE (PidTagAddressType)
PR_DEPTH (PidTagDepth)
PR_DISPLAY_NAME (PidTagDisplayName)
PR_DISPLAY_TYPE (PidTagDisplayType)
PR_ENTRYID (PidTagEntryId)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_SELECTABLE (PidTagSelectable)
PR_ADDRTYPE indica el tipo de dirección que se puede asociar al nuevo destinatario creado con la plantilla.
PR_DISPLAY_NAME y PR_DISPLAY_TYPE asociar datos con el nuevo destinatario. PR_DISPLAY_NAME contiene una cadena de caracteres que identifica el nuevo destinatario y PR_DISPLAY_TYPE contiene una constante que identifica el tipo de icono que se va a mostrar con la fila. Las plantillas para los usuarios de mensajería tienen su columna de PR_DISPLAY_TYPE establecida en DT_MAILUSER; Las plantillas para las listas de distribución tienen su columna de PR_DISPLAY_TYPE establecida en DT_DISTLIST.
PR_ENTRYID es el identificador de entrada de la plantilla que se va a usar para crear un nuevo destinatario. Este identificador de entrada se puede pasar a futuras llamadas IAddrBook::NewEntry, IAddrBook::OpenEntry e IABContainer::CreateEntry . Los contenedores establecen la columna PR_ENTRYID de su fila para la plantilla de usuario de mensajería predeterminada en PR_DEF_CREATE_MAILUSER (PidTagDefCreateMailuser) y la columna PR_ENTRYID de su fila para que la plantilla de lista de distribución predeterminada PR_DEF_CREATE_DL (PidTagDefCreateDl).
PR_DEPTH se usa para admitir la visualización jerárquica de las entradas de una tabla única indicando el nivel de sangría de la plantilla. Aunque las tablas únicas se pueden mostrar como una lista plana o como una presentación jerárquica, esta última es preferible y los proveedores de libreta de direcciones deben admitirla estableciendo la columna PR_DEPTH para cada fila correctamente. PR_DEPTH es de base cero; Las filas con un valor de 0 en su columna de PR_DEPTH no tienen sangría. Cuanto mayor sea el valor de PR_DEPTH, más se aplicará sangría a la fila. Por ejemplo, las filas con PR_DEPTH establecidas en 1 tienen sangría en una pestaña, mientras que las filas con PR_DEPTH establecidas en 3 tienen tres pestañas con sangría.
PR_SELECTABLE se usa para indicar si una fila de la tabla representa una plantilla que se puede seleccionar y usar para crear un nuevo destinatario. Aunque la mayoría de las filas de una tabla única representan plantillas, los proveedores pueden incluir filas que no sean de plantilla. Por ejemplo, es posible que un proveedor quiera organizar la tabla única por tipo de plantilla, incluida una fila de categoría que aparece en la pantalla pero que no se usa para la creación de destinatarios.