| Код | void CLanDlg::Sesiuni(CString comp) { PSESSION_INFO_2 pBuf = NULL; PSESSION_INFO_2 pTmpBuf; DWORD dwLevel = 10; DWORD dwEntriesRead = 0; DWORD dwTotalEntries = 0; DWORD dwResumeHandle = 0; DWORD i; DWORD dwTotalCount = 0; LPTSTR pszServerName = NULL; LPTSTR pszClientName = NULL; LPTSTR pszUserName = NULL; NET_API_STATUS nStatus;
CString sSer; sSer = _T("\\\\"); sSer += comp; do // begin do { nStatus = NetSessionEnum(sSer.GetBuffer(0),NULL,NULL,dwLevel,(LPBYTE*)&pBuf,MAX_PREFERRED_LENGTH,&dwEntriesRead,&dwTotalEntries,&dwResumeHandle);
if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA)) { if ((pTmpBuf = pBuf) != NULL) { for (i = 0; (i < dwEntriesRead); i++) { assert(pTmpBuf != NULL);
if (pTmpBuf == NULL) { MessageBox("An access violation has occurred\n"); break; }
CString nume,username,time,idletime;
nume.Format("%ls", pTmpBuf->sesi2_cname); username.Format("%ls", pTmpBuf->sesi2_username); time.Format("%ld", pTmpBuf->sesi2_num_opens); idletime.Format("%ld", pTmpBuf->sesi2_cltype_name);
m_list1.SetItemText(0,1,nume); m_list1.SetItemText(0,2,username); m_list1.SetItemText(0,3,time); m_list1.SetItemText(0,4,idletime);
pTmpBuf++; dwTotalCount++;
} }
} if (pBuf != NULL) { NetApiBufferFree(pBuf); pBuf = NULL; } }
while (nStatus == ERROR_MORE_DATA); // end do if (pBuf != NULL)
NetApiBufferFree(pBuf); }
|
Подскажыте пожалуста где ошыбка ? |