A function to get a folder from shBrowseForFolder

This is a function I wrote (picking up code from some examples). The dialog
shows the File system and allows to pick a folder. The thing I know it can
be done and I couldn't do is to get immediately in a specific path passed to
the function. Does anyone know how to do it ?

function GetFolder(aForm: TForm; aTitle:string): string;
var
   BrowseInfo : TBrowseInfo;
   DisplayName : array[0..MAX_PATH] of char;
    Path : array[0..MAX_PATH] of char;
   Title : string;
   ID : PItemIDList;
begin
  SHGetSpecialFolderLocation(Handle, CSIDL_DRIVES, Id);
  FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
  with BrowseInfo do begin
      hwndOwner := aForm.Handle;
      pszDisplayName := @DisplayName;
      ulFlags := BIF_RETURNONLYFSDIRS;
      lpfn := nil;
      Title := aTitle;
      lpszTitle := PChar(Title);
  end;
  lpItemID := SHBrowseForFolder(BrowseInfo);
  if lpItemId <> nil then begin
      SHGetPathFromIDList(ID, Path);
      GlobalFreePtr(ID);
      result:= Path;
  end;
end;