| 102 | } |
| 103 | |
| 104 | bool IsUserAdmin() |
| 105 | { |
| 106 | // Проверять нужно только для висты и выше |
| 107 | if (gOSVer.dwMajorVersion < 6) |
| 108 | return FALSE; |
| 109 | |
| 110 | BOOL b; |
| 111 | SID_IDENTIFIER_AUTHORITY NtAuthority = {SECURITY_NT_AUTHORITY}; |
| 112 | PSID AdministratorsGroup; |
| 113 | b = AllocateAndInitializeSid( |
| 114 | &NtAuthority, |
| 115 | 2, |
| 116 | SECURITY_BUILTIN_DOMAIN_RID, |
| 117 | DOMAIN_ALIAS_RID_ADMINS, |
| 118 | 0, 0, 0, 0, 0, 0, |
| 119 | &AdministratorsGroup); |
| 120 | |
| 121 | if (b) |
| 122 | { |
| 123 | if (!CheckTokenMembership(NULL, AdministratorsGroup, &b)) |
| 124 | { |
| 125 | b = FALSE; |
| 126 | } |
| 127 | |
| 128 | FreeSid(AdministratorsGroup); |
| 129 | } |
| 130 | |
| 131 | return (b != 0); |
| 132 | } |
| 133 | |
| 134 | HRESULT CALLBACK Callback(HWND hwnd, UINT uNotification, WPARAM wParam, LPARAM lParam, LONG_PTR dwRefData) |
| 135 | { |
no outgoing calls
no test coverage detected