/// ****************************************************************************
/// @file   
/// @author Dr.Neeton
/// @date   200X/X/X - 2014/01/14
/// 
/// @brief  フォルダ選択ダイアログ。
/// 
/// ****************************************************************************

#pragma once

#include "CPL_WIN_Window.h"


namespace CPL {
namespace WIN {


// _____________________________________________________________________________
/// @brief フォルダ取得ダイアログ
///
// *****************************************************************************
class GetFolderDialog
{
private:
  BROWSEINFO m_browse_info;

public:
  //Core::String  m_folder_name;
  str_type m_folder_name[ 256 ];

  bool Show( HWND in_hdl_win_owner )
  {
    m_browse_info.hwndOwner = in_hdl_win_owner;
    LPITEMIDLIST ptr_list = SHBrowseForFolder( &m_browse_info );
    if( ptr_list == nullptr )
    {
      return false;
    }
    CoTaskMemFree( ptr_list );
    return true;
  }



  GetFolderDialog()
  {
    ::memset( &m_browse_info, 0, sizeof(m_browse_info) );
    m_browse_info.pszDisplayName = m_folder_name;
    m_browse_info.ulFlags        = BIF_RETURNONLYFSDIRS; // ファイルシステムディレクトリのみ
  }
  virtual ~GetFolderDialog(){};
};


} // namespace WIN
} // namespace CPL
