IPersistStorage ::Load, méthode (objidl.h)
Charge un objet à partir de son stockage existant.
Syntaxe
HRESULT Load(
[in] IStorage *pStg
);
Paramètres
[in] pStg
Pointeur IStorage vers le stockage existant à partir duquel l’objet doit être chargé.
Valeur retournée
Cette méthode peut retourner les valeurs suivantes.
Code de retour | Description |
---|---|
|
La commande s'est correctement terminée. |
|
L’objet a déjà été initialisé par un appel précédent à la méthode IPersistStorage ::Load ou À la méthode IPersistStorage ::InitNew . |
|
L’objet n’a pas été chargé en raison d’un manque de mémoire. |
|
L’objet n’a pas été chargé pour une raison autre qu’un manque de mémoire. |
Remarques
Cette méthode initialise un objet à partir d’un stockage existant. L’objet est placé dans l’état chargé si cette méthode est appelée par l’application conteneur. Si elle est appelée par le gestionnaire par défaut, cette méthode place l’objet dans l’état en cours d’exécution.
Le gestionnaire par défaut ou l’objet lui-même peut conserver le pointeur IStorage pendant le chargement ou l’exécution de l’objet.
Remarques aux appelants
Au lieu d’appeler IPersistStorage ::Load directement, vous appelez généralement la fonction d’assistance OleLoad qui effectue les opérations suivantes :- Créez une instance non initialisée de la classe d’objet.
- Interrogez la nouvelle instance pour l’interface IPersistStorage.
- Appelez Load pour initialiser l’objet à partir du stockage existant.
Le conteneur doit mettre en cache le pointeur IPersistStorage pour une utilisation dans des opérations ultérieures sur l’objet .
Remarques aux implémenteurs
Votre implémentation doit effectuer les étapes suivantes pour charger un objet :- Ouvrez les flux de l’objet dans l’objet de stockage et lisez les données nécessaires dans les structures de données internes de l’objet.
- Effacez l’indicateur de sale de l’objet.
- Appelez la méthode AddRef et mettez en cache le pointeur de stockage passé.
- Restez ouvert et mettez en cache les pointeurs vers tous les flux ou stockages dont l’objet aura besoin pour s’enregistrer lui-même dans ce stockage.
- Effectuez toute autre initialisation par défaut requise pour l’objet .
Votre implémentation de cette méthode doit retourner le code d’erreur CO_E_ALREADYINITIALIZED si elle reçoit un appel à la méthode IPersistStorage ::InitNew ou À la méthode IPersistStorage ::Load après son initialisation.
Configuration requise
Condition requise | Valeur |
---|---|
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 | objidl.h |