有没有像CFileDialog这类的,关于网络的标准对话框,就像安装网络打印机里面浏览网络的一样

kingwill 2001-07-12 11:03:58
或提供方法
...全文
84 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
WhiteWaterBlueSky 2001-07-13
  • 打赏
  • 举报
回复
有一种经典方法:
1。由SHGetSpecialFolderLocation得到CSIDL_NETWORK 的ITEMIDLIST指针;
2。把得到的ITEMIDLIST指针作为BROWSEINFO结构中pidlRoot的值,然后调用SHBrowseForFolder函数!
ahphone 2001-07-13
  • 打赏
  • 举报
回复
列举网络资源也算吧,顶多只显示可用的打印机,可以参考下面的,然后自己写一个。
http://www.csdn.net/dev/visual%20c++/source%20code/Network/network_enum2.shtml.htm
WhiteWaterBlueSky 2001-07-13
  • 打赏
  • 举报
回复
我只好贴代码啦!
#include "shlobj.h"

LPITEMIDLIST pIIDlist;
BROWSEINFO bi;
CHAR szDisplayName[MAX_PATH];
LPITEMIDLIST pIIDRet;
LPMALLOC pMalloc;

HRESULT hr = SHGetSpecialFolderLocation(m_hWnd, CSIDL_NETWORK, &pIIDlist);
if (SUCCEEDED(hr))
{
memset (&bi, 0, sizeof(bi));
bi.hwndOwner = m_hWnd;
bi.pidlRoot = pIIDlist;
bi.pszDisplayName = szDisplayName;
bi.lpszTitle = "NetWork";
bi.ulFlags = BIF_BROWSEFORCOMPUTER ;

pIIDRet = SHBrowseForFolder(&bi);
if (pIIDRet)
{
AfxMessageBox (bi.pszDisplayName);

hr = SHGetMalloc(&pMalloc);
if (SUCCEEDED(hr))
{
pMalloc->Free(pIIDlist);
pMalloc->Free(pIIDRet);
}
}
}
else
AfxMessageBox ("SHGetSpecialFolderLocation Failed!");
kingwill 2001-07-13
  • 打赏
  • 举报
回复
WhiteWaterBlueSky(疯狂数码)
我没听懂,内说的详细一点吗?
wjyasd 2001-07-12
  • 打赏
  • 举报
回复
???

好象是没有吧!

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧