bool BrowseFolder(char *strFolderName) { ITEMIDLIST* iIDl; strFolderName[0] = '\0'; BROWSEINFO lpbi = {/*AfxGetMainWnd()->m_hWnd*/NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL}; iIDl = SHBrowseForFolder(&lpbi); SHGetPathFromIDList(iIDl, strFolderName); if (strFolderName == NULL) return(0); return(1); } // Example: char windowsfolder[MAX_PATH]; if (browsefolder(windowsfolder)) { // Folder was selected. } else { // User closed the dialog or something wrong happened. }