IPersistStorage::Save
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:- IPersistStorage::InitNew Quando ele foi criado.
- IPersistStorage::Load Quando ele foi carregado.
- IPersistStorage::SaveCompleted Quando ele foi salvo em um armazenamento diferente da sua atual armazenamento.
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:
- Chamar o WriteClassStg função para gravar o identificador classe para o objeto de armazenamento.
- Chamar o IPersistStorage::Save método.
- 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