コマンドラインの取得および解析にはCommandLineToArgvWとGetCommandLineWを利用した。GetCommandLineはユニコードおよび非ユニコードバージョンがAPIとして用意されているが、CommandLineToArgvWは非ユニコード版がない(対応OSもWindows 2000以降)。そのため取得したファイル名はCStringに一度変換してから処理している。
GDI+へ渡すファイル名はもともとユニコードなので本来変換の必要はないのだが...
LPWSTR* ppszArglist; int nArgs; //コマンドライン引数で指定された画像を読み込む ppszArglist = ::CommandLineToArgvW(::GetCommandLineW(),&nArgs); if(ppszArglist && nArgs > 1) LoadImage((CAtlString)ppszArglist[1]); ::LocalFree(ppszArglist);
![]()
コマンドラインから引数の対応により、「送る」メニューからの画像表示にも対応する。
当然のことながら利用するためにはあらかじめSendToフォルダへショートカットを作っておく必要がある。Windows Vistaの場合のフォルダ位置は
C:\ Users\ ○○\ AppData\ Roaming\ Microsoft\ Windows\ SendTo\
になる。
