Csidl description and instructions for use:
Csidl indicates the Identifier value of a special folder in Windows Shell. The special folder here refers to the folder defined by Windows Shell, for example, "My documents", "recycle bin ", "Inernet cache folder" is a special folder specified by shell. these special folders can be physical paths on a disk or virtual folders )!
Note: Virtual folder
A virtual folder is a folder defined by Windows shell, but it does not correspond to any physical path on your computer. for example, "my computer" is a virtual folder containing all the drives, and "Control Panel" is also a virtual folder. Virtual folders are rarely used in non-Shell functions.
In Windows2000/NT, many csidl-related folders are for each user. However, similar to csidl_common _ *, it can be used by all users.
In many applications, a csidl can be combined with one of the following identifiers:
Csidl_flag_create ($8000)
Windows 2000: If the folder referenced by csidl does not exist, create this folder !.
Csidl_flag_dont_verify ($4000)
Windows 2000: whether the folder referenced by csidl exists or not, use it!
Csidl_admintools ($30)
Indicates the "Administrative Tools" system folder of the current user.
Csidl_altstartup ($ h1d)
Unknown
Csidl_appdata ($ 1a)
Indicates the specific application data storage folder of the current user, for example: C:/Documents and Settings/username/Application Data
Csidl_bitbucket ($)
Indicates the recycle bin.
Csidl_common_admintools ($ 2f)
Indicates all users' "Administrative Tools" system folders
Csidl_common_altstartup ($ 1D)
Indicates all users (only Windows NT systems are supported)
Csidl_common_appdata ($23)
Indicates the data storage folder of all users' specific applications, such as C:/Documents and Settings/all users/application data.
Csidl_common_comment topdirectory ($19)
The "desktop" folder of all users, for example, C:/users and settings/all users/desktop.
Csidl_common_documents ($ 2e)
Indicates the "My Documents" folder of all users, for example, C:/Documents and Settings/all users/Documents
Csidl_common_favorites ($ 1f)
Represents the "My favorites" folder of all users.
Csidl_common_programs ($17)
Indicates all users' "programs" folders, such as C:/Documents and Settings/all users/Start Menu/programs.
Csidl_common_startmenu ($16)
Indicates the "Start Menu" folder of all users, for example, C:/Documents and Settings/all users/Start Menu.
Csidl_common_startup ($18)
Indicates the "Start" folder of all users, for example, C:/Documents and Settings/all users/Start Menu/programs/startup.
Csidl_common_templates ($ 2d)
Indicates the "modules" folder of all users, for example, C:/Documents and Settings/all users/templates.
Csidl_controls ($3)
Control Panel folder
Csidl_cookies ($21)
Indicates the cookie folder of Internet Explorer for the current user, for example, C:/Documents and Settings/username/cookies.
Csidl_desktop ($0)
Indicates the "desktop" virtual folder, which contains all the content on the computer.
Csidl_topics topdirectory ($10)
Indicates the current user's "desktop" folder, such as: C:/Documents ents and settings/username/desktop
Csidl_drives ($11)
Represents the "my computer" virtual folder, containing all the drives on the computer
Csidl_favorites ($6)
Represents the current user's "favorites" folder, for example: C:/Documents and Settings/username/favorites
Csidl_fonts ($14)
Indicates the system font folder, for example, C:/winnt/fonts.
Csidl_history ($22)
Indicates the "history" folder of Inernet Explorer
Csidl_internet ($1)
Indicates the virtual folder on the Internet.
Csidl_internet_cache ($20)
Indicates the "cache" folder of the current user's Internet Explorer, for example, C:/Documents and Settings/username/Temporary Internet Files
Csidl_local_appdata ($ 1c)
Indicates the application data folder of the current user, for example: C:/Documents ents and settings/username/Local Settings/Application Data
Csidl_mymusic
The folder where the current user stores music files, for example, C:/Documents and Settings/user/My Documents documents/my music.
Csidl_mypictures ($27)
Indicates the folder where the current user Stores image files, for example, C:/Documents and Settings/username/My Documents documents/my pictures
Csidl_nethood ($13)
Indicates the network connection folder of the current user, for example, C:/Documents ents and settings/username/nethood.
Csidl_network ($12)
Indicates the virtual folder "Network Neighbor"
Csidl_personal ($5)
Indicates the current user's "My Documents" folder, for example: C:/Documents and Settings/username/My Documents
Csidl_printers ($4)
Point to the virtual folder "Printer"
Csidl_printhood ($ 1b)
Indicates the virtual folder of the current user's network printer, for example: C:/Documents ents and settings/username/printhood
Csidl_profile ($28)
The folder of the current user configuration file
Csidl_program_files ($26)
The folder of the program file, for example, C:/program files.
Csidl_program_files_common ($ 2B)
Indicates that system programs Share Component folders, for example, C:/program files/common
Csidl_programs ($2)
Indicates the current user's "program" menu folder, for example: C:/Documents and Settings/username/Start Menu/programs
Csidl_recent ($8)
Indicates the current user's "document" menu folder, for example: C:/Documents and Settings/username/Start Menu/programs
Csidl_sendto ($9)
Indicates the "sent" folder of the current user, for example: C:/Documents ents and settings/username/sendto
Csidl_startmenu ($ B)
Indicates the "Start" menu folder of the current user, for example, C:/Documents ents and settings/username/Start Menu.
Csidl_startup ($7)
Indicates the "Start" menu folder of the current user, for example: C:/Documents and Settings/username/Start Menu/programs/startup
Csidl_system ($25)
Indicates the Windows system folder, for example, C:/winnt/system32.
Csidl_templates ($15)
Indicates the folder where the document module is stored in the system.
Csidl_windows ($24)
Indicates the files in the Windows directory in the system, for example, C:/winnt.
Csidl can be used in the following API functions. For the function description, refer to the API description in msdn:
Shgetfolderlocation, shgetfolderpath, shgetspecialfolderlocation, shgetspecialfolderpath
Let's look at the following example:
// Open some special folders and add ActiveX, shellapi, and shlobj units.
Uses ActiveX, shellapi, shlobj;
Function openspecialfolder (FLAG: integer; handle: hwnd = 0): Boolean;
// Here the flag is the csidl value of the folder we need to open
Procedure freepidl (pidl: pitemidlist); // release the pitemidlist instance.
VaR
Allocator: imalloc;
Begin
If succeeded (shlobj. shgetmalloc (Allocator) then
Begin
Allocator. Free (pidl );
{$ Ifdef ver90}
Allocator. release;
{$ Endif}
End;
End;
VaR
Exinfo: tshellexecuteinfo;
Begin
Fillchar (exinfo, sizeof (exinfo), 0); // set the initial value for exinfo
With exinfo do
Begin
Cbsize: = sizeof (exinfo );
Fmask: = see_mask_flag_ddewait or see_mask_idlist;
WND: = handle;
Nshow: = sw_shownormal;
Lpverb: = 'open ';
Shgetspecialfolderlocation (handle, flag, pitemidlist (lpidlist); // locate the folder specified by the csidl Value
End;
Shellexecuteex (@ exinfo); // open the folder
Freepidl (exinfo. lpidlist );
End;
// Call the function written above:
Procedure tform1.button5click (Sender: tobject );
Begin
Openspecialfolder ($0); // or openspecialfolder (csidl_desktop), open the "desktop" Window
End;
For how to configure csidl and other functions, refer to msdn!