/// ****************************************************************************
/// @file   
/// @author Dr.Neeton
/// @date   200X/X/X - 2014/03/07
/// 
/// @brief  Ｄ＆Ｄリスト取得
/// 
/// ****************************************************************************


#include "../CPL_WINDOWS.h"

namespace CPL {
namespace WIN {


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ファイルリスト設定
// 戻り値：ドロップされたファイル数
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
size_t DropFileControl::CheckCmdLine( Core::String const& in_cmd_line )
{
  Core::String cmd_line = in_cmd_line;
  Core::String tmp_str;

  // コマンドラインチェック（ファイル名チェック）
  size_t len = 0;
  do{
    if( cmd_line[0] == '\0' )
    {
      break; // 終端文字の場合
    }
    if( cmd_line[0] == '"' ) // 最初が " の場合スペースを含むファイル名
    {
      cmd_line.Cut( 0, 0 ); // 最初の " をカット
      len = cmd_line.FindBeginFront( tmp_str, '"', false ); // 次の " まで取得
      cmd_line.Cut( 0, len+1 ); // 後ろの " までカット
    }
    else
    {
      len = cmd_line.FindBeginFront( tmp_str, ' ', false ); // スペースまで取得
      if( FAILED_INDEX(len) ) // スペースが見つからなかった場合
      {
        tmp_str = cmd_line;
        len = tmp_str.GetLength();
      }
      cmd_line.Cut( 0, len ); // 取得した分削除
    }
    if( len == 0  ||  FAILED_INDEX(len) ) break;
    if( cmd_line[0] == ' ' ) // 次がスペースの場合（まだある場合）
    {
      cmd_line.Cut( 0, 0 ); // スペースをカット
    }
    AddEnd( tmp_str );
  } while( GetNum() < 1024 );

  return GetNum();
}


} // namespace WIN
} // namespace CPL




