• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1828
  • Last Modified:

Selecting default folder in "Browse For Folder" Dialog

Hi,

How can I select the default folder in my "Browse For Folder" dialog box (SHBrowseForFolder) ?

I have only found the way to set the default ROOT of my list by initializing the pidlRoot member of the BROWSEINFO structure.

Any way to to this ?
CString BrowseForFolder(HWND hWnd, LPCTSTR lpszStartFolder, LPCTSTR lpszSelectFolder, CString *pstrDisplayName, BOOL bGetSubFolderOnly)
 {
  char       szPath[MAX_PATH] = "";
  char       szDisplayName[MAX_PATH];
  BROWSEINFO stBI;
 
  stBI.hwndOwner      = hWnd;
  stBI.pidlRoot       = NULL;
  stBI.lpszTitle      = NULL;
  stBI.ulFlags        = BIF_RETURNONLYFSDIRS | BIF_EDITBOX | BIF_NEWDIALOGSTYLE;
  stBI.lpfn           = NULL;
  stBI.lParam         = 0;
  stBI.pszDisplayName = szDisplayName;
 
  if ( lpszStartFolder && lpszStartFolder[0] )
   {
    LPITEMIDLIST  pIDL = NULL;
    IShellFolder *pDesktopFolder;
 
    if ( SUCCEEDED(SHGetDesktopFolder(&pDesktopFolder)) )
     {
      strcpy(szPath, lpszStartFolder);
 
      OLECHAR olePath[MAX_PATH];
 
      MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, szPath, -1, olePath, MAX_PATH);
 
      ULONG nEaten;
      ULONG nAttributes;
 
      pDesktopFolder->ParseDisplayName(NULL, NULL, olePath, &nEaten, &pIDL, &nAttributes);
 
      pDesktopFolder->Release();
     }
 
    stBI.pidlRoot = pIDL;
   }
 
  if (lpszSelectFolder)
   {
    // TO DO
   }
 
  LPITEMIDLIST pstIIL = SHBrowseForFolder(&stBI);
  
  if (!pstIIL) return "";
  
  BOOL bRet = SHGetPathFromIDList(pstIIL, szPath);
 
  if (!bRet) return "";
 
  PathAddBackslash(szPath);
  
  int nIndex = 0;
  
  if (bGetSubFolderOnly && lpszStartFolder) nIndex = strlen(lpszStartFolder);
  
  return (szPath + nIndex);
 }

Open in new window

0
mike_marquet
Asked:
mike_marquet
1 Solution
 
alb66Commented:
You need to use the callback procedure:
look at
http://msdn.microsoft.com/en-us/library/aa921328.aspx

here you can find a sample:
http://www.nirsoft.net/vc/brfolder.html
0
 
mike_marquetAuthor Commented:
Thanks
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now