如何从文件中获取图标,然后将其设置为创建的快捷方式?

时间:2018-07-21 12:00:34

标签: c++ windows com

首先,我正在尝试通过SHGetFileInfo Windows功能获取图标。

SHFILEINFO targetFileInfo;
std::memset(&targetFileInfo, 0, sizeof(targetFileInfo));

SHGetFileInfo((LPSTR) "file.txt", 0, &targetFileInfo, 
               sizeof(targetFileInfo),SHGFI_ICONLOCATION);

然后,我尝试通过targetFileInfo.hIcontargetFileInfo.iIcon以及我编写的函数创建快捷方式。

CreateShortcut((LPSTR)application_path,                    
                  (LPSTR)target_app_path_lnkext,                
                  (LPSTR) "Testr",                            
                  targetFileInfo.hIcon,                            
                  targetFileInfo.iIcon);

在该函数中,我有如下代码:

// CreateShortcut 
// ...
psl->SetIconLocation((LPCSTR)hIcon, iIcon);    
// ...

({pslIShellLink*)该函数运行并且一切正常。但是快捷方式是使用默认图标创建的,而不是使用我设置为使用的图标。

0 个答案:

没有答案