/*
* Function Name:CreateLinkFile
*
* Param :LPSTR lpszShortCut ショートカットファイルの保存先フルパス
* LPSTR lpDes
* LPSTR lpszTarget ショートカットファイルのリンク先フルパス
*
* Return :TRUE…ショートカット作成に成功 FALSE…失敗
* Description :
*/
BOOL CreateLinkFile( LPCTSTR lpszShortCut,
LPCTSTR lpDes,
LPCTSTR lpszTarget )
{
BOOL bRet = FALSE;
hRes hRes;
IShellLink* psl;
//COMの初期化
CoInitialize(NULL);
//IShellLinkオブジェクトの作成
hRes = CoCreateInstance( CLSID_ShellLink, NULL,
CLSCTX_INPROC_SERVER,
IID_IShellLink, (void **)&psl );
if( SUCCEEDED(hRes) )
{
IPersistFile* ppf;
//IPersistFileインタフェース取得
hRes = psl->QueryInterface( IID_IPersistFile,
(void **)&ppf );
if( SUCCEEDED(hRes))
{
WCHAR wShct[MAX_PATH];
hRes = psl->SetPath(lpszTarget);
if( SUCCEEDED(hRes))
{
hRes = psl->SetDescription(lpDes);
if( SUCCEEDED(hRes))
{
MultiByteToWideChar( CP_ACP,
0,
lpszShortCut,
-1,
wShct,
MAX_PATH );
hRes = ppf->Save(wShct,TRUE);
if( SUCCEEDED(hRes))
bRet = TRUE;
}
}
ppf->Release();
}
psl->Release();
}
//COMのクローズ
CoUninitialize();
return bRet;
} |