Método IPersistStorage::Load (objidl.h)
Carrega um objeto de seu armazenamento existente.
Sintaxe
HRESULT Load(
[in] IStorage *pStg
);
Parâmetros
[in] pStg
Um ponteiro IStorage para o armazenamento existente do qual o objeto deve ser carregado.
Retornar valor
Esse método pode retornar os valores a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi concluído com sucesso. |
|
O objeto já foi inicializado por uma chamada anterior para o método IPersistStorage::Load ou o método IPersistStorage::InitNew . |
|
O objeto não foi carregado devido à falta de memória. |
|
O objeto não foi carregado devido a algum motivo que não seja a falta de memória. |
Comentários
Esse método inicializa um objeto de um armazenamento existente. O objeto será colocado no estado carregado se esse método for chamado pelo aplicativo de contêiner. Se chamado pelo manipulador padrão, esse método coloca o objeto no estado em execução.
O manipulador padrão ou o próprio objeto pode manter o ponteiro IStorage enquanto o objeto está carregado ou em execução.
Anotações aos Chamadores
Em vez de chamar IPersistStorage::Load diretamente, você normalmente chama a função auxiliar OleLoad , que faz o seguinte:- Crie uma instância não inicializada da classe de objeto .
- Consulte a nova instância para a interface IPersistStorage .
- Chame Load para inicializar o objeto do armazenamento existente.
O contêiner deve armazenar em cache o ponteiro IPersistStorage para uso em operações posteriores no objeto .
Observações aos implementadores
Sua implementação deve executar as seguintes etapas para carregar um objeto:- Abra os fluxos do objeto no objeto de armazenamento e leia os dados necessários nas estruturas de dados internas do objeto.
- Limpe o sinalizador de sujo do objeto.
- Chame o método AddRef e armazene em cache o ponteiro de armazenamento passado.
- Mantenha aberto e armazene em cache os ponteiros para quaisquer fluxos ou armazenamentos que o objeto precisará para se salvar nesse armazenamento.
- Execute qualquer outra inicialização padrão necessária para o objeto .
Sua implementação desse método deverá retornar o código de erro CO_E_ALREADYINITIALIZED se ele receber uma chamada para o método IPersistStorage::InitNew ou o método IPersistStorage::Load depois que ele já estiver inicializado.
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 |