Enregistrement des propriétés MAPI
S’applique à : Outlook 2013 | Outlook 2016
De nombreux objets prennent en charge un modèle de transaction de traitement dans lequel les modifications apportées aux propriétés ne sont pas rendues permanentes tant qu’elles ne sont pas validées ultérieurement. Alors que les modifications apportées aux propriétés sont gérées par les méthodes IMAPIProp ::SetProps et IMAPIProp ::D eleteProps , l’étape de validation est gérée par IMAPIProp ::SaveChanges. Ce n’est qu’après un appel réussi à SaveChanges que la version la plus récente des propriétés d’un objet est accessible.
Lorsque SaveChanges retourne la valeur d’erreur MAPI_E_OBJECT_CHANGED, il s’agit d’un avertissement indiquant qu’un autre client valide simultanément les modifications apportées à l’objet. Il est possible, en fonction du fournisseur qui implémente l’objet, que plusieurs clients ouvrent correctement un objet en appelant sa méthode OpenEntry avec l’indicateur MAPI_MODIFY défini, ce qui leur donne un accès en lecture/écriture. L’objet retourné à partir d’un tel appel OpenEntry est un instantané des données de stockage. Chaque tentative de modification de ces données peut remplacer la tentative précédente.
Lors de la réception de MAPI_E_OBJECT_CHANGED à partir de SaveChanges, un client a la possibilité d’effectuer les opérations suivantes :
Effectuez une copie de l’objet pour contenir les modifications.
Effectuez un autre appel à SaveChanges, en spécifiant FORCE_SAVE.
L’appel de SaveChanges avec l’indicateur FORCE_SAVE remplace l’enregistrement précédent et rend les modifications d’un client permanentes.