Compartir a través de


Función SHGetInstanceExplorer (shlobj_core.h)

Recupera una interfaz que permite que las extensiones de Shell hospedadas y otros componentes impidan que su proceso de host se cierre prematuramente. Normalmente, el proceso de host es Windows Explorer o Windows Internet Explorer, pero otras aplicaciones también pueden usar esta función.

Sintaxis

SHSTDAPI SHGetInstanceExplorer(
  [out] IUnknown **ppunk
);

Parámetros

[out] ppunk

Tipo: IUnknown**

Cuando esta función vuelve correctamente, contiene la dirección del puntero de interfaz IUnknown del proceso host. Se trata de una interfaz de subproceso libre que se usa para evitar que el proceso host finalice. Si se produce un error en la llamada de función, este valor se establece en NULL.

Valor devuelto

Tipo: HRESULT

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Hay una serie de componentes, como controladores de extensión de Shell, que se implementan como archivos DLL y se ejecutan en un proceso de host como El Explorador de Windows (Explorer.exe) o Internet Explorer (Iexplore.exe). Normalmente, cuando el usuario cierra el proceso de host, el componente también se apaga inmediatamente. Esta terminación abrupta puede crear problemas para algunos componentes. Por ejemplo, si un componente usa un subproceso en segundo plano para descargar datos o ejecutar funciones de interfaz de usuario, es posible que necesite tiempo adicional para apagarse de forma segura.

SHGetInstanceExplorer permite que los componentes que se ejecutan en un proceso de host contengan una referencia en el proceso de host. SHGetInstanceExplorer incrementa el recuento de referencias del host y devuelve un puntero a la interfaz IUnknown del host. Al mantener esa referencia, un componente puede impedir que el proceso host se cierre prematuramente. Una vez que el componente haya completado su procesamiento necesario, debe llamar a (*ppunk)->Release para liberar la referencia del host y permitir que el proceso finalice.

Nota Si SHGetInstanceExplorer se realiza correctamente, el componente debe liberar la referencia del host cuando ya no sea necesario. De lo contrario, todos los recursos asociados al proceso permanecerán en memoria. La interfaz IUnknown a la que apunta *ppunk solo se puede usar para liberar esta referencia. Los componentes no pueden usar (*ppunk)->QueryInterface para solicitar otros punteros de interfaz.
 
SHGetInstanceExplorer solo se realiza correctamente si se llama desde una aplicación que había llamado anteriormente SHSetInstanceExplorer para establecer una referencia de proceso.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlobj_core.h (incluya Shlobj.h)
Library Shell32.lib
Archivo DLL Shell32.dll (versión 4.0 o posterior)