Partager via


Tables de contenu

S’applique à : Outlook 2013 | Outlook 2016

Une table de contenu contient des informations sur les objets d’un conteneur MAPI. Les fournisseurs de carnets d’adresses implémentent des tables de contenu pour chacun de leurs conteneurs, et les fournisseurs de magasins de messages et de transport distant implémentent des tables de contenu pour leurs dossiers. La table des matières d’un conteneur de carnet d’adresses répertorie des informations sur ses objets d’utilisateur de messagerie et de liste de distribution, tandis que la table des matières d’un dossier répertorie des informations sur ses messages. Les tables de contenu sont principalement utilisées par les applications clientes.

Il existe deux types de tables de contenu de dossier :

  • Les tables de contenu standard contiennent des messages standard, c’est-à-dire des messages qui peuvent être transmis et rendus visibles par un utilisateur.

  • Les tables de contenu associées contiennent des informations masquées et non transmettables créées par un client dans un but spécifique, par exemple pour stocker une autre représentation d’un message standard. Les informations associées sont créées en passant l’indicateur MAPI_ASSOCIATED à l’appel IMAPIFolder ::CreateMessage .

Les tables de contenu de la plupart des conteneurs de carnets d’adresses et de nombreux dossiers ne prennent pas en charge le tri par catégorie.

Une table de contenu est accessible en appelant :

Les fournisseurs de magasins de messages et de carnets d’adresses doivent prendre en charge les deux techniques de récupération des propriétés de table. Il est inacceptable que les fournisseurs ne prennent en charge qu’une seule façon d’accéder à ces tables, car les clients s’attendent à avoir le choix.

GetContentsTable accepte comme entrée plusieurs indicateurs qui spécifient des préférences. Lorsqu’il est défini, l’indicateur MAPI_ASSOCIATED récupère une table de contenu associée. Étant donné que certains dossiers ne prennent pas en charge le contenu associé et qu’il n’existe aucun moyen pour les clients de le déterminer à l’avance, GetContentsTable retourne parfois l’erreur MAPI_E_NO_SUPPORT lorsqu’une table de contenu associée est demandée.

L’indicateur MAPI_DEFERRED_ERRORS indique à l’implémenteur de la table que les erreurs rencontrées pendant l’appel n’ont pas besoin d’être signalées avant un certain temps.

L’appel à IMAPIProp ::OpenProperty implique l’accès à une table de contenu en ouvrant sa propriété correspondante, PR_CONTAINER_CONTENTS pour les tables de contenu du carnet d’adresses et les tables de contenu de dossier standard, et PR_FOLDER_ASSOCIATED_CONTENTS pour les tables de contenu associées. Bien qu’aucune de ces propriétés ne puisse être récupérée par le biais de la méthode IMAPIProp ::GetProps d’un dossier ou d’un conteneur, elles sont incluses dans le tableau de balises de propriété retourné par la méthode IMAPIProp ::GetPropList .

PR_CONTAINER_CONTENTS peuvent également être utilisés pour inclure ou exclure une table de contenu d’une opération de copie. Si un client spécifie PR_CONTAINER_CONTENTS dans le paramètre lpExcludeProps pour IMAPIProp ::CopyTo dans une opération de copie, le nouveau dossier ou conteneur ne prend pas en charge la table du contenu du dossier ou conteneur d’origine.

Les tables de contenu de conteneur et de dossier de carnet d’adresses ont une longue liste de colonnes requises, colonnes que les clients peuvent s’attendre à être disponibles après avoir récupéré la table à partir de GetContentsTable ou OpenProperty. Les fournisseurs peuvent ajouter à cet ensemble requis si nécessaire et les clients, par le biais de la méthode SetColumns , peuvent également demander des modifications.

Les colonnes requises pour chacun des types de tables de contenu sont les suivantes :

Colonne obligatoire Type de table des matières
PR_ADDRTYPE (PidTagAddressType)
Tables de conteneurs de carnet d’adresses
PR_DISPLAY_NAME (PidTagDisplayName)
Tables de conteneurs de carnet d’adresses
PR_DISPLAY_CC (PidTagDisplayCc)
Tables de dossiers de la banque de messages
PR_DISPLAY_TO (PidTagDisplayTo)
Tables de contenu de tous les dossiers
PR_DISPLAY_TYPE (PidTagDisplayType)
Tables de conteneurs de carnet d’adresses
PR_ENTRYID (PidTagEntryId)
Tous les tableaux de contenu
PR_HASATTACH (PidTagHasAttachments)
Tables de contenu de tous les dossiers
PR_INSTANCE_KEY (PidTagInstanceKey)
Tous les tableaux de contenu
PR_LAST_MODIFICATION_TIME (PidTagLastModificationTime)
Tables de dossiers de la banque de messages
PR_MAPPING_SIGNATURE (PidTagMappingSignature)
Tables de dossiers de la banque de messages
PR_MESSAGE_CLASS (PidTagMessageClass)
Tables de contenu de tous les dossiers
PR_MESSAGE_DOWNLOAD_TIME (PidTagMessageDownloadTime)
Tables de dossiers de transport distants
PR_MESSAGE_FLAGS (PidTagMessageFlags)
Tables de contenu de tous les dossiers
PR_MESSAGE_SIZE (PidTagMessageSize)
Tables de contenu de tous les dossiers
PR_MSG_STATUS (PidTagMessageStatus)
Tables de contenu de tous les dossiers
PR_OBJECT_TYPE (PidTagObjectType)
Tous les tableaux de contenu
PR_PARENT_ENTRYID (PidTagParentEntryId)
Tables de dossiers de la banque de messages
PR_RECORD_KEY (PidTagRecordKey)
Conteneur de carnet d’adresses et tables de dossiers de la banque de messages
PR_SENT_REPRESENTING_NAME (PidTagSentRepresentingName)
Tables de dossiers de transport distants
PR_STORE_ENTRYID (PidTagStoreEntryId)
Tables de dossiers de la banque de messages
PR_STORE_RECORD_KEY (PidTagStoreRecordKey)
Tables de dossiers de la banque de messages

L’identificateur d’entrée disponible avec chaque ligne peut être un identificateur d’entrée à court terme ou à long terme, en fonction de l’implémentation de la table. Les identificateurs d’entrée à court terme sont généralement utilisés dans les situations où les performances sont un problème. L’un ou l’autre type d’identificateur d’entrée peut être utilisé pour accéder à l’objet correspondant.

Les tables de contenu ont également un ensemble de colonnes facultatives, mais généralement incluses par les fournisseurs de services dans leurs implémentations. Ces colonnes facultatives sont les suivantes :

Colonne facultative Type de table des matières
PR_CLIENT_SUBMIT_TIME (PidTagClientSubmitTime)
Tables de dossiers de la banque de messages
PR_CONTENT_COUNT (PidTagContentCount)
Tables de contenu de dossiers standard
PR_CONTENT_UNREAD (PidTagContentUnreadCount)
Tables de contenu de dossiers standard
PR_CONVERSATION_INDEX (PidTagConversationIndex)
Tables de dossiers de la banque de messages
PR_EMAIL_ADDRESS (PidTagEmailAddress)
Tables de conteneurs de carnet d’adresses
PR_IMPORTANCE (PidTagImportance)
Tables de contenu de tous les dossiers
PR_MESSAGE_DELIVERY_TIME (PidTagMessageDeliveryTime)
Tables de contenu de tous les dossiers
PR_NORMALIZED_SUBJECT (PidTagNormalizedSubject)
Tables de contenu de tous les dossiers
PR_PRIORITY (PidTagPriority)
Tables de contenu de tous les dossiers
PR_SEARCH_KEY (PidTagSearchKey)
Tables de conteneurs de carnet d’adresses
PR_SEND_RICH_INFO (PidTagSendRichInfo)
Tables de conteneurs de carnet d’adresses
PR_SENDER_NAME (PidTagSenderName)
Tables de contenu de tous les dossiers
PR_SENSITIVITY (PidTagSensitivity)
Tables de contenu de tous les dossiers
PR_SUBJECT (PidTagSubject)
Tables de contenu de tous les dossiers
PR_TRANSMITABLE_DISPLAY_NAME (PidTagTransmittableDisplayName)
Tables de conteneurs de carnet d’adresses

Les fournisseurs de magasins de messages doivent également inclure PR_PARENT_DISPLAY (PidTagParentDisplay) pour les tables de contenu des dossiers de résultats de recherche uniquement.

Les propriétés nommées peuvent être ajoutées à l’ensemble de colonnes d’une table de contenu de dossier uniquement si tous les messages du dossier ont la même signature de mappage, c’est-à-dire le même mappage des noms de propriétés aux identificateurs de propriété. Les tables de contenu de dossier doivent prendre en charge l’ajout de propriétés spécifiques à la classe de message à l’ensemble de colonnes, si elles prennent en charge la création de messages arbitraires dans le dossier.

Les clients peuvent enregistrer l’ordre de tri par défaut pour une table de contenu de dossier en appelant sa méthode IMAPIFolder ::SaveContentsSort . Si l’indicateur RECURSIVE_SORT est spécifié sur l’appel, l’ordre de tri peut être appliqué à tous les sous-dossiers du dossier.

Voir aussi

MAPI Tables