Ejemplo n.º 1
0
APIERR MNetServerEnum(
	const TCHAR FAR	 * pszServer,
	UINT		   Level,
	BYTE FAR	** ppbBuffer,
	UINT FAR	 * pcEntriesRead,
	ULONG		   flServerType,
	TCHAR FAR	 * pszDomain )
{
    DWORD cTotalAvail;

    return (APIERR)NetServerEnum( (TCHAR *)pszServer,
    				  Level,
				  ppbBuffer,
				  MAXPREFERREDLENGTH,
				  (LPDWORD)pcEntriesRead,
				  &cTotalAvail,
				  flServerType,
				  pszDomain,
				  NULL );

}   // MNetServerEnum
Ejemplo n.º 2
0
void CShowActiveDirUsers::GetDCName(LPTSTR szDCName, LPTSTR szDomain)
{
	NET_API_STATUS	ret = 0;
	LPBYTE			bufptr;
	SERVER_INFO_100* pS100;
	LPWSTR			pServer = NULL;
	DWORD			dwEntriesRead = 0;
	DWORD			dwTotalEntries = 0;

	ret =  NetGetDCName(NULL, NULL, (LPBYTE*)&pServer);
	if (ret == NERR_Success)
	{
		_tcscpy(szDCName, pServer);
		NetApiBufferFree(pServer);
		ret = NetGetDCName(szDCName, szDomain, (LPBYTE*)&pServer);
		if (ret == NERR_Success)
		{
			_tcscpy(szDCName, pServer);
			NetApiBufferFree(pServer);
			return;
		}
		return;
	}
	
	ret = NetServerEnum(NULL, 100, &bufptr, MAX_PREFERRED_LENGTH, 
							&dwEntriesRead, &dwTotalEntries, 
							SV_TYPE_DOMAIN_BAKCTRL, szDomain, 0);
	if (ret == NERR_Success && dwEntriesRead > 0)
	{
		pS100 = (SERVER_INFO_100*)bufptr;
		_tcscpy(szDCName, _T("\\\\"));
		_tcscat(szDCName, pS100->sv100_name);
		NetApiBufferFree(bufptr);
		return;
	}
}
Ejemplo n.º 3
0
void WTS::EnumerateServers()
{
	//PWTS_SERVER_INFO serverInfo;
	PSERVER_INFO_100 serverInfo;
	DWORD entriesRead;
	DWORD totalEntries;
	DWORD i;
	DWORD ret;
	/*wprintf(L"domain: %s\n", Util::DomainFromIP(Config::machine));
	if(WTSEnumerateServers(Util::DomainFromIP(Config::machine), 0, 1, &serverInfo, &totalEntries) != 0)
	{
		Util::Error(GetLastError(), L"WTSEnumerateServers()");
	}*/
	if((ret = NetServerEnum(NULL, 100, (LPBYTE *)&serverInfo, MAX_PREFERRED_LENGTH, &entriesRead, &totalEntries, SV_TYPE_TERMINALSERVER, Util::DomainFromIP(Config::machine), NULL)) != NERR_Success)
	{
		Util::Error(ret, L"NetServerEnum()");
	}

	for(i = 0; i < totalEntries; i++)
	{
		wprintf(L"Entry: %s\n", serverInfo[i].sv100_name);
	}
	wprintf(L"Total entries: %d\n", totalEntries);
}
Ejemplo n.º 4
0
void CFindHostsDlg::Refresh()
{
    DWORD num_read=0, total=0, size;
    int index;
    SERVER_INFO_100 *pBuf = NULL;
    char tBuf[100], tLocalHost[100];
    DWORD ret_val;

    UpdateData();

    HCURSOR hOldCursor = SetCursor( LoadCursor(NULL, IDC_WAIT) );
    
    if (m_domain == "")
    {
	ret_val = NetServerEnum(
	    NULL, 
	    100,
	    (LPBYTE*)&pBuf,
	    MAX_PREFERRED_LENGTH,
	    &num_read,
	    &total,
	    SV_TYPE_NT, 
	    NULL,
	    0);
    }
    else
    {
	WCHAR wDomain[100];
	mbstowcs(wDomain, m_domain, 100);
	ret_val = NetServerEnum(
	    NULL, 
	    100,
	    (LPBYTE*)&pBuf,
	    MAX_PREFERRED_LENGTH,
	    &num_read,
	    &total,
	    SV_TYPE_NT, 
	    (LMCSTR)wDomain,
	    0);
    }
    
    if (ret_val == NERR_Success)
    {
	size = 100;
	GetComputerName(tLocalHost, &size);
	m_list.DeleteAllItems();
	if (num_read == 0)
	{
	    //m_list.InsertItem(0, tLocalHost, 0);
	    //m_list.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED);
	    InsertHost(tLocalHost);
	    SelectHost(tLocalHost);
	}
	else
	{
	    index = -1;
	    for (unsigned int i=0; i<num_read; i++)
	    {
		wcstombs(tBuf, (WCHAR*)pBuf[i].sv100_name, wcslen((WCHAR*)pBuf[i].sv100_name)+1);
		InsertHost(tBuf);
		/*
		index = m_list.InsertItem(0, tBuf, 0);
		if (stricmp(tBuf, tLocalHost) == 0)
		    index = ret_val;
		else
		    index = -1;
		*/
	    }
	    /*
	    if (index != -1)
	    {
		m_list.SetItemState(index, LVIS_SELECTED, LVIS_SELECTED);
	    }
	    */
	    SelectHost(tLocalHost);
	}
	NetApiBufferFree(pBuf);
    }
    else
    {
	sprintf(tBuf, "error: %d", ret_val);
	MessageBox(tBuf, "Unable to retrieve network host names");
    }
    
    SetCursor(hOldCursor);
}