As kuphryn already stated we must fill something
Code:// NOTE: UNICODE defined void CDDlg::OnSomeButtonPushed() { FillDomainsCombo(); } void CDDlg::OnSelchangeComboDomains() { FillWorkstationsList(); } void CDDlg::FillDomainsCombo() { m_comboDomains.ResetContent(); LPBYTE lpServers = NULL; DWORD dwLen = (DWORD)-1; DWORD dwTotal = 0; DWORD dwPreffered = MAX_PREFERRED_LENGTH; DWORD dwRead = 0; DWORD dwType = SV_TYPE_DOMAIN_ENUM; DWORD dwResume = 0; DWORD dwRet = ::NetServerEnum( NULL, 100, &lpServers, dwPreffered, &dwRead, &dwTotal, dwType, NULL, &dwResume ) ; if( NERR_Success == dwRet ) { SERVER_INFO_100* pSvr = (SERVER_INFO_100*)(PVOID)lpServers; for( DWORD dwIndex = 0; dwIndex < dwRead ; dwIndex ++, pSvr ++ ) { m_comboDomains.AddString( pSvr->sv100_name ); } if( dwRead > 0 ) { m_comboDomains.SetCurSel( 0 ); FillWorkstationsList(); } } else { // Handle error } } void CDDlg::FillWorkstationsList() { m_listWorkstations.ResetContent(); const int nCurSel = m_comboDomains.GetCurSel(); if( CB_ERR == nCurSel ) { return; } LPBYTE lpServers = NULL; DWORD dwLen = (DWORD)-1; DWORD dwTotal = 0; DWORD dwPreffered = MAX_PREFERRED_LENGTH; DWORD dwRead = 0; DWORD dwType = SV_TYPE_WORKSTATION; DWORD dwResume = 0; CString strWorkstation; m_comboDomains.GetLBText( nCurSel, strWorkstation ); DWORD dwRet = ::NetServerEnum( NULL, 100, &lpServers, dwPreffered, &dwRead, &dwTotal, dwType, strWorkstation, &dwResume ) ; if( NERR_Success == dwRet ) { SERVER_INFO_100* pSvr = (SERVER_INFO_100*)(PVOID)lpServers; for( DWORD dwIndex = 0; dwIndex < dwRead ; dwIndex ++, pSvr ++ ) { m_listWorkstations.AddString( pSvr->sv100_name ); } } else { // Handle error } }





Reply With Quote