Mega Code Archive

 
Categories / Delphi / LAN Web TCP
 

How to display the organize favorite dialog box

unit Unit1; interface uses SHDocVw, ShlObj, ShellApi; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; function OrganizeFavorite(h: THandle; path: PChar): Boolean; stdcall external 'shdocvw.dll' Name 'DoOrganizeFavDlg'; implementation {$R *.dfm} function GetSpecialFolderPath(CallerHandle: THandle; CSIDL: Integer): PChar; var exInfo: TShellExecuteInfo; Buf: PChar; begin // initialize all fields to 0 FillChar(exInfo, SizeOf(exInfo), 0); with exInfo do begin cbSize := SizeOf(exInfo); fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_IDLIST; Wnd := CallerHandle; nShow := SW_SHOWNORMAL; Buf := StrAlloc(MAX_PATH); SHGetSpecialFolderPath(wnd, Buf, CSIDL, True); Result := Buf; end; end; procedure TForm1.Button1Click(Sender: TObject); begin OrganizeFavorite(Handle, GetSpecialFolderPath(Handle, CSIDL_FAVORITES)); end;