其实远程文件的ICO图标是无法直接得到的
猛若RADMIN 黑洞者也是无没有到,当然了也不见决对没有,只是我不知道......
我们可以通过如下变通方法得到
原理:
跟据文件的扩展名,从注册表中查找对应的程序图标
不过这也有它的缺点对于EXE文件它只能显示一个可执行文件的图示
实现方法
CImageList m_ImageList;
m_ImageList.Create(32,32,ILC_COLOR32,10,30);//创建图示
m_list.SetImageList(&m_ImageList,LVSIL_NORMAL);//与列表控件相关连
SHFILEINFO info;
memset((char*)&info,0,sizeof(info));
SHGetFileInfo(fi->FileName,0,&info,sizeof(&info), SHGFI_ICON|SHGFI_USEFILEATTRIBUTES);//关键所在
int i = m_ImageList.Add(info.hIcon);
m_list.InsertItem(i,fi->FileName,i);
还有,我原来在SERVER端通过上面的代码把info.hIcon句柄保存下来,然后放到CLIENT,在单机上很好使,但
真在两台电脑上用就玩完了,因为info.hIcon里保存的是句柄(应该是个索引)而不是ICO图标所以是行不通的
这样就可以达到目得喽