Função OleLoad (ole2.h)

Carrega na memória um objeto aninhado em um objeto de armazenamento especificado.

Sintaxe

HRESULT OleLoad(
  [in]  LPSTORAGE       pStg,
  [in]  REFIID          riid,
  [in]  LPOLECLIENTSITE pClientSite,
  [out] LPVOID          *ppvObj
);

Parâmetros

[in] pStg

Ponteiro para a interface IStorage no objeto de armazenamento do qual carregar o objeto especificado.

[in] riid

Referência ao identificador da interface que o chamador deseja usar para se comunicar com o objeto depois que ele é carregado.

[in] pClientSite

Ponteiro para a interface IOleClientSite no objeto do site do cliente que está sendo carregado.

[out] ppvObj

Endereço da variável de ponteiro que recebe o ponteiro de interface solicitado em riid. Após o retorno bem-sucedido, *ppvObj contém o ponteiro de interface solicitado no objeto recém-carregado.

Valor retornado

Essa função retorna S_OK em caso de êxito. Outros valores possíveis incluem o seguinte.

Código de retorno Descrição
E_NOINTERFACE
O objeto não dá suporte à interface especificada.
 

Além disso, essa função pode retornar qualquer um dos valores de erro retornados pelo método IPersistStorage::Load .

Comentários

Os contêineres OLE carregam objetos na memória chamando essa função. Ao chamar a função OleLoad , o aplicativo contêiner passa um ponteiro para o objeto de armazenamento aberto no qual o objeto aninhado é armazenado. Normalmente, o objeto aninhado a ser carregado é um objeto de armazenamento filho para o objeto de armazenamento raiz do contêiner. Usando as informações OLE armazenadas com o objeto , o manipulador de objetos (geralmente, o manipulador padrão) tenta carregar o objeto. Após a conclusão da função OleLoad , diz-se que o objeto está no estado carregado com seu aplicativo de objeto não em execução.

Alguns aplicativos carregam todos os dados nativos do objeto. Os contêineres geralmente adiam o carregamento dos objetos contidos até que seja necessário fazê-lo. Por exemplo, até que um objeto seja rolado para a exibição e precise ser desenhado, ele não precisa ser carregado.

A função OleLoad executa as seguintes etapas:

  • Se necessário, executa uma conversão automática do objeto (consulte a função OleDoAutoConvert ).
  • Obtém o CLSID do objeto de armazenamento aberto chamando o método IStorage::Stat .
  • Chama a função CoCreateInstance para criar uma instância do manipulador. Se o código do manipulador não estiver disponível, o manipulador padrão será usado (consulte a função OleCreateDefaultHandler ).
  • Chama o método IOleObject::SetClientSite com o parâmetro pClientSite para informar o objeto de seu site cliente.
  • Chama o método QueryInterface para a interface IPersistStorage . Se tiver êxito, o método IPersistStorage::Load será invocado para o objeto .
  • Consulta e retorna a interface identificada pelo parâmetro riid .

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 ole2.h
Biblioteca Ole32.lib
DLL Ole32.dll