Metodo IPersistStorage::Load (objidl.h)
Carica un oggetto dalla relativa risorsa di archiviazione esistente.
Sintassi
HRESULT Load(
[in] IStorage *pStg
);
Parametri
[in] pStg
Puntatore IStorage all'archiviazione esistente da cui caricare l'oggetto.
Valore restituito
Questo metodo può restituire i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Metodo completato correttamente. |
|
L'oggetto è già stato inizializzato da una chiamata precedente al metodo IPersistStorage::Load o al metodo IPersistStorage::InitNew . |
|
L'oggetto non è stato caricato a causa della mancanza di memoria. |
|
L'oggetto non è stato caricato a causa di un motivo diverso da una mancanza di memoria. |
Commenti
Questo metodo inizializza un oggetto da un archivio esistente. L'oggetto viene inserito nello stato caricato se questo metodo viene chiamato dall'applicazione contenitore. Se viene chiamato dal gestore predefinito, questo metodo inserisce l'oggetto nello stato in esecuzione.
Il gestore predefinito o l'oggetto stesso può contenere il puntatore IStorage mentre l'oggetto viene caricato o in esecuzione.
Note ai chiamanti
Anziché chiamare direttamente IPersistStorage::Load , si chiama in genere la funzione helper OleLoad che esegue le operazioni seguenti:- Creare un'istanza non inizializzata della classe oggetto.
- Eseguire una query sulla nuova istanza per l'interfaccia IPersistStorage .
- Chiamare Load per inizializzare l'oggetto dall'archiviazione esistente.
Il contenitore deve memorizzare nella cache il puntatore IPersistStorage da usare nelle operazioni successive sull'oggetto.
Note per gli implementatori
L'implementazione deve eseguire i passaggi seguenti per caricare un oggetto:- Aprire i flussi dell'oggetto nell'oggetto di archiviazione e leggere i dati necessari nelle strutture di dati interne dell'oggetto.
- Deselezionare il flag sporco dell'oggetto.
- Chiamare il metodo AddRef e memorizzare nella cache il puntatore di archiviazione passato.
- Mantenere aperti e memorizzare nella cache i puntatori a qualsiasi flusso o archiviazione che l'oggetto dovrà salvare in questa risorsa di archiviazione.
- Eseguire qualsiasi altra inizializzazione predefinita necessaria per l'oggetto.
L'implementazione di questo metodo deve restituire il codice di errore CO_E_ALREADYINITIALIZED se riceve una chiamata al metodo IPersistStorage::InitNew o al metodo IPersistStorage::Load dopo l'inizializzazione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | objidl.h |