Condividi tramite


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