IMAPIContainer::GetHierarchyTable
Hace referencia a: Outlook 2013 | Outlook 2016
Devuelve un puntero a la tabla de jerarquía del contenedor.
HRESULT GetHierarchyTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
Parameters
ulFlags
[in] Máscara de bits de marcas que controla cómo se devuelve la información en la tabla. Se pueden establecer las siguientes marcas:
CONVENIENT_DEPTH
Rellena la tabla de jerarquía con contenedores de varios niveles. Si no se establece CONVENIENT_DEPTH, la tabla de jerarquía solo contiene los contenedores secundarios inmediatos del contenedor.
MAPI_DEFERRED_ERRORS
GetHierarchyTable puede devolverse correctamente, posiblemente antes de que la tabla esté disponible para el autor de la llamada. Si la tabla no está disponible, realizar una llamada a la tabla posterior puede generar un error.
MAPI_UNICODE
Solicita que las columnas que contienen datos de cadena se devuelvan en formato Unicode. Si no se establece la marca de MAPI_UNICODE, las cadenas deben devolverse en formato ANSI.
SHOW_SOFT_DELETES
Muestra los elementos que están marcados actualmente como eliminados temporalmente, es decir, están en la fase de tiempo de retención de elementos eliminados.
lppTable
[out] Puntero a un puntero a la tabla de jerarquía.
Valor devuelto
S_OK
La tabla de jerarquía se recuperó correctamente.
MAPI_E_BAD_CHARWIDTH
Se estableció la marca de MAPI_UNICODE y la implementación no admite Unicode, o MAPI_UNICODE no se estableció y la implementación solo admite Unicode.
MAPI_E_NO_SUPPORT
El contenedor no tiene contenedores secundarios y no puede proporcionar una tabla de jerarquía.
Comentarios
El método IMAPIContainer::GetHierarchyTable devuelve un puntero a la tabla de jerarquía de un contenedor. Una tabla de jerarquía contiene información de resumen sobre los contenedores secundarios del contenedor. Las tablas de jerarquía de carpetas contienen información sobre subcarpetas; Las tablas de jerarquía de libretas de direcciones contienen información sobre contenedores de libreta de direcciones secundarios y listas de distribución.
Es posible que algunos contenedores no tengan contenedores secundarios. Estos contenedores devuelven MAPI_E_NO_SUPPORT de sus implementaciones de GetHierarchyTable.
Cuando se establece la marca CONVENIENT_DEPTH, cada fila de la tabla de jerarquía también incluye la propiedad PR_DEPTH (PidTagDepth) como columna. PR_DEPTH indica el nivel de cada contenedor en relación con el contenedor que implementa la tabla. Los contenedores secundarios inmediatos del contenedor de implementación están en la profundidad cero, los contenedores secundarios en los contenedores de profundidad cero están en la profundidad uno, etc. Los valores de PR_DEPTH aumentan secuencialmente a medida que se profundiza la jerarquía de niveles.
Para obtener una lista completa de las columnas necesarias y opcionales de las tablas de jerarquía, consulte Tablas de jerarquía.
Notas a los implementadores
Si admite una tabla de jerarquía para el contenedor, también debe hacer lo siguiente:
Admite una llamada al método IMAPIProp::OpenProperty del contenedor para abrir la propiedad PR_CONTAINER_HIERARCHY (PidTagContainerHierarchy).
Devuelve PR_CONTAINER_HIERARCHY de una llamada a los métodos IMAPIProp::GetPropList o IMAPIProp::GetProps del contenedor.
Notas para los llamadores
Las columnas de tabla de contenido binario y de cadena se pueden truncar. Normalmente, los proveedores devuelven 255 caracteres. Dado que no puede saber de antemano si una tabla incluye columnas truncadas, suponga que una columna se trunca si la longitud de la columna es de 255 o 510 bytes. Siempre puede recuperar el valor completo de una columna truncada, si es necesario, directamente desde el objeto mediante su identificador de entrada para abrirlo y, a continuación, llamar al método IMAPIProp::GetProps .
En función de la implementación del proveedor, las restricciones y las operaciones de ordenación se pueden aplicar a toda la cadena o a la versión truncada de esa cadena. Además, no se garantiza que los proveedores de almacén respeten el conjunto de ordenación SSortOrderSet especificado para las tablas de jerarquía.
Referencia de MFCMAPI
Para obtener un ejemplo de código de MFCMAPI, vea la siguiente tabla.
Archivo | Función | Comment |
---|---|---|
HierarchyTableTreeCtrl.cpp |
CHierarchyTableTreeCtrl::GetHierarchyTable |
La clase CHierarchyTableTreeCtrl usa GetHierarchyTable para obtener tablas de jerarquía que se mostrarán en un control de vista de árbol. |