Compartir a través de


Tablas de contenido

Hace referencia a: Outlook 2013 | Outlook 2016

Una tabla de contenido contiene información sobre los objetos de un contenedor MAPI. Los proveedores de libreta de direcciones implementan tablas de contenido para cada uno de sus contenedores, y los proveedores de almacenamiento de mensajes y transporte remoto implementan tablas de contenido para sus carpetas. La tabla de contenido de un contenedor de libreta de direcciones muestra información sobre sus objetos de lista de distribución y usuario de mensajería, mientras que la tabla de contenido de una carpeta muestra información sobre sus mensajes. Las tablas de contenido las usan principalmente las aplicaciones cliente.

Hay dos tipos de tablas de contenido de carpeta:

  • Las tablas de contenido estándar contienen mensajes estándar, mensajes que se pueden transmitir y hacer visibles a un usuario.

  • Las tablas de contenido asociadas contienen información oculta y no transmitible creada por un cliente para un propósito específico, como almacenar una representación alternativa de un mensaje estándar. La información asociada se crea pasando la marca de MAPI_ASSOCIATED a la llamada IMAPIFolder::CreateMessage .

Las tablas de contenido de la mayoría de los contenedores de libreta de direcciones y muchas carpetas no admiten la ordenación por categorías.

Se puede acceder a una tabla de contenido mediante una llamada a:

Los proveedores de almacén de mensajes y libreta de direcciones deben admitir ambas técnicas para recuperar las propiedades de la tabla. No es aceptable que los proveedores admitan solo una manera de acceder a estas tablas porque los clientes esperan tener la opción.

GetContentsTable acepta como entrada varias marcas que especifican preferencias. Cuando se establece, la marca de MAPI_ASSOCIATED recupera una tabla de contenido asociada. Dado que algunas carpetas no admiten contenido asociado y no hay ninguna manera de que los clientes determinen esto con antelación, GetContentsTable a veces devuelve el error MAPI_E_NO_SUPPORT cuando se solicita una tabla de contenido asociada.

La marca MAPI_DEFERRED_ERRORS indica al implementador de la tabla que no es necesario notificar ningún error durante la llamada hasta algún momento posterior.

La llamada a IMAPIProp::OpenProperty implica acceder a una tabla de contenido abriendo su propiedad correspondiente, PR_CONTAINER_CONTENTS para tablas de contenido de libreta de direcciones y tablas de contenido de carpetas estándar y PR_FOLDER_ASSOCIATED_CONTENTS para las tablas de contenido asociadas. Aunque ninguna de estas propiedades o estas se pueden recuperar a través del método IMAPIProp::GetProps de una carpeta o contenedor, se incluyen en la matriz de etiquetas de propiedad devuelta por el método IMAPIProp::GetPropList .

PR_CONTAINER_CONTENTS también se puede usar para incluir o excluir una tabla de contenido de una operación de copia. Si un cliente especifica PR_CONTAINER_CONTENTS en el parámetro lpExcludeProps para IMAPIProp::CopyTo en una operación de copia, la nueva carpeta o contenedor no admitirá la tabla de contenido de la carpeta o contenedor original.

Las tablas de contenido de contenedores y carpetas de la libreta de direcciones tienen una larga lista de columnas necesarias: columnas que los clientes pueden esperar que estén disponibles después de recuperar la tabla de GetContentsTable o OpenProperty. Los proveedores pueden agregar a este conjunto necesario si es necesario y los clientes, a través del método SetColumns , también pueden solicitar modificaciones.

Las columnas necesarias para cada uno de los tipos de tablas de contenido son:

Columna necesaria Tipo de tabla de contenido
PR_ADDRTYPE (PidTagAddressType)
Tablas de contenedor de libreta de direcciones
PR_DISPLAY_NAME (PidTagDisplayName)
Tablas de contenedor de libreta de direcciones
PR_DISPLAY_CC (PidTagDisplayCc)
Tablas de carpetas del almacén de mensajes
PR_DISPLAY_TO (PidTagDisplayTo)
Todas las tablas de contenido de carpeta
PR_DISPLAY_TYPE (PidTagDisplayType)
Tablas de contenedor de libreta de direcciones
PR_ENTRYID (PidTagEntryId)
Todas las tablas de contenido
PR_HASATTACH (PidTagHasAttachments)
Todas las tablas de contenido de carpeta
PR_INSTANCE_KEY (PidTagInstanceKey)
Todas las tablas de contenido
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime)
Tablas de carpetas del almacén de mensajes
PR_MAPPING_SIGNATURE (PidTagMappingSignature)
Tablas de carpetas del almacén de mensajes
PR_MESSAGE_CLASS (PidTagMessageClass)
Todas las tablas de contenido de carpeta
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
Tablas de carpetas de transporte remoto
PR_MESSAGE_FLAGS (PidTagMessageFlags)
Todas las tablas de contenido de carpeta
PR_MESSAGE_SIZE (PidTagMessageSize)
Todas las tablas de contenido de carpeta
PR_MSG_STATUS (PidTagMessageStatus)
Todas las tablas de contenido de carpeta
PR_OBJECT_TYPE (PidTagObjectType)
Todas las tablas de contenido
PR_PARENT_ENTRYID (PidTagParentEntryId)
Tablas de carpetas del almacén de mensajes
PR_RECORD_KEY (PidTagRecordKey)
Tablas de contenedores y carpetas del almacén de mensajes de la libreta de direcciones
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
Tablas de carpetas de transporte remoto
PR_STORE_ENTRYID (PidTagStoreEntryId)
Tablas de carpetas del almacén de mensajes
PR_STORE_RECORD_KEY (PidTagStoreRecordKey)
Tablas de carpetas del almacén de mensajes

El identificador de entrada disponible con cada fila puede ser un identificador de entrada a corto o largo plazo, en función de la implementación de la tabla. Los identificadores de entrada a corto plazo se usan normalmente en situaciones en las que el rendimiento es un problema. Se puede usar cualquier tipo de identificador de entrada para acceder al objeto correspondiente.

Las tablas de contenido también tienen un conjunto de columnas que son opcionales pero que suelen incluir los proveedores de servicios en sus implementaciones. Estas columnas opcionales son:

Columna opcional Tipo de tabla de contenido
PR_CLIENT_SUBMIT_TIME (PidTagClientSubmitTime)
Tablas de carpetas del almacén de mensajes
PR_CONTENT_COUNT (PidTagContentCount)
Tablas de contenido de carpeta estándar
PR_CONTENT_UNREAD (PidTagContentUnreadCount)
Tablas de contenido de carpeta estándar
PR_CONVERSATION_INDEX (PidTagConversationIndex)
Tablas de carpetas del almacén de mensajes
PR_EMAIL_ADDRESS (PidTagEmailAddress)
Tablas de contenedor de libreta de direcciones
PR_IMPORTANCE (PidTagImportance)
Todas las tablas de contenido de carpeta
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
Todas las tablas de contenido de carpeta
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
Todas las tablas de contenido de carpeta
PR_PRIORITY (PidTagPriority)
Todas las tablas de contenido de carpeta
PR_SEARCH_KEY (PidTagSearchKey)
Tablas de contenedor de libreta de direcciones
PR_SEND_RICH_INFO (PidTagSendRichInfo)
Tablas de contenedor de libreta de direcciones
PR_SENDER_NAME (PidTagSenderName)
Todas las tablas de contenido de carpeta
PR_SENSITIVITY (PidTagSensitivity)
Todas las tablas de contenido de carpeta
PR_SUBJECT (PidTagSubject)
Todas las tablas de contenido de carpeta
PR_TRANSMITABLE_DISPLAY_NAME (PidTagTransmittableDisplayName)
Tablas de contenedor de libreta de direcciones

Los proveedores de almacén de mensajes también deben incluir PR_PARENT_DISPLAY (PidTagParentDisplay) solo para las tablas de contenido de carpetas de resultados de búsqueda.

Las propiedades con nombre solo se pueden agregar al conjunto de columnas de una tabla de contenido de carpeta si todos los mensajes de la carpeta tienen la misma firma de asignación, es decir, la misma asignación de nombres de propiedad a identificadores de propiedad. Las tablas de contenido de carpeta deben admitir la adición de propiedades específicas de la clase de mensaje al conjunto de columnas, si admiten la creación de mensajes arbitrarios en la carpeta.

Los clientes pueden guardar el criterio de ordenación predeterminado de una tabla de contenido de carpeta llamando a su método IMAPIFolder::SaveContentsSort . Si se especifica la marca de RECURSIVE_SORT en la llamada, se puede realizar el criterio de ordenación para aplicarlo a todas las subcarpetas de la carpeta.

Vea también

Tablas MAPI