SHSetInstanceExplorer 函式 (shlobj_core.h)

提供介面,允許裝載的殼層延伸模組和其他元件防止其主機進程提前關閉。 主機進程通常是 Windows 檔案總管或 Windows Internet Explorer,但其他應用程式也可以使用此函式。

語法

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

參數

[in, optional] punk

類型: IUnknown*

自由線程 IUnknown 的指標。 元件可以透過 SHGetInstanceExplorer) 使用此介面 (,以防止主機進程終止。 這個值可以是 NULL,在此情況下,進程參考已不再提供給元件使用。

傳回值

備註

Windows Explorer 和 Internet Explorer 可以使用 SHSetInstanceExplorer 來允許 Shell 擴充功能等元件延長程式的存留期。 其他應用程式也可以使用 SHSetInstanceExplorer 來允許相同的功能。 例如,瀏覽器訊息迴圈和 Proxy 桌面會使用 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)
程式庫 Shell32.lib
Dll Shell32.dll (5.0 版或更新版本)
API 集合 ext-ms-win-shell-shell32-l1-2-1 (在 Windows 10 10.0.10240 版中引進)

另請參閱

SHGetInstanceExplorer