Método IPersistFile::IsDirty (objidl.h)

Determina si un objeto ha cambiado desde que se guardó por última vez en su archivo actual.

Sintaxis

HRESULT IsDirty();

Valor devuelto

Este método devuelve S_OK para indicar que el objeto ha cambiado. De lo contrario, devuelve S_FALSE.

Comentarios

Use este método para determinar si se debe guardar un objeto antes de cerrarlo. La marca desfasada de un objeto se borra condicionalmente en el método IPersistFile::Save .

Notas a los autores de llamadas

OLE no llama a IsDirty. Las aplicaciones no lo llamarían a menos que también guarden un objeto en un archivo.

Debe tratar los códigos de devolución de error como indicación de que el objeto ha cambiado. A menos que este método devuelva explícitamente S_FALSE, suponga que el objeto debe guardarse.

Notas para los implementadores

Un objeto sin objetos contenidos simplemente comprueba su marca desfasada para devolver el resultado adecuado.

Un contenedor con uno o varios objetos contenidos debe mantener una marca desfasada interna que se establece cuando cualquiera de sus objetos contenidos ha cambiado desde que se guardó por última vez. Para ello, el contenedor debe mantener un receptor de asesoramiento mediante la implementación de la interfaz IAdviseSink . A continuación, el contenedor puede registrar cada vínculo o insertar para las notificaciones de cambio de datos con una llamada a IDataObject::D Advise. A continuación, el contenedor puede establecer su marca desfasada interna cuando recibe una notificación IAdviseSink::OnDataChange . Si el contenedor no se registra para las notificaciones de cambio de datos, la implementación de IPersistFile::IsDirty llamaría a IPersistStorage::IsDirty para cada uno de sus objetos contenidos para determinar si han cambiado.

El contenedor puede borrar su marca desfasada cada vez que se guarde, siempre y cuando el archivo en el que se guarde el objeto sea el archivo de trabajo actual después del guardado. Por lo tanto, la marca desfasada se borraría después de una operación correcta Guardar o Guardar como, pero no después de una operación Guardar una copia como . . . .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado objidl.h

Consulte también

IAdviseSink::OnDataChange

IDataObject::D Advise

IPersistFile