tables One-Off
S’applique à : Outlook 2013 | Outlook 2016
Une table unique contient des informations sur les modèles pris en charge par un fournisseur de carnets d’adresses pour la création de nouveaux destinataires. Les tables ponctuelles sont implémentées par les fournisseurs de carnets d’adresses, les conteneurs de carnets d’adresses individuels et par MAPI, et peuvent être persistantes ou temporaires.
Remarque
Ne confondez pas les modèles des tables ponctuelles avec les identificateurs de modèle ; bien que leurs objectifs soient similaires, leurs constructions de code ne sont rien de similaire. Les modèles sont utilisés pour créer des destinataires d’un type particulier, tandis que les identificateurs de modèle sont utilisés pour lier les données d’un destinataire appartenant à un fournisseur hôte avec du code pour prendre en charge un autre destinataire appartenant à un fournisseur étranger.
Les clients créent de nouveaux destinataires :
Pour ajouter à la liste des destinataires d’un message sortant.
Pour ajouter à l’un des conteneurs dans le carnet d’adresses.
Dans les deux scénarios, un fournisseur de carnet d’adresses est invité à retourner une table unique. Les fournisseurs de carnets d’adresses peuvent implémenter une seule table unique à utiliser dans les deux situations ou une table unique unique pour chaque situation.
Lorsque le destinataire est inclus dans un message sortant, MAPI appelle la méthode IABLogon ::GetOneOffTable du fournisseur de carnet d’adresses pour récupérer sa table unique. La table unique inclut des modèles qui permettent à un utilisateur d’entrer des informations entraînant la création d’un destinataire avec une adresse valide. MAPI s’inscrit pour les notifications sur cette table, la maintenant ouverte afin que les modifications puissent être reflétées à l’utilisateur. MAPI libère la table uniquement lorsque son sous-système ou carnet d’adresses status méthode IMAPIStatus ::ValidateState de l’objet est appelée.
Lorsque le destinataire est ajouté à un conteneur, MAPI effectue un appel différent, en appelant la méthode IMAPIProp ::OpenProperty du conteneur pour récupérer sa propriété PR_CREATE_TEMPLATES (PidTagCreateTemplates). L’ensemble de modèles inclus dans ce tableau unique représente les types de destinataires qui peuvent être ajoutés au conteneur. Par exemple, les serveurs de messagerie exposent souvent un conteneur pour chaque passerelle installée afin que chaque conteneur ne contienne que des adresses spécifiques à la passerelle correspondante.
MAPI fournit une table unique qui inclut ses propres modèles, ainsi que des modèles de chacun des fournisseurs de carnets d’adresses de la session. MAPI fournit un modèle générique qui peut être utilisé pour créer un destinataire pour n’importe quel type d’adresse, en supposant que l’utilisateur connaît son format. Les fournisseurs de carnets d’adresses utilisent cette table unique en appelant IMAPISupport ::GetOneOffTable. Chacun des modèles inclus dans la table ponctuelle MAPI entraîne la création de destinataires avec des adresses de destinataires valides.
Les fournisseurs de carnets d’adresses fournissent généralement un modèle pour chaque type d’adresse qu’ils prennent en charge. Toutefois, la prise en charge des modèles n’est pas requise. Les fournisseurs de carnets d’adresses qui n’autorisent pas la création de nouvelles adresses peuvent retourner MAPI_E_NO_SUPPORT lorsque MAPI appelle pour demander une table unique. Les fournisseurs de carnets d’adresses qui autorisent la création de nouvelles adresses, mais ne fournissent aucun modèle, peuvent appeler IMAPISupport ::GetOneOffTable pour utiliser les modèles répertoriés dans le tableau unique MAPI.
Les propriétés suivantes composent l’ensemble de colonnes requis dans des tables ponctuelles :
PR_ADDRTYPE (PidTagAddressType)
PR_DEPTH (PidTagDepth)
PR_DISPLAY_NAME (PidTagDisplayName)
PR_DISPLAY_TYPE (PidTagDisplayType)
PR_ENTRYID (PidTagEntryId)
PR_INSTANCE_KEY (PidTagInstanceKey)
PR_SELECTABLE (PidTagSelectable)
PR_ADDRTYPE indique le type d’adresse qui peut être associé au nouveau destinataire créé avec le modèle.
PR_DISPLAY_NAME et PR_DISPLAY_TYPE associer des données au nouveau destinataire. PR_DISPLAY_NAME contient une chaîne de caractères qui identifie le nouveau destinataire et PR_DISPLAY_TYPE contient une constante qui identifie le type d’icône à afficher avec la ligne. Les modèles pour les utilisateurs de messagerie ont leur colonne PR_DISPLAY_TYPE définie sur DT_MAILUSER ; les modèles de listes de distribution ont leur PR_DISPLAY_TYPE colonne définie sur DT_DISTLIST.
PR_ENTRYID est l’identificateur d’entrée du modèle à utiliser pour créer un destinataire. Cet identificateur d’entrée peut être transmis aux futurs appels IAddrBook ::NewEntry, IAddrBook ::OpenEntry et IABContainer ::CreateEntry . Les conteneurs définissent la colonne PR_ENTRYID de leur ligne pour le modèle utilisateur de messagerie par défaut sur PR_DEF_CREATE_MAILUSER (PidTagDefCreateMailuser) et la colonne PR_ENTRYID de leur ligne pour le modèle de liste de distribution par défaut sur PR_DEF_CREATE_DL (PidTagDefCreateDl).
PR_DEPTH est utilisé pour prendre en charge l’affichage hiérarchique des entrées dans une table unique en indiquant le niveau de retrait du modèle. Bien que les tables ponctuelles puissent être affichées sous la forme d’une liste plate ou d’un affichage hiérarchique, ce dernier est préférable et les fournisseurs de carnets d’adresses doivent le prendre en charge en définissant la colonne PR_DEPTH pour chaque ligne de manière appropriée. PR_DEPTH est de base zéro ; Les lignes dont la valeur est 0 dans leur colonne PR_DEPTH ne sont pas mises en retrait. Plus la valeur de PR_DEPTH est élevée, plus la ligne est mise en retrait. Par exemple, les lignes avec PR_DEPTH défini sur 1 sont mises en retrait d’une tabulation tandis que les lignes avec PR_DEPTH défini sur 3 sont mises en retrait trois onglets.
PR_SELECTABLE est utilisé pour indiquer si une ligne de la table représente un modèle qui peut être sélectionné et utilisé pour créer un destinataire. Bien que la plupart des lignes d’une table unique représentent des modèles, les fournisseurs peuvent inclure des lignes sans modèle. Par exemple, un fournisseur peut souhaiter organiser la table unique par type de modèle, y compris une ligne de catégorie qui apparaît dans l’affichage mais qui n’est pas utilisée pour la création du destinataire.