用VC列表显示所有网上邻居

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

网上邻居的查找在www.codeguru.com上有例子,只是它

把它做成了类,本是好事,但对大家理解它的原理增加了难度,

所以现在把它实现在一对话框中,以便大家能一目了然。

#include <winnetwk.h>

#pragma comment(lib, “mpr.lib”)

BOOL CNetEnum2Dlg::Enumerate(LPNETRESOURCE lpNetRC_p)

{

HANDLE hEnum = 0;

DWORD dwScope = RESOURCE_GLOBALNET ;

DWORD dwType = RESOURCETYPE_ANY ;

DWORD dwResult = WNetOpenEnum(

dwScope, // scope of enumeration

dwType, // resource types to list

0, // enumerate all resources

lpNetRC_p, // pointer to resource structure (NULL at first time)

&hEnum // handle to resource

) ;

if( dwResult != NO_ERROR )

return FALSE;

DWORD dwBuffer = 16384 ; // 16K is reasonable size

DWORD dwEntries = 0xFFFFFFFF ; // enumerate all possible entries

LPNETRESOURCE lpnrLocal = 0;

BOOL bRet = TRUE;

//try

{

do

{

// first allocate buffer for NETRESOURCE structures ...

lpnrLocal = (LPNETRESOURCE) GlobalAlloc( GPTR, dwBuffer ) ;

dwResult = WNetEnumResource(

hEnum, // resource-handle

&dwEntries,

lpnrLocal,

&dwBuffer

) ;

if( dwResult == NO_ERROR )

{

for( register DWORD i = 0 ; i

{

CString nsname;

nsname = lpnrLocal[i].lpRemoteName;

nsname += " ";

nsname +=lpnrLocal[i].lpLocalName;

nsname += " ";

nsname +=lpnrLocal[i].lpComment;

m_netList.AddString(nsname); // m_netList defined in NetEnumDlg2.h : CListBox m_netList;

if( RESOURCEUSAGE_CONTAINER ==

(lpnrLocal[i].dwUsage & RESOURCEUSAGE_CONTAINER) &&

lpnrLocal[i].dwDisplayType != RESOURCEDISPLAYTYPE_SERVER )

if( !Enumerate( &lpnrLocal[i]) )

{

//TRACE0( "CNetwork::Enumerate(): recursiv call failed\n" );

//throw CNetworkBreak(FALSE);

return FALSE;

}

}

} else if( dwResult != ERROR_NO_MORE_ITEMS )

{

//AfxMessageBox("WNetEnumResource");

return FALSE;

}

} while( dwResult != ERROR_NO_MORE_ITEMS );

}

if( lpnrLocal )

GlobalFree((HGLOBAL) lpnrLocal) ;

WNetCloseEnum(hEnum) ;

return bRet;

}

void CNetEnum2Dlg::OnListWNet()

{

Enumerate(0);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航