SHGetInstanceExplorer 関数 (shlobj_core.h)
ホストされたシェル拡張機能やその他のコンポーネントが、ホスト プロセスが途中で終了するのを防ぐインターフェイスを取得します。 ホスト プロセスは通常、Windows エクスプローラーまたは Windows インターネット エクスプローラーですが、この関数は他のアプリケーションでも使用できます。
構文
SHSTDAPI SHGetInstanceExplorer(
[out] IUnknown **ppunk
);
パラメーター
[out] ppunk
種類: IUnknown**
この関数が正常に返されると、ホスト プロセスの IUnknown インターフェイス ポインターのアドレスが格納されます。 これは、ホスト プロセスが終了するのを防ぐために使用されるフリースレッド インターフェイスです。 関数呼び出しが失敗した場合、この値は NULL に設定 されます。
戻り値
型: HRESULT
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
注釈
DLL として実装され、Windows エクスプローラー (Explorer.exe) やインターネット エクスプローラー (Iexplore.exe) などのホスト プロセスで実行される、シェル拡張ハンドラーなどの多くのコンポーネントがあります。 通常、ユーザーがホスト プロセスを閉じると、コンポーネントもすぐにシャットダウンされます。 このような突然の終了により、一部のコンポーネントで問題が発生する可能性があります。 たとえば、コンポーネントがバックグラウンド スレッドを使用してデータをダウンロードしたり、ユーザー インターフェイス関数を実行したりする場合、それ自体を安全にシャットダウンするために追加の時間が必要になる場合があります。
SHGetInstanceExplorer を使用すると、ホスト プロセスで実行されるコンポーネントがホスト プロセスの参照を保持できます。 SHGetInstanceExplorer は、ホストの参照カウントをインクリメントし、ホストの IUnknown インターフェイスへのポインターを返します。 その参照を保持することで、コンポーネントはホスト プロセスが途中で終了するのを防ぐことができます。 コンポーネントが必要な処理を完了したら、 (*ppunk)->Release を呼び出してホストの参照を解放し、プロセスの終了を許可する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | shlobj_core.h (Shlobj.h を含む) |
Library | Shell32.lib |
[DLL] | Shell32.dll (バージョン 4.0 以降) |