久久首页
免费软件
网络时尚
网络学堂
专题讨论
网络资源
网络游戏
网络文档
网络产品
网站导航: 首页 > 网络编程 > VC/C++ 学堂讨论 | 推荐文章

如何列出所有网上邻居?


2004-05-27 eastvc 
 
[解决方法]
用WNetEnumResource()和WNetEnumResource(),WNetCloseEnum()来解决,关于此函数的详细说明请到酷库查找.

[程序实现]
建立名为My的对话框工程,添加ListBox控件ID=IDC_LISTBOX1.关联变量为CListBox m_Enum;添加按钮ID=IDC_BUTTON1,关联函数CMyDlg::OnButton1();

在MyDlg.cpp的头部加上:
#pragma comment(lib, "mpr.lib")

void CMyDlg::OnButton1()
{
Enumerate(0);
}

BOOL CMyDlg::Enumerate(LPNETRESOURCE Enum)
{

HANDLE hEnum = 0;
DWORD dwScope = RESOURCE_GLOBALNET ;//枚举范围.
DWORD dwType = RESOURCETYPE_ANY ; //资源类型.
DWORD dwResult = WNetOpenEnum(dwScope,dwType,0,Enum,&hEnum);

if( dwResult != NO_ERROR )
return FALSE;

DWORD dwBuffer = 16384 ; // 16K is reasonable size
DWORD dwEntries = 0xFFFFFFFF ; // enumerate all possible entries
LPNETRESOURCE EnumLocal = 0;

BOOL bRet = TRUE;

do
{
EnumLocal = (LPNETRESOURCE) GlobalAlloc( GPTR, dwBuffer ) ;

dwResult = WNetEnumResource(hEnum,&dwEntries,EnumLocal,&dwBuffer);
if( dwResult == NO_ERROR )
{
for( register DWORD i = 0 ; i < dwEntries ; i++ )
{
CString Enumname;
Enumname = EnumLocal[i].lpRemoteName;
Enumname += " ";
Enumname +=EnumLocal[i].lpLocalName;
Enumname += " ";
Enumname +=EnumLocal[i].lpComment;
m_Enum.AddString(Enumname); //CListBox m_Enum;
if( RESOURCEUSAGE_CONTAINER ==
(EnumLocal[i].dwUsage & RESOURCEUSAGE_CONTAINER) &&
EnumLocal[i].dwDisplayType != RESOURCEDISPLAYTYPE_SERVER )
if( !Enumerate( &EnumLocal[i]) )
{
//TRACE0( "Enumerate(): Failed\n" );
return FALSE;
}
}
}
else
if( dwResult != ERROR_NO_MORE_ITEMS )
{
//AfxMessageBox("WNetEnumResource return Error_NO_MORE_ITEMS");
return FALSE;
}
} while( dwResult != ERROR_NO_MORE_ITEMS );

if( EnumLocal )
GlobalFree((HGLOBAL) EnumLocal) ;

WNetCloseEnum(hEnum) ;

return bRet;
}
 
发表评论 推荐文章 关闭窗口
 相关内容
- 如何得到网卡编号(MAC地址)? 2004-05-27
- 获得本机主机名和IP地址 2004-05-27
- Socket中如何设置连接超时 2004-05-27
- IP包过滤 2004-05-27
- VC网络程序设计二则 2004-05-27
 
 学堂分类
网络知识操作系统
网络应用网络服务
网页开发网络编程
数据存储网络设备
 文章搜索
 
网站简介 | 广告服务 | 编程支持 | 设计服务 | 诚邀合作 | 访客留言
Copyright © 1999-2004 99NET. All Rights Reserved
版权所有 久久网络工作室
Email:webmaster@99net.net