Overlay indices are signed shorts (-1 means no overlay) (ImageList_SetOverlayIndex) should accept -1 as overlayindex. (ImageList_Read) We can read a NxM bitmap from the stream and have to convert it into a 1x(M*N) bitmap, set cCurImage,cMaxImage. Added documentation. (others) removed some potential operator precendence problems.