IMAPIContainer::GetContentsTable
S’applique à : Outlook 2013 | Outlook 2016
Retourne un pointeur vers la table de contenu du conteneur.
HRESULT GetContentsTable(
ULONG ulFlags,
LPMAPITABLE FAR * lppTable
);
Paramètres
ulFlags
[in] Masque de bits d’indicateurs qui contrôle la façon dont la table de contenu est retournée. Les indicateurs suivants peuvent être définis :
MAPI_ASSOCIATED
La table de contenu associée du conteneur doit être retournée à la place de la table de contenu standard. Cet indicateur est utilisé uniquement avec les dossiers. Les messages inclus dans la table de contenu associée ont été créés avec l’indicateur MAPI_ASSOCIATED défini dans l’appel à la méthode IMAPIFolder ::CreateMessage . Les clients utilisent généralement la table de contenu associée pour récupérer des formulaires, des vues et d’autres messages masqués.
ACLTABLE_FREEBUSY
Active l’accès aux droits frightsFreeBusySimple et frightsFreeBusyDetailed dans PR_MEMBER_RIGHTS.
MAPI_DEFERRED_ERRORS
GetContentsTable peut retourner avec succès, éventuellement avant que la table ne soit mise à la disposition de l’appelant. Si la table n’est pas disponible, l’appel de table suivant peut générer une erreur.
MAPI_UNICODE
Demande que les colonnes qui contiennent des données de chaîne soient retournées au format Unicode. Si l’indicateur MAPI_UNICODE n’est pas défini, les chaînes doivent être retournées au format ANSI.
SHOW_SOFT_DELETES
Affiche les éléments actuellement marqués comme supprimés de manière réversible, c’est-à-dire qu’ils sont dans la phase de temps de conservation des éléments supprimés.
lppTable
[out] Pointeur vers un pointeur vers la table de contenu.
Valeur renvoyée
S_OK
La table de contenu a été récupérée avec succès.
MAPI_E_BAD_CHARWIDTH
Soit l’indicateur MAPI_UNICODE a été défini et l’implémentation ne prend pas en charge Unicode, soit MAPI_UNICODE n’a pas été défini et l’implémentation prend uniquement en charge Unicode.
MAPI_E_NO_SUPPORT
Le conteneur n’a pas de contenu et ne peut pas fournir de table de contenu.
Remarques
La méthode IMAPIContainer ::GetContentsTable retourne un pointeur vers la table du contenu d’un conteneur. Une table de contenu contient des informations récapitulatives sur les objets du conteneur.
Les tables de contenu ont des ensembles de colonnes longs. Pour obtenir la liste complète des colonnes obligatoires et facultatives dans les tables de contenu, consultez Tables de contenu.
Il est possible que certains conteneurs n’aient pas de contenu. Ces conteneurs retournent MAPI_E_NO_SUPPORT à partir de leurs implémentations de GetContentsTable.
Remarques pour les responsables de l’implémentation
Si vous prenez en charge une table de contenu pour votre conteneur, vous devez également effectuer les opérations suivantes :
Prise en charge des appels à la méthode IMAPIProp ::OpenProperty du conteneur pour ouvrir la propriété PR_CONTAINER_CONTENTS (PidTagContainerContents).
Retourner PR_CONTAINER_CONTENTS en réponse à un appel au du conteneur
L’implémentation de cette méthode par un fournisseur de transport distant doit retourner un pointeur vers une interface IMAPITable : IUnknown dans le paramètre ppTable transmis à la méthode GetContentsTable . Si votre fournisseur de transport dispose d’une table de contenu existante, il suffit de lui retourner un pointeur. Si ce n’est pas le cas, cette méthode doit créer un objet IMAPITable : IUnknown , remplir la table avec des en-têtes de message (le cas échéant) et retourner un pointeur vers la nouvelle table. La méthode ITableData ::HrGetView est utile pour générer une valeur de retour et stocker le pointeur de table dans le paramètre ppTable . La table de contenu doit prendre en charge au moins les colonnes de propriété suivantes :
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)
Remarques pour les appelants
Les colonnes de table string et binary contents peuvent être tronquées. En règle générale, les fournisseurs retournent 255 caractères. Étant donné que vous ne pouvez pas savoir à l’avance si une table inclut des colonnes tronquées, supposons qu’une colonne soit tronquée si la longueur de la colonne est de 255 ou 510 octets. Vous pouvez toujours récupérer la valeur complète d’une colonne tronquée, si nécessaire, directement à partir de l’objet en utilisant son identificateur d’entrée pour l’ouvrir, puis en appelant la méthode IMAPIProp ::GetProps .
Selon l’implémentation du fournisseur, les restrictions et les opérations de tri peuvent s’appliquer à l’ensemble d’une chaîne ou à la version tronquée de cette chaîne.
Référence MFCMAPI
Pour voir un exemple de code MFCMAPI, consultez le tableau suivant.
Fichier | Fonction | Commentaire |
---|---|---|
ContentsTableDialog.cpp |
CContentsTableDlg ::CContentsTableDlg |
La classe CContentsTableDlg utilise GetContentsTable pour obtenir les entrées d’une table de contenu. |