Compartilhar via


IPersistStorage::Save

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Thismethod Salva um objeto e quaisquer objetos aninhados que ela contém para o armazenamento especificado. O objeto é colocado no modo NoScribble e não deve gravar para o armazenamento especificado até que ele receba uma chamar a sua IPersistStorage::SaveCompleted método.

Syntax

HRESULT Save( 
  IStorage* pStgSave, 
  BOOL fSameAsLoad
);

Parameters

  • pStgSave
    [no] IStorage ponteiro para o armazenamento no qual o objeto é a ser salvo.
  • fSameAsLoad
    [no] Boolean valor que indica se o armazenamento especificado é o atual um, que foi passado para o objeto por uma do seguinte chama:

    Este parâmetro está definido como FALSE ao executar uma operação Save As ou Save A Copy To ou ao executar um total salvar. Em maiúsculas e minúsculas a último, esse método salva para um arquivo temporário, exclui a arquivo original e renomeia o arquivo temporário.

    Este parâmetro for definido como TRUE para executar um total salvar em um baixo-situação memória ou para executar um salvar rápido incremental no qual somente os componentes sujos são salvos.

Return Value

A seguinte tabela mostra os valores de retorno para este método.

Valor Descrição

S_OK

O objeto foi salvo com êxito.

STG_E_MEDIUMFULL

O objeto não foi salvo devido a falta de espaço sobre o disco.

E_FAIL

O objeto não puderam ser salvas erros que não seja a falta de espaço em disco devido a.

Remarks

Esse método salva um objeto e quaisquer objetos aninhados que ele contém, para o armazenamento especificado. Ele também coloca o objeto no modo NoScribble. Assim, o objeto não é possível gravar no seu armazenamento até um chamar subseqüente para o IPersistStorage::SaveCompleted método retorna o objeto ao modo normal.

Se o objeto armazenamento for o mesmo que ele foi carregado ou criado a partir, a salvar operação poderá gravar alterações incrementais para o objeto armazenamento. Caso contrário, um total salvar deve ser feito.

Chama esse método recursivamente a IPersistStorage::Save método, o OleSave função, ou a IStorage::CopyTo método para salvar seus objetos aninhados.

Este método não chamar o IStorage::Commit método. Nem ele gravar o CLSID para o objeto armazenamento. As duas dessas tarefas são as responsabilidades do chamador.

Para determinar se a plataforma oferece suporte a esta interface, consulte Determinando suporte COM APIs.

Notas para chamadores

Rather than chamado IPersistStorage::Save diretamente, você geralmente chamar o OleSave função auxiliar que realiza as seguinte etapas:

  1. Chamar o WriteClassStg função para gravar o identificador classe para o objeto de armazenamento.
  2. Chamar o IPersistStorage::Save método.
  3. Se necessário, chamar o IStorage::Commit método no objeto de armazenamento.

Em seguida, um aplicativo contêiner executa quaisquer outras operações necessárias para completo de salvar e chamadas de SaveCompleted método para cada objeto.

Se um objeto incorporado passa a IPersistStorage::Save método para seus objetos aninhados, ele deve receber um chamar a sua IPersistStorage::SaveCompleted método antes chamado esse método para seus objetos aninhados.

Requirements

Header objidl.h, objidl.idl
Library ole32.lib, uuid.lib
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

OleSave
WriteClassStg
IStorage
IPersistStorage::InitNew
IPersistStorage::Load
IPersistStorage::SaveCompleted
IStorage::Commit