SHSetInstanceExplorer 函数 (shlobj_core.h)
提供允许托管 Shell 扩展和其他组件防止其主机进程过早关闭的接口。 主机进程通常是 Windows 资源管理器或 Windows Internet Explorer,但其他应用程序也可以使用此函数。
语法
void SHSetInstanceExplorer(
[in, optional] IUnknown *punk
);
参数
[in, optional] punk
类型: IUnknown*
指向自由线程 IUnknown 的指针。 组件可以通过 SHGetInstanceExplorer) 使用此接口 (,以防止主机进程终止。 此值可以为 NULL,在这种情况下,进程引用不再可供组件使用。
返回值
无
备注
Windows Explorer 和 Internet Explorer 可以使用 SHSetInstanceExplorer 来允许 Shell 扩展等组件延长进程的生存期。 其他应用程序也可以使用 SHSetInstanceExplorer 来允许相同的功能。 例如,浏览器消息循环和代理桌面使用 SHSetInstanceExplorer 让其他线程延长其生存期。
调用此函数的 Windows Explorer 和 Internet Explorer 以外的应用程序可能会遇到兼容性问题,因为某些组件使用 SHGetInstanceExplorer 来检测它们是从 Windows Explorer 还是 Internet Explorer 中托管的。
传递给 SHSetInstanceExplorer 的 接口指针必须引用自由线程对象。
每次组件调用 SHGetInstanceExplorer 时,系统都会调用 AddRef 方法,然后再返回指向调用组件的接口指针。 处理完成后,组件会调用 IUnknown::Release 方法。 当提供的接口指针的引用计数为非零时,调用 SHSetInstanceExplorer 的进程不得终止。
有关组件如何使用进程引用的详细信息,请参阅 SHGetInstanceExplorer。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | shlobj_core.h (包括 Shlobj.h) |
Library | Shell32.lib |
DLL | Shell32.dll (5.0 或更高版本) |
API 集 | ext-ms-win-shell-shell32-l1-2-1 (在 Windows 10 版本 10.0.10240 中引入) |