Partager via


Affichage des notifications de table

S’applique à : Outlook 2013 | Outlook 2016

Les notifications sur une table d’affichage sont envoyées par le fournisseur de services responsable de la création de la table d’affichage à MAPI. MAPI s’inscrit pour ces notifications en appelant la méthode IMAPITable ::Advise d’une table d’affichage et en spécifiant l’événement de table modifié.

Comme pour toutes les notifications de table, les notifications de table d’affichage incluent une structure TABLE_NOTIFICATION . Seuls les membres ulTableEvent et propIndex de cette structure sont significatifs ; les autres membres sont ignorés. Le membre ulTableEvent est défini sur TABLE_ROW_MODIFIED et le membre propIndex est défini sur la valeur de la colonne PR_CONTROL_ID (PidTagControlId) dans la ligne correspondante. MAPI répond à la notification en appelant la méthode IMAPIProp ::GetProps pour la propriété affichée dans le contrôle et en affichant la nouvelle valeur.

Les notifications d’affichage de table peuvent être utilisées par un fournisseur de services pour coordonner les modifications apportées aux contrôles associés dans la boîte de dialogue. Par exemple, si l’implémentation de l’interface de propriété doit actualiser un ou plusieurs champs de la boîte de dialogue, peut-être en réponse à un autre contrôle qui a défini l’indicateur DT_SET_IMMEDIATE dans sa propriété PR_CONTROL_FLAGS (PidTagControlFlags), elle peut générer une notification de table d’affichage. Une notification de table d’affichage peut alerter l’implémentation de l’interface de propriété que la valeur d’un ou plusieurs contrôles doit être relue en raison d’une modification apportée ou d’un événement externe.

Un fournisseur de services peut émettre des notifications d’affichage de table en :

  • Appel de ITableData ::HrNotify, si la table d’affichage a été générée avec un objet de données de table.

    • Ou-
  • À l’aide de son propre code, si la table d’affichage a été générée avec l’implémentation IMAPITable du fournisseur.

MAPI répond à l’affichage des notifications de table si nécessaire en relisant la valeur d’un contrôle à partir de l’implémentation de l’interface de propriété. Le tableau suivant décrit en détail la façon dont MAPI gère les notifications pour des types spécifiques de contrôles.

Contrôle Action MAPI
Bouton
Appelle IMAPIProp ::OpenPropertypour récupérer l’objet de contrôle au moyen de la propriété représentée par le membre ulPRControl de la structure DTBLBUTTON si l’appel avait échoué précédemment. Appelle le IMAPIControl ::GetState de l’objet de contrôle pour déterminer si le bouton doit être activé et active ou désactive le bouton en conséquence.
Case à cocher
Relit la valeur du membre ulPRPropertyName .
Zone de liste modifiable
Rouvre la table associée au membre ulPRTableName de la structure DTBLCOMBOBOX . Relit toutes les lignes, y compris la valeur du membre ulPRPropertyName.
Zone de liste déroulante
Rouvre la table associée au membre ulPRTableName de la structure DTBLDDLBX et relit toutes les lignes. Appelle IMAPIProp ::GetProps pour récupérer les valeurs des propriétés stockées dans les membres ulPRDisplayProperty et ulPRSetProperty .
Modifier
Relit la propriété et réaffiche.
Zone de groupe
Ignore la notification.
Étiquette
Ignore la notification.
Zone de liste de sélection multiple
Si l’une des colonnes est un identificateur d’entrée, actualise la zone de liste. L’objet correspondant n’est pas fermé ou rechargé.
Zone de liste de sélection unique
Lit la propriété set en essayant de l’identifier.
Zone de liste à valeurs multiples
Relit la propriété et remplit à nouveau la zone de liste.
Page à onglets
Il n’y a aucune notification pour ce contrôle ; tout est statique.
Case d’option
Relit la propriété associée au bouton et stockée dans le membre ulPropTag de la structure DTBLRADIOBUTTON et effectue la sélection appropriée avec les contrôles.

Voir aussi