1 // Copyright © 2015-2017 winapi-rs developers 2 // Licensed under the Apache License, Version 2.0 3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 5 // All files in the project carrying such notice may not be copied, modified, or distributed 6 // except according to those terms. 7 //! Definitions for the user environment API 8 use shared::minwindef::{BOOL, DWORD, LPDWORD, LPVOID}; 9 use um::winnt::{HANDLE, HRESULT, LPCSTR, LPCWSTR, LPSTR, LPWSTR}; 10 extern "system" { 11 // pub fn LoadUserProfileA( 12 // hToken: HANDLE, 13 // lpProfileInfo: LPPROFILEINFOA, 14 // ) -> BOOL; 15 // pub fn LoadUserProfileW( 16 // hToken: HANDLE, 17 // lpProfileInfo: LPPROFILEINFOW, 18 // ) -> BOOL; UnloadUserProfile( hToken: HANDLE, hProfile: HANDLE, ) -> BOOL19 pub fn UnloadUserProfile( 20 hToken: HANDLE, 21 hProfile: HANDLE, 22 ) -> BOOL; GetProfilesDirectoryA( lpProfileDir: LPSTR, lpcchSize: LPDWORD, ) -> BOOL23 pub fn GetProfilesDirectoryA( 24 lpProfileDir: LPSTR, 25 lpcchSize: LPDWORD, 26 ) -> BOOL; GetProfilesDirectoryW( lpProfileDir: LPWSTR, lpcchSize: LPDWORD, ) -> BOOL27 pub fn GetProfilesDirectoryW( 28 lpProfileDir: LPWSTR, 29 lpcchSize: LPDWORD, 30 ) -> BOOL; GetProfileType( dwFlags: *mut DWORD, ) -> BOOL31 pub fn GetProfileType( 32 dwFlags: *mut DWORD, 33 ) -> BOOL; DeleteProfileA( lpSidString: LPCSTR, lpProfilePath: LPCSTR, lpComputerName: LPCSTR, ) -> BOOL34 pub fn DeleteProfileA( 35 lpSidString: LPCSTR, 36 lpProfilePath: LPCSTR, 37 lpComputerName: LPCSTR, 38 ) -> BOOL; DeleteProfileW( lpSidString: LPCWSTR, lpProfilePath: LPCWSTR, lpComputerName: LPCWSTR, ) -> BOOL39 pub fn DeleteProfileW( 40 lpSidString: LPCWSTR, 41 lpProfilePath: LPCWSTR, 42 lpComputerName: LPCWSTR, 43 ) -> BOOL; CreateProfile( pszUserSid: LPCWSTR, pszUserName: LPCWSTR, pszProfilePath: LPWSTR, cchProfilePath: DWORD, ) -> HRESULT44 pub fn CreateProfile( 45 pszUserSid: LPCWSTR, 46 pszUserName: LPCWSTR, 47 pszProfilePath: LPWSTR, 48 cchProfilePath: DWORD, 49 ) -> HRESULT; GetDefaultUserProfileDirectoryA( lpProfileDir: LPSTR, lpcchSize: LPDWORD, ) -> BOOL50 pub fn GetDefaultUserProfileDirectoryA( 51 lpProfileDir: LPSTR, 52 lpcchSize: LPDWORD, 53 ) -> BOOL; GetDefaultUserProfileDirectoryW( lpProfileDir: LPWSTR, lpcchSize: LPDWORD, ) -> BOOL54 pub fn GetDefaultUserProfileDirectoryW( 55 lpProfileDir: LPWSTR, 56 lpcchSize: LPDWORD, 57 ) -> BOOL; GetAllUsersProfileDirectoryA( lpProfileDir: LPSTR, lpcchSize: LPDWORD, ) -> BOOL58 pub fn GetAllUsersProfileDirectoryA( 59 lpProfileDir: LPSTR, 60 lpcchSize: LPDWORD, 61 ) -> BOOL; GetAllUsersProfileDirectoryW( lpProfileDir: LPWSTR, lpcchSize: LPDWORD, ) -> BOOL62 pub fn GetAllUsersProfileDirectoryW( 63 lpProfileDir: LPWSTR, 64 lpcchSize: LPDWORD, 65 ) -> BOOL; GetUserProfileDirectoryA( hToken: HANDLE, lpProfileDir: LPSTR, lpcchSize: LPDWORD, ) -> BOOL66 pub fn GetUserProfileDirectoryA( 67 hToken: HANDLE, 68 lpProfileDir: LPSTR, 69 lpcchSize: LPDWORD, 70 ) -> BOOL; GetUserProfileDirectoryW( hToken: HANDLE, lpProfileDir: LPWSTR, lpcchSize: LPDWORD, ) -> BOOL71 pub fn GetUserProfileDirectoryW( 72 hToken: HANDLE, 73 lpProfileDir: LPWSTR, 74 lpcchSize: LPDWORD, 75 ) -> BOOL; CreateEnvironmentBlock( lpEnvironment: *mut LPVOID, hToken: HANDLE, bInherit: BOOL, ) -> BOOL76 pub fn CreateEnvironmentBlock( 77 lpEnvironment: *mut LPVOID, 78 hToken: HANDLE, 79 bInherit: BOOL, 80 ) -> BOOL; DestroyEnvironmentBlock( lpEnvironment: LPVOID, ) -> BOOL81 pub fn DestroyEnvironmentBlock( 82 lpEnvironment: LPVOID, 83 ) -> BOOL; ExpandEnvironmentStringsForUserA( hToken: HANDLE, lpSrc: LPCSTR, lpDest: LPSTR, dwSize: DWORD, ) -> BOOL84 pub fn ExpandEnvironmentStringsForUserA( 85 hToken: HANDLE, 86 lpSrc: LPCSTR, 87 lpDest: LPSTR, 88 dwSize: DWORD, 89 ) -> BOOL; ExpandEnvironmentStringsForUserW( hToken: HANDLE, lpSrc: LPCWSTR, lpDest: LPWSTR, dwSize: DWORD, ) -> BOOL90 pub fn ExpandEnvironmentStringsForUserW( 91 hToken: HANDLE, 92 lpSrc: LPCWSTR, 93 lpDest: LPWSTR, 94 dwSize: DWORD, 95 ) -> BOOL; RefreshPolicy( bMachine: BOOL, ) -> BOOL96 pub fn RefreshPolicy( 97 bMachine: BOOL, 98 ) -> BOOL; RefreshPolicyEx( bMachine: BOOL, dwOptions: DWORD, ) -> BOOL99 pub fn RefreshPolicyEx( 100 bMachine: BOOL, 101 dwOptions: DWORD, 102 ) -> BOOL; EnterCriticalPolicySection( bMachine: BOOL, ) -> HANDLE103 pub fn EnterCriticalPolicySection( 104 bMachine: BOOL, 105 ) -> HANDLE; LeaveCriticalPolicySection( hSection: HANDLE, ) -> BOOL106 pub fn LeaveCriticalPolicySection( 107 hSection: HANDLE, 108 ) -> BOOL; RegisterGPNotification( hEvent: HANDLE, bMachine: BOOL, ) -> BOOL109 pub fn RegisterGPNotification( 110 hEvent: HANDLE, 111 bMachine: BOOL, 112 ) -> BOOL; UnregisterGPNotification( hEvent: HANDLE, ) -> BOOL113 pub fn UnregisterGPNotification( 114 hEvent: HANDLE, 115 ) -> BOOL; 116 // pub fn GetGPOListA(); 117 // pub fn GetGPOListW(); 118 // pub fn FreeGPOListA(); 119 // pub fn FreeGPOListW(); 120 // pub fn GetAppliedGPOListA(); 121 // pub fn GetAppliedGPOListW(); 122 // pub fn ProcessGroupPolicyCompleted(); 123 // pub fn ProcessGroupPolicyCompletedEx(); 124 // pub fn RsopAccessCheckByType(); 125 // pub fn RsopFileAccessCheck(); 126 // pub fn RsopSetPolicySettingStatus(); 127 // pub fn RsopResetPolicySettingStatus(); 128 // pub fn GenerateGPNotification(); 129 // pub fn CreateAppContainerProfile(); 130 // pub fn DeleteAppContainerProfile(); 131 // pub fn GetAppContainerRegistryLocation(); 132 // pub fn GetAppContainerFolderPath(); 133 // pub fn DeriveAppContainerSidFromAppContainerName(); 134 // pub fn DeriveRestrictedAppContainerSidFromAppContainerSidAndRestrictedName(); 135 } 136