Share via


IPersistFile::IsDirty-Methode (objidl.h)

Bestimmt, ob sich ein Objekt geändert hat, seit es zuletzt in seiner aktuellen Datei gespeichert wurde.

Syntax

HRESULT IsDirty();

Rückgabewert

Diese Methode gibt S_OK zurück, um anzugeben, dass sich das Objekt geändert hat. Andernfalls wird „S_FALSE“ zurückgegeben.

Hinweise

Verwenden Sie diese Methode, um zu bestimmen, ob ein Objekt vor dem Schließen gespeichert werden soll. Das modifiziert-Flag für ein Objekt wird in der IPersistFile::Save-Methode bedingt gelöscht.

Hinweise für Anrufer

OLE ruft IsDirty nicht auf. Anwendungen würden es nur aufrufen, wenn sie auch ein Objekt in einer Datei speichern.

Sie sollten alle Fehlerrückgabecodes als Hinweis darauf behandeln, dass sich das Objekt geändert hat. Sofern diese Methode nicht explizit S_FALSE zurückgibt, wird davon ausgegangen, dass das Objekt gespeichert werden muss.

Hinweise für Implementierer

Ein Objekt ohne enthaltene Objekte überprüft einfach sein modifiziert Flag, um das entsprechende Ergebnis zurückzugeben.

Ein Container mit einem oder mehreren enthaltenen Objekten muss ein internes modifiziert-Flag beibehalten, das festgelegt wird, wenn sich eines seiner enthaltenen Objekte seit dem letzten Speichern geändert hat. Dazu sollte der Container eine Empfehlungssenke verwalten, indem er die IAdviseSink-Schnittstelle implementiert. Anschließend kann der Container jeden Link oder die Einbettung für Datenänderungsbenachrichtigungen mit einem Aufruf von IDataObject::D Advise registrieren. Anschließend kann der Container sein internes modifiziert-Flag festlegen, wenn er eine IAdviseSink::OnDataChange-Benachrichtigung empfängt. Wenn der Container nicht für Datenänderungsbenachrichtigungen registriert wird, ruft die IPersistFile::IsDirty-ImplementierungIPersistStorage::IsDirty für jedes seiner enthaltenen Objekte auf, um zu bestimmen, ob sie geändert wurden.

Der Container kann sein modifiziert Flag löschen, wenn er gespeichert wird, solange die Datei, in der das Objekt gespeichert wird, die aktuelle Arbeitsdatei nach dem Speichern ist. Daher würde das flag modifiziert nach einem erfolgreichen Vorgang Speichern oder Speichern unter, jedoch nicht nach einem Save A Copy As -Vorgang gelöscht. .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile objidl.h

Weitere Informationen

IAdviseSink::OnDataChange

IDataObject::D Advise

Ipersistfile