获取局域网计算机名称和IP://初始化网络库WSADATA wsd;WSAStartup(MAKEWORD(2,2),&wsd);//设置表格风格m_grid.SetExtendedStyle(LVS_EX_FLATSB    |LVS_EX_FULLROWSELECT    |LVS_EX_HEADERDRAGDROP    |LVS_EX_ONECLICKACTIVATE    |LVS_EX_GRIDLINES);//向表格中插入列m_grid.InsertColumn(0,"计算机名",LVCFMT_LEFT,200,0);m_grid.InsertColumn(1,"IP地址",LVCFMT_LEFT,200,0);DWORD Count=0xFFFFFFFF,Bufsize=4096,Res;  //Count=0xFFFFFFFF是什么意思啊NETRESOURCE* nRes; NETRESOURCE* nRes1; NETRESOURCE* nRes2; HANDLE lphEnum;LPVOID Buf = new char[4096];LPVOID Buf1 = new char[4096];LPVOID Buf2 = new char[4096];//打开列举的网络资源Res = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,NULL,&lphEnum);//获取列举的网络资源信息Res=WNetEnumResource(lphEnum,&Count,Buf,&Bufsize);nRes=(NETRESOURCE*)Buf;for(DWORD n=0;n<Count;n++,nRes++)                             //为什么要用三个For循环啊?可以帮忙解释下吗?{    DWORD Count1=0xFFFFFFFF;    Res = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,     RESOURCEUSAGE_CONTAINER,nRes,&lphEnum);    Res=WNetEnumResource(lphEnum,&Count1,Buf1,&Bufsize);    nRes1=(NETRESOURCE*)Buf1;    for(DWORD i=0;i<Count1;i++,nRes1++)    {        DWORD Count2=0xFFFFFFFF;        Res = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,     RESOURCEUSAGE_CONTAINER,nRes1,&lphEnum);        Res=WNetEnumResource(lphEnum,&Count2,Buf2,&Bufsize);        nRes2=(NETRESOURCE*)Buf2;        for(DWORD j=0;j<Count2;j++,nRes2++)        {            m_grid.InsertItem(j,0);            CString sName=nRes2->lpRemoteName;            sName=sName.Right(sName.GetLength()-2);            m_grid.SetItemText(j,0,sName);            CString str="";            struct hostent * pHost;            pHost = gethostbyname(sName);            if(pHost==NULL)            {                m_grid.SetItemText(j,1,"无法获得IP地址");            }            else            {                for(int n=0;n<4;n++)                {                    CString addr;                    if(n > 0)                    {                        str += ".";                    }                    addr.Format("%u",(unsigned int)((unsigned char*)pHost->h_addr_list[0])[n]);                    str += addr;                }                m_grid.SetItemText(j,1,str);            }        }    }}delete Buf;delete Buf1;delete Buf2;WNetCloseEnum(lphEnum);