【框架-MFC】MFC 获取Windows特殊路径

来源:互联网 发布:gdi高级编程 pdf 编辑:程序博客网 时间:2024/04/30 14:51

//..\VS2005\VC\PlatformSDK\include\shlobj.h//..\VS2005\VC\PlatformSDK\include\winbase.h//获取特殊路径 CSIDL_PERSONAL//CSIDL_PERSONAL  =My Documents = 我的文档 CString GetSpecialPath(UINT nId )     {  TCHAR m_lpszDefaultDir[MAX_PATH] = {0};  TCHAR szDocument[MAX_PATH] = {0};  memset(m_lpszDefaultDir, 0, MAX_PATH);  LPITEMIDLIST pidl = NULL;  SHGetSpecialFolderLocation(NULL, nId, &pidl);  if (pidl && SHGetPathFromIDList(pidl, szDocument))  {  GetShortPathName(szDocument, m_lpszDefaultDir, MAX_PATH);  }  return CString(szDocument);  } 

//nId

#define CSIDL_DESKTOP                   0x0000        // <desktop>#define CSIDL_INTERNET                  0x0001        // Internet Explorer (icon on desktop)#define CSIDL_PROGRAMS                  0x0002        // Start Menu\Programs#define CSIDL_CONTROLS                  0x0003        // My Computer\Control Panel#define CSIDL_PRINTERS                  0x0004        // My Computer\Printers#define CSIDL_PERSONAL                  0x0005        // My Documents#define CSIDL_FAVORITES                 0x0006        // <user name>\Favorites#define CSIDL_STARTUP                   0x0007        // Start Menu\Programs\Startup#define CSIDL_RECENT                    0x0008        // <user name>\Recent#define CSIDL_SENDTO                    0x0009        // <user name>\SendTo#define CSIDL_BITBUCKET                 0x000a        // <desktop>\Recycle Bin#define CSIDL_STARTMENU                 0x000b        // <user name>\Start Menu#define CSIDL_MYDOCUMENTS               0x000c        // logical "My Documents" desktop icon#define CSIDL_MYMUSIC                   0x000d        // "My Music" folder#define CSIDL_MYVIDEO                   0x000e        // "My Videos" folder#define CSIDL_DESKTOPDIRECTORY          0x0010        // <user name>\Desktop#define CSIDL_DRIVES                    0x0011        // My Computer#define CSIDL_NETWORK                   0x0012        // Network Neighborhood (My Network Places)#define CSIDL_NETHOOD                   0x0013        // <user name>\nethood#define CSIDL_FONTS                     0x0014        // windows\fonts#define CSIDL_TEMPLATES                 0x0015#define CSIDL_COMMON_STARTMENU          0x0016        // All Users\Start Menu#define CSIDL_COMMON_PROGRAMS           0X0017        // All Users\Start Menu\Programs#define CSIDL_COMMON_STARTUP            0x0018        // All Users\Startup#define CSIDL_COMMON_DESKTOPDIRECTORY   0x0019        // All Users\Desktop#define CSIDL_APPDATA                   0x001a        // <user name>\Application Data#define CSIDL_PRINTHOOD                 0x001b        // <user name>\PrintHood#ifndef CSIDL_LOCAL_APPDATA#define CSIDL_LOCAL_APPDATA             0x001c        // <user name>\Local Settings\Applicaiton Data (non roaming)#endif // CSIDL_LOCAL_APPDATA#define CSIDL_ALTSTARTUP                0x001d        // non localized startup#define CSIDL_COMMON_ALTSTARTUP         0x001e        // non localized common startup#define CSIDL_COMMON_FAVORITES          0x001f#ifndef _SHFOLDER_H_#define CSIDL_INTERNET_CACHE            0x0020#define CSIDL_COOKIES                   0x0021#define CSIDL_HISTORY                   0x0022#define CSIDL_COMMON_APPDATA            0x0023        // All Users\Application Data#define CSIDL_WINDOWS                   0x0024        // GetWindowsDirectory()#define CSIDL_SYSTEM                    0x0025        // GetSystemDirectory()#define CSIDL_PROGRAM_FILES             0x0026        // C:\Program Files#define CSIDL_MYPICTURES                0x0027        // C:\Program Files\My Pictures#endif // _SHFOLDER_H_#define CSIDL_PROFILE                   0x0028        // USERPROFILE#define CSIDL_SYSTEMX86                 0x0029        // x86 system directory on RISC#define CSIDL_PROGRAM_FILESX86          0x002a        // x86 C:\Program Files on RISC#ifndef _SHFOLDER_H_#define CSIDL_PROGRAM_FILES_COMMON      0x002b        // C:\Program Files\Common#endif // _SHFOLDER_H_#define CSIDL_PROGRAM_FILES_COMMONX86   0x002c        // x86 Program Files\Common on RISC#define CSIDL_COMMON_TEMPLATES          0x002d        // All Users\Templates#ifndef _SHFOLDER_H_#define CSIDL_COMMON_DOCUMENTS          0x002e        // All Users\Documents#define CSIDL_COMMON_ADMINTOOLS         0x002f        // All Users\Start Menu\Programs\Administrative Tools#define CSIDL_ADMINTOOLS                0x0030        // <user name>\Start Menu\Programs\Administrative Tools#endif // _SHFOLDER_H_#define CSIDL_CONNECTIONS               0x0031        // Network and Dial-up Connections#define CSIDL_COMMON_MUSIC              0x0035        // All Users\My Music#define CSIDL_COMMON_PICTURES           0x0036        // All Users\My Pictures#define CSIDL_COMMON_VIDEO              0x0037        // All Users\My Video#define CSIDL_RESOURCES                 0x0038        // Resource Direcotry#ifndef _SHFOLDER_H_#define CSIDL_RESOURCES_LOCALIZED       0x0039        // Localized Resource Direcotry#endif // _SHFOLDER_H_#define CSIDL_COMMON_OEM_LINKS          0x003a        // Links to All Users OEM specific apps#define CSIDL_CDBURN_AREA               0x003b        // USERPROFILE\Local Settings\Application Data\Microsoft\CD Burning// unused                               0x003c#define CSIDL_COMPUTERSNEARME           0x003d        // Computers Near Me (computered from Workgroup membership)#ifndef _SHFOLDER_H_#define CSIDL_FLAG_CREATE               0x8000        // combine with CSIDL_ value to force folder creation in SHGetFolderPath()#endif // _SHFOLDER_H_#define CSIDL_FLAG_DONT_VERIFY          0x4000        // combine with CSIDL_ value to return an unverified folder path#define CSIDL_FLAG_NO_ALIAS             0x1000        // combine with CSIDL_ value to insure non-alias versions of the pidl#define CSIDL_FLAG_PER_USER_INIT        0x0800        // combine with CSIDL_ value to indicate per-user init (eg. upgrade)#define CSIDL_FLAG_MASK                 0xFF00        // mask for all possible flag values


0 0