Método IPersistStorage::SaveCompleted (objidl.h)

Notifica o objeto que ele pode gravar em seu objeto de armazenamento. Ele faz isso notificando o objeto de que ele pode reverter do modo NoScribble (no qual ele não deve gravar em seu objeto de armazenamento), no modo Normal (no qual ele pode). O objeto entra no modo NoScribble quando recebe uma chamada IPersistStorage::Save .

Sintaxe

HRESULT SaveCompleted(
  [in] IStorage *pStgNew
);

Parâmetros

[in] pStgNew

Um ponteiro IStorage para o novo objeto de armazenamento, se diferente do objeto de armazenamento antes de salvar. Esse ponteiro poderá ser NULL se o objeto de armazenamento atual não for alterado durante a operação de salvamento. Se o objeto estiver no modo HandsOff, esse parâmetro deverá ser não NULL.

Retornar valor

Esse método pode retornar os valores a seguir.

Código de retorno Descrição
S_OK
O método foi concluído com sucesso.
E_OUTOFMEMORY
O objeto permaneceu no modo HandsOff ou no modo NoScribble devido à falta de memória. Normalmente, esse erro ocorre quando o objeto não é capaz de abrir os fluxos e objetos de armazenamento necessários em pStgNew.
E_INVALIDARG
O parâmetro pStgNew não é válido. Normalmente, esse erro ocorre se pStgNew for NULL quando o objeto estiver no modo HandsOff.
E_UNEXPECTED
O objeto está no modo Normal e não houve nenhuma chamada anterior para IPersistStorage::Save ou IPersistStorage::HandsOffStorage.

Comentários

Esse método notifica um objeto de que ele pode reverter para o modo Normal e pode gravar novamente em seu objeto de armazenamento. O objeto sai do modo NoScribble ou do modo HandsOff.

Se o objeto estiver revertendo do modo HandsOff, o parâmetro pStgNew deverá ser não NULL. No modo HandsOffFromNormal, esse parâmetro é o novo objeto de armazenamento que substitui aquele que foi revogado pelo método IPersistStorage::HandsOffStorage . Os dados no objeto de armazenamento são uma cópia dos dados do objeto de armazenamento revogado. No modo HandsOffAfterSave, os dados são os mesmos que os dados salvos mais recentemente. Não é o mesmo que os dados no objeto de armazenamento revogado.

Se o objeto estiver revertendo do modo NoScribble, o parâmetro pStgNew poderá ser NULL ou não NULL. Se FOR NULL, o objeto terá mais uma vez acesso ao objeto de armazenamento. Se não for NULL, o objeto de componente deverá simular o recebimento de uma chamada para seu método HandsOffStorage . Se o objeto de componente não puder simular essa chamada, seu contêiner deverá estar preparado para realmente chamar o método HandsOffStorage .

Esse método deve chamar recursivamente todos os objetos aninhados carregados ou em execução.

Se esse método retornar um código de erro, o objeto não será retornado ao modo Normal. Assim, o objeto contêiner pode tentar estratégias de salvamento diferentes.

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

Ipersiststorage