setProcessReference 函数 (shlwapi.h)

提供组件对象模型 (COM) 对象,该对象允许托管 Shell 扩展和其他组件防止其主机进程过早关闭。 主机进程通常是 Windows 资源管理器或 Windows Internet Explorer,但其他应用程序也可以使用此函数。

语法

void SetProcessReference(
  [in, optional] IUnknown *punk
);

参数

[in, optional] punk

指向要存储引用的 对象的指针。 此值可以为 NULL

返回值

备注

Windows Explorer 和 Internet Explorer 可以使用 SetProcessReference 来允许 Shell 扩展等组件延长进程的生存期。 其他应用程序也可以使用 SetProcessReference 来允许相同的功能。 例如,浏览器消息循环和代理桌面使用 SetProcessReference 让其他线程延长其生存期。

调用此函数的 Windows Explorer 和 Internet Explorer 以外的应用程序可能会遇到兼容性问题,因为某些组件使用 SetProcessReference 来检测它们是从 Windows Explorer 还是 Internet Explorer 中托管的。

传递给 SetProcessReference 的 接口指针必须引用自由线程对象。

每次组件调用 GetProcessReference 时,系统都会调用 AddRef 方法,然后再返回指向调用组件的接口指针。 处理完成后,组件会调用 IUnknown::Release 方法。 当提供的接口指针的引用计数为非零时,调用 SetProcessReference 的进程不得终止。

有关组件如何使用进程引用的详细信息,请参阅 GetProcessReference

要求

   
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows
标头 shlwapi.h
Library Shlwapi.lib
DLL Api-ms-win-shcore-thread-L1-1-0.dll

另请参阅

GetProcessReference

SHSetInstanceExplorer

Windows API 集