Problema solucionado !!!
Explico como lo he realizado por si a alguien le puede servir...
Al final he utilizado la funcion SHBrowseForFolder, que es la
que recomiendo Microsoft para seleccionar una carpeta desde
un dialgo.
void CDescargarArchivo::OnFileOpen()
{
typedef char StringType[MAX_PATH];
BROWSEINFO bi;
StringType Folder;
StringType FullPath;
char Title[] = "Selecciona el Directorio Destino";
// Initialization code for the BROWSEINFO struct:
bi.hwndOwner = this->m_hWnd;
bi.pszDisplayName = Folder;
bi.lpszTitle = Title;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.pidlRoot = NULL;
bi.lpfn = NULL;
if (SHGetPathFromIDList(::SHBrowseForFolder(&bi), FullPath))
{
m_sGuardarComo = FullPath; // Here we assume the m_Dir is a variable
associated with an edit box
UpdateData(FALSE); // Put data into edit boxes (or do whatever you
want to do with it)
}
}
Saludos.