/* * userenv.h User environment functions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef _INC_USERENV #define _INC_USERENV #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #include #include #ifdef __cplusplus extern "C" { #endif /* Macro to specify user environment functions */ #define USERENVAPI DECLSPEC_IMPORT /* Group policy primitive data types */ #if (WINVER >= 0x0500) typedef UINT_PTR ASYNCCOMPLETIONHANDLE; typedef PVOID PRSOPTOKEN; typedef GUID *REFGPEXTENSIONID; #endif /* Profile information flags */ #define PI_NOUI 0x00000001L #define PI_APPLYPOLICY 0x00000002L /* Profile types */ #if (WINVER >= 0x0500) #define PT_TEMPORARY 0x00000001L #define PT_ROAMING 0x00000002L #define PT_MANDATORY 0x00000004L #endif /* RefreshPolicyEx() flags */ #if (WINVER >= 0x0500) #define RP_FORCE 1L #define RP_SYNC 2L #endif /* Group policy object option flags */ #if (WINVER >= 0x0500) #define GPC_BLOCK_POLICY 0x00000001L #endif /* Group policy object link flags */ #if (WINVER >= 0x0500) #define GPO_FLAG_DISABLE 0x00000001L #define GPO_FLAG_FORCE 0x00000002L #endif /* GetGPOList() flags */ #if (WINVER >= 0x0500) #define GPO_LIST_FLAG_MACHINE 0x00000001L #define GPO_LIST_FLAG_SITEONLY 0x00000002L #define GPO_LIST_FLAG_NO_WMIFILTERS 0x00000004L #define GPO_LIST_FLAG_NO_SECURITYFILTERS 0x00000008L #endif /* Group policy registry keys */ #if (WINVER >= 0x0500) #define GP_DLLNAME TEXT( "DllName" ) #define GP_ENABLEASYNCHRONOUSPROCESSING TEXT( "EnableAsynchronousProcessing" ) #define GP_MAXNOGPOLISTCHANGESINTERVAL TEXT( "MaxNoGPOListChangesInterval" ) #define GP_NOBACKGROUNDPOLICY TEXT( "NoBackgroundPolicy" ) #define GP_NOGPOLISTCHANGES TEXT( "NoGPOListChanges" ) #define GP_NOMACHINEPOLICY TEXT( "NoMachinePolicy" ) #define GP_NOSLOWLINK TEXT( "NoSlowLink" ) #define GP_NOTIFYLINKTRANSITION TEXT( "NotifyLinkTransition" ) #define GP_NOUSERPOLICY TEXT( "NoUserPolicy" ) #define GP_PERUSERLOCALSETTINGS TEXT( "PerUserLocalSettings" ) #define GP_PROCESSGROUPPOLICY TEXT( "ProcessGroupPolicy" ) #define GP_REQUIRESSUCCESSFULREGISTRY TEXT( "RequiresSuccessfulRegistry" ) #endif /* Group policy object information flags */ #if (WINVER >= 0x0500) #define GPO_INFO_FLAG_MACHINE 0x00000001L #define GPO_INFO_FLAG_BACKGROUND 0x00000010L #define GPO_INFO_FLAG_SLOWLINK 0x00000020L #define GPO_INFO_FLAG_VERBOSE 0x00000040L #define GPO_INFO_FLAG_NOCHANGES 0x00000080L #define GPO_INFO_FLAG_LINKTRANSITION 0x00000100L #define GPO_INFO_FLAG_LOGRSOP_TRANSITION 0x00000200L #define GPO_INFO_FLAG_FORCED_REFRESH 0x00000400L #define GPO_INFO_FLAG_SAFEMODE_BOOT 0x00000800L #define GPO_INFO_FLAG_ASYNC_FOREGROUND 0x00001000L #endif /* GUIDs */ #if (WINVER >= 0x0500) #define REGISTRY_EXTENSION_GUID \ { 0x35378EAC, 0x683F, 0x11D2, 0xA8, 0x9A, 0x00, 0xC0, 0x4F, 0xBB, 0xCF, 0xA2 } #define GROUP_POLICY_TRIGGER_EVENT_PROVIDER_GUID \ { 0xBD2F4252, 0x5E1E, 0x49FC, 0x9A, 0x30, 0xF3, 0x97, 0x8A, 0xD8, 0x9E, 0xE2 } #define MACHINE_POLICY_PRESENT_TRIGGER_GUID \ { 0x659FCAE6, 0x5BDB, 0x4DA9, 0xB1, 0xFF, 0xCA, 0x2A, 0x17, 0x8D, 0x46, 0xE0 } #define USER_POLICY_PRESENT_TRIGGER_GUID \ { 0x54FB46C8, 0xF089, 0x464C, 0xB1, 0xFD, 0x59, 0xD1, 0xB6, 0x2C, 0x3B, 0x50 } #endif /* RSOP flags */ #define FLAG_NO_GPO_FILTER 0x80000000L #define FLAG_NO_CSE_INVOKE 0x40000000L #define FLAG_ASSUME_SLOW_LINK 0x20000000L #define FLAG_LOOPBACK_MERGE 0x10000000L #define FLAG_LOOPBACK_REPLACE 0x08000000L #define FLAG_ASSUME_USER_WQLFILTER_TRUE 0x04000000L #define FLAG_ASSUME_COMP_WQLFILTER_TRUE 0x02000000L #define FLAG_PLANNING_MODE 0x01000000L #define FLAG_NO_USER 0x00000001L #define FLAG_NO_COMPUTER 0x00000002L #define FLAG_FORCE_CREATENAMESPACE 0x00000004L /* RSOP extended error codes */ #define RSOP_USER_ACCESS_DENIED 0x00000001L #define RSOP_COMPUTER_ACCESS_DENIED 0x00000002L #define RSOP_TEMPNAMESPACE_EXISTS 0x00000004L /* Group policy object link */ #if (WINVER >= 0x0500) typedef enum _GPO_LINK { GPLinkUnknown = 0, GPLinkMachine = 1, GPLinkSite = 2, GPLinkDomain = 3, GPLinkOrganizationalUnit = 4 } GPO_LINK; typedef GPO_LINK *PGPO_LINK; #endif /* Group policy object */ #if (WINVER >= 0x0500) 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; typedef 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; typedef GROUP_POLICY_OBJECTW *PGROUP_POLICY_OBJECTW; #ifdef UNICODE typedef GROUP_POLICY_OBJECTW GROUP_POLICY_OBJECT; typedef PGROUP_POLICY_OBJECT PGROUP_POLICY_OBJECT; #else typedef GROUP_POLICY_OBJECTA GROUP_POLICY_OBJECT; typedef PGROUP_POLICY_OBJECTA PGROUP_POLICY_OBJECT; #endif #endif /* RSOP target */ #if (WINVER >= 0x0500) typedef struct _RSOP_TARGET { WCHAR *pwszAccountName; WCHAR *pwszNewSOM; SAFEARRAY *pszSecurityGroups; PRSOPTOKEN pRsopToken; PGROUP_POLICY_OBJECT pGPOList; IWbemServices *pWbemServices; } RSOP_TARGET; typedef RSOP_TARGET *PRSOP_TARGET; #endif /* Group policy callbacks */ #if (WINVER >= 0x0500) typedef DWORD (CALLBACK *PFNSTATUSMESSAGECALLBACK)( BOOL, LPWSTR ); typedef DWORD (CALLBACK *PFNPROCESSGROUPPOLICY)( DWORD, HANDLE, HKEY, PGROUP_POLICY_OBJECT, PGROUP_POLICY_OBJECT, ASYNCCOMPLETIONHANDLE, BOOL *, PFNSTATUSMESSAGECALLBACK ); typedef DWORD (CALLBACK *PFNPROCESSGROUPPOLICYEX)( DWORD, HANDLE, HKEY, PGROUP_POLICY_OBJECT, PGROUP_POLICY_OBJECT, ASYNCCOMPLETIONHANDLE, BOOL *, PFNSTATUSMESSAGECALLBACK, IWbemServices *, HRESULT * ); typedef DWORD (CALLBACK *PFNGENERATEGROUPPOLICY)( DWORD, BOOL *, WCHAR *, PRSOP_TARGET, PRSOP_TARGET ); #endif /* Setting status values */ typedef enum _SETTINGSTATUS { RSOPUnspecified = 0, RSOPApplied = 1, RSOPIgnored = 2, RSOPFailed = 3, RSOPSubsettingFailed = 4 } SETTINGSTATUS; /* Policy setting status information */ typedef struct _POLICYSETTINGSTATUSINFO { LPWSTR szKey; LPWSTR szEventSource; LPWSTR szEventLogName; DWORD dwEventID; DWORD dwErrorCode; SETTINGSTATUS status; SYSTEMTIME timeLogged; } POLICYSETTINGSTATUSINFO; typedef POLICYSETTINGSTATUSINFO *LPPOLICYSETTINGSTATUSINFO; /* Functions in USERENV.DLL */ USERENVAPI BOOL WINAPI CreateEnvironmentBlock( LPVOID *, HANDLE, BOOL ); USERENVAPI BOOL WINAPI DestroyEnvironmentBlock( LPVOID ); USERENVAPI BOOL WINAPI GetProfilesDirectoryA( LPSTR, LPDWORD ); USERENVAPI BOOL WINAPI GetProfilesDirectoryW( LPWSTR, LPDWORD ); USERENVAPI BOOL WINAPI GetUserProfileDirectoryA( HANDLE, LPSTR, LPDWORD ); USERENVAPI BOOL WINAPI GetUserProfileDirectoryW( HANDLE, LPWSTR, LPDWORD ); USERENVAPI BOOL WINAPI LoadUserProfileA( HANDLE, LPPROFILEINFOA ); USERENVAPI BOOL WINAPI LoadUserProfileW( HANDLE, LPPROFILEINFOW ); USERENVAPI HRESULT WINAPI RsopResetPolicySettingStatus( DWORD, IWbemServices *, IWbemClassObject * ); USERENVAPI HRESULT WINAPI RsopSetPolicySettingStatus( DWORD, IWbemServices *, IWbemClassObject *, DWORD, POLICYSETTINGSTATUSINFO * ); USERENVAPI BOOL WINAPI UnloadUserProfile( HANDLE, HANDLE ); #if (WINVER >= 0x0500) USERENVAPI BOOL WINAPI DeleteProfileA( LPCSTR, LPCSTR, LPCSTR ); USERENVAPI BOOL WINAPI DeleteProfileW( LPCWSTR, LPCWSTR, LPCWSTR ); USERENVAPI HANDLE WINAPI EnterCriticalPolicySection( BOOL ); USERENVAPI BOOL WINAPI ExpandEnvironmentStringsForUserA( HANDLE, LPCSTR, LPSTR, DWORD ); USERENVAPI BOOL WINAPI ExpandEnvironmentStringsForUserW( HANDLE, LPCWSTR, LPWSTR, DWORD ); USERENVAPI BOOL WINAPI FreeGPOListA( PGROUP_POLICY_OBJECTA ); USERENVAPI BOOL WINAPI FreeGPOListW( PGROUP_POLICY_OBJECTW ); USERENVAPI BOOL WINAPI GetAllUsersProfileDirectoryA( LPSTR, LPDWORD ); USERENVAPI BOOL WINAPI GetAllUsersProfileDirectoryW( LPWSTR, LPDWORD ); USERENVAPI DWORD WINAPI GetAppliedGPOListA( DWORD, LPCSTR, PSID, GUID *, PGROUP_POLICY_OBJECTA * ); USERENVAPI DWORD WINAPI GetAppliedGPOListW( DWORD, LPCWSTR, PSID, GUID *, PGROUP_POLICY_OBJECTW * ); USERENVAPI BOOL WINAPI GetDefaultUserProfileDirectoryA( LPSTR, LPDWORD ); USERENVAPI BOOL WINAPI GetDefaultUserProfileDirectoryW( LPWSTR, LPDWORD ); USERENVAPI BOOL WINAPI GetGPOListA( HANDLE, LPCSTR, LPCSTR, LPCSTR, DWORD, PGROUP_POLICY_OBJECTA * ); USERENVAPI BOOL WINAPI GetGPOListW( HANDLE, LPCWSTR, LPCWSTR, LPCWSTR, DWORD, PGROUP_POLICY_OBJECTW * ); USERENVAPI BOOL WINAPI GetProfileType( DWORD * ); USERENVAPI BOOL WINAPI LeaveCriticalPolicySection( HANDLE ); USERENVAPI DWORD WINAPI ProcessGroupPolicyCompleted( REFGPEXTENSIONID, ASYNCCOMPLETIONHANDLE, DWORD ); USERENVAPI DWORD WINAPI ProcessGroupPolicyCompletedEx( REFGPEXTENSIONID, ASYNCCOMPLETIONHANDLE, DWORD, HRESULT ); USERENVAPI BOOL WINAPI RefreshPolicy( BOOL ); USERENVAPI BOOL WINAPI RefreshPolicyEx( BOOL, DWORD ); USERENVAPI BOOL WINAPI RegisterGPNotification( HANDLE, BOOL ); USERENVAPI HRESULT WINAPI RsopAccessCheckByType( PSECURITY_DESCRIPTOR, PSID, PRSOPTOKEN, DWORD, POBJECT_TYPE_LIST, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, LPDWORD, LPDWORD, LPBOOL ); USERENVAPI HRESULT WINAPI RsopFileAccessCheck( LPWSTR, PRSOPTOKEN, DWORD, LPDWORD, LPBOOL ); USERENVAPI BOOL WINAPI UnregisterGPNotification( HANDLE ); #endif #if (WINVER >= 0x0600) USERENVAPI HRESULT WINAPI CreateProfile( LPCWSTR, LPCWSTR, LPWSTR, DWORD ); #endif /* Map generic function names to the appropriate ANSI or Unicode version. */ #ifdef UNICODE #define GetUserProfileDirectory GetUserProfileDirectoryW #define GetProfilesDirectory GetProfilesDirectoryW #define LoadUserProfile LoadUserProfileW #if (WINVER >= 0x0500) #define DeleteProfile DeleteProfileW #define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserW #define FreeGPOList FreeGPOListW #define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryW #define GetAppliedGPOList GetAppliedGPOListW #define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryW #define GetGPOList GetGPOListW #endif #else #define GetUserProfileDirectory GetUserProfileDirectoryA #define GetProfilesDirectory GetProfilesDirectoryA #define LoadUserProfile LoadUserProfileA #if (WINVER >= 0x0500) #define DeleteProfile DeleteProfileA #define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserA #define FreeGPOList FreeGPOListA #define GetAllUsersProfileDirectory GetAllUsersProfileDirectoryA #define GetAppliedGPOList GetAppliedGPOListA #define GetDefaultUserProfileDirectory GetDefaultUserProfileDirectoryA #define GetGPOList GetGPOListA #endif #endif #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _INC_USERENV */