Share via


Función OleLoad (ole2.h)

Carga en memoria un objeto anidado dentro de un objeto de almacenamiento especificado.

Sintaxis

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

Parámetros

[in] pStg

Puntero a la interfaz IStorage en el objeto de almacenamiento desde el que se va a cargar el objeto especificado.

[in] riid

Referencia al identificador de la interfaz que el autor de la llamada quiere usar para comunicarse con el objeto después de cargarlo.

[in] pClientSite

Puntero a la interfaz IOleClientSite en el objeto de sitio cliente que se está cargando.

[out] ppvObj

Dirección de la variable de puntero que recibe el puntero de interfaz solicitado en riid. Tras la devolución correcta, *ppvObj contiene el puntero de interfaz solicitado en el objeto recién cargado.

Valor devuelto

Esta función devuelve S_OK si se ejecuta correctamente. Otros valores posibles son los siguientes.

Código devuelto Descripción
E_NOINTERFACE
El objeto no admite la interfaz especificada.
 

Además, esta función puede devolver cualquiera de los valores de error devueltos por el método IPersistStorage::Load .

Comentarios

Los contenedores OLE cargan objetos en la memoria mediante una llamada a esta función. Al llamar a la función OleLoad , la aplicación contenedora pasa un puntero al objeto de almacenamiento abierto en el que se almacena el objeto anidado. Normalmente, el objeto anidado que se va a cargar es un objeto de almacenamiento secundario en el objeto de almacenamiento raíz del contenedor. Con la información OLE almacenada con el objeto , el controlador de objetos (normalmente, el controlador predeterminado) intenta cargar el objeto. Al finalizar la función OleLoad , se dice que el objeto está en estado cargado con su aplicación de objeto que no se está ejecutando.

Algunas aplicaciones cargan todos los datos nativos del objeto. Los contenedores a menudo aplazan la carga de los objetos contenidos hasta que sea necesario hacerlo. Por ejemplo, hasta que se desplaza un objeto a la vista y es necesario dibujarlo, no es necesario cargarlo.

La función OleLoad realiza los pasos siguientes:

  • Si es necesario, realiza una conversión automática del objeto (vea la función OleDoAutoConvert ).
  • Obtiene el CLSID del objeto de almacenamiento abierto llamando al método IStorage::Stat .
  • Llama a la función CoCreateInstance para crear una instancia del controlador. Si el código del controlador no está disponible, se usa el controlador predeterminado (consulte la función OleCreateDefaultHandler ).
  • Llama al método IOleObject::SetClientSite con el parámetro pClientSite para informar al objeto de su sitio cliente.
  • Llama al método QueryInterface para la interfaz IPersistStorage . Si se ejecuta correctamente, se invoca el método IPersistStorage::Load para el objeto .
  • Consulta y devuelve la interfaz identificada por el parámetro riid .

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ole2.h
Library Ole32.lib
Archivo DLL Ole32.dll