Condividi tramite


Metodo IPersistFile::IsDirty (objidl.h)

Determina se un oggetto è stato modificato dopo l'ultimo salvataggio nel file corrente.

Sintassi

HRESULT IsDirty();

Valore restituito

Questo metodo restituisce S_OK per indicare che l'oggetto è stato modificato. In caso contrario, restituisce S_FALSE.

Commenti

Utilizzare questo metodo per determinare se un oggetto deve essere salvato prima di chiuderlo. Il flag dirty per un oggetto viene cancellato in modo condizionale nel metodo IPersistFile::Save .

Note ai chiamanti

OLE non chiama IsDirty. Le applicazioni non lo chiamano a meno che non salvino anche un oggetto in un file.

È consigliabile considerare eventuali codici restituiti di errore come un'indicazione che l'oggetto è stato modificato. A meno che questo metodo non restituisca in modo esplicito S_FALSE, si supponga che l'oggetto debba essere salvato.

Note per gli implementatori

Un oggetto senza oggetti contenuti controlla semplicemente il flag dirty per restituire il risultato appropriato.

Un contenitore con uno o più oggetti contenuti deve mantenere un flag dirty interno impostato quando uno dei relativi oggetti contenuti è stato modificato dall'ultimo salvataggio. A tale scopo, il contenitore deve mantenere un sink consigliato implementando l'interfaccia IAdviseSink . Il contenitore può quindi registrare ogni collegamento o incorporamento per le notifiche di modifica dei dati con una chiamata a IDataObject::D Advise. Il contenitore può quindi impostare il flag dirty interno quando riceve una notifica IAdviseSink::OnDataChange . Se il contenitore non esegue la registrazione per le notifiche di modifica dei dati, l'implementazione IPersistFile::IsDirty chiamerà IPersistStorage::IsDirty per ognuno degli oggetti contenuti per determinare se sono stati modificati.

Il contenitore può cancellare il flag dirty ogni volta che viene salvato, purché il file in cui viene salvato l'oggetto sia il file di lavoro corrente dopo il salvataggio. Di conseguenza, il flag dirty viene cancellato dopo un'operazione Salva o Salva con nome, ma non dopo un'operazione Salva copia con nome . . .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione objidl.h

Vedi anche

IAdviseSink::OnDataChange

IDataObject::D Advise

Ipersistfile