- Temporary fix for making locale switches possible. Patch by zebasoftis. Fixes bug...
[reactos.git] / reactos / w32api / include / userenv.h
1 #ifndef _USERENV_H
2 #define _USERENV_H
3
4 #if __GNUC__ >=3
5 #pragma GCC system_header
6 #endif
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 #define PI_NOUI (1)
13 #define PI_APPLYPOLICY (2)
14
15 typedef struct _PROFILEINFOA
16 {
17 DWORD dwSize;
18 DWORD dwFlags;
19 LPSTR lpUserName;
20 LPSTR lpProfilePath;
21 LPSTR lpDefaultPath;
22 LPSTR lpServerName;
23 LPSTR lpPolicyPath;
24 HANDLE hProfile;
25 } PROFILEINFOA, *LPPROFILEINFOA;
26
27 typedef struct _PROFILEINFOW
28 {
29 DWORD dwSize;
30 DWORD dwFlags;
31 LPWSTR lpUserName;
32 LPWSTR lpProfilePath;
33 LPWSTR lpDefaultPath;
34 LPWSTR lpServerName;
35 LPWSTR lpPolicyPath;
36 HANDLE hProfile;
37 } PROFILEINFOW, *LPPROFILEINFOW;
38
39 /* begin private */
40 BOOL WINAPI InitializeProfiles (VOID);
41 BOOL WINAPI CreateUserProfileA (PSID, LPCSTR);
42 BOOL WINAPI CreateUserProfileW (PSID, LPCWSTR);
43 BOOL WINAPI AddDesktopItemA (BOOL, LPCSTR, LPCSTR, LPCSTR, INT, LPCSTR, WORD, INT);
44 BOOL WINAPI AddDesktopItemW (BOOL, LPCWSTR, LPCWSTR, LPCWSTR, INT, LPCWSTR, WORD, INT);
45 BOOL WINAPI DeleteDesktopItemA (BOOL, LPCSTR);
46 BOOL WINAPI DeleteDesktopItemW (BOOL, LPCWSTR);
47 BOOL WINAPI CreateGroupA (LPCSTR, BOOL);
48 BOOL WINAPI CreateGroupW (LPCWSTR, BOOL);
49 BOOL WINAPI DeleteGroupA (LPCSTR, BOOL);
50 BOOL WINAPI DeleteGroupW (LPCWSTR, BOOL);
51 BOOL WINAPI AddItemA (LPCSTR, BOOL, LPCSTR, LPCSTR, LPCSTR, INT, LPCSTR, WORD, INT);
52 BOOL WINAPI AddItemW (LPCWSTR, BOOL, LPCWSTR, LPCWSTR, LPCWSTR, INT, LPCWSTR, WORD, INT);
53 BOOL WINAPI DeleteItemA (LPCSTR, BOOL, LPCSTR, BOOL);
54 BOOL WINAPI DeleteItemW (LPCWSTR, BOOL, LPCWSTR, BOOL);
55 BOOL WINAPI CopyProfileDirectoryA(LPCSTR, LPCSTR, DWORD);
56 BOOL WINAPI CopyProfileDirectoryW(LPCWSTR, LPCWSTR, DWORD);
57 /* end private */
58 BOOL WINAPI LoadUserProfileA (HANDLE, LPPROFILEINFOA);
59 BOOL WINAPI LoadUserProfileW (HANDLE, LPPROFILEINFOW);
60 BOOL WINAPI UnloadUserProfile (HANDLE, HANDLE);
61
62 BOOL WINAPI GetAllUsersProfileDirectoryA (LPSTR, LPDWORD);
63 BOOL WINAPI GetAllUsersProfileDirectoryW (LPWSTR, LPDWORD);
64 BOOL WINAPI GetDefaultUserProfileDirectoryA (LPSTR, LPDWORD);
65 BOOL WINAPI GetDefaultUserProfileDirectoryW (LPWSTR, LPDWORD);
66 BOOL WINAPI GetProfilesDirectoryA(LPSTR, LPDWORD);
67 BOOL WINAPI GetProfilesDirectoryW(LPWSTR, LPDWORD);
68 BOOL WINAPI GetUserProfileDirectoryA(HANDLE, LPSTR, LPDWORD);
69 BOOL WINAPI GetUserProfileDirectoryW(HANDLE, LPWSTR, LPDWORD);
70
71 BOOL WINAPI CreateEnvironmentBlock(LPVOID*, HANDLE, BOOL);
72 BOOL WINAPI DestroyEnvironmentBlock(LPVOID);
73
74 #ifdef UNICODE
75 typedef PROFILEINFOW PROFILEINFO;
76 typedef LPPROFILEINFOW LPPROFILEINFO;
77 /* begin private */
78 #define CreateUserProfile CreateUserProfileW
79 #define AddDesktopItem AddDesktopItemW
80 #define DeleteDesktopItem DeleteDesktopItemW
81 #define CreateGroup CreateGroupW
82 #define DeleteGroup DeleteGroupW
83 #define AddItem AddItemW
84 #define DeleteItem DeleteItemW
85 #define CopyProfileDirectory CopyProfileDirectoryW
86 /* end private */
87 #define LoadUserProfile LoadUserProfileW
88 #define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryW
89 #define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryW
90 #define GetProfilesDirectory GetProfilesDirectoryW
91 #define GetUserProfileDirectory GetUserProfileDirectoryW
92 #else
93 typedef PROFILEINFOA PROFILEINFO;
94 typedef LPPROFILEINFOA LPPROFILEINFO;
95 /* begin private */
96 #define CreateUserProfile CreateUserProfileA
97 #define AddDesktopItem AddDesktopItemA
98 #define DeleteDesktopItem DeleteDesktopItemA
99 #define CreateGroup CreateGroupA
100 #define DeleteGroup DeleteGroupA
101 #define AddItem AddItemA
102 #define DeleteItem DeleteItemA
103 #define CopyProfileDirectory CopyProfileDirectoryA
104 /* end private */
105 #define LoadUserProfile LoadUserProfileA
106 #define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryA
107 #define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryA
108 #define GetProfilesDirectory GetProfilesDirectoryA
109 #define GetUserProfileDirectory GetUserProfileDirectoryA
110 #endif
111
112 #ifdef __cplusplus
113 }
114 #endif
115
116 #endif /* _USERENV_H */