チェックボックスなど、追加のコントロールを備えたフォルダーブラウザーダイアログが必要です。
プログラムは Windows XP をサポートしているため、Vista スタイルで CFileDialog を使用し、IFileDialogCustomize を使用するのは私には合いません。
CFileDialog od(TRUE/*bOpenFileDialog*/, NULL, NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT , NULL, NULL, 0,
TRUE/*bVistaStyle*/);
IFileDialogCustomize * customDlgPtr = od.GetIFileDialogCustomize();
if ( customDlgPtr != NULL )
{
HRESULT res = customDlgPtr->AddCheckButton(IDC_CUST_TEXT, _T("Include subtree"), FALSE);
customDlgPtr->Release();
}
IFileOpenDialog * openDlgPtr = od.GetIFileOpenDialog();
if ( openDlgPtr != NULL )
{
openDlgPtr->SetOptions(FOS_PICKFOLDERS);
openDlgPtr->Release();
}
od.DoModal();