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

関連項目

GetProcessReference

SHSetInstanceExplorer

Windows API セット