create_shell_link

今日はWindows VistaのGame Explorerを弄って遊んでました。
ショートカットファイルを作成する必要があったので、ついでにHamigaki.Filesystemにショートカット作成関数create_shell_link()を追加しました。
shell_link.cpp
インタフェースは、

void create_shell_link(
    const boost::filesystem::path& old_fp,  // ターゲットファイル名
    const boost::filesystem::path& new_fp   // ショートカット名
);

で、細かいオプションは設定できません。
ショートカットの拡張子が「.lnk」でない場合は自動で追加されショートカット名には「.lnk」を付けて呼び出す必要があり、作業ディレクトリはターゲットファイルの親ディレクトリになります。
あと、CoInitialize()/CoUninitialize()は呼ばないので、呼び出し側で管理する必要があります。