我想在 CImage 对象中加载.exe的图标,以便轻松显示并将其保存在数据库中 . 我的问题是我有 HICON 并且我似乎只能将 HBITMAP 加载/附加到 CImage 对象 .

SHFILEINFO sfi;
Cimage icon; 

DWORD ret = SHGetFileInfo(path, 0, &sfi, sizeof(SHFILEINFO), SHGFI_ICON | SHGFI_SMALLICON | SHGFI_DISPLAYNAME);
if(ret != 0) {
    // copy info
    hIcon = sfi.hIcon;
    if(hIcon != lastHIcon && hIcon != 0) {
        // This does not work, needs a HBITMAP instead of a HICON
        icon.Attach(hIcon);
    }
}

有没有简单的方法可以做到这一点,还是我需要先将HICON渲染到DC?在我看来,应该有一个解决方案,不要求我成为GDI专家 .