used by util/sfctool.c as well as files.c */
| 805 | |
| 806 | /* used by util/sfctool.c as well as files.c */ |
| 807 | boolean |
| 808 | get_user_home_folder(char *homebuf, size_t sz) |
| 809 | { |
| 810 | static char szHomeDirBuf[MAX_PATH] = { 0 }; |
| 811 | // We need a process with query permission set |
| 812 | HANDLE hToken = 0; |
| 813 | DWORD result = |
| 814 | OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken); |
| 815 | DWORD BufSize = MAX_PATH; |
| 816 | |
| 817 | result = GetUserProfileDirectoryA(hToken, szHomeDirBuf, &BufSize); |
| 818 | // Close handle opened via OpenProcessToken |
| 819 | CloseHandle(hToken); |
| 820 | if (result != 0) { |
| 821 | Snprintf(homebuf, sz, "%s", szHomeDirBuf); |
| 822 | } |
| 823 | |
| 824 | return (result != 0); |
| 825 | } |
| 826 | |
| 827 | char * |
| 828 | get_executable_path(void) |
no outgoing calls
no test coverage detected