admin管理员组文章数量:1516870
#include <Shobjidl.h>
#include <shlobj.h>
bool ChangeLinkIcon(const CString &strLnkName, const CString &strIconPath)
{
if (strLnkName.IsEmpty() || strIconPath.IsEmpty())
{
return false;
}
HRESULT hres;
IShellLink *psl = NULL;
IPersistFile *pPf = NULL;
bool bRet = false;
do//之所以用do while(0)是为了方便流程管理,统一释放
{
hres = CoInitialize(NULL);
if (FAILED(hres))
{
break;
}
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl);
if (FAILED(hres))
{
break;
}
hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&pPf);
if (FAILED(hres))
{
break;
}
hres = pPf->Load(strLnkName, STGM_READWRITE);
if (FAILED(hres))
{
break;
}
hres = psl->SetIconLocation(strIconPath, 0);
if (FAILED(hres))
{
break;
}
pPf->Save(strLnkName, TRUE);
if (FAILED(hres))
{
break;
}
bRet = true;
} while (0);
if (pPf != NULL)
{
pPf->Release();
}
if (psl != NULL)
{
psl->Release();
}
CoUninitialize();
return bRet;
}
使用示例:ChangeLinkIcon(_T("C:\\1.lnk"), _T("C:\\1.ico"));
版权声明:本文标题:打造个性化体验:调整Flash中心的快捷方式图标指南 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1772226478a3272477.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论