1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _SHFOLDER_H_
7 #define _SHFOLDER_H_
8 
9 #include <_mingw_unicode.h>
10 
11 #ifndef SHFOLDERAPI
12 #if defined(_SHFOLDER_)
13 #define SHFOLDERAPI STDAPI
14 #else
15 #define SHFOLDERAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI
16 #endif
17 #endif
18 
19 #ifndef CSIDL_PERSONAL
20 #define CSIDL_PERSONAL 0x0005
21 #endif
22 
23 #ifndef CSIDL_MYMUSIC
24 #define CSIDL_MYMUSIC 0x000d
25 #endif
26 
27 #ifndef CSIDL_APPDATA
28 #define CSIDL_APPDATA 0x001A
29 #endif
30 
31 #ifndef CSIDL_LOCAL_APPDATA
32 
33 #define CSIDL_LOCAL_APPDATA 0x001C
34 #define CSIDL_INTERNET_CACHE 0x0020
35 #define CSIDL_COOKIES 0x0021
36 #define CSIDL_HISTORY 0x0022
37 #define CSIDL_COMMON_APPDATA 0x0023
38 #define CSIDL_WINDOWS 0x0024
39 #define CSIDL_SYSTEM 0x0025
40 #define CSIDL_PROGRAM_FILES 0x0026
41 #define CSIDL_MYPICTURES 0x0027
42 #define CSIDL_PROGRAM_FILES_COMMON 0x002b
43 #define CSIDL_COMMON_DOCUMENTS 0x002e
44 #define CSIDL_RESOURCES 0x0038
45 #define CSIDL_RESOURCES_LOCALIZED 0x0039
46 
47 #define CSIDL_FLAG_CREATE 0x8000
48 
49 #define CSIDL_COMMON_ADMINTOOLS 0x002f
50 #define CSIDL_ADMINTOOLS 0x0030
51 #endif
52 
53 #define SHGetFolderPath __MINGW_NAME_AW(SHGetFolderPath)
54 #define PFNSHGETFOLDERPATH __MINGW_NAME_AW(PFNSHGETFOLDERPATH)
55 
56 SHFOLDERAPI SHGetFolderPathA(HWND hwnd,int csidl,HANDLE hToken,DWORD dwFlags,LPSTR pszPath);
57 SHFOLDERAPI SHGetFolderPathW(HWND hwnd,int csidl,HANDLE hToken,DWORD dwFlags,LPWSTR pszPath);
58 
59 typedef HRESULT (__stdcall *PFNSHGETFOLDERPATHA)(HWND,int,HANDLE,DWORD,LPSTR);
60 typedef HRESULT (__stdcall *PFNSHGETFOLDERPATHW)(HWND,int,HANDLE,DWORD,LPWSTR);
61 
62 #endif
63