IMAPIContainer::GetContentsTable
Hace referencia a: Outlook 2013 | Outlook 2016
Devuelve un puntero a la tabla de contenido del contenedor.
HRESULT GetContentsTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
Parameters
ulFlags
[in] Máscara de bits de marcas que controla cómo se devuelve la tabla de contenido. Se pueden establecer las siguientes marcas:
MAPI_ASSOCIATED
La tabla de contenido asociada del contenedor debe devolverse en lugar de la tabla de contenido estándar. Esta marca solo se usa con carpetas. Los mensajes que se incluyen en la tabla de contenido asociada se crearon con la marca MAPI_ASSOCIATED establecida en la llamada al método IMAPIFolder::CreateMessage . Los clientes suelen usar la tabla de contenido asociada para recuperar formularios, vistas y otros mensajes ocultos.
ACLTABLE_FREEBUSY
Permite el acceso a los derechos frightsFreeBusySimple y frightsFreeBusyDetailed en PR_MEMBER_RIGHTS.
MAPI_DEFERRED_ERRORS
GetContentsTable 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 MAPI_UNICODE, las cadenas deben devolverse en el 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 contenido.
Valor devuelto
S_OK
La tabla de contenido 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 contenido y no puede proporcionar una tabla de contenido.
Comentarios
El método IMAPIContainer::GetContentsTable devuelve un puntero a la tabla de contenido de un contenedor. Una tabla de contenido contiene información de resumen sobre los objetos del contenedor.
Las tablas de contenido tienen conjuntos de columnas largos. Para obtener una lista completa de las columnas necesarias y opcionales en las tablas de contenido, consulte Tablas de contenido.
Es posible que algunos contenedores no tengan contenido. Estos contenedores devuelven MAPI_E_NO_SUPPORT de sus implementaciones de GetContentsTable.
Notas a los implementadores
Si admite una tabla de contenido para el contenedor, también debe hacer lo siguiente:
Admite llamadas al método IMAPIProp::OpenProperty del contenedor para abrir la propiedad PR_CONTAINER_CONTENTS (PidTagContainerContents).
Devolver PR_CONTAINER_CONTENTS en respuesta a una llamada al contenedor
La implementación de este método por parte de un proveedor de transporte remoto debe devolver un puntero a una interfaz IMAPITable : IUnknown en el parámetro ppTable pasado al método GetContentsTable . Si el proveedor de transporte tiene una tabla de contenido existente, basta con devolverle un puntero. Si no es así, este método debe crear un nuevo objeto IMAPITable : IUnknown , rellenar la tabla con encabezados de mensaje (si hay alguno disponible) y devolver un puntero a la nueva tabla. El método ITableData::HrGetView es útil para generar un valor devuelto y almacenar el puntero de tabla en el parámetro ppTable . La tabla de contenido debe admitir al menos las siguientes columnas de propiedad:
PR_ENTRYID (PidTagEntryID)
PR_SENDER_NAME (PidTagSenderName)
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
PR_DISPLAY_TO (PidTagDisplayTo)
PR_SUBJECT (PidTagSubject)
PR_MESSAGE_CLASS (PidTagMessageClass)
PR_MESSAGE_FLAGS (PidTagMessageFlags)
PR_MESSAGE_SIZE (PidTagMessageSize)
PR_PRIORITY (PidTagPriority)
PR_IMPORTANCE (PidTagImportance)
PR_SENSITIVITY (PidTagSensitivity)
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
PR_MSG_STATUS (PidTagMessageStatus)
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
PR_HASATTACH (PidTagHasAttachments)
PR_OBJECT_TYPE (PidTagObjectType)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
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 una cadena o a la versión truncada de esa cadena.
Referencia de MFCMAPI
Para obtener un ejemplo de código de MFCMAPI, vea la siguiente tabla.
Archivo | Función | Comment |
---|---|---|
ContentsTableDialog.cpp |
CContentsTableDlg::CContentsTableDlg |
La clase CContentsTableDlg usa GetContentsTable para obtener las entradas de una tabla de contenido. |