TeraCopyをコマンドラインから呼び出す(その7)

ふとコードを見ていたら、WinMainのUnicode対応出来てないのでは?と感じて調べた。案の定、間違ってた。_tWinMainと引数を修正した。これで、もう間違ってないはず

int WINAPI _tWinMain(HINSTANCE hinst, HINSTANCE hinstPrev, LPWSTR lpszCmdLine, int nCmdShow)
{
  int argc;
  LPWSTR *argv = NULL;

  _tsetlocale(LC_ALL, _T("")); // from MSDN システムの既定

  argv = CommandLineToArgvW(GetCommandLineW(), &argc);

  if (argc < 4 || argv == NULL) {
    // エラーメッセージ
    usage();
  }

  if (_tcsicmp(_T("copy"), argv[ARGC_CMD]) == 0 ||
      _tcsicmp(_T("move"), argv[ARGC_CMD]) == 0) {
    // COPY | MOVE
    teracopy(argc, argv);
  } else {
    usage(); // エラー
  }
  LocalFree(argv);
  return 0;
}