Funzione SHGetInstanceExplorer (shlobj_core.h)
Recupera un'interfaccia che consente alle estensioni shell ospitate e ad altri componenti di impedire la chiusura prematura del processo host. Il processo host è in genere Windows Explorer o Windows Internet Explorer, ma questa funzione può essere usata anche da altre applicazioni.
Sintassi
SHSTDAPI SHGetInstanceExplorer(
[out] IUnknown **ppunk
);
Parametri
[out] ppunk
Tipo: IUnknown**
Quando questa funzione restituisce correttamente, contiene l'indirizzo del puntatore dell'interfaccia IUnknown del processo host. Si tratta di un'interfaccia a thread libero usata per impedire che il processo host venga terminato. Se la chiamata alla funzione ha esito negativo, questo valore è impostato su NULL.
Valore restituito
Tipo: HRESULT
Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Commenti
Esistono diversi componenti, ad esempio gestori di estensioni shell, implementati come DLL ed eseguiti in un processo host, ad esempio Esplora risorse (Explorer.exe) o Internet Explorer (Iexplore.exe). In genere, quando l'utente chiude il processo host, il componente viene arrestato immediatamente. Una terminazione brusca può creare problemi per alcuni componenti. Ad esempio, se un componente usa un thread in background per scaricare i dati o eseguire funzioni dell'interfaccia utente, potrebbe essere necessario tempo aggiuntivo per arrestarsi in modo sicuro.
SHGetInstanceExplorer consente ai componenti eseguiti in un processo host di contenere un riferimento nel processo host. SHGetInstanceExplorer incrementa il conteggio dei riferimenti dell'host e restituisce un puntatore all'interfaccia IUnknown dell'host. Tenendo presente tale riferimento, un componente può impedire la chiusura prematura del processo host. Dopo aver completato l'elaborazione necessaria, il componente deve chiamare (*ppunk)->Release per rilasciare il riferimento dell'host e consentire al processo di terminare.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | shlobj_core.h (include Shlobj.h) |
Libreria | Shell32.lib |
DLL | Shell32.dll (versione 4.0 o successiva) |