ショートカットファイルのリンク先を取得する関数を作る。 //********************************************************* // ショートカットのリンク先を取得する // LinkFile ……… ショートカットファイルの名前(*.lnk) // TargetFile ……… リンク先 // wfd ……… リンク先の情報(サイズ、属性、日時など) //********************************************************* BOOL GetTargetFile ( const char *LinkFile, char *TargetFile, WIN32_FIND_DATA *wfd ) { IShellLink *psl; WCHAR wcLinkFile[MAX_PATH+1]; CoInitialize( NULL ); if ( S_OK == CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl ) ) { MultiByteToWideChar( CP_ACP, 0, LinkFile, -1, wcLinkFile, MAX_PATH ); if ( LoadShellLink( psl, wcLinkFile, STGM_READ ) ) // ショートカットのロード { psl->GetPath( TargetFile, MAX_PATH, wfd, SLGP_UNCPRIORITY ); // リンク先を取得 psl->Release(); CoUninitialize(); return TRUE; // 成功 } psl->Release(); } CoUninitialize(); return FALSE; // 失敗 }//GetTargetFile //********************************************************* // LoadShellLink //********************************************************* BOOL LoadShellLink ( IShellLink *psl, const WCHAR *wcLinkName, DWORD dwMode ) { HRESULT hResult; IPersistFile *ppf; if ( S_OK != psl->QueryInterface( IID_IPersistFile, (void **)&ppf ) ) return FALSE; hResult = ppf->Load( wcLinkName, dwMode ); ppf->Release(); return S_OK == hResult; }//LoadShellLink 関連
・ショートカットファイル(.lnk)を作成する |
|
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
同人ダウンロード販売|DL.Getchu.com