SetProcessReference 関数 (shlwapi.h)
ホスト シェル拡張機能やその他のコンポーネントがホスト プロセスが途中で終了するのを防ぐコンポーネント オブジェクト モデル (COM) オブジェクトを提供します。 ホスト プロセスは通常、Windows エクスプローラーまたは Windows インターネット エクスプローラーですが、この関数は他のアプリケーションでも使用できます。
構文
void SetProcessReference(
[in, optional] IUnknown *punk
);
パラメーター
[in, optional] punk
参照を格納するオブジェクトへのポインター。 この値には NULL を指定できます。
戻り値
なし
解説
Windows エクスプローラー とインターネット エクスプローラーでは、SetProcessReference を使用して、シェル拡張機能などのコンポーネントでプロセスの有効期間を延長できます。 他のアプリケーションでは 、SetProcessReference を使用して同じ機能を使用することもできます。 たとえば、ブラウザー メッセージ ループとプロキシ デスクトップでは 、SetProcessReference を使用して、他のスレッドが有効期間を延ばします。
この関数を呼び出す Windows エクスプローラー およびインターネット エクスプローラー以外のアプリケーションでは、互換性の問題が発生する可能性があります。一部のコンポーネントでは、SetProcessReference を使用して Windows エクスプローラー またはインターネット エクスプローラー内からホストされているかどうかを検出するためです。
SetProcessReference に渡されるインターフェイス ポインターは、フリースレッド オブジェクトを参照する必要があります。
コンポーネントが GetProcessReference を呼び出すたびに、システムは呼び出し元コンポーネントへのインターフェイス ポインターを返す前に AddRef メソッドを呼び出します。 処理が完了すると、コンポーネントは IUnknown::Release メソッドを呼び出します。 SetProcessReference を呼び出すプロセスは、指定されたインターフェイス ポインターの参照カウントが 0 以外の場合に終了することはできません。
コンポーネントでプロセス参照を使用する方法の詳細については、「 GetProcessReference」を参照してください。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shlwapi.h |
Library | Shlwapi.lib |
[DLL] | Api-ms-win-shcore-thread-L1-1-0.dll |