1

我是主题外壳扩展的新手,我正在寻找有关命名空间扩展的资源。我想编写一个支持 SFTP 的命名空间扩展,其中包含在资源管理器中像 FTP 一样浏览的所有选项。

我从 codeproject 阅读了 zengxi 的示例12,但它们编译不正确,而且似乎很旧。我认为也有很多变化,比如地址栏中的文件夹选择。

有人可以为我提供一些正确方向的资源或一些工作示例吗?

更新: 源是免费的,这一点很重要。这是一个非盈利项目。

目前,我在 MSDN 上找到了一个名为Explorer Data Provider Sample的好资源。这是最新的,并提供了一些别名Explorer Data ProviderShell Data Source. 还缺少拖放支持和支持协议链接的粘合剂。

对于将来的使用,最好找到一种方法将文件扩展名与shell data sourcezip 文件相关联。

4

3 回答 3

1

这是创建命名空间以映射 Flickr 上的真实文件的完整示例。但是,只有源代码可用。没有教程。希望它有帮助.... http://www.viksoe.dk/code/flickrdrive.htm

于 2012-08-23T02:26:58.847 回答
1

对于拖放,本系列文章是一个很好的起点。在我了解文件必须具有可以复制,可以移动等标志之后,我几乎有了解决方案。神奇的是在中添加一行GetAttributesOf

*rgfInOut |= SFGAO_CANCOPY|SFGAO_CANMOVE;

我也不得不IDataObjectGetUIObjectOf这样发布:

if(riid == IID_IDataObject) {
    PWSTR pszName;
    hr = _GetName(apidl[0], &pszName);
    hr = SHCreateDataObject(m_pidl, cidl, apidl,
                            new CFileDataObject(pszName), riid, ppv);
} else if(riid == IID_IDropTarget) {
    // TODO publish
    return E_NOINTERFACE;
}

就这样。

顺便说一句,在CFileDataObject这里分配的最佳做法是什么?

于 2011-12-19T01:32:12.377 回答
0

看看EZNamespaceExtensionsMFC库,它使开发命名空间扩展变得非常容易。查看它的 FileBrowser 和 RegBrowser 示例,您可以使用它们作为起点。

免责声明:我为 EZNamespaceExtensionsMFC 的开发商 LogicNP Software 工作

于 2011-12-12T09:07:29.170 回答