|
// functions to get shell special folders/
// shfolder.dll supports these on all platforms including Win95, Win98, NT4 and IE4 shell
// all CSIDL values refereed to here are supported natively by shfolder.dll, that is they
// will work on all platforms.
#ifndef _SHFOLDER_H_
#define _SHFOLDER_H_
#ifndef SHFOLDERAPI
#if defined(_SHFOLDER_)
#define SHFOLDERAPI STDAPI
#else
#define SHFOLDERAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
#endif
#endif
#ifndef CSIDL_PERSONAL
#define CSIDL_PERSONAL 0x0005 // My Documents
#endif
#ifndef CSIDL_APPDATA
#define CSIDL_APPDATA 0x001A // Application Data, new for NT4
#endif
#ifndef CSIDL_LOCAL_APPDATA
#define CSIDL_LOCAL_APPDATA 0x001C // non roaming, user\Local Settings\Application Data
#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 // My Pictures, new for Win2K
#define CSIDL_PROGRAM_FILES_COMMON 0x002b // C:\Program Files\Common
#define CSIDL_COMMON_DOCUMENTS 0x002e // All Users\Documents
#define CSIDL_FLAG_CREATE 0x8000 // new for Win2K, or this in to force creation of folder
#define CSIDL_COMMON_ADMINTOOLS 0x002f // All Users\Start Menu\Programs\Administrative Tools
#define CSIDL_ADMINTOOLS 0x0030 // <user name>\Start Menu\Programs\Administrative Tools
#endif // CSIDL_LOCAL_APPDATA
SHFOLDERAPI SHGetFolderPathA(HWND hwnd, int csidl, HANDLE hToken, DWORD dwFlags, LPSTR pszPath);
SHFOLDERAPI SHGetFolderPathW(HWND hwnd, int csidl, HANDLE hToken, DWORD dwFlags, LPWSTR pszPath);
// protos so callers can GetProcAddress() from shfolder.dll
typedef HRESULT (__stdcall * PFNSHGETFOLDERPATHA)(HWND, int, HANDLE, DWORD, LPSTR); // "SHGetFolderPathA"
typedef HRESULT (__stdcall * PFNSHGETFOLDERPATHW)(HWND, int, HANDLE, DWORD, LPWSTR); // "SHGetFolderPathW"
#ifdef UNICODE
#define SHGetFolderPath SHGetFolderPathW
#define PFNSHGETFOLDERPATH PFNSHGETFOLDERPATHW
#else
#define SHGetFolderPath SHGetFolderPathA
#define PFNSHGETFOLDERPATH PFNSHGETFOLDERPATHA
#endif
#endif // _SHFOLDER_H_
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.