[XDK]
[reactos.git] / include / psdk / userenv.h
1 #ifndef _USERENV_H
2 #define _USERENV_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 #define PI_NOUI (1)
9 #define PI_APPLYPOLICY (2)
10
11 #if (WINVER >= 0x0500)
12 #define RP_FORCE (1)
13 #endif
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 #if (WINVER >= 0x0500)
74 BOOL WINAPI ExpandEnvironmentStringsForUserA (HANDLE, LPCSTR, LPSTR, DWORD);
75 BOOL WINAPI ExpandEnvironmentStringsForUserW (HANDLE, LPCWSTR, LPWSTR, DWORD);
76 #endif
77
78 HANDLE WINAPI EnterCriticalPolicySection (BOOL);
79 BOOL WINAPI LeaveCriticalPolicySection (HANDLE);
80 BOOL WINAPI RefreshPolicy (BOOL);
81 #if (WINVER >= 0x0500)
82 BOOL WINAPI RefreshPolicyEx (BOOL, DWORD);
83 #endif
84 BOOL WINAPI RegisterGPNotification (HANDLE, BOOL);
85 BOOL WINAPI UnregisterGPNotification (HANDLE);
86
87 #ifdef UNICODE
88 typedef PROFILEINFOW PROFILEINFO;
89 typedef LPPROFILEINFOW LPPROFILEINFO;
90 /* begin private */
91 #define CreateUserProfile CreateUserProfileW
92 #define AddDesktopItem AddDesktopItemW
93 #define DeleteDesktopItem DeleteDesktopItemW
94 #define CreateGroup CreateGroupW
95 #define DeleteGroup DeleteGroupW
96 #define AddItem AddItemW
97 #define DeleteItem DeleteItemW
98 #define CopyProfileDirectory CopyProfileDirectoryW
99 /* end private */
100 #define LoadUserProfile LoadUserProfileW
101 #define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryW
102 #define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryW
103 #define GetProfilesDirectory GetProfilesDirectoryW
104 #define GetUserProfileDirectory GetUserProfileDirectoryW
105 #if (WINVER >= 0x0500)
106 #define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserW
107 #endif
108 #else
109 typedef PROFILEINFOA PROFILEINFO;
110 typedef LPPROFILEINFOA LPPROFILEINFO;
111 /* begin private */
112 #define CreateUserProfile CreateUserProfileA
113 #define AddDesktopItem AddDesktopItemA
114 #define DeleteDesktopItem DeleteDesktopItemA
115 #define CreateGroup CreateGroupA
116 #define DeleteGroup DeleteGroupA
117 #define AddItem AddItemA
118 #define DeleteItem DeleteItemA
119 #define CopyProfileDirectory CopyProfileDirectoryA
120 /* end private */
121 #define LoadUserProfile LoadUserProfileA
122 #define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryA
123 #define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryA
124 #define GetProfilesDirectory GetProfilesDirectoryA
125 #define GetUserProfileDirectory GetUserProfileDirectoryA
126 #if (WINVER >= 0x0500)
127 #define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserA
128 #endif
129 #endif
130
131 #ifdef __cplusplus
132 }
133 #endif
134
135 #endif /* _USERENV_H */