Share via


IShellIconOverlay::GetOverlayIndex メソッド (shlobj_core.h)

システム イメージの一覧のオーバーレイ インデックスを取得します。

構文

HRESULT GetOverlayIndex(
  [in]      PCUITEMID_CHILD pidl,
  [in, out] int             *pIndex
);

パラメーター

[in] pidl

種類: PCUITEMID_CHILD

アイコンが表示されているオブジェクトを識別する ITEMIDLIST 構造体へのポインター。

[in, out] pIndex

型: int*

システム イメージ リスト内のオーバーレイ インデックス (1 から始まる) を示す値へのポインター。 このインデックスは、ImageList::SetOverlayImage 関数を使用してプライベート イメージ リストにオーバーレイ イメージを追加するときに指定される iOverlay 値と同じです。

戻り値

型: HRESULT

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
オーバーレイのインデックスが見つかりました。
S_FALSE
このファイルのオーバーレイは存在しません。
E_FAIL
PIDL が無効です。
E_INVALIDARG
引数が無効です (たとえば、 pIndexNULL の場合)。
E_PENDING
呼び出し元のアプリケーションは、オーバーレイ インデックスの計算操作に時間がかかることを示すために、OI_ASYNCを渡しました。

注釈

システム イメージ リスト内のオーバーレイ インデックスを取得するには、 SHGetIconOverlayIndex を呼び出します。

このメソッドを呼び出すときに pIndex が OI_ASYNC を指すように設定した場合、シェル アイコン オーバーレイ ハンドラーは、オーバーレイ インデックスを pIndex に格納するのではなく、E_PENDINGを返す場合があります。 この戻り値は、オーバーレイの計算が遅い操作であり、バックグラウンドで処理する必要があることを示します。 IShellIconOverlay 実装がE_PENDINGを返すと、OI_ASYNC フラグなしでバックグラウンド ワーカー スレッドで呼び出されます。 GetOverlayIndex を呼び出すときに OI_ASYNC を使用しない場合、オーバーレイ ハンドラーはオーバーレイ インデックスを計算し、返す前に pIndex に値を格納する必要があります。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー shlobj_core.h
[DLL] Shell32.dll (バージョン 5.0 以降)

こちらもご覧ください

IShellIconOverlay