Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236#ifndef _USERENV_H#define _USERENV_H
#ifdef __cplusplusextern "C" {#endif
#define PI_NOUI (1)#define PI_APPLYPOLICY (2)
#if (WINVER >= 0x0500)#define RP_FORCE (1)#endif
/* Values returned by GetProfileType */#if (WINVER >= 0x0500)#define PT_TEMPORARY 1#define PT_ROAMING 2#define PT_MANDATORY 4#endif
typedef struct _PROFILEINFOA{ DWORD dwSize; DWORD dwFlags; LPSTR lpUserName; LPSTR lpProfilePath; LPSTR lpDefaultPath; LPSTR lpServerName; LPSTR lpPolicyPath; HANDLE hProfile;} PROFILEINFOA, *LPPROFILEINFOA;
typedef struct _PROFILEINFOW{ DWORD dwSize; DWORD dwFlags; LPWSTR lpUserName; LPWSTR lpProfilePath; LPWSTR lpDefaultPath; LPWSTR lpServerName; LPWSTR lpPolicyPath; HANDLE hProfile;} PROFILEINFOW, *LPPROFILEINFOW;
#if (WINVER >= 0x0502)typedef enum _GPO_LINK { GPLinkUnknown = 0, GPLinkMachine, GPLinkSite, GPLinkDomain, GPLinkOrganizationalUnit} GPO_LINK, *PGPO_LINK;
typedef struct _GROUP_POLICY_OBJECTA { DWORD dwOptions; DWORD dwVersion; LPSTR lpDSPath; LPSTR lpFileSysPath; LPSTR lpDisplayName; CHAR szGPOName[50]; GPO_LINK GPOLink; LPARAM lParam; struct _GROUP_POLICY_OBJECTA *pNext; struct _GROUP_POLICY_OBJECTA *pPrev; LPSTR lpExtensions; LPARAM lParam2; LPSTR lpLink;} GROUP_POLICY_OBJECTA, *PGROUP_POLICY_OBJECTA;
typedef struct _GROUP_POLICY_OBJECTW { DWORD dwOptions; DWORD dwVersion; LPWSTR lpDSPath; LPWSTR lpFileSysPath; LPWSTR lpDisplayName; WCHAR szGPOName[50]; GPO_LINK GPOLink; LPARAM lParam; struct _GROUP_POLICY_OBJECTW *pNext; struct _GROUP_POLICY_OBJECTW *pPrev; LPWSTR lpExtensions; LPARAM lParam2; LPWSTR lpLink;} GROUP_POLICY_OBJECTW, *PGROUP_POLICY_OBJECTW;#endif
/* begin private */BOOL WINAPI InitializeProfiles (VOID);BOOL WINAPI CreateUserProfileA (PSID, LPCSTR);BOOL WINAPI CreateUserProfileW (PSID, LPCWSTR);BOOL WINAPI CreateUserProfileExA (PSID, LPCSTR, LPCSTR, LPSTR, DWORD, BOOL);BOOL WINAPI CreateUserProfileExW (PSID, LPCWSTR, LPCWSTR, LPWSTR, DWORD, BOOL);BOOL WINAPI AddDesktopItemA (BOOL, LPCSTR, LPCSTR, LPCSTR, INT, LPCSTR, WORD, INT);BOOL WINAPI AddDesktopItemW (BOOL, LPCWSTR, LPCWSTR, LPCWSTR, INT, LPCWSTR, WORD, INT);BOOL WINAPI DeleteDesktopItemA (BOOL, LPCSTR);BOOL WINAPI DeleteDesktopItemW (BOOL, LPCWSTR);BOOL WINAPI CreateGroupA (LPCSTR, BOOL);BOOL WINAPI CreateGroupW (LPCWSTR, BOOL);BOOL WINAPI DeleteGroupA (LPCSTR, BOOL);BOOL WINAPI DeleteGroupW (LPCWSTR, BOOL);BOOL WINAPI AddItemA (LPCSTR, BOOL, LPCSTR, LPCSTR, LPCSTR, INT, LPCSTR, WORD, INT);BOOL WINAPI AddItemW (LPCWSTR, BOOL, LPCWSTR, LPCWSTR, LPCWSTR, INT, LPCWSTR, WORD, INT);BOOL WINAPI DeleteItemA (LPCSTR, BOOL, LPCSTR, BOOL);BOOL WINAPI DeleteItemW (LPCWSTR, BOOL, LPCWSTR, BOOL);BOOL WINAPI CopyProfileDirectoryA(LPCSTR, LPCSTR, DWORD);BOOL WINAPI CopyProfileDirectoryW(LPCWSTR, LPCWSTR, DWORD);PSID WINAPI GetUserSid(HANDLE);BOOL WINAPI CopySystemProfile(ULONG);/* end private */
#if(WINVER >= 0x0500)BOOL WINAPI DeleteProfileA(LPCSTR, LPCSTR, LPCSTR);BOOL WINAPI DeleteProfileW(LPCWSTR, LPCWSTR, LPCWSTR);#endifBOOL WINAPI LoadUserProfileA (HANDLE, LPPROFILEINFOA);BOOL WINAPI LoadUserProfileW (HANDLE, LPPROFILEINFOW);BOOL WINAPI UnloadUserProfile (HANDLE, HANDLE);
BOOL WINAPI GetAllUsersProfileDirectoryA (LPSTR, LPDWORD);BOOL WINAPI GetAllUsersProfileDirectoryW (LPWSTR, LPDWORD);BOOL WINAPI GetDefaultUserProfileDirectoryA (LPSTR, LPDWORD);BOOL WINAPI GetDefaultUserProfileDirectoryW (LPWSTR, LPDWORD);BOOL WINAPI GetProfilesDirectoryA(LPSTR, LPDWORD);BOOL WINAPI GetProfilesDirectoryW(LPWSTR, LPDWORD);BOOL WINAPI GetUserProfileDirectoryA(HANDLE, LPSTR, LPDWORD);BOOL WINAPI GetUserProfileDirectoryW(HANDLE, LPWSTR, LPDWORD);#if (WINVER >= 0x0500)BOOL WINAPI GetProfileType(PDWORD);#endif
BOOL WINAPI CreateEnvironmentBlock(LPVOID*, HANDLE, BOOL);BOOL WINAPI DestroyEnvironmentBlock(LPVOID);#if (WINVER >= 0x0500)BOOL WINAPI ExpandEnvironmentStringsForUserA (HANDLE, LPCSTR, LPSTR, DWORD);BOOL WINAPI ExpandEnvironmentStringsForUserW (HANDLE, LPCWSTR, LPWSTR, DWORD);#endif
#if (WINVER >= 0x0502)DWORDWINAPIGetAppliedGPOListA( _In_ DWORD dwFlags, _In_ LPCSTR pMachineName, _In_ PSID pSidUser, _In_ GUID *pGuidExtension, _Out_ PGROUP_POLICY_OBJECTA *ppGPOList);DWORDWINAPIGetAppliedGPOListW( _In_ DWORD dwFlags, _In_ LPCWSTR pMachineName, _In_ PSID pSidUser, _In_ GUID *pGuidExtension, _Out_ PGROUP_POLICY_OBJECTW *ppGPOList);#endif
HANDLE WINAPI EnterCriticalPolicySection (BOOL);BOOL WINAPI LeaveCriticalPolicySection (HANDLE);BOOL WINAPI RefreshPolicy (BOOL);#if (WINVER >= 0x0500)BOOL WINAPI RefreshPolicyEx (BOOL, DWORD);#endifBOOL WINAPI RegisterGPNotification (HANDLE, BOOL);BOOL WINAPI UnregisterGPNotification (HANDLE);
#ifdef UNICODEtypedef PROFILEINFOW PROFILEINFO;typedef LPPROFILEINFOW LPPROFILEINFO;/* begin private */#define CreateUserProfile CreateUserProfileW#define CreateUserProfileEx CreateUserProfileExW#define AddDesktopItem AddDesktopItemW#define DeleteDesktopItem DeleteDesktopItemW#define CreateGroup CreateGroupW#define DeleteGroup DeleteGroupW#define AddItem AddItemW#define DeleteItem DeleteItemW#define CopyProfileDirectory CopyProfileDirectoryW/* end private */#if (WINVER >= 0x0500)#define DeleteProfile DeleteProfileW#endif#define LoadUserProfile LoadUserProfileW#define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryW#define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryW#define GetProfilesDirectory GetProfilesDirectoryW#define GetUserProfileDirectory GetUserProfileDirectoryW#if (WINVER >= 0x0500)#define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserW#endif#if (WINVER >= 0x0502)typedef GROUP_POLICY_OBJECTW GROUP_POLICY_OBJECT;typedef PGROUP_POLICY_OBJECTW PGROUP_POLICY_OBJECT;#define GetAppliedGPOList GetAppliedGPOListW#endif#elsetypedef PROFILEINFOA PROFILEINFO;typedef LPPROFILEINFOA LPPROFILEINFO;/* begin private */#define CreateUserProfile CreateUserProfileA#define CreateUserProfileEx CreateUserProfileExA#define AddDesktopItem AddDesktopItemA#define DeleteDesktopItem DeleteDesktopItemA#define CreateGroup CreateGroupA#define DeleteGroup DeleteGroupA#define AddItem AddItemA#define DeleteItem DeleteItemA#define CopyProfileDirectory CopyProfileDirectoryA/* end private */#if (WINVER >= 0x0500)#define DeleteProfile DeleteProfileA#endif#define LoadUserProfile LoadUserProfileA#define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryA#define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryA#define GetProfilesDirectory GetProfilesDirectoryA#define GetUserProfileDirectory GetUserProfileDirectoryA#if (WINVER >= 0x0500)#define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserA#endif#if (WINVER >= 0x0502)typedef GROUP_POLICY_OBJECTA GROUP_POLICY_OBJECT;typedef PGROUP_POLICY_OBJECTA PGROUP_POLICY_OBJECT;#define GetAppliedGPOList GetAppliedGPOListA#endif#endif
#ifdef __cplusplus}#endif
#endif /* _USERENV_H */