IPersistStorage::Load
9/8/2008
Thismethod carrega um objeto do seu armazenamento existente.
Syntax
HRESULT Load(
IStorage* pStg
);
Parameters
- pStg
[no] IStorage ponteiro para o armazenamento existente a partir da qual o objeto é para ser carregado.
Return Value
A seguinte tabela mostra os valores de retorno para este método.
Valor | Descrição |
---|---|
S_OK |
O objeto foi carregado com êxito. |
CO_E_ALREADYINITIALIZED |
O objeto já foi inicializado por um chamar anterior para o IPersistStorage::Load método ou a IPersistStorage::InitNew método. |
E_OUTOFMEMORY |
O objeto não foi carregado devido a falta de memória. |
E_FAIL |
O objeto não foi carregado devido a alguns motivos além uma falta de memória. |
Remarks
Este método Inicializa um objeto de um armazenamento existente. O objeto é colocado no estado carregado se esse método é chamado pelo aplicativo de contêiner. Se chamado pelo manipulador de usar como padrão, este método coloca o objeto de execução estado.
O manipulador usar como padrão ou o próprio objeto pode conter até a IStorage ponteiro enquanto o objeto é carregado ou execução.
Para determinar se a plataforma oferece suporte a esta interface, consulte Determinando suporte COM APIs.
Notas para chamadores
O contêiner deve armazenar em cache o IPersistStorage ponteiro para uso em operações posteriores no objeto.
Notas para Implementers
A implementação deve executar a seguinte etapas para carregar um objeto:
- Abrir do o objeto fluxos no objeto armazenamento e ler os dados necessários para dados interno do objeto estruturas.
- Clear sinalizador sujo do objeto.
- Chamar o IPersistStorage::AddRef método e armazenar em cache o passado no ponteiro armazenamento.
- Mantenha aberto e armazenar em cache os ponteiros para todos os fluxos ou armazenamentos que o objeto precisará salvar próprio para este armazenamento.
- Executar qualquer outra inicialização usar como padrão exigido para o objeto.
As etapas 3 e 4 são particularmente importantes para assegurar que o objeto pode salvar próprio em situações memória baixa. Controladora até os ponteiros para as interfaces armazenamento e transmitir garante que um salvar operação para esse armazenamento não falhará devido a memória insuficiente.
Sua implementação desse método deve retornar o código de erro CO_E_ALREADYINITIALIZED se ele recebe um chamar para o IPersistStorage::InitNew método ou a IPersistStorage::Load método após ele já foi inicializado.
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 |