快捷方式包括桌面快捷方式和开始菜单快捷方式,其所链接的源文件路径都可以通过该方式修改,修改后的效果表现为如下截图中目录这一栏值的更改。
bool CrnModifyShortcutArguments(LPCWSTR lpszLnkFilePath, LPCWSTR strArguments)
{
//判断文件是否存在
bool bResult = (CoInitialize(NULL) == S_OK);
if (bResult)
{
IShellLink *pShellLink;
//创建IShellLink对象
bResult = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (void **)&pShellLink) >= 0;
if (!bResult)
return false;
//从IShellLink对象中获取IPersistFile接口
IPersistFile *ppf;
bResult = pShellLink->QueryInterface(IID_IPersistFile, (void **)&ppf) >= 0;
if (!bResult)
{
pShellLink->Release();
ppf->Release();
return false;
}
//加载快捷方式文件
bResult = ppf->Load(lpszLnkFilePath, TRUE) >= 0;
if (!bResult)
{
pShellLink->Rel