uses
SHDocVw, ShlObj, ShellApi;
{....}
function OrganizeFavorite(h: THandle; path: PChar): Boolean;
stdcall external 'shdocvw.dll' Name 'DoOrganizeFavDlg';
{....}
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;