编写与Windows 7集成的命名空间扩展

Writing namespace extensions with Windows 7 integration

本文关键字:命名空间 扩展 集成 Windows      更新时间:2023-10-16

我是shell扩展主题的新手,我正在寻找有关名称空间扩展的资源。我想写一个支持SFTP的命名空间扩展,所有选项都可以在浏览器中像FTP一样浏览。

我从codeproject中阅读了增熙的例子1,2,但是它们不能正确编译并且看起来很旧。我认为还有很多变化,比如地址栏中的文件夹选择。

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

更新:重要的是源代码是免费的。这是一个非营利性项目。

此刻,我在MSDN上找到了一个很好的资源,叫做资源管理器数据提供程序样本。这是最新的,并提供了一些别名Explorer Data ProviderShell Data Source。现在还缺少的是水滴。拖拽支持和胶水支持协议链接。

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

下面是创建名称空间来映射Flickr上的实际文件的完整示例。但是,只有源代码可用。没有教程。希望能有所帮助....http://www.viksoe.dk/code/flickrdrive.htm

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

*rgfInOut |= SFGAO_CANCOPY|SFGAO_CANMOVE;

我还必须像这样在GetUIObjectOf中发布IDataObject:

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的最佳实践是什么?

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

免责声明:我为LogicNP软件工作,EZNamespaceExtensionsMFC的开发商