GetProcessReference 関数 (shlwapi.h)
SetProcessReference によって提供されるプロセス固有のオブジェクトを取得し、参照カウントをインクリメントしてプロセスを維持します。
構文
LWSTDAPI GetProcessReference(
[out] IUnknown **punk
);
パラメーター
[out] punk
この関数が正常に返されるときに、 SetProcessReference によってプロセスに指定されたオブジェクトを指すポインターのアドレス。 このリソースが不要になった場合、アプリケーションはリソースを解放する必要があります。
フリースレッド IUnknown へのポインター。 コンポーネントでは、このインターフェイス ( SHGetInstanceExplorer 経由) を使用して、ホスト プロセスが終了しないようにすることができます。 この値は NULL にすることができます。この場合、プロセス参照はコンポーネントで使用できなくなります。
戻り値
なし
解説
DLL として実装され、Windows エクスプローラー (Explorer.exe) や Windows インターネット エクスプローラー (Iexplore.exe) などのホスト プロセスで実行される、シェル拡張ハンドラーなどのコンポーネントがいくつかあります。 通常、ユーザーがホスト プロセスを閉じると、コンポーネントも直ちにシャットダウンされます。 このような突然の終了により、一部のコンポーネントに問題が発生する可能性があります。 たとえば、コンポーネントがバックグラウンド スレッドを使用してデータをダウンロードしたり、ユーザー インターフェイス関数を実行したりする場合、安全にシャットダウンするために追加の時間が必要になる場合があります。
GetProcessReference を使用すると、ホスト プロセスで実行されるコンポーネントは、ホスト プロセス上の参照を保持できます。 GetProcessReference は、ホストの参照カウントをインクリメントし、ホストの IUnknown インターフェイスへのポインターを返します。 その参照を保持することで、コンポーネントはホスト プロセスが途中で閉じるのを防ぐことができます。 コンポーネントが必要な処理を完了したら、 (*punk)->Release を呼び出してホストの参照を解放し、プロセスを終了できるようにする必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shlwapi.h |
Library | Shlwapi.lib |
[DLL] | Api-ms-win-shcore-thread-L1-1-0.dll |