IShellIconOverlay インターフェイス (shlobj_core.h)
名前空間拡張によって使用されるメソッドを公開して、それに含まれるオブジェクトのアイコン オーバーレイを指定します。
継承
IShellIconOverlay インターフェイスは、IUnknown インターフェイスから継承されます。 IShellIconOverlay には、次の種類のメンバーもあります。
メソッド
IShellIconOverlay インターフェイスには、これらのメソッドがあります。
IShellIconOverlay::GetOverlayIconIndex システム イメージの一覧のアイコン オーバーレイのインデックスを取得します。 |
IShellIconOverlay::GetOverlayIndex システム イメージの一覧のオーバーレイ インデックスを取得します。 |
解説
アイコン オーバーレイは、Shell オブジェクトを表すアイコンの左下隅に配置された小さな画像です。 通常は、アイコンにいくつかの追加情報を追加するために使用されます。 よく使用されるアイコン オーバーレイは、ファイルまたはフォルダー アイコンがショートカットを表していることを示す小さな矢印です。
アイコン オーバーレイは、システム イメージの一覧の一部です。 これらは 2 つの識別子を持っています。 1 つは、イメージ リスト内の他のオーバーレイに対するオーバーレイを相対的に識別する 1 から始まるオーバーレイ インデックスです。 もう 1 つは、実際のイメージを識別するイメージ インデックスです。 これら 2 つのインデックスは、ImageList::SetOverlayImage を使用してプライベート イメージ リストにアイコン オーバーレイを追加するときに、それぞれ iOverlay パラメーターと iImage パラメーターに割り当てる値と同じです。
オブジェクトのアイコンを表示する前に、シェルは関連付けられているフォルダーの IShellIconOverlay インターフェイスを呼び出して、オブジェクトのアイコンにオーバーレイが必要かどうかを照会します。 通常、 IShellIconOverlay::GetOverlayIndex を呼び出して、オーバーレイのオーバーレイ インデックスを要求します。 シェルが IShellIconOverlay::GetOverlayIconIndex を呼び出してオーバーレイのイメージ インデックスを要求する場合があります。 アイコン オーバーレイを指定するには、メソッドは要求されたインデックスを返す必要があります。 それ以外の場合は、S_FALSEを返します。
アイコン オーバーレイを指定するには、最初に SHGetIconOverlayIndex を呼び出して、システム イメージ リスト内のオーバーレイのオーバーレイ インデックスを取得する必要があります。 SHGetIconOverlayIndex が初めて呼び出されると、シェルはファイル内のオーバーレイのファイル名とインデックスを使用して、イメージをシステム イメージ リストに追加します。 オーバーレイがシステム イメージ リストに含まれると、シェルは単にファイル名とインデックスを識別子として使用します。 SHGetIconOverlayIndex を使用して、いくつかの標準システム オーバーレイのオーバーレイ インデックスを取得することもできます。 IShellIconOverlay::GetOverlayIndex は、単にオーバーレイ インデックスをシェルに返します。 IShellIconOverlay::GetOverlayIconIndex では、INDEXTOOVERLAYMASK マクロを使用して、オーバーレイ インデックスを同等のイメージ インデックスに変換する必要があります。
システムがサポートできるさまざまなアイコン オーバーレイ ハンドラーの数は、システム イメージ リストのアイコン オーバーレイに使用できる領域によって制限されます。 現在、アイコン オーバーレイ用に割り当てられているスロットは 15 個あり、その一部はシステムによって予約されています。 このため、アイコン オーバーレイは、十分な代替手段がない場合にのみ指定する必要があります。
このインターフェイスは、オブジェクトのアイコン オーバーレイを指定する必要がある名前空間拡張機能によって実装されます。
このインターフェイスは、通常、アプリケーションでは使用されません。
要件
サポートされている最小のクライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | shlobj_core.h |