void CCreateShortCutDlg::CreateShortCut( CString csLinkPath, CString csExePath,CString csWorkingDir, CString csIconPath )
{
HRESULT hres;
hres = ::CoInitialize(NULL);
if(S_OK == hres)
{
//delete old link
CFileFind cfind;
if(cfind.FindFile(csLinkPath)){
CFile::Remove(csLinkPath);
}
IShellLink * pShellLink ;
hres = ::CoCreateInstance( CLSID_ShellLink, NULL,CLSCTX_INPROC_SERVER, IID_IShellLink,(void **)&pShellLink);
if( SUCCEEDED( hres))
{
pShellLink -> SetPath(csExePath);
if(PathFileExists(csIconPath))
pShellLink -> SetIconLocation(csIconPath, 0);
pShellLink -> SetHotkey( MAKEWORD( 'R', HOTKEYF_SHIFT | HOTKEYF_CONTROL));
// csWorkingDir = csExePath.Left(2);
// csWorkingDir.Append(FILE_SEPARATOR);
// TRACE_CS(csWorkingDir);
pShellLink->SetWorkingDirectory(csWorkingDir);
IPersistFile *pPersistFile;
hres = pShellLink -> QueryInterface( IID_IPersistFile, (void **)&pPersistFile) ;
if( SUCCEEDED(hres))
{
hres = pPersistFile -> Save(csLinkPath, TRUE);
pPersistFile -> Release();
}
pShellLink -> Release();
}
::CoUninitialize();
}
}
, m_sLink(_T("C:\\Users\\Public\\Desktop\\Pro ENGINEER.lnk"))
, m_sExe(_T("E:\\ptc\\proeWildfire4.0\\bin\\proe.exe"))
, m_sDir(_T("F:\\work\\ards\\AmmunitionDesign2005"))
, m_sIcon(_T("E:\\ptc\\proeWildfire4.0\\install\\nt\\mmotion.ico"))