Title: Show special folders
Use SHGetSpecialFolderLocation for getting identifier of special folder. After that, you must fill components of ShellExecuteInfo structure where one of the parameters is the identifier of special folder.
Folder variable contains a constant, which shows special folder.
For example:
CSIDL_DRIVES - My Computer
SIDL_CONTROLS - Control Panel
CSIDL_DESKTOP - Desctop
CSIDL_BITBUCKET - Recycle Bin
uses
ShlObj, ShellAPI;
...
procedure TForm1.Button1Click(Sender: TObject);
var
MyItemIDList: PItemIDList;
MyShellEx: TShellExecuteInfo;
Folder: Integer;
begin
Folder:=CSIDL_DRIVES;
SHGetSpecialFolderLocation(Form1.Handle, Folder, MyItemIDList);
with MyShellEx do
begin
cbSize:=Sizeof(MyShellEx);
fMask:=SEE_MASK_IDLIST;
Wnd:=Handle;
lpVerb:=nil;
lpFile:=nil;
lpParameters:=nil;
lpDirectory:=nil;
nShow:=SW_SHOWNORMAL;
hInstApp:=0;
lpIDList:=MyItemIDList;
end;
ShellExecuteEx(@MyShellEx);
end;