SHSetInstanceExplorer

ホストされたシェル拡張やその他のコンポーネントが、それらのホストプロセスの早期終了を防ぐためのインターフェイスを提供する。

SHSetInstanceExplorer punk

punk : [var] 型: IUnknown* フリースレッドの IUnknown へのポインター。コンポーネントは (SHGetInstanceExplorer を介して) このインターフェイスを使ってホストプロセスの終了を防ぐことができる。この値は NULL でもよく、その場合、プロセス参照はコンポーネントから利用できなくなる。

(プラグイン / モジュール : shell32.dll)

解説

ホストされたシェル拡張やその他のコンポーネントが、それらのホストプロセスの早期終了を防ぐためのインターフェイスを提供する。

[備考]
Windows Explorer と Internet Explorer
は、シェル拡張などのコンポーネントがプロセスの存続期間を延長できるようにするために SHSetInstanceExplorer
を使用できる。他のアプリケーションも同じ機能を提供するために SHSetInstanceExplorer
を使用できる。たとえば、ブラウザのメッセージループとプロキシデスクトップは、他のスレッドが自分たちの存続期間を延長できるようにするために
SHSetInstanceExplorer を使用する。Windows Explorer と Internet Explorer
以外のアプリケーションがこの関数を呼び出すと、互換性の問題に遭遇する可能性がある。なぜなら、いくつかのコンポーネントは Windows
Explorer や Internet Explorer 内でホストされているかどうかを検出するために
SHGetInstanceExplorer を使用するからである。SHSetInstanceExplorer
に渡されるインターフェイスポインターはフリースレッドオブジェクトを参照していなければならない。コンポーネントが
SHGetInstanceExplorer を呼び出すたびに、システムはインターフェイスポインターを呼び出し側コンポーネントに返す前に
AddRef メソッドを呼び出す。コンポーネントは処理が完了したときに IUnknown::Release
メソッドを呼び出す。SHSetInstanceExplorer
を呼び出したプロセスは、提供されたインターフェイスポインターの参照カウントが非ゼロの間は終了してはならない。コンポーネントがプロセス参照をどのように使用するかの詳細は、SHGetInstanceExplorer
を参照。

情報

プラグイン / モジュールshell32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の shell32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_shell32_gen2.hs