16,548
社区成员




void CSDMADlg::GetUsersFromSystemToComboBox(CComboBox *pCBUsername)
{
LPUSER_INFO_0 pBuf = NULL;
LPUSER_INFO_0 pTmpBuf;
DWORD dwLevel = 0;
DWORD dwPrefMaxLen = -1;
DWORD dwEntriesRead = 0;
DWORD dwTotalEntries = 0;
DWORD dwResumeHandle = 0;
NET_API_STATUS nStatus;
LPTSTR pszServerName = NULL;//(LPTSTR)GetComputername().GetBuffer(MAX_NAME);
nStatus = NetUserEnum((LPCWSTR)pszServerName,
dwLevel,
FILTER_NORMAL_ACCOUNT, // global users
(LPBYTE*)&pBuf,
dwPrefMaxLen,
&dwEntriesRead,
&dwTotalEntries,
&dwResumeHandle);
pCBUsername->Clear();
if((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))
{
if((pTmpBuf=pBuf)!=NULL)
{
for(DWORD i=0;i<dwEntriesRead;++i)
{
pCBUsername->AddString(CString(pTmpBuf->usri0_name));
pTmpBuf++;
}
}
}
else
{
::MessageBox(NULL,"A system error has occurred","ERROR",MB_OK);
}
if(pBuf!=NULL)
{
NetApiBufferFree(pBuf);
pBuf = NULL;
}
while (nStatus == ERROR_MORE_DATA);
if (pBuf != NULL)
NetApiBufferFree(pBuf);
}