Compartilhar via


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

Determina se um objeto foi alterado desde que foi salvo pela última vez em seu arquivo atual.

Sintaxe

HRESULT IsDirty();

Retornar valor

Esse método retorna S_OK para indicar que o objeto foi alterado. Caso contrário, ele retornará S_FALSE.

Comentários

Use esse método para determinar se um objeto deve ser salvo antes de fechá-lo. O sinalizador sujo para um objeto é condicionalmente limpo no método IPersistFile::Save.

Anotações para chamadores

O OLE não chama IsDirty. Os aplicativos não o chamariam, a menos que eles também estejam salvando um objeto em um arquivo.

Você deve tratar quaisquer códigos de retorno de erro como uma indicação de que o objeto foi alterado. A menos que esse método retorne explicitamente S_FALSE, suponha que o objeto deve ser salvo.

Anotações aos implementadores

Um objeto sem objetos independentes simplesmente verifica seu sinalizador sujo para retornar o resultado apropriado.

Um contêiner com um ou mais objetos contidos deve manter um sinalizador de sujo interno definido quando qualquer um de seus objetos contidos foi alterado desde que foi salvo pela última vez. Para fazer isso, o contêiner deve manter um coletor de consultoria implementando a interface IAdviseSink . Em seguida, o contêiner pode registrar cada link ou inserção para notificações de alteração de dados com uma chamada para IDataObject::D Advise. Em seguida, o contêiner pode definir seu sinalizador de sujo interno quando receber uma notificação IAdviseSink::OnDataChange. Se o contêiner não se registrar para notificações de alteração de dados, a implementação IPersistFile::IsDirty chamará IPersistStorage::IsDirty para cada um de seus objetos contidos para determinar se eles foram alterados.

O contêiner pode limpar seu sinalizador de sujo sempre que for salvo, desde que o arquivo no qual o objeto seja salvo seja o arquivo de trabalho atual após o salvamento. Portanto, o sinalizador sujo seria limpo após uma operação salvar ou salvar como bem-sucedida, mas não após uma operação Salvar uma Cópia como . .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho objidl.h

Confira também

IAdviseSink::OnDataChange

IDataObject::D Advise

IPersistFile