9 #define PI_APPLYPOLICY (2)
11 #if (WINVER >= 0x0500)
15 /* Values returned by GetProfileType */
16 #if (WINVER >= 0x0500)
17 #define PT_TEMPORARY 1
19 #define PT_MANDATORY 4
22 typedef struct _PROFILEINFOA
32 } PROFILEINFOA
, *LPPROFILEINFOA
;
34 typedef struct _PROFILEINFOW
44 } PROFILEINFOW
, *LPPROFILEINFOW
;
46 #if (WINVER >= 0x0502)
47 typedef enum _GPO_LINK
{
52 GPLinkOrganizationalUnit
53 } GPO_LINK
, *PGPO_LINK
;
55 typedef struct _GROUP_POLICY_OBJECTA
{
64 struct _GROUP_POLICY_OBJECTA
*pNext
;
65 struct _GROUP_POLICY_OBJECTA
*pPrev
;
69 } GROUP_POLICY_OBJECTA
, *PGROUP_POLICY_OBJECTA
;
71 typedef struct _GROUP_POLICY_OBJECTW
{
80 struct _GROUP_POLICY_OBJECTW
*pNext
;
81 struct _GROUP_POLICY_OBJECTW
*pPrev
;
85 } GROUP_POLICY_OBJECTW
, *PGROUP_POLICY_OBJECTW
;
89 BOOL WINAPI
InitializeProfiles (VOID
);
90 BOOL WINAPI
CreateUserProfileA (PSID
, LPCSTR
);
91 BOOL WINAPI
CreateUserProfileW (PSID
, LPCWSTR
);
92 BOOL WINAPI
CreateUserProfileExA (PSID
, LPCSTR
, LPCSTR
, LPSTR
, DWORD
, BOOL
);
93 BOOL WINAPI
CreateUserProfileExW (PSID
, LPCWSTR
, LPCWSTR
, LPWSTR
, DWORD
, BOOL
);
94 BOOL WINAPI
AddDesktopItemA (BOOL
, LPCSTR
, LPCSTR
, LPCSTR
, INT
, LPCSTR
, WORD
, INT
);
95 BOOL WINAPI
AddDesktopItemW (BOOL
, LPCWSTR
, LPCWSTR
, LPCWSTR
, INT
, LPCWSTR
, WORD
, INT
);
96 BOOL WINAPI
DeleteDesktopItemA (BOOL
, LPCSTR
);
97 BOOL WINAPI
DeleteDesktopItemW (BOOL
, LPCWSTR
);
98 BOOL WINAPI
CreateGroupA (LPCSTR
, BOOL
);
99 BOOL WINAPI
CreateGroupW (LPCWSTR
, BOOL
);
100 BOOL WINAPI
DeleteGroupA (LPCSTR
, BOOL
);
101 BOOL WINAPI
DeleteGroupW (LPCWSTR
, BOOL
);
102 BOOL WINAPI
AddItemA (LPCSTR
, BOOL
, LPCSTR
, LPCSTR
, LPCSTR
, INT
, LPCSTR
, WORD
, INT
);
103 BOOL WINAPI
AddItemW (LPCWSTR
, BOOL
, LPCWSTR
, LPCWSTR
, LPCWSTR
, INT
, LPCWSTR
, WORD
, INT
);
104 BOOL WINAPI
DeleteItemA (LPCSTR
, BOOL
, LPCSTR
, BOOL
);
105 BOOL WINAPI
DeleteItemW (LPCWSTR
, BOOL
, LPCWSTR
, BOOL
);
106 BOOL WINAPI
CopyProfileDirectoryA(LPCSTR
, LPCSTR
, DWORD
);
107 BOOL WINAPI
CopyProfileDirectoryW(LPCWSTR
, LPCWSTR
, DWORD
);
108 PSID WINAPI
GetUserSid(HANDLE
);
110 BOOL WINAPI
LoadUserProfileA (HANDLE
, LPPROFILEINFOA
);
111 BOOL WINAPI
LoadUserProfileW (HANDLE
, LPPROFILEINFOW
);
112 BOOL WINAPI
UnloadUserProfile (HANDLE
, HANDLE
);
114 BOOL WINAPI
GetAllUsersProfileDirectoryA (LPSTR
, LPDWORD
);
115 BOOL WINAPI
GetAllUsersProfileDirectoryW (LPWSTR
, LPDWORD
);
116 BOOL WINAPI
GetDefaultUserProfileDirectoryA (LPSTR
, LPDWORD
);
117 BOOL WINAPI
GetDefaultUserProfileDirectoryW (LPWSTR
, LPDWORD
);
118 BOOL WINAPI
GetProfilesDirectoryA(LPSTR
, LPDWORD
);
119 BOOL WINAPI
GetProfilesDirectoryW(LPWSTR
, LPDWORD
);
120 BOOL WINAPI
GetUserProfileDirectoryA(HANDLE
, LPSTR
, LPDWORD
);
121 BOOL WINAPI
GetUserProfileDirectoryW(HANDLE
, LPWSTR
, LPDWORD
);
122 #if (WINVER >= 0x0500)
123 BOOL WINAPI
GetProfileType(PDWORD
);
126 BOOL WINAPI
CreateEnvironmentBlock(LPVOID
*, HANDLE
, BOOL
);
127 BOOL WINAPI
DestroyEnvironmentBlock(LPVOID
);
128 #if (WINVER >= 0x0500)
129 BOOL WINAPI
ExpandEnvironmentStringsForUserA (HANDLE
, LPCSTR
, LPSTR
, DWORD
);
130 BOOL WINAPI
ExpandEnvironmentStringsForUserW (HANDLE
, LPCWSTR
, LPWSTR
, DWORD
);
133 #if (WINVER >= 0x0502)
138 _In_ LPCSTR pMachineName
,
140 _In_ GUID
*pGuidExtension
,
141 _Out_ PGROUP_POLICY_OBJECTA
*ppGPOList
147 _In_ LPCWSTR pMachineName
,
149 _In_ GUID
*pGuidExtension
,
150 _Out_ PGROUP_POLICY_OBJECTW
*ppGPOList
154 HANDLE WINAPI
EnterCriticalPolicySection (BOOL
);
155 BOOL WINAPI
LeaveCriticalPolicySection (HANDLE
);
156 BOOL WINAPI
RefreshPolicy (BOOL
);
157 #if (WINVER >= 0x0500)
158 BOOL WINAPI
RefreshPolicyEx (BOOL
, DWORD
);
160 BOOL WINAPI
RegisterGPNotification (HANDLE
, BOOL
);
161 BOOL WINAPI
UnregisterGPNotification (HANDLE
);
164 typedef PROFILEINFOW PROFILEINFO
;
165 typedef LPPROFILEINFOW LPPROFILEINFO
;
167 #define CreateUserProfile CreateUserProfileW
168 #define CreateUserProfileEx CreateUserProfileExW
169 #define AddDesktopItem AddDesktopItemW
170 #define DeleteDesktopItem DeleteDesktopItemW
171 #define CreateGroup CreateGroupW
172 #define DeleteGroup DeleteGroupW
173 #define AddItem AddItemW
174 #define DeleteItem DeleteItemW
175 #define CopyProfileDirectory CopyProfileDirectoryW
177 #define LoadUserProfile LoadUserProfileW
178 #define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryW
179 #define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryW
180 #define GetProfilesDirectory GetProfilesDirectoryW
181 #define GetUserProfileDirectory GetUserProfileDirectoryW
182 #if (WINVER >= 0x0500)
183 #define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserW
185 #if (WINVER >= 0x0502)
186 typedef GROUP_POLICY_OBJECTW GROUP_POLICY_OBJECT
;
187 typedef PGROUP_POLICY_OBJECTW PGROUP_POLICY_OBJECT
;
188 #define GetAppliedGPOList GetAppliedGPOListW
191 typedef PROFILEINFOA PROFILEINFO
;
192 typedef LPPROFILEINFOA LPPROFILEINFO
;
194 #define CreateUserProfile CreateUserProfileA
195 #define CreateUserProfileEx CreateUserProfileExA
196 #define AddDesktopItem AddDesktopItemA
197 #define DeleteDesktopItem DeleteDesktopItemA
198 #define CreateGroup CreateGroupA
199 #define DeleteGroup DeleteGroupA
200 #define AddItem AddItemA
201 #define DeleteItem DeleteItemA
202 #define CopyProfileDirectory CopyProfileDirectoryA
204 #define LoadUserProfile LoadUserProfileA
205 #define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryA
206 #define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryA
207 #define GetProfilesDirectory GetProfilesDirectoryA
208 #define GetUserProfileDirectory GetUserProfileDirectoryA
209 #if (WINVER >= 0x0500)
210 #define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserA
212 #if (WINVER >= 0x0502)
213 typedef GROUP_POLICY_OBJECTA GROUP_POLICY_OBJECT
;
214 typedef PGROUP_POLICY_OBJECTA PGROUP_POLICY_OBJECT
;
215 #define GetAppliedGPOList GetAppliedGPOListA
223 #endif /* _USERENV_H */