55 WCHAR wszUserName[256];
58 LPLOCALGROUP_USERS_INFO_0 pBuf =
nullptr;
59 LPLOCALGROUP_USERS_INFO_0 pTmpBuf;
61 DWORD dwFlags = LG_INCLUDE_INDIRECT;
62 DWORD dwPrefMaxLen = -1;
63 DWORD dwEntriesRead = 0;
64 DWORD dwTotalEntries = 0;
65 NET_API_STATUS nStatus;
67 DWORD dwTotalCount = 0;
71 MultiByteToWideChar(CP_ACP, 0, UserName,
72 strlen(UserName) + 1, wszUserName,
73 sizeof(wszUserName) /
sizeof(wszUserName[0]));
74 MultiByteToWideChar(CP_ACP, 0, Group,
75 strlen(Group) + 1, wszGroup,
sizeof(wszGroup) /
sizeof(wszGroup[0]));
85 nStatus = NetUserGetLocalGroups(
nullptr,
89 (LPBYTE *) & pBuf, dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries);
93 if (nStatus == NERR_Success) {
94 if ((pTmpBuf = pBuf) !=
NULL) {
95 for (i = 0; i < dwEntriesRead; ++i) {
96 if (pTmpBuf ==
NULL) {
100 if (wcscmp(pTmpBuf->lgrui0_name, wszGroup) == 0) {
114 NetApiBufferFree(pBuf);
124 char *domain_qualify =
nullptr;
125 char DomainUser[256];
129 xstrncpy(NTDomain, UserName,
sizeof(NTDomain));
135 if (domain_qualify ==
NULL) {
136 strcpy(User, NTDomain);
139 strcpy(User, domain_qualify + 1);
140 domain_qualify[0] =
'\0';
150 strcpy(DomainUser, User);
152 strcpy(DomainUser, NTDomain);
153 strcat(DomainUser,
"\\");
154 strcat(DomainUser, User);