Compartilhar via


Método IPersistStreamInit::Save (ocidl.h)

Salva um objeto no fluxo especificado.

Sintaxe

HRESULT Save(
  [in] LPSTREAM pStm,
  [in] BOOL     fClearDirty
);

Parâmetros

[in] pStm

Um ponteiro IStream para o fluxo no qual o objeto deve ser salvo.

[in] fClearDirty

Indica se o sinalizador de sujo deve ser limpo após a conclusão do salvamento. Se TRUE, o sinalizador deverá ser limpo. Se FALSE, o sinalizador deverá ser deixado inalterado.

Valor retornado

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.
STG_E_CANTSAVE
O objeto não pôde se salvar no fluxo. Esse erro pode indicar, por exemplo, que o objeto contém outro objeto que não é serializável para um fluxo ou que uma chamada ISequentialStream::Write retornou STG_E_CANTSAVE.
STG_E_MEDIUMFULL
Não foi possível salvar o objeto porque não há espaço no dispositivo de armazenamento.

Comentários

IPersistStreamInit::Save salva um objeto no fluxo especificado e indica se o objeto deve redefinir seu sinalizador sujo.

O ponteiro seek é posicionado no local no fluxo no qual o objeto deve começar a gravar seus dados. O objeto chama o método ISequentialStream::Write para gravar seus dados.

Na saída, o ponteiro seek deve ser posicionado imediatamente após os dados do objeto. A posição do ponteiro seek será indefinida se um erro retornar.

Observações aos implementadores

O método IPersistStreamInit::Save não grava o CLSID no fluxo. O chamador é responsável por escrever o CLSID.

O método IPersistStreamInit::Save pode ler, gravar e buscar no fluxo; mas não deve buscar um local no fluxo antes do ponteiro de busca na entrada.

Requisitos

   
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 ocidl.h

Confira também

Ipersiststreaminit