SHSetInstanceExplorer 関数 (shlobj_core.h)
ホスト シェル拡張機能やその他のコンポーネントがホスト プロセスが途中で終了するのを防ぐインターフェイスを提供します。 ホスト プロセスは通常、Windows エクスプローラーまたは Windows インターネット エクスプローラーですが、この関数は他のアプリケーションでも使用できます。
構文
void SHSetInstanceExplorer(
[in, optional] IUnknown *punk
);
パラメーター
[in, optional] punk
種類: IUnknown*
フリースレッド IUnknown へのポインター。 コンポーネントは、このインターフェイス ( SHGetInstanceExplorer 経由) を使用して、ホスト プロセスが終了するのを防ぐことができます。 この値には NULL を指定できます。この場合、プロセス参照はコンポーネントで使用できなくなります。
戻り値
なし
解説
Windows エクスプローラー とインターネット エクスプローラーでは、SHSetInstanceExplorer を使用して、シェル拡張機能などのコンポーネントでプロセスの有効期間を延長できます。 他のアプリケーションでは 、SHSetInstanceExplorer を使用して同じ機能を使用することもできます。 たとえば、ブラウザー メッセージ ループとプロキシ デスクトップでは SHSetInstanceExplorer を使用して、他のスレッドが有効期間を延長できるようにします。
この関数を呼び出す Windows エクスプローラー およびインターネット エクスプローラー以外のアプリケーションでは、互換性の問題が発生する可能性があります。一部のコンポーネントでは、SHGetInstanceExplorer を使用して Windows エクスプローラー 内からホストされているか、インターネット エクスプローラー内からホストされているかを検出するためです。
SHSetInstanceExplorer に渡されるインターフェイス ポインターは、フリースレッド オブジェクトを参照する必要があります。
コンポーネントが SHGetInstanceExplorer を呼び出すたびに、システムは呼び出し元コンポーネントへのインターフェイス ポインターを返す前に AddRef メソッドを呼び出します。 処理が完了すると、コンポーネントは IUnknown::Release メソッドを呼び出します。 SHSetInstanceExplorer を呼び出すプロセスは、指定されたインターフェイス ポインターの参照カウントが 0 以外である間は終了できません。
コンポーネントでプロセス参照を使用する方法の詳細については、「 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 で導入) |