MFC uses a default buffer of size
_MAX_PATH and that's why you are seeing that behavior. Look at
dlgfile.cpp for the implementation of
CFileDialog::CFileDialog and you will see
m_ofn.nMaxFile being set.
You can specify a larger buffer if you want to. Before calling
DoModal you can either access the
CFileDialog::m_pOFN member to get a pointer to the
OPENFILENAME that the
CFileDialog will use and update it directly or call
CFileDialog::GetOFN to get a reference to the structure and update that.
Either way you will find this helpful: http://msdn.microsoft.com/en-US/library/ms646839(v=vs.80).aspx