comctl32: Fix a potential regression in ImageList_ReplaceIcon().

This commit is contained in:
Mike McCormack 2006-11-14 16:48:29 +09:00 committed by Alexandre Julliard
parent 2614e0ee91
commit 9e772d1369
1 changed files with 11 additions and 7 deletions

View File

@ -2253,6 +2253,7 @@ ImageList_ReplaceIcon (HIMAGELIST himl, INT i, HICON hIcon)
BITMAP bmp;
BOOL ret;
POINT pt;
INT i;
TRACE("(%p %d %p)\n", himl, i, hIcon);
@ -2317,14 +2318,17 @@ ImageList_ReplaceIcon (HIMAGELIST himl, INT i, HICON hIcon)
SetBkColor (himl->hdcImage, RGB(255,255,255));
hbmOldSrc = SelectObject (hdcImage, ii.hbmColor);
imagelist_point_from_index(himl, nIndex, &pt);
StretchBlt (himl->hdcImage, pt.x, pt.y, himl->cx, himl->cy,
hdcImage, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);
for (i=0; i<(bmp.bmWidth/himl->cx); i++) {
if (himl->hbmMask) {
SelectObject (hdcImage, ii.hbmMask);
StretchBlt (himl->hdcMask, pt.x, pt.y, himl->cx, himl->cy,
hdcImage, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY);
imagelist_point_from_index(himl, nIndex+i, &pt);
StretchBlt (himl->hdcImage, pt.x, pt.y, himl->cx, himl->cy,
hdcImage, 0, 0, himl->cx*i, bmp.bmHeight, SRCCOPY);
if (himl->hbmMask) {
SelectObject (hdcImage, ii.hbmMask);
StretchBlt (himl->hdcMask, pt.x, pt.y, himl->cx, himl->cy,
hdcImage, 0, 0, himl->cx*i, bmp.bmHeight, SRCCOPY);
}
}
SelectObject (hdcImage, hbmOldSrc);