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
このメソッドは、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
オーバーレイのインデックスが見つかりました。 |
|
このファイルのオーバーレイは存在しません。 |
|
PIDL が無効です。 |
|
引数が無効です (たとえば、 pIndex が NULL の場合)。 |
|
呼び出し元のアプリケーションは、オーバーレイ インデックスの計算操作に時間がかかることを示すために、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 以降) |