
CString str;
TCHAR path[MAX_PATH];
BOOL b = SHGetSpecialFolderPath(NULL, path, CSIDL_PROGRAM_FILES_COMMONX86, 0);//获取指定的系统路径
/*
参数1:HWND hwndOwner 窗口所有者的句柄。可以NULL
参数2:LPTSTR lpszPath 返回路径的缓冲区,该缓冲区的大小至少为MAX_PATH
参数3:int nFolder 系统路径的CSIDL标识
CSIDL (constant special item ID list)是系统定义的特殊条目的ID列表
在vista之后被KNOWNFOLDERID所替代(但为保持兼容性,仍支持CSIDL)
CSIDL_DESKTOP=0x0000 桌面 C:\Users\Administrator\Desktop
CSIDL_INTERNET=0x0001 Internet Explorer (icon on desktop)
CSIDL_PROGRAMS=0x0002 Start Menu\Programs C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
CSIDL_CONTROLS=0x0003 My Computer\Control Panel
CSIDL_PRINTERS=0x0004 My Computer\Printers
CSIDL_PERSONAL=0x0005 My Documents我的文档 C:\Users\Administrator\Documents
CSIDL_FAVORITES=0x0006 <user name>\Favorites收藏夹 C:\Users\Administrator\Favorites
CSIDL_STARTUP=0x0007 Start Menu\Programs\Startup启动 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
CSIDL_RECENT=0x0008 <user name>\Recent最近使用的项目 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Recent
CSIDL_SENDTO=0x0009 <user name>\SendTo C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\SendTo
CSIDL_BITBUCKET=0x000a <desktop>\Recycle Bin
CSIDL_STARTMENU=0x000b <user name>\Start Menu C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu
CSIDL_MYDOCUMENTS 我的文档 C:\Users\Administrator\Documents
CSIDL_MYMUSIC=0x000d "My Music" folder音乐 C:\Users\Administrator\Music
CSIDL_MYVIDEO=0x000e "My Videos" folder视频 C:\Users\Administrator\Videos
CSIDL_DESKTOPDIRECTORY=0x0010 桌面 C:\Users\Administrator\Desktop
CSIDL_DRIVES=0x0011 My Computer
CSIDL_NETWORK=0x0012 Network Neighborhood (My Network Places)
CSIDL_NETHOOD=0x0013 <user name>\nethood C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Network Shortcuts
CSIDL_FONTS=0x0014 windows\fonts 字体 C:\Windows\Fonts
CSIDL_TEMPLATES=0x0015 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Templates
CSIDL_COMMON_STARTMENU=0x0016 All Users\Start Menu C:\ProgramData\Microsoft\Windows\Start Menu
CSIDL_COMMON_PROGRAMS=0X0017 All Users\Start Menu\Programs C:\ProgramData\Microsoft\Windows\Start Menu\Programs
CSIDL_COMMON_STARTUP=0x0018 All Users\Startup C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
CSIDL_COMMON_DESKTOPDIRECTORY=0x0019 All Users\Desktop C:\Users\Public\Desktop
CSIDL_APPDATA=0x001a <user name>\Application Data C:\Users\Administrator\AppData\Roaming
CSIDL_PRINTHOOD=0x001b <user name>\PrintHood
CSIDL_LOCAL_APPDATA
CSIDL_LOCAL_APPDATA=0x001c <user name>\Local Settings\Applicaiton Data (non roaming)
CSIDL_LOCAL_APPDATA
CSIDL_ALTSTARTUP=0x001d non localized startup
CSIDL_COMMON_ALTSTARTUP=0x001e non localized common startup
CSIDL_COMMON_FAVORITES=0x001f
_SHFOLDER_H_
CSIDL_INTERNET_CACHE=0x0020
CSIDL_COOKIES=0x0021
CSIDL_HISTORY=0x0022
CSIDL_COMMON_APPDATA=0x0023 All Users\Application Data
CSIDL_WINDOWS=0x0024 GetWindowsDirectory()
CSIDL_SYSTEM=0x0025 GetSystemDirectory()
CSIDL_PROGRAM_FILES=0x0026 C:\Program Files
CSIDL_MYPICTURES=0x0027 C:\Program Files\My Pictures
_SHFOLDER_H_
CSIDL_PROFILE=0x0028 USERPROFILE
CSIDL_SYSTEMX86=0x0029 x86 system directory on RISC
CSIDL_PROGRAM_FILESX86=0x002a x86 C:\Program Files on RISC
CSIDL_PROGRAM_FILES_COMMON=0x002b C:\Program Files\Common
CSIDL_PROGRAM_FILES_COMMONX86=0x002c x86 C:\Program Files (x86)\Common Files
CSIDL_COMMON_TEMPLATES=0x002d All Users\Templates
CSIDL_COMMON_DOCUMENTS=0x002e All Users\Documents
CSIDL_COMMON_ADMINTOOLS=0x002f All Users\Start Menu\Programs\Administrative Tools
CSIDL_ADMINTOOLS=0x0030 <user name>\Start Menu\Programs\Administrative Tools
CSIDL_CONNECTIONS=0x0031 Network and Dial-up Connections
CSIDL_COMMON_MUSIC=0x0035 All Users\My Music
CSIDL_COMMON_PICTURES=0x0036 All Users\My Pictures
CSIDL_COMMON_VIDEO 0x0037 // All Users\My Video
CSIDL_RESOURCES 0x0038 // Resource Direcotry
CSIDL_RESOURCES_LOCALIZED 0x0039 // Localized Resource Direcotry
CSIDL_COMMON_OEM_LINKS 0x003a // Links to All Users OEM specific apps
CSIDL_CDBURN_AREA 0x003b // USERPROFILE\Local Settings\Application Data\Microsoft\CD Burning
CSIDL_COMPUTERSNEARME 0x003d // Computers Near Me (computered from Workgroup membership)
CSIDL_FLAG_CREATE 0x8000 // combine with CSIDL_ value to force folder creation in SHGetFolderPath()
CSIDL_FLAG_DONT_VERIFY 0x4000 // combine with CSIDL_ value to return an unverified folder path
CSIDL_FLAG_DONT_UNEXPAND 0x2000 // combine with CSIDL_ value to avoid unexpanding environment variables
CSIDL_FLAG_NO_ALIAS 0x1000 // combine with CSIDL_ value to insure non-alias versions of the pidl
CSIDL_FLAG_PER_USER_INIT 0x0800 // combine with CSIDL_ value to indicate per-user init (eg. upgrade)
CSIDL_FLAG_MASK 0xFF00 // mask for all possible flag values
参数4:BOOL fCreate 指示文件夹不存在时是否创建。为false则不创建,否则创建
返回值:函数执行成功则返回true,否则返回false
*/
str = path;
::OutputDebugString(str);
