如何獲得網上鄰居工作組和電腦的圖標? 如題 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //这是本版一位网友提供的链接,我拷贝给你。大家share! 用VC列表显示所有网上邻居网上邻居的查找在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); } vs 2008 sp1 编译的含有stl的代码运行时出错 下面的代码有什么问题呢? vc工具栏图标改变顺序问题 怎样实现类似windows收藏夹/搜索那样的带有标题栏和关闭按钮的view, 请问:在程序中定义一个外部类型,然后如下使用,产生错误。 关于MDI静态切分窗口 这个sql语句错在哪儿?? 要《vc扩展编程实例》源代码,不要电子书! 请教!到底现在还有多少公司用VC开发?放眼招聘都是JAVA,.NET(ASP),LINUX/C++的 r调查一下杭州的工资水平[Visual C++] 死锁问题 有关字体旋转的问题,急
//这是本版一位网友提供的链接,我拷贝给你。大家share! 用VC列表显示所有网上邻居网上邻居的查找在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);
}