Tablas de jerarquía
Hace referencia a: Outlook 2013 | Outlook 2016
Una tabla de jerarquía contiene información sobre las carpetas de un almacén de mensajes o los contenedores de un contenedor de libreta de direcciones. Cada fila de una tabla de jerarquía contiene un conjunto de columnas con información sobre una carpeta o contenedor de libreta de direcciones. Los clientes usan principalmente las tablas de jerarquía y las implementan los proveedores de almacén de mensajes para mostrar un árbol de carpetas y subcarpetas e implementadas por los proveedores de libretas de direcciones para mostrar un árbol de contenedores en la libreta de direcciones. Los contenedores que no pueden contener subcontenedores, como se indica en la ausencia de la marca de AB_SUBCONTAINERS en su propiedad PR_CONTAINER_FLAGS (PidTagContainerFlags), no implementan una tabla de jerarquía.
Se puede acceder a una tabla de jerarquía mediante una llamada a:
IMAPIContainer::GetHierarchyTable.
- O-
IMAPIProp::OpenProperty que pasa PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy) como la etiqueta de propiedad y IID_IMAPITable como identificador de interfaz.
Los contenedores y carpetas deben admitir ambas técnicas para recuperar las propiedades de la tabla. Es inaceptable que los proveedores de servicios admitan solo una manera de acceder a estas tablas porque los clientes esperan tener la opción.
Importante
No se garantiza que los proveedores de almacén respeten el conjunto de criterio de ordenación especificado para las tablas de jerarquía.
La llamada a IMAPIProp::OpenProperty implica acceder a la tabla de jerarquía abriendo su propiedad correspondiente, PR_CONTAINER_HIERARCHY. Aunque PR_CONTAINER_HIERARCHY no se puede recuperar a través del método IMAPIProp::GetProps de una carpeta o contenedor, se incluye en la matriz de etiquetas de propiedad devuelta por el método IMAPIProp::GetPropList .
PR_CONTAINER_HIERARCHY también se puede usar para incluir o excluir una tabla de jerarquía de una operación de copia. Si un cliente especifica PR_CONTAINER_HIERARCHY en el parámetro lpExcludeProps para IMAPIProp::CopyTo en una operación de copia, la nueva carpeta o contenedor no admitirá la tabla de jerarquía de la carpeta o contenedor original.
Las propiedades siguientes constituyen el conjunto de columnas necesario en una tabla de jerarquía:
Valor | |
---|---|
PR_COMMENT (PidTagComment) |
PR_DEPTH (PidTagDepth) |
PR_DISPLAY_NAME (PidTagDisplayName) |
PR_DISPLAY_TYPE (PidTagDisplayType) |
PR_ENTRYID (PidTagEntryId) |
PR_INSTANCE_KEY (PidTagInstanceKey) |
PR_OBJECT_TYPE (PidTagObjectType) |
PR_STATUS (PidTagStatus) |
PR_DISPLAY_NAME contiene el nombre del contenedor o carpeta que debe aparecer en la presentación de la jerarquía.
PR_ENTRYID es el identificador de entrada asociado a este contenedor o carpeta. Se espera que sea un identificador de entrada a largo plazo. Los clientes y MAPI pueden pasar este identificador de entrada a OpenEntry para abrir el contenedor o la carpeta y ver su contenido llamando a IMAPIContainer::GetContentsTable.
PR_DEPTH es un valor numérico que indica el nivel de sangría de este contenedor o carpeta con cero como nivel superior. Cuanto más profundo en la jerarquía reside un contenedor o carpeta, mayor es el valor de su propiedad PR_DEPTH . Los clientes usan la propiedad PR_DEPTH para mostrar una tabla de jerarquía adecuadamente para que los usuarios puedan ver claramente las relaciones primarias y secundarias. La profundidad del contenedor o carpeta siempre es relativa al contenedor o carpeta que implementa la tabla de jerarquía.
PR_OBJECT_TYPE siempre se establece en MAPI_ABCONT para las tablas de jerarquía de la libreta de direcciones y MAPI_FOLDER para las tablas de jerarquía de carpetas.
PR_DISPLAY_TYPE es un valor numérico que se relaciona con cómo se muestra un contenedor o carpeta en la tabla de jerarquía. Se usa principalmente con fines de visualización, para diferenciar visualmente entre tipos de contenedores o carpetas. Muchos proveedores de almacén de mensajes y libreta de direcciones usan iconos para los diferentes tipos de visualización. Depende del proveedor proporcionar estos iconos; MAPI no proporciona valores predeterminados.
MAPI define muchos valores para PR_DISPLAY_TYPE, algunos que son válidos para carpetas y otros que se usan con las tablas de jerarquía de contenedores de libreta de direcciones. Normalmente, el PR_DISPLAY_TYPE de una carpeta se establece en DT_FOLDER para indicar un icono de carpeta predeterminado, DT_FOLDER_LINK para indicar un icono que representa un vínculo a otra carpeta o DT_FOLDER_SPECIAL para indicar un icono específico de la aplicación. DT_FOLDER_LINK se usa con carpetas de resultados de búsqueda.
Además de estas columnas necesarias, las tablas de jerarquía de la libreta de direcciones deben incluir la propiedad PR_CONTAINER_FLAGS . PR_CONTAINER_FLAGS indica varios atributos sobre un contenedor de la jerarquía y se usa para distinguir un contenedor de otro.
Una propiedad opcional para las tablas de jerarquía de la libreta de direcciones es la propiedad PR_AB_PROVIDER_ID (PidTagAbProviderId).
Las tablas de jerarquía de almacén de mensajes incluyen estas propiedades en su conjunto de columnas necesario:
PR_FOLDER_TYPE (PidTagFolderType)
PR_SUBFOLDERS (PidTagSubfolders)
PR_CONTENT_COUNT (PidTagContentCount)
PR_CONTENT_UNREAD (PidTagContentUnreadCount)
Los proveedores de libreta de direcciones deben admitir los siguientes métodos IMAPITable en sus implementaciones de tabla de jerarquía porque son necesarios para la libreta de direcciones integrada mapi: