次の方法で共有


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 で導入)

こちらもご覧ください

SHGetInstanceExplorer