Win32 API 日本語リファレンス
ホームUI.Controls › IImageList

IImageList

COM
IID46eb5926-582e-4017-9fdf-e8998daa0950継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

イメージリストを操作したり、イメージリストとやり取りしたりするためのメソッドを公開します。

メソッド 29

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Add(HBITMAP hbmImage, HBITMAP hbmMask, INT* pi)

イメージリストに 1 つまたは複数のイメージを追加します。(IImageList.Add)

hbmImageHBITMAPinイメージを含むビットマップへのハンドルです。イメージの数はビットマップの幅から推測されます。
hbmMaskHBITMAPinoptionalマスクを含むビットマップへのハンドルです。イメージリストでマスクを使用しない場合、このパラメーターは無視されます。
piINT*outこのメソッドが返るとき、最初の新しいイメージのインデックスへのポインターが格納されます。新しいイメージの追加に失敗した場合、この値は -1 になります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::Add はビットマップを内部データ構造にコピーします。メソッドが返った後、DeleteObject 関数を使用して hbmImagehbmMask を削除する必要があります。

IImageList::Add を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 4 HRESULT ReplaceIcon(INT i, HICON hicon, INT* pi)

イメージをアイコンまたはカーソルで置き換えます。(IImageList.ReplaceIcon)

iINTin置き換えるイメージのインデックスを含む int 型の値です。i が -1 の場合、この関数はイメージをリストの末尾に追加します。
hiconHICONin新しいイメージのビットマップとマスクを含むアイコンまたはカーソルへのハンドルです。
piINT*out成功した場合は返り時にイメージのインデックスを格納する int へのポインター、そうでない場合は -1 が格納されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

システムは hicon を保存しないため、アイコンまたはカーソルが CreateIcon によって作成されたものであれば、関数が返った後に破棄できます。LoadIcon 関数によって読み込まれたものであれば、hicon を破棄する必要はありません。アイコンリソースが不要になると、システムが自動的に解放します。

IImageList::ReplaceIcon を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 5 HRESULT SetOverlayImage(INT iImage, INT iOverlay)

指定したイメージを、オーバーレイマスクとして使用されるイメージのリストに追加します。

iImageINTinイメージリスト内のイメージのゼロ始まりのインデックスを含む int 型の値です。このインデックスは、オーバーレイマスクとして使用するイメージを識別します。
iOverlayINTinオーバーレイマスクの 1 始まりのインデックスを含む int 型の値です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

オーバーレイマスクとは、別のイメージの上に透過的に描画されるイメージのことです。イメージの上にオーバーレイマスクを描画するには、IImageList::Draw を呼び出します。これらの関数の fStyle パラメーターでは、INDEXTOOVERLAYMASK マクロを使用してオーバーレイマスクのインデックスを指定できます。

イメージリストがマスクを使用して作成されていない限り、このメソッドの呼び出しは失敗し、E_INVALIDARG を返します。

IImageList::SetOverlayImage を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 6 HRESULT Replace(INT i, HBITMAP hbmImage, HBITMAP hbmMask)

イメージリスト内のイメージを新しいイメージで置き換えます。(IImageList.Replace)

iINTin置き換えるイメージのインデックスを含む int 型の値です。
hbmImageHBITMAPinイメージを含むビットマップへのハンドルです。
hbmMaskHBITMAPinoptionalマスクを含むビットマップへのハンドルです。イメージリストでマスクを使用しない場合、このパラメーターは無視されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::Replace はビットマップを内部データ構造にコピーします。メソッドが返った後、DeleteObject を使用して hbmImagehbmMask を削除する必要があります。

IImageList::Replace を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 7 HRESULT AddMasked(HBITMAP hbmImage, COLORREF crMask, INT* pi)

指定したビットマップからマスクを生成しながら、イメージリストに 1 つまたは複数のイメージを追加します。(IImageList.AddMasked)

hbmImageHBITMAPin1 つまたは複数のイメージを含むビットマップへのハンドルです。イメージの数はビットマップの幅から推測されます。
crMaskCOLORREFinマスクの生成に使用する色です。指定したビットマップ内でこの色を持つ各ピクセルは黒に変更され、マスク内の対応するビットが 1 に設定されます。このパラメーターが CLR_DEFAULT の場合、(0,0) のピクセルの色がマスクとして使用されます。
piINT*out成功した場合は返り時に最初の新しいイメージのインデックスを含む int へのポインター、そうでない場合は -1 が格納されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

注意 hbmImage で渡されたビットマップは変更されます。
IImageList::AddMasked はビットマップを内部データ構造にコピーします。色深度が 8bpp を超えるビットマップはサポートされていません。メソッドが返った後、DeleteObject 関数を使用して hbmImagecrMask を削除する必要があります。

IImageList::AddMasked を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 8 HRESULT Draw(IMAGELISTDRAWPARAMS* pimldp)

指定したデバイスコンテキストにイメージリストの項目を描画します。(IImageList.Draw)

pimldpIMAGELISTDRAWPARAMS*in描画パラメーターを含む IMAGELISTDRAWPARAMS 構造体へのポインターです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

オーバーレイイメージは、IMAGELISTDRAWPARAMSi パラメーターで指定されたプライマリイメージの上に透過的に描画されます。オーバーレイイメージは、IMAGELISTDRAWPARAMSfStyle パラメーターで、INDEXTOOVERLAYMASK マクロを使用してオーバーレイイメージの 1 始まりのインデックスをシフトすることで指定します。OR 演算子を使用して、このマクロの返り値を fStyle で指定した描画スタイルフラグと組み合わせます。あらかじめ IImageList::SetOverlayImage を使用して、このイメージをオーバーレイイメージとして指定しておく必要があります。

IImageList::Draw を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 9 HRESULT Remove(INT i)

イメージリストからイメージを削除します。(IImageList.Remove)

iINTin削除するイメージのインデックスを含む int 型の値です。このパラメーターが -1 の場合、メソッドはすべてのイメージを削除します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

イメージが削除されると、残りのイメージのインデックスは、常にゼロからイメージリスト内のイメージ数より 1 少ない値までの範囲になるように調整されます。たとえば、インデックス 0 のイメージを削除すると、イメージ 1 がイメージ 0 に、イメージ 2 がイメージ 1 に、というようになります。

IImageList::Remove を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 10 HRESULT GetIcon(INT i, DWORD flags, HICON* picon)

イメージリスト内のイメージとマスクからアイコンを作成します。

iINTinイメージのインデックスを含む int 型の値です。
flagsDWORDin描画スタイルを指定するフラグの組み合わせです。値の一覧については、IImageList::Draw を参照してください。
piconHICON*out成功した場合はアイコンへのハンドルを含む int へのポインター、そうでない場合は NULL が格納されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

呼び出し元のアプリケーションは、このメソッドから返されたアイコンを DestroyIcon を使用して破棄する必要があります。

IImageList::GetIcon を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 11 HRESULT GetImageInfo(INT i, IMAGEINFO* pImageInfo)

イメージに関する情報を取得します。

iINTinイメージのインデックスを含む int 型の値です。
pImageInfoIMAGEINFO*outイメージに関する情報を受け取る IMAGEINFO 構造体へのポインターです。この構造体内の情報を使用して、イメージのビットマップを直接操作できます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::GetImageInfo を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 12 HRESULT Copy(INT iDst, IUnknown* punkSrc, INT iSrc, DWORD uFlags)

指定したイメージリストからイメージをコピーします。

iDstINTinコピー操作のコピー先イメージのゼロ始まりのインデックスを含む int 型の値です。
punkSrcIUnknown*inコピー元イメージリストの IUnknown インターフェイスへのポインターです。
iSrcINTinコピー操作のコピー元イメージのゼロ始まりのインデックスを含む int 型の値です。
uFlagsDWORDin実行するコピー操作の種類を指定する値です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

uFlags パラメーターには次の値を指定できます。

説明
ILCF_MOVE コピー元イメージがコピー先イメージのインデックスにコピーされます。この操作の結果、特定のイメージの複数のインスタンスが生じます。
ILCF_SWAP コピー元イメージとコピー先イメージがイメージリスト内で位置を入れ替えます。

IImageList::Copy を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 13 HRESULT Merge(INT i1, IUnknown* punk2, INT i2, INT dx, INT dy, GUID* riid, void** ppv)

既存の 2 つのイメージを組み合わせて新しいイメージを作成します。このメソッドは、そのイメージを格納する新しいイメージリストも作成します。

i1INTin1 つ目の既存イメージのインデックスを含む int 型の値です。
punk2IUnknown*in2 つ目のイメージを含むイメージリストの IUnknown インターフェイスへのポインターです。
i2INTin2 つ目の既存イメージのインデックスを含む int 型の値です。
dxINTin1 つ目のイメージに対する 2 つ目のイメージのオフセットの x 成分を含む int 型の値です。
dyINTin1 つ目のイメージに対する 2 つ目のイメージのオフセットの y 成分を含む int 型の値です。
riidGUID*in新しいイメージリストのインターフェイスの IID です。
ppvvoid**out新しいイメージリストのインターフェイスへの生ポインターです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

新しいイメージは、1 つ目のイメージの上に 2 つ目のイメージを透過的に描画したもので構成されます。新しいイメージのマスクは、既存の 2 つのイメージのマスクをビット単位の OR 演算子で組み合わせて得られます。

IImageList::Merge を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 14 HRESULT Clone(GUID* riid, void** ppv)

既存のイメージリストを複製します。

riidGUID*in新しいイメージリストの IID です。
ppvvoid**out新しいイメージリストのインターフェイスへのポインターのアドレスです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::Clone を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 15 HRESULT GetImageRect(INT i, RECT* prc)

イメージのバウンディング矩形を取得します。

iINTinイメージのインデックスを含む int 型の値です。
prcRECT*outメソッドが返るときにバウンディング矩形を格納する RECT へのポインターです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::GetImageRect を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 16 HRESULT GetIconSize(INT* cx, INT* cy)

イメージリスト内のイメージの寸法を取得します。イメージリスト内のすべてのイメージは同じ寸法を持ちます。

cxINT*out各イメージの幅 (ピクセル単位) を受け取る int へのポインターです。
cyINT*out各イメージの高さ (ピクセル単位) を受け取る int へのポインターです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::GetIconSize を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 17 HRESULT SetIconSize(INT cx, INT cy)

イメージリスト内のイメージの寸法を設定し、リストからすべてのイメージを削除します。(IImageList.SetIconSize)

cxINTinイメージリスト内のイメージの幅 (ピクセル単位) を含む int 型の値です。イメージリスト内のすべてのイメージは同じ寸法を持ちます。
cyINTinイメージリスト内のイメージの高さ (ピクセル単位) を含む int 型の値です。イメージリスト内のすべてのイメージは同じ寸法を持ちます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::SetIconSize を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 18 HRESULT GetImageCount(INT* pi)

イメージリスト内のイメージ数を取得します。

piINT*outメソッドが返るときにイメージ数を格納する int へのポインターです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::GetImageCount を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 19 HRESULT SetImageCount(DWORD uNewCount)

既存のイメージリストのサイズを変更します。(IImageList.SetImageCount)

uNewCountDWORDinイメージリストの新しいサイズを指定する値です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

アプリケーションがこのメソッドを使用してイメージリストを拡張する場合、IImageList::Replace を使用して新しいイメージを追加する必要があります。アプリケーションが新しいインデックスに有効なイメージを追加しない場合、新しいインデックスを使用する描画操作の結果は予測できません。

このメソッドを使用してイメージリストのサイズを縮小する場合、収まらなくなったリスト末尾のイメージはリストから切り捨てられます。この方法で切り捨てられたイメージは自動的に解放されます。

IImageList::SetImageCount を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 20 HRESULT SetBkColor(COLORREF clrBk, COLORREF* pclr)

イメージリストの背景色を設定します。

clrBkCOLORREFin設定する背景色です。このパラメーターが CLR_NONE に設定されている場合、イメージはマスクを使用して透過的に描画されます。
pclrCOLORREF*out成功した場合は返り時に以前の背景色を格納する COLORREF へのポインター、そうでない場合は CLR_NONE が格納されます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::SetBkColor を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 21 HRESULT GetBkColor(COLORREF* pclr)

イメージリストの現在の背景色を取得します。

pclrCOLORREF*outメソッドが返るときに背景色を格納する COLORREF へのポインターです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::GetBkColor を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 22 HRESULT BeginDrag(INT iTrack, INT dxHotspot, INT dyHotspot)

イメージのドラッグを開始します。(IImageList.BeginDrag)

iTrackINTinドラッグするイメージのインデックスを含む int 型の値です。
dxHotspotINTinイメージの左上隅を基準とするドラッグ位置の x 成分を含む int 型の値です。
dyHotspotINTinイメージの左上隅を基準とするドラッグ位置の y 成分を含む int 型の値です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::BeginDrag は、ドラッグに使用する一時的なイメージリストを作成します。以降の WM_MOUSEMOVE メッセージに応答して、IImageList::DragMove を使用してドラッグイメージを移動できます。ドラッグ操作を終了するには、IImageList::EndDrag を使用します。

IImageList::BeginDrag を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 23 HRESULT EndDrag()

ドラッグ操作を終了します。(IImageList.EndDrag)

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::EndDrag を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 24 HRESULT DragEnter(HWND hwndLock, INT x, INT y)

ドラッグ操作中に指定したウィンドウの更新をロックし、ウィンドウ内の指定した位置にドラッグイメージを表示します。(IImageList.DragEnter)

hwndLockHWNDinoptionalドラッグイメージを所有するウィンドウへのハンドルです。
xINTinドラッグイメージを表示する x 座標です。座標はウィンドウのクライアント領域ではなく、左上隅を基準とします。
yINTinドラッグイメージを表示する y 座標です。座標はウィンドウのクライアント領域ではなく、左上隅を基準とします。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

ドラッグ操作を開始するには、IImageList::BeginDrag を使用します。

IImageList::DragEnter を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 25 HRESULT DragLeave(HWND hwndLock)

指定したウィンドウのロックを解除してドラッグイメージを非表示にし、ウィンドウを更新できるようにします。

hwndLockHWNDinoptionalドラッグイメージを含むウィンドウへのハンドルです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::DragLeave を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 26 HRESULT DragMove(INT x, INT y)

ドラッグアンドドロップ操作中にドラッグされているイメージを移動します。この関数は通常、WM_MOUSEMOVE メッセージに応答して呼び出されます。(IImageList.DragMove)

xINTinドラッグイメージが表示される x 座標を含む int 型の値です。座標はウィンドウのクライアント領域ではなく、左上隅を基準とします。
yINTinドラッグイメージが表示される y 座標を含む int 型の値です。座標はウィンドウのクライアント領域ではなく、左上隅を基準とします。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

ドラッグ操作を開始するには、IImageList::BeginDrag メソッドを使用します。

IImageList::DragMove を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 27 HRESULT SetDragCursorImage(IUnknown* punk, INT iDrag, INT dxHotspot, INT dyHotspot)

指定したイメージ (通常はマウスカーソルのイメージ) を現在のドラッグイメージと組み合わせて、新しいドラッグイメージを作成します。

punkIUnknown*inドラッグイメージと組み合わせる新しいイメージを含むイメージリストインターフェイスにアクセスする、IUnknown インターフェイスへのポインターです。
iDragINTinドラッグイメージと組み合わせる新しいイメージのインデックスを含む int 型の値です。
dxHotspotINTin新しいイメージ内のホットスポットの x 成分を含む int 型の値です。
dyHotspotINTin新しいイメージ内のホットスポットの x 成分を含む int 型の値です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::SetDragCursorImage を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 28 HRESULT DragShowNolock(BOOL fShow)

ドラッグされているイメージを表示または非表示にします。(IImageList.DragShowNolock)

fShowBOOLinドラッグされているイメージを表示するか非表示にするかを指定する値です。イメージを表示するには TRUE、非表示にするには FALSE を指定します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::DragShowNolock を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 29 HRESULT GetDragImage(POINT* ppt, POINT* pptHotspot, GUID* riid, void** ppv)

ドラッグイメージに使用される一時的なイメージリストを取得します。この関数は、現在のドラッグ位置と、ドラッグ位置を基準とするドラッグイメージのオフセットも取得します。

pptPOINT*outoptional現在のドラッグ位置を受け取る POINT 構造体へのポインターです。NULL にすることもできます。
pptHotspotPOINT*outoptionalドラッグ位置を基準とするドラッグイメージのオフセットを受け取る POINT 構造体へのポインターです。NULL にすることもできます。
riidGUID*inイメージリストの IID です。
ppvvoid**out成功した場合はイメージリストのインターフェイスへのポインターのアドレス、そうでない場合は NULL です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

一時的なイメージリストは、IImageList::EndDrag が呼び出されると破棄されます。ドラッグ操作を開始するには、IImageList::BeginDrag を使用します。

IImageList::GetDragImage を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 30 HRESULT GetItemFlags(INT i, IMAGE_LIST_ITEM_FLAGS* dwFlags)

イメージのフラグを取得します。

iINTinフラグを取得するイメージのインデックスを含む int 型の値です。
dwFlagsIMAGE_LIST_ITEM_FLAGS*out

メソッドが返るときにフラグを格納する DWORD へのポインターです。次のいずれかの値です。

意味
ILIF_ALPHA
0x00000001
イメージリスト内の項目がアルファチャンネルを持つことを示します。
ILIF_LOWQUALITY
0x00000002
Windows Vista 以降。 イメージリスト内の項目が StretchBlt 関数によって生成されたことを示します。そのため、イメージの品質が低下している可能性があります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::GetItemFlags を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

vtbl 31 HRESULT GetOverlayImage(INT iOverlay, INT* piIndex)

オーバーレイマスクとして使用されるイメージのリストから、指定したイメージを取得します。

iOverlayINTinオーバーレイマスクの 1 始まりのインデックスを含む int 型の値です。
piIndexINT*outイメージリスト内のイメージのゼロ始まりのインデックスを受け取る int へのポインターです。このインデックスは、オーバーレイマスクとして使用されるイメージを識別します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。そうでない場合は HRESULT エラーコードを返します。

解説(Remarks)

IImageList::GetOverlayImage を使用するには、マニフェストで Comctl32.dll バージョン 6 を指定してください。マニフェストの詳細については、Enabling Visual Styles を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IImageList "{46EB5926-582E-4017-9FDF-E8998DAA0950}"
#usecom global IImageList IID_IImageList "{7C476BA2-02B1-48F4-8048-B24619DDC058}"
#comfunc global IImageList_Add                 3 sptr,sptr,var
#comfunc global IImageList_ReplaceIcon         4 int,sptr,var
#comfunc global IImageList_SetOverlayImage     5 int,int
#comfunc global IImageList_Replace             6 int,sptr,sptr
#comfunc global IImageList_AddMasked           7 sptr,int,var
#comfunc global IImageList_Draw                8 var
#comfunc global IImageList_Remove              9 int
#comfunc global IImageList_GetIcon             10 int,int,sptr
#comfunc global IImageList_GetImageInfo        11 int,var
#comfunc global IImageList_Copy                12 int,sptr,int,int
#comfunc global IImageList_Merge               13 int,sptr,int,int,int,var,sptr
#comfunc global IImageList_Clone               14 var,sptr
#comfunc global IImageList_GetImageRect        15 int,var
#comfunc global IImageList_GetIconSize         16 var,var
#comfunc global IImageList_SetIconSize         17 int,int
#comfunc global IImageList_GetImageCount       18 var
#comfunc global IImageList_SetImageCount       19 int
#comfunc global IImageList_SetBkColor          20 int,var
#comfunc global IImageList_GetBkColor          21 var
#comfunc global IImageList_BeginDrag           22 int,int,int
#comfunc global IImageList_EndDrag             23
#comfunc global IImageList_DragEnter           24 sptr,int,int
#comfunc global IImageList_DragLeave           25 sptr
#comfunc global IImageList_DragMove            26 int,int
#comfunc global IImageList_SetDragCursorImage  27 sptr,int,int,int
#comfunc global IImageList_DragShowNolock      28 int
#comfunc global IImageList_GetDragImage        29 var,var,var,sptr
#comfunc global IImageList_GetItemFlags        30 int,var
#comfunc global IImageList_GetOverlayImage     31 int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。