Partager via


TABLE_NOTIFICATION

S’applique à : Outlook 2013 | Outlook 2016

Décrit une ligne dans une table qui a été affectée par un type d’événement, tel qu’une modification ou une erreur. Cela entraîne la génération d’une notification de table.

Propriété Valeur
Fichier d’en-tête :
Mapidefs.h
typedef struct _TABLE_NOTIFICATION
{
  ULONG ulTableEvent;
  HRESULT hResult;
  SPropValue propIndex;
  SPropValue propPrior;
  SRow row;
} TABLE_NOTIFICATION;

Members

ulTableEvent

Masque de bits des indicateurs utilisés pour représenter le type d’événement de table. Les indicateurs suivants peuvent être définis :

TABLE_CHANGED

Indique à un niveau élevé qu’un élément de la table a changé. L’état de la table est tel qu’il était avant l’événement. Cela signifie que toutes les propriétés PR_INSTANCE_KEY (PidTagInstanceKey), les signets, le positionnement actuel et les sélections d’interface utilisateur sont toujours valides. Gérez cet événement en relisant la table. Les fournisseurs de services qui ne souhaitent pas implémenter de notifications de table enrichie envoient des événements TABLE_CHANGED au lieu d’événements plus détaillés pour indiquer un type particulier de modification.

TABLE_ERROR

Une erreur s’est produite, généralement pendant le traitement d’une opération asynchrone. Les erreurs pendant le traitement des méthodes suivantes peuvent générer cet événement :

Après avoir reçu un événement TABLE_ERROR, un client ne peut pas s’appuyer sur la précision du contenu de la table. En outre, les notifications en attente concernant d’autres modifications peuvent être perdues. La méthode IMAPITable ::GetLastError peut ne pas fournir d’informations supplémentaires sur l’erreur, car elle a été générée à un moment donné, pas nécessairement à partir du dernier appel de méthode.

TABLE_RELOAD

Les données de la table doivent être rechargées. Les fournisseurs de services envoient TABLE_RELOAD lorsque, par exemple, les données sous-jacentes sont stockées dans une base de données et que la base de données est remplacée. Gérez cet événement en supposant que rien sur la table n’est encore valide et en relisant la table. Tous les signets, clés instance, status et informations de positionnement ne sont pas valides.

TABLE_RESTRICT_DONE

Une opération de restriction lancée avec un appel de méthode IMAPITable ::Restrict est terminée.

TABLE_ROW_ADDED

Une nouvelle ligne a été ajoutée à la table et l’objet correspondant a été enregistré. TABLE_ROW_ADDED événements sont générés après un appel à la méthode IMAPIProp ::SaveChanges .

TABLE_ROW_DELETED

Une ligne a été supprimée de la table. Le membre propPrior est défini sur NULL.

TABLE_ROW_MODIFIED

Une ligne a été modifiée. Le membre de ligne contient les propriétés affectées pour la ligne. Plusieurs événements TABLE_ROW_MODIFIED sont envoyés dans l’ordre dans lequel ils apparaissent dans la vue de table.

TABLE_ROW_MODIFIED événements sont envoyés après que les modifications apportées à l’objet correspondant ont été validées avec un appel à la méthode IMAPIProp ::SaveChanges . Si la ligne modifiée est désormais la première ligne de la table, la valeur de la balise de propriété dans le membre propPrior est PR_NULL (PidTagNull).

TABLE_SETCOL_DONE

Une opération de définition de colonne lancée avec un appel de méthode IMAPITable ::SetColumns est terminée.

TABLE_SORT_DONE

Une opération de tri de table lancée avec un appel de méthode IMAPITable ::SortTable s’est terminée.

Hresult

Valeur HRESULT de l’erreur qui s’est produite si le membre ulTableEvent est défini sur TABLE_ERROR.

propIndex

Structure SPropValue pour la propriété PR_INSTANCE_KEY de la ligne affectée.

propPrior

Structure SPropValue pour la propriété PR_INSTANCE_KEY de la ligne avant la ligne affectée. Si la ligne affectée est la première ligne de la table, propPrior doit être défini sur PR_NULL et non sur zéro. Zéro n’est pas une balise de propriété valide.

Ligne

Structure SRow décrivant la ligne affectée. Cette structure est remplie pour tous les événements de notification de table. Pour les événements de notification de table qui ne passent pas de données de ligne, le membre cValues de la structure SRow est défini sur zéro et le membre lpProps a la valeur NULL. Étant donné que cette structure SRow est en lecture seule ; les clients doivent en faire une copie s’ils souhaitent apporter des modifications. La fonction ScDupPropset peut être utilisée pour effectuer la copie.

Remarques

La structure TABLE_NOTIFICATION est l’un des membres de l’union des structures incluses dans le membre info de la structure NOTIFICATION . Le membre d’informations inclut une structure TABLE_NOTIFICATION lorsque le membre ulEventType de la structure a la valeur fnevTableModified.

L’ordre et le type des colonnes dans le membre de ligne reflètent l’ordre et le type qui étaient en vigueur au moment où la notification a été générée. L’ordre et le type au moment où la notification a été générée ne sont pas nécessairement identiques à ceux de la remise de la notification.

Pour plus d’informations sur la notification, consultez les rubriques décrites dans le tableau suivant.

Rubrique Description
Notification d’événement dans MAPI
Vue d’ensemble générale des événements de notification et de notification.
Gestion des notifications
Discussion sur la façon dont les clients doivent gérer les notifications.
Notification d’événement de prise en charge
Discussion sur la façon dont les fournisseurs de services peuvent utiliser la méthode IMAPISupport pour générer des notifications.

Étant donné que les notifications de table sont asynchrones, les clients peuvent recevoir la notification d’une ligne ajoutée après avoir découvert l’ajout par un autre moyen. Il est possible de recevoir un événement TABLE_ERROR en cas d’erreur dans une méthode IMAPITable ::Sort, IMAPITable ::Restrict ou IMAPITable ::SetColumns ou lorsqu’un processus sous-jacent tente de mettre à jour une table avec, par exemple, des lignes nouvelles ou modifiées.

Voir aussi