讨论shbrowseforfolder函数function SelectDirectory(handle:hwnd;const Caption: string; const Root: WideString;out Directory: string): Boolean;
var
  lpbi:_browseinfo;
  buf:array [0..MAX_PATH] of char;
  id:ishellfolder;
  eaten,att:cardinal;
  rt:pitemidlist;
  initdir:pwidechar;
begin
  result:=false;
  lpbi.hwndOwner:=handle;
  lpbi.lpfn:=nil;
  lpbi.lpszTitle:=pchar(caption);
  lpbi.ulFlags:=BIF_RETURNONLYFSDIRS+64;
  SHGetDesktopFolder(id);
  initdir:=pwchar(root);
  id.ParseDisplayName(0,nil,initdir,eaten,rt,att);
  lpbi.pidlRoot:=rt;
  getmem(lpbi.pszDisplayName,MAX_PATH);
  try
   result:=shgetpathfromidlist(shbrowseforfolder(lpbi),buf);
  except
   freemem(lpbi.pszDisplayName);
  end;
  if result then directory:=buf;
end;这段是不错,但不完美:毛病在于lpbi.pidlRoot:=rt;
运行后显示 效果是目录浏览框中只有这个当前目录,如图http://www.bwkj.net/ddiscussion/current.jpg而我想要的是如BORLAND的效果如图:他既能显示完整路径又能记住上一次的路径!http://www.bwkj.net/ddiscussion/whole.jpg请问该如何修改这段代码才能有BORLAND的效果