getProcessReference 函数 (shlwapi.h)
检索 SetProcessReference 提供的特定于进程的对象,并递增引用计数以使进程保持活动状态。
语法
LWSTDAPI GetProcessReference(
[out] IUnknown **punk
);
参数
[out] punk
当此函数成功返回时,指针的地址指向 SetProcessReference 提供给进程的 对象。 应用程序负责在不再需要时释放此资源。
指向自由线程 IUnknown 的指针。 组件可以通过 SHGetInstanceExplorer) 使用此接口 (,以防止主机进程终止。 此值可以为 NULL,在这种情况下,进程引用不再可供组件使用。
返回值
无
备注
有许多组件(如 Shell 扩展处理程序)作为 DLL 实现,并在主机进程中运行,例如 Windows 资源管理器 (Explorer.exe) 或 Windows Internet Explorer (Iexplore.exe) 。 通常,当用户关闭主机进程时,组件也会立即关闭。 这种突然终止可能会给某些组件造成问题。 例如,如果组件使用后台线程下载数据或运行用户界面函数,则可能需要额外的时间来安全地关闭自身。
GetProcessReference 允许在主机进程中运行的组件在主机进程上保存引用。 GetProcessReference 递增主机的引用计数,并返回指向主机的 IUnknown 接口的指针。 通过保留该引用,组件可以防止主机进程过早关闭。 组件完成其必要的处理后,应调用 (*punk) -Release> 以释放主机的引用,并允许进程终止。
注意 如果 GetProcessReference 成功,则组件必须在不再需要主机的引用时释放该引用。 否则,与进程关联的所有资源都将保留在内存中。 *punk 指向的 IUnknown 接口只能用于释放此引用。 组件不能使用 (*punk) ->QueryInterface 来请求其他接口指针。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
目标平台 | Windows |
标头 | shlwapi.h |
Library | Shlwapi.lib |
DLL | Api-ms-win-shcore-thread-L1-1-0.dll |