次の方法で共有


IExtractIconW インターフェイス (shlobj_core.h)

クライアントがフォルダー内のいずれかのオブジェクトに関連付けられているアイコンを取得できるようにするメソッドを公開します。

継承

IExtractIcon インターフェイスは、IUnknown インターフェイスから継承します。 IExtractIcon には、次の種類のメンバーもあります。

メソッド

IExtractIconW インターフェイスには、これらのメソッドがあります。

 
IExtractIconW::Extract

指定した場所からアイコンイメージを抽出します。 (Unicode)
IExtractIconW::GetIconLocation

アイコンの場所とインデックスを取得します。 (Unicode)

備考

オブジェクトのアイコンを取得するには、2 つの方法があります。 最も簡単な方法は、SHGetFileInfo呼び出す方法です。 ただし、この方法は柔軟性がなく、遅くなる可能性があります。 項目のアイコンを取得するより柔軟で効率的な方法は、IExtractIcon使用することです。 シェルは、IExtractIcon を使用して、フォルダーの内容を表示するときにアイコンを取得します。 IExtractIcon を使用してオブジェクトのアイコンを取得するには、次の操作を行います。

  1. オブジェクトを含むフォルダーの IShellFolder インターフェイスへのポインターを取得します。
  2. オブジェクト 項目識別子リスト (PIDL) へのポインターと IExtractIcon (IID_IExtractIcon) のインターフェイス ID を使用して、 IShellFolder::GetUIObjectOf を呼び出します。 このフォルダーは、アイコン抽出を処理するオブジェクトを作成し、IExtractIcon インターフェイス ポインター オブジェクトを返します。
  3. IExtractIcon::GetIconLocation 呼び出して、アイコンの場所を取得します。
  4. IExtractIcon::Extract 呼び出して、アイコンのハンドルを取得します。
また、バックグラウンド スレッドで非同期的にアイコンを抽出することもできます。 この方法は、抽出が時間のかかる操作である場合に便利です。 詳細については、IExtractIcon::GetIconLocationを参照してください。

名前空間拡張機能、IExtractIcon 実装してオブジェクトのアイコンを提供します。 クライアントは、フォルダーの IShellFolder::GetUIObjectOf メソッドを呼び出すことによって、フォルダー内のオブジェクトの IExtractIcon インターフェイス ポインターを取得します。 IShellFolder::GetUIObjectOf 実装では、アイコンの抽出を処理し、オブジェクトの IExtractIcon インターフェイスへのポインターを返すオブジェクトを作成する必要があります。

アイコン ハンドラー IExtractIcon実装することもできます。 アイコン ハンドラーは、ファイルの種類のメンバーにアイコンを動的に割り当てできるシェル拡張ハンドラーの一種です。

アプリケーションで SHGetFileInfoよりも柔軟にオブジェクトのアイコンを取得する方法 必要がある場合は、このインターフェイスを呼び出します。

手記

shlobj_core.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして IExtractIcon を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー shlobj_core.h