编写与Windows 7集成的命名空间扩展
Writing namespace extensions with Windows 7 integration
我是shell扩展主题的新手,我正在寻找有关名称空间扩展的资源。我想写一个支持SFTP的命名空间扩展,所有选项都可以在浏览器中像FTP一样浏览。
我从codeproject中阅读了增熙的例子1,2,但是它们不能正确编译并且看起来很旧。我认为还有很多变化,比如地址栏中的文件夹选择。
有人可以提供我一些资源在正确的方向或一些工作的例子?
更新:重要的是源代码是免费的。这是一个非营利性项目。
此刻,我在MSDN上找到了一个很好的资源,叫做资源管理器数据提供程序样本。这是最新的,并提供了一些别名Explorer Data Provider
和Shell 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的开发商
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 在命名空间中定义函数还是限定函数
- C++:对不存在的命名空间使用命名空间指令
- 通过继承类使用来自不同命名空间的运算符
- 使用命名空间时出现多个定义错误
- CUDA内核和数学函数的显式命名空间
- 如何为缺少预定义运算符而不扩展命名空间"std"的标准类型定义运算符>> (istream &, ...)?
- 在内联命名空间中扩展最初在内联命名空间的封闭命名空间中定义的命名空间
- 扩展命名空间 std 以在使用 C++11 时实现make_unique
- 使用从较新的C++标准向后移植的类型和模板扩展命名空间 std
- C++ 什么时候可以扩展"std"命名空间?
- Win7 命名空间扩展确定 IShellItem 是文件还是文件夹
- 资源管理器在 TILE 视图模式下不显示 shell 命名空间扩展的项目详细信息
- 我的命名空间扩展未在“文件打开”对话框中列出
- 编写与Windows 7集成的命名空间扩展
- 如何为命名空间和扩展类转换c#到Qt小部件代码(c++)
- Python扩展模块包结构(命名空间)
- 命名空间扩展无法在 Windows 7 上运行
- 内联命名空间和扩展命名空间