IShellIconOverlayManager
COM公式ドキュメント
IShellIconOverlayManager は変更される場合や利用できない場合があります。
解説(Remarks)
アイコンオーバーレイは、Windows エクスプローラーまたはデスクトップでシェルオブジェクトを表すアイコンの左下隅に配置される小さな画像です。オブジェクトの通常のアイコンに追加情報を付与するために使用されます。よく使われるアイコンオーバーレイとして、ファイルやフォルダーが実際にはリンクであることを示す小さな矢印があります。詳細については、IShellIconOverlay を参照してください。
このインターフェイスは、すべてのアイコンオーバーレイハンドラーで実装する必要があります。
このインターフェイスは通常、アプリケーションから呼び出されることはありません。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定した属性を持つ指定ファイルについて、アイコンオーバーレイのインデックスまたはアイコン画像のインデックスを取得します。
| pwszPath | LPWSTR | in | ファイルのフルパス。 |
| dwAttrib | DWORD | in | ファイルの属性。このパラメーターには、Windows ヘッダーファイルで定義されているファイル属性フラグ (FILE_ATTRIBUTE_*) の任意の組み合わせを指定できます。File Attribute Constants を参照してください。 |
| pIndex | INT* | out | システムイメージリスト内のアイコンインデックスへのポインター。 |
| dwflags | DWORD | in | アイコンオーバーレイのインデックスを取得するには SIOM_OVERLAYINDEX を使用します。アイコン画像のインデックスを取得するには SIOM_ICONINDEX を使用します。 |
戻り値
型: HRESULT
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 適切なインデックスが見つかりました。 | |
| 何らかの理由による失敗。 |
予約済みオーバーレイのいずれかから、指定した属性を持つ指定ファイルについてアイコンオーバーレイのインデックスまたはアイコン画像のインデックスを取得します。
| pwszPath | LPWSTR | inoptional | ファイルのフルパス。 |
| dwAttrib | DWORD | in | ファイルの属性。このパラメーターには、Windows ヘッダーファイルで定義されているファイル属性フラグ (FILE_ATTRIBUTE_*) の任意の組み合わせを指定できます。File Attribute Constants を参照してください。 |
| pIndex | INT* | out | dwflags の値に応じて、アイコン画像またはアイコンオーバーレイのインデックス。 |
| dwflags | DWORD | in | アイコンオーバーレイのインデックスを取得するには SIOM_OVERLAYINDEX を使用します。アイコン画像のインデックスを取得するには SIOM_ICONINDEX を使用します。 |
| iReservedID | INT | in | 予約済みのアイコンオーバーレイ ID。 |
戻り値
型: HRESULT
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 適切なインデックスが見つかりました。 | |
| 何らかの理由による失敗。 |
オーバーレイキャッシュ、イメージリスト、またはその両方を更新します。
| dwFlags | DWORD | in | 何を更新するかを決定します。次のいずれかをビット単位の OR で指定できます。 SIOM_ICONINDEXアイコンをイメージリストに再読み込みします。 SIOM_OVERLAYINDEXオーバーレイキャッシュを再読み込みします。 |
戻り値
型: HRESULT
このメソッドは常に S_OK を返します。
現在読み込まれていない、登録済みのオーバーレイ識別子(ハンドラー)を読み込みます。
戻り値
型: HRESULT
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| メモリ不足ではありません。 | |
| メモリ不足です。 |
指定したアイコン画像に対応するオーバーレイ画像のインデックスを検索します。アイコンに対応するものが見つからない場合、オーバーレイを追加することもできます。
| iImage | INT | in | 検索対象となる既存のシェルイメージリストのインデックス。 |
| piIndex | INT* | out | 返されるオーバーレイインデックス。 |
| fAdd | BOOL | in | 該当する画像がまだ存在しない場合に追加するかどうか。 |
戻り値
型: HRESULT
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 画像インデックスが見つかりました。 | |
| エラーが発生したか、画像が見つかりませんでした。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IShellIconOverlayManager "{F10B5E34-DD3B-42A7-AA7D-2F4EC54BB09B}" #usecom global IShellIconOverlayManager IID_IShellIconOverlayManager "{}" #comfunc global IShellIconOverlayManager_GetFileOverlayInfo 3 wstr,int,var,int #comfunc global IShellIconOverlayManager_GetReservedOverlayInfo 4 wstr,int,var,int,int #comfunc global IShellIconOverlayManager_RefreshOverlayImages 5 int #comfunc global IShellIconOverlayManager_LoadNonloadedOverlayIdentifiers 6 #comfunc global IShellIconOverlayManager_OverlayIndexFromImageIndex 7 int,var,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IShellIconOverlayManager "{F10B5E34-DD3B-42A7-AA7D-2F4EC54BB09B}" #usecom global IShellIconOverlayManager IID_IShellIconOverlayManager "{}" #comfunc global IShellIconOverlayManager_GetFileOverlayInfo 3 wstr,int,sptr,int #comfunc global IShellIconOverlayManager_GetReservedOverlayInfo 4 wstr,int,sptr,int,int #comfunc global IShellIconOverlayManager_RefreshOverlayImages 5 int #comfunc global IShellIconOverlayManager_LoadNonloadedOverlayIdentifiers 6 #comfunc global IShellIconOverlayManager_OverlayIndexFromImageIndex 7 int,sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。