Condividi tramite


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.

Nota Se SHGetInstanceExplorer ha esito positivo, il componente deve rilasciare il riferimento dell'host quando non è più necessario. In caso contrario, tutte le risorse associate al processo rimarranno in memoria. L'interfaccia IUnknown puntata da *ppunk può essere usata solo per rilasciare questo riferimento. I componenti non possono usare (*ppunk)->QueryInterface per richiedere altri puntatori di interfaccia.
 
SHGetInstanceExplorer riesce solo se viene chiamato da un'applicazione che in precedenza ha chiamato SHSetInstanceExplorer per impostare un riferimento al processo.

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)