|
ショートカットファイルを作成する関数を作る。 //*********************************************************
// ショートカットファイルを作成する
// LinkFile ……… ショートカットファイルの名前(*.lnk)
// TargetFile ……… リンク先
// Arguments ……… コマンドライン引数
// WorkDir ……… 作業ディレクトリ
// ShowCmd ……… 実行時の大きさ
//*********************************************************
BOOL
CreateShellLink
(
const char *LinkFile,
const char *TargetFile,
const char *Arguments,
const char *WorkDir,
int ShowCmd
)
{
IShellLink *psl;
WCHAR wcLinkFile[MAX_PATH+1];
CoInitialize( NULL );
if ( S_OK == CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl ) )
{
psl->SetPath( TargetFile ); // リンク先を設定
if ( Arguments ) psl->SetArguments( Arguments ); // コマンドライン引数を設定
if ( WorkDir ) psl->SetWorkingDirectory( WorkDir ); // 作業フォルダを設定
psl->SetShowCmd( ShowCmd ); // 実行時の大きさを設定
MultiByteToWideChar( CP_ACP, 0, LinkFile, -1, wcLinkFile, MAX_PATH );
if ( SaveShellLink( psl, wcLinkFile, TRUE ) ) // ショートカットの保存
{
psl->Release();
CoUninitialize();
return TRUE; // 成功
}
psl->Release();
}
CoUninitialize();
return FALSE; // 失敗
}//CreateShellLink
//*********************************************************
// SaveShellLink
//*********************************************************
BOOL
SaveShellLink
(
IShellLink *psl,
const WCHAR *wcLinkName,
BOOL bRemember
)
{
HRESULT hResult;
IPersistFile *ppf;
if ( S_OK != psl->QueryInterface( IID_IPersistFile, (void **)&ppf ) )
return FALSE;
hResult = ppf->Save( wcLinkName, bRemember );
ppf->Release();
return S_OK == hResult;
}//SaveShellLink
関連
・ショートカットファイル(.lnk)のリンク先を取得する |
|
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp

同人ダウンロード販売|DL.Getchu.com