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 |
---|---|
|
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 |