在XP系统下 怎么获取文件图标HICON
音乐男 2014-06-11 12:24:36 在XP系统下 怎么获取文件图标HICON,想绘制出文件夹有文件状态的图标 求指教!
下面是测试代码
#include <shlobj.h>
#include <shlguid.h>
#include <shellapi.h>
#include <commctrl.h>
#include <commoncontrols.h>
#include <shellapi.h>
void CGetIcoDlg::OnBnClickedButton1()
{
SHFILEINFO sfi = { 0 };
SHGetFileInfo("F:\\360data\\重要数据\\桌面\\ff.lnk", -1, &sfi, sizeof(sfi), SHGFI_SYSICONINDEX);
HIMAGELIST* imageList;
HRESULT hResult = SHGetImageList(SHIL_JUMBO, IID_IImageList, (void**)&imageList);//SHIL_EXTRALARGE
HICON hIcon;
if (hResult == S_OK)
{
hResult = ((IImageList*)imageList)->GetIcon(sfi.iIcon, ILD_TRANSPARENT, &hIcon);
if (hResult == S_OK){
// Do something with the icon here.
}
HDC hdc=::GetWindowDC(m_hWnd);
HICON hicons=hIcon;
DrawIcon(hdc,100, 100, hicons);
}
}