Interface ISupportLastWriteTime
Représente un fournisseur de synchronisation qui est en mesure de signaler la date et l'heure de la dernière modification d'un élément ou d'une unité de modification. Cette possibilité s'avère utile pour une application qui implémente une résolution de conflit de type « le dernier enregistreur gagne ».
Syntaxe
interface ISupportLastWriteTime : IUnknown
Membres
Méthode ISupportLastWriteTime |
Description |
Obtient la date et l'heure auxquelles l'élément spécifié a été modifié pour la dernière fois. |
|
Obtient la date et l'heure auxquelles l'unité de modification spécifiée a été modifiée pour la dernière fois. |
Notes
Cette interface est généralement implémentée par un fournisseur. Si un fournisseur implémente cette interface, il doit lui retourner un pointeur lorsque IID_ISupportLastWriteTime est passé à la méthode QueryInterface de son interface de transfert de données. L'interface de transfert de données est l'interface qu'un fournisseur retourne en réponse à la méthode ISynchronousDataRetriever::LoadChangeData.
Pour implémenter une résolution de conflit de type « le dernier enregistreur gagne », une application effectue généralement les étapes suivantes :
Elle enregistre un objet ISyncCallback pour recevoir les notifications de conflit.
Dans la méthode ISyncCallback::OnConflict, elle appelle IChangeConflict::GetDestinationProviderConflictingData et IChangeConflict::GetSourceProviderConflictingData sur l'objet IChangeConflict pour recevoir les interfaces de transfert de données pour les modifications en conflit.
Elle passe IID_ISupportLastWriteTime à la méthode QueryInterface de chaque interface de transfert de données pour obtenir les objets ISupportLastWriteTime qui représentent les modifications en conflit.
Elle appelle GetItemChangeTime ou GetChangeUnitChangeTime sur les objets ISupportLastWriteTime pour obtenir la date et l'heure des dernières modifications apportées.
Elle compare les valeurs de date et d'heure afin de déterminer quelle modification a été apportée en dernier.
Elle indique la modification à conserver à l'aide de la méthode IChangeConflict::SetResolveActionForChange ou IChangeConflict::SetResolveActionForChangeUnit.
Spécifications
En-tête : Synchronization.idl