Compartir a través de


Función GetProcessReference (shlwapi.h)

Recupera el objeto específico del proceso proporcionado por SetProcessReference, incrementando el recuento de referencias para mantener activo el proceso.

Sintaxis

LWSTDAPI GetProcessReference(
  [out] IUnknown **punk
);

Parámetros

[out] punk

La dirección de un puntero que, cuando esta función vuelve correctamente, apunta al objeto proporcionado al proceso por SetProcessReference. La aplicación es responsable de liberar este recurso cuando ya no es necesario.

Puntero a un IUnknown de subproceso libre. Los componentes pueden usar esta interfaz (a través de SHGetInstanceExplorer) para evitar que el proceso de host termine. Este valor puede ser NULL, en cuyo caso la referencia del proceso ya no está disponible para los componentes.

Valor devuelto

None

Observaciones

Hay varios componentes, como controladores de extensión de Shell, que se implementan como archivos DLL y se ejecutan en un proceso de host, como Windows Explorer (Explorer.exe) o Windows Internet Explorer (Iexplore.exe). Normalmente, cuando el usuario cierra el proceso de host, el componente también se apaga inmediatamente. Esta terminación repentina 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.

GetProcessReference permite que los componentes que se ejecutan en un proceso de host contengan una referencia en el proceso de host. GetProcessReference 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 de host se cierre prematuramente. Después de que el componente haya completado su procesamiento necesario, debe llamar a (*punk)->Release para liberar la referencia del host y permitir que el proceso finalice.

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlwapi.h
Library Shlwapi.lib
Archivo DLL Api-ms-win-shcore-thread-L1-1-0.dll

Consulte también

SHGetInstanceExplorer

SetProcessReference

Conjuntos de API de Windows