Funzione OleInitialize (ole2.h)
Inizializza la libreria COM nell'apartment corrente, identifica il modello di concorrenza come apartment a thread singolo (STA) e abilita funzionalità aggiuntive descritte nella sezione Osservazioni di seguito. Le applicazioni devono inizializzare la libreria COM prima di poter chiamare funzioni di libreria COM diverse da CoGetMalloc e funzioni di allocazione della memoria.
Sintassi
HRESULT OleInitialize(
[in] LPVOID pvReserved
);
Parametri
[in] pvReserved
Questo parametro è riservato e deve essere NULL.
Valore restituito
Questa funzione restituisce S_OK in caso di esito positivo. Altri valori possibili includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
La libreria COM è già inizializzata in questo appartamento. |
|
Le versioni di COMPOBJ.DLL e di OLE2.DLL nel computer sono incompatibili tra loro. |
|
Una chiamata precedente a CoInitializeEx ha specificato il modello di concorrenza per questo apartment come apartment multithread (MTA). Ciò potrebbe anche significare che si è verificato un cambiamento da apartment threaded neutro a apartment a thread singolo. |
Commenti
Le applicazioni che usano la funzionalità seguente devono chiamare OleInitialize prima di chiamare qualsiasi altra funzione nella libreria COM:
- Appunti
- Trascinamento e rilascio
- Collegamento e incorporamento di oggetti (OLE)
- Attivazione sul posto
Una volta impostato il modello di concorrenza per un apartment, non può essere modificato. Una chiamata a OleInitialize su un apartment inizializzato in precedenza come multithreading avrà esito negativo e restituirà RPC_E_CHANGED_MODE.
È necessario inizializzare la libreria COM in un apartment prima di chiamare una qualsiasi delle funzioni di libreria ad eccezione di CoGetMalloc, per ottenere un puntatore all'allocatore standard e le funzioni di allocazione della memoria.
In genere, la libreria COM viene inizializzata in un appartamento una sola volta. Le chiamate successive avranno esito positivo, purché non tentino di modificare il modello di concorrenza dell'apartment, ma restituiranno S_FALSE. Per chiudere normalmente la libreria COM, ogni chiamata riuscita a OleInitialize, incluse quelle che restituiscono S_FALSE, deve essere bilanciata da una chiamata corrispondente a OleUninitialize.
Poiché non è possibile controllare l'ordine in cui i server in-process vengono caricati o scaricati, non chiamare OleInitialize o OleUninitialize dalla funzione DllMain .
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 | ole2.h |
Libreria | Ole32.lib |
DLL | Ole32.dll |
Set di API | ext-ms-win-com-ole32-l1-1-0 (introdotto in Windows 8) |