// ---------------------------------------------------------------------------------
#pragma comment(lib, "Advapi32.lib")
#pragma comment(lib, "Netapi32.lib")
// ---------------------------------------------------------------------------------
BOOL WINAPI IamIsAdmin (void)
{
BOOL RetC = FALSE;
WCHAR pUserName [2048];
DWORD dwUNBufLen = ARRAYSIZE(pUserName);
if(!::GetUserNameW(pUserName, &dwUNBufLen)) return RetC;
NET_API_STATUS nStatus;
LPUSER_INFO_1 pLevel1Buf;
nStatus = ::NetUserGetInfo(NULL, pUserName, 1, (LPBYTE*)&pLevel1Buf);
if(NERR_Success != nStatus) return RetC;
switch(pLevel1Buf->usri1_priv)
{
case USER_PRIV_GUEST : break;
case USER_PRIV_USER : break;
case USER_PRIV_ADMIN : RetC=TRUE; break;
default : break;
}
::NetApiBufferFree(pLevel1Buf);
return RetC;
}
// ---------------------------------------------------------------------------------