HRESULT       hres;
//创建一个IShellLink实例
hres = CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_ALL, IID_IShellLink, (void **)&m_pPsl);
if( FAILED( hres))
{
m_pPsl = NULL;
} HRESULT       hres;
IPersistFile* ppf ;
WORD wszPrograms[MAX_PATH];
//设置目标应用程序
m_pPsl->SetPath(strPath);
m_pPsl->SetWorkingDirectory(m_strInstallPath);//设置快捷键(此处设为Shift+Ctrl+'R')
// psl->SetHotkey( MAKEWORD( 'R', HOTKEYF_SHIFT | HOTKEYF_CONTROL));//从IShellLink获取其IPersistFile接口
//用于保存快捷方式的数据文件 (*.lnk)
hres = m_pPsl->QueryInterface( IID_IPersistFile, (void**)&ppf) ;
if( FAILED( hres))
return FALSE;
// 确保数据文件名为ANSI格式
MultiByteToWideChar( CP_ACP, 0, strProgramsLink, -1, wszPrograms, MAX_PATH) ;//调用IPersistFile::Save
//保存快捷方式的数据文件 (*.lnk)
hres = ppf->Save( wszPrograms, STGM_READWRITE) ;//释放IPersistFile和IShellLink接口
ppf->Release();//拷贝快捷方式到桌面
BOOL bRet = CopyFile(strProgramsLink,strDesktopLink,FALSE);