IPersistFile ::IsDirty, méthode (objidl.h)
Détermine si un objet a changé depuis son dernier enregistrement dans son fichier actuel.
Syntaxe
HRESULT IsDirty();
Valeur de retour
Cette méthode retourne S_OK pour indiquer que l’objet a changé. Sinon, elle retourne S_FALSE.
Remarques
Utilisez cette méthode pour déterminer si un objet doit être enregistré avant de le fermer. L’indicateur sale d’un objet est effacé de manière conditionnelle dans la méthode IPersistFile ::Save.
Remarques aux appelants
OLE n’appelle pas IsDirty. Les applications ne l’appellent pas, sauf si elles enregistrent également un objet dans un fichier.Vous devez traiter les codes de retour d’erreur comme une indication que l’objet a changé. À moins que cette méthode retourne explicitement S_FALSE, supposons que l’objet doit être enregistré.
Remarques aux implémenteurs
Un objet sans objet contenu vérifie simplement son indicateur de sale pour retourner le résultat approprié.Un conteneur contenant un ou plusieurs objets contenus doit conserver un indicateur de sale interne défini lorsque l’un de ses objets contenus a changé depuis son dernier enregistrement. Pour ce faire, le conteneur doit conserver un récepteur de conseil en implémentant l’interface IAdviseSink . Ensuite, le conteneur peut inscrire chaque lien ou incorporation pour les notifications de modification de données avec un appel à IDataObject ::D Advise. Ensuite, le conteneur peut définir son indicateur de sale interne lorsqu’il reçoit une notification IAdviseSink ::OnDataChange. Si le conteneur ne s’inscrit pas pour les notifications de modification de données, l’implémentation IPersistFile ::IsDirty appelle IPersistStorage ::IsDirty pour chacun de ses objets contenus afin de déterminer s’ils ont changé.
Le conteneur peut effacer son indicateur de sale chaque fois qu’il est enregistré, tant que le fichier dans lequel l’objet est enregistré est le fichier de travail actuel après l’enregistrement. Par conséquent, l’indicateur sale est effacé après une opération Enregistrer ou Enregistrer sous réussie, mais pas après une opération Enregistrer une copie sous . . .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | objidl.h |