inline   int   CALLBACK   BrowseCallbackProc(HWND   hwnd,   UINT   uMsg,   LPARAM   lParam,   LPARAM   lpData)  
  {  
  _TCHAR   szDir[_MAX_PATH];  
   
  switch(uMsg)  
  {  
  case   BFFM_INITIALIZED: //   初始化  
  break;  
   
  case   BFFM_SELCHANGED: //   路径改变  
  if(   SHGetPathFromIDList(   (LPITEMIDLIST)lParam,   szDir   )   )  
  SendMessage(   hwnd,   BFFM_SETSTATUSTEXT,   0,   (LPARAM)szDir   );  
  break;  
   
  default:  
  break;  
  }  
   
  return   0;  
  }  
   
  void   CTeskDlg::OnGetOpenPath()    
  {  
  //   TODO:   Add   your   control   notification   handler   code   here  
  _TCHAR pszDisplayName[MAX_PATH];  
  BROWSEINFO bi;  
  LPITEMIDLIST lpID;  
   
  //   设置参数  
  bi.hwndOwner   =   GetSafeHwnd(); //   Handle   to   the   owner   window  
  bi.pidlRoot   =   NULL; //   Location   of   root   folder  
  bi.pszDisplayName   =   pszDisplayName; //   Folder   name   selected  
  bi.lpszTitle   =   _T("选择路径"); //   Title   name  
  bi.ulFlags   =   BIF_RETURNONLYFSDIRS   |   BIF_STATUSTEXT; //   Option   flags  
  bi.lpfn   =   BrowseCallbackProc; //   Callback   function  
  bi.lParam   =   0; //   LPARAM  
  bi.iImage   =   NULL; //   Image   selected  
   
  lpID   =   SHBrowseForFolder(   &bi   );  
  if(   lpID   !=   NULL   )  
  {  
  if(   SHGetPathFromIDList(   lpID,   pszDisplayName   )   )  
  {  
  m_strPath   =   pszDisplayName;  
  if(   m_strPath[m_strPath.GetLength()   -   1]   !=   '\\'   )  
  m_strPath   +=   _T('\\');  
  UpdateData(   FALSE   );  
  }  
  }  
  }