#pragma once
/////////////////////////////////////////////////////////////////////////////
// CFolderDialogEx
// ディレクトリ指定のできるフォルダダイアログ
class CFolderDialogEx : public CFolderDialogImpl<CFolderDialogEx>
{
public:
LPITEMIDLIST m_pInitItemIDList;
TCHAR m_szInitFolderPath[MAX_PATH];
CFolderDialogEx(HWND hWndParent = NULL, LPCTSTR lpstrTitle = NULL, UINT uFlags = BIF_RETURNONLYFSDIRS)
: CFolderDialogImpl<CFolderDialogEx>(hWndParent, lpstrTitle, uFlags)
{
m_bi.lpfn = BrowseCallbackProc;
m_pInitItemIDList = NULL;
m_szInitFolderPath[0] = NULL;
}
void SetInitFolderPIDL(LPITEMIDLIST pItemIDList)
{
m_pInitItemIDList = pItemIDList;
m_szInitFolderPath[0] = NULL; // クリア
}
void SetInitFolderPath(LPCTSTR lpFolderPath)
{
m_pInitItemIDList = NULL; // クリア
_tcscpy(m_szInitFolderPath, lpFolderPath);
}
// 基底クラスから自動的に呼び出される
void OnInitialized()
{
if (m_pInitItemIDList != NULL)
{
this->SetSelection(m_pInitItemIDList);
}
if (m_szInitFolderPath[0] != NULL)
{
this->SetSelection(m_szInitFolderPath);
}
}
};