Метод IPersistFile::IsDirty (objidl.h)
Определяет, изменился ли объект с момента последнего сохранения в текущем файле.
Синтаксис
HRESULT IsDirty();
Возвращаемое значение
Этот метод возвращает S_OK, чтобы указать, что объект был изменен. В противном случае возвращается S_FALSE.
Комментарии
Используйте этот метод, чтобы определить, следует ли сохранить объект перед его закрытием. Флаг грязное для объекта условно очищается в методе IPersistFile::Save.
Примечания к вызывающим абонентам
OLE не вызывает IsDirty. Приложения не будут вызывать его, если они также не сохраняют объект в файл.Любые коды возврата ошибок следует рассматривать как признак изменения объекта. Если этот метод явно не возвращает S_FALSE, предположим, что объект необходимо сохранить.
Примечания для разработчиков
Объект без содержащихся объектов просто проверяет флаг грязное, чтобы вернуть соответствующий результат.Контейнер с одним или несколькими автономными объектами должен поддерживать внутренний флаг грязное, который устанавливается при изменении любого из содержащихся в нем объектов с момента последнего сохранения. Для этого контейнер должен поддерживать приемник рекомендаций путем реализации интерфейса IAdviseSink . Затем контейнер может зарегистрировать каждую ссылку или внедрение для уведомлений об изменении данных с помощью вызова метода IDataObject::D Advise. Затем контейнер может задать свой внутренний флаг грязное при получении уведомления IAdviseSink::OnDataChange. Если контейнер не регистрируется для уведомлений об изменении данных, реализация IPersistFile::IsDirty вызовет IPersistStorage::IsDirty для каждого из содержащихся в нем объектов, чтобы определить, были ли они изменены.
Контейнер может очищать свой флаг грязное при каждом сохранении, если файл, в который сохраняется объект, является текущим рабочим файлом после сохранения. Таким образом, флаг грязное будет снят после успешной операции Сохранить или Сохранить как, но не после операции Сохранить копию как . .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | objidl.h |