Funzione OleLoad (ole2.h)
Carica in memoria un oggetto annidato all'interno di un oggetto di archiviazione specificato.
Sintassi
HRESULT OleLoad(
[in] LPSTORAGE pStg,
[in] REFIID riid,
[in] LPOLECLIENTSITE pClientSite,
[out] LPVOID *ppvObj
);
Parametri
[in] pStg
Puntatore all'interfaccia IStorage nell'oggetto di archiviazione da cui caricare l'oggetto specificato.
[in] riid
Riferimento all'identificatore dell'interfaccia che il chiamante desidera utilizzare per comunicare con l'oggetto dopo il caricamento.
[in] pClientSite
Puntatore all'interfaccia IOleClientSite nell'oggetto del sito client caricato.
[out] ppvObj
Indirizzo della variabile del puntatore che riceve il puntatore di interfaccia richiesto in riid. Al termine della restituzione, *ppvObj contiene il puntatore di interfaccia richiesto nell'oggetto appena caricato.
Valore restituito
Questa funzione restituisce S_OK in caso di esito positivo. Altri valori possibili includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
L'oggetto non supporta l'interfaccia specificata. |
Inoltre, questa funzione può restituire uno dei valori di errore restituiti dal metodo IPersistStorage::Load .
Commenti
I contenitori OLE caricano oggetti in memoria chiamando questa funzione. Quando si chiama la funzione OleLoad , l'applicazione contenitore passa un puntatore all'oggetto di archiviazione aperto in cui viene archiviato l'oggetto annidato. In genere, l'oggetto annidato da caricare è un oggetto di archiviazione figlio nell'oggetto di archiviazione radice del contenitore. Usando le informazioni OLE archiviate con l'oggetto , il gestore dell'oggetto (in genere, il gestore predefinito) tenta di caricare l'oggetto. Al termine della funzione OleLoad , si dice che l'oggetto sia nello stato caricato con l'applicazione oggetto non in esecuzione.
Alcune applicazioni caricano tutti i dati nativi dell'oggetto. I contenitori spesso rinviano il caricamento degli oggetti contenuti fino a quando non è necessario farlo. Ad esempio, finché non viene eseguito lo scorrimento di un oggetto nella visualizzazione e deve essere disegnato, non è necessario caricarlo.
La funzione OleLoad esegue i passaggi seguenti:
- Se necessario, esegue una conversione automatica dell'oggetto (vedere la funzione OleDoAutoConvert ).
- Ottiene il CLSID dall'oggetto di archiviazione aperto chiamando il metodo IStorage::Stat .
- Chiama la funzione CoCreateInstance per creare un'istanza del gestore. Se il codice del gestore non è disponibile, viene usato il gestore predefinito (vedere la funzione OleCreateDefaultHandler ).
- Chiama il metodo IOleObject::SetClientSite con il parametro pClientSite per informare l'oggetto del relativo sito client.
- Chiama il metodo QueryInterface per l'interfaccia IPersistStorage . In caso di esito positivo, il metodo IPersistStorage::Load viene richiamato per l'oggetto .
- Esegue query e restituisce l'interfaccia identificata dal parametro riid .
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | ole2.h |
Libreria | Ole32.lib |
DLL | Ole32.dll |