首页 | 乐园 | 淘宝店 | 社区 | 电驴 | 网页游戏 | 网址大全

VeryCD / 社区 / 电驴软件开发 / 精华

资源管理小组

相关主题

正在读取……

主题: 解决"选择目录的对话框中无法选择网络映射驱动器"的bug

相关分类: emule 电驴

godLaugh (组长) 2008/07/31 18:44:03 顶楼 举报

一、bug的汇报

前两天VeryCD 无敌帅哥 kafeifei 给我汇报了一个easyMule的bug,他用 easyMule 下载电影的时候,想把他的文件直接下载到他的另一个机器的空闲硬盘上,所以他用了网络映射驱动器(映射了远程机器的一个目录作为一个虚拟驱动器),但是当他新建下载任务的时候发现无法选择目录到这个映射驱动器的目录中,因为目录选择对话框中压根就不显示此网络驱动器...

二、查找代码

在 easyMule 中有几处逻辑需要选择文件系统目录

1) 新建对话框的时候选择文件的最终下载目录
CDlgAddTask::OnBnClickedBnBrowse()

2)程序选项中配置默认的文件下载目录
CPPgDirectories::OnBnClickedSelincdir()

3)导入未完成的下载任务的时候需要选择目录
void ImportUnfinishedTasks(void)

三、问题分析

最终这三处都要调用 Otherfunctions.cpp 中封装的一个 SelectDir 函数 SelectDir(HWND hWnd, LPTSTR pszPath, LPCTSTR pszTitle, LPCTSTR pszDlgTitle, BOOL bHasNewFolderBn)

SelectDir具体实现是封装了windows的一个 API:

LPITEMIDLIST SHBrowseForFolder( LPBROWSEINFO lpbi);

SHBrowseForFolder 传入的参数是必须是一个 BROWSEINFO 结构体指针,在 BrsInfo.ulFlags 中设定可选的目录显示控制

MSDN 中的解释是用 BIF_SHAREABLE 来控制是否远程系统共享的资源文件夹,

引用
"BIF_SHAREABLE

0x8000. Version 5.0. The browse dialog box can display shareable resources on remote systems. This is intended for applications that want to expose remote shares on a local system. The BIF_NEWDIALOGSTYLE flag must also be set."


但很奇怪的是原来的代码添加了这个标志后,在选择的目录列表中不显示网络映射驱动器,后来我干脆把这个标志去了,反而显示了网络映射驱动器...

这可把我郁闷坏了,我想应该是微软的一个bug吧,怎么反了呢?

所以搜索了一下互联网,还真在msdn forum上找到一个和我有相同疑问的帖子... http://forums.msdn.microsoft.com/zh-CN/vcg...6c21811/

四、问题存疑

不过也可以换一个解释,提供 BIF_SHAREABLE 控制的本意是“可被分享的文件夹或目录才显示”,而被映射的网络驱动器是不可再分享的,所以如果加了 BIF_SHAREABLE 标志后,选择列表中就会过滤掉网络映射驱动器

分享到开心网  分享到校内  收藏到QQ书签    订阅本主題RSS更新  美味书签

2008/08/04 10:39:22godLaugh 最后编辑 | 查看全部

2-3楼已被删除

mino 2009/01/29 21:52:27 4楼 举报

请问何时才能有mac版本的电驴啊,现有的在国内都基本没有资源,十分不方便。


[0] [0] [回复]

godLaugh (组长) 2009/03/24 11:38:13 5楼 举报

刚看到 morph mod 的 0.49c 的更新日志,也是修改了这个bug

--------------------------------------
Changelog for eMule 0.49c MorphXT v11.2
--------------------------------------
23-03-2009
...
FIX: Network mapped drives could not be selected [JackieKu]
http://social.msdn.microsoft.com/Forums/en...a-4f49a6c21811/
...


[+1] [0] [回复]


返回组首页

快速回复

(?) 附件上传

关于我们 | 诚聘英才 | 著作权声明 | 合作信息 | 广告事务
沪ICP备05001009号
©2003 - 2009 VeryCD.com Some Rights Reserved.