OleLoad, fonction (ole2.h)

Charge en mémoire un objet imbriqué dans un objet de stockage spécifié.

Syntaxe

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

Paramètres

[in] pStg

Pointeur vers l’interface IStorage sur l’objet de stockage à partir duquel charger l’objet spécifié.

[in] riid

Référence à l’identificateur de l’interface que l’appelant souhaite utiliser pour communiquer avec l’objet après son chargement.

[in] pClientSite

Pointeur vers l’interface IOleClientSite sur l’objet de site client en cours de chargement.

[out] ppvObj

Adresse de la variable pointeur qui reçoit le pointeur d’interface demandé dans riid. Une fois le retour réussi, *ppvObj contient le pointeur d’interface demandé sur l’objet nouvellement chargé.

Valeur retournée

Cette fonction retourne S_OK en cas de réussite. Les autres valeurs possibles sont les suivantes.

Code de retour Description
E_NOINTERFACE
L’objet ne prend pas en charge l’interface spécifiée.
 

En outre, cette fonction peut retourner l’une des valeurs d’erreur retournées par la méthode IPersistStorage::Load .

Notes

Les conteneurs OLE chargent des objets en mémoire en appelant cette fonction. Lors de l’appel de la fonction OleLoad , l’application conteneur passe un pointeur vers l’objet de stockage ouvert dans lequel l’objet imbriqué est stocké. En règle générale, l’objet imbriqué à charger est un objet de stockage enfant dans l’objet de stockage racine du conteneur. À l’aide des informations OLE stockées avec l’objet, le gestionnaire d’objets (généralement, le gestionnaire par défaut) tente de charger l’objet. À l’achèvement de la fonction OleLoad , l’objet est dit dans l’état chargé et son application d’objet n’est pas en cours d’exécution.

Certaines applications chargent toutes les données natives de l’objet. Les conteneurs reportent souvent le chargement des objets contenus jusqu’à ce que cela soit nécessaire. Par exemple, tant qu’un objet n’est pas fait défiler dans la vue et doit être dessiné, il n’a pas besoin d’être chargé.

La fonction OleLoad effectue les étapes suivantes :

  • Si nécessaire, effectue une conversion automatique de l’objet (voir la fonction OleDoAutoConvert ).
  • Obtient le CLSID de l’objet de stockage ouvert en appelant la méthode IStorage::Stat .
  • Appelle la fonction CoCreateInstance pour créer un instance du gestionnaire. Si le code du gestionnaire n’est pas disponible, le gestionnaire par défaut est utilisé (voir la fonction OleCreateDefaultHandler ).
  • Appelle la méthode IOleObject::SetClientSite avec le paramètre pClientSite pour informer l’objet de son site client.
  • Appelle la méthode QueryInterface pour l’interface IPersistStorage . En cas de réussite, la méthode IPersistStorage::Load est appelée pour l’objet .
  • Interroge et retourne l’interface identifiée par le paramètre riid .

Spécifications

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête ole2.h
Bibliothèque Ole32.lib
DLL Ole32.dll