SHGetFileInfo return the handle to the icon so there is no need to LoadIcon explicitly.
HICON hIcon = ::SHGetFileInfo(_T("E:\\v.doc"),0, &shfi, sizeof(shfi),SHGFI_SYSICONINDEX|SHGFI_SMALLICON);
ImageList_AddIcon(hILSmall, hIcon);
int t = ImageList_GetImageCount(hILSmall);
-Saurabh