在Windows资源管理器中创建“ZIP压缩文件夹”之类的“文件夹”的接口是什么?

时间:2015-09-06 08:55:28

标签: windows winapi explorer windows-shell

我认为有一种方法可以扩展Windows Shell以制作(例如)其他类型的存档,这与ZIP文件“压缩文件夹”的支持相同。

我承认,当您熟悉shell术语时,Shell界面非常清晰,但实际上却很晦涩。我目前的猜测是IShellFolder,但我认为这将在文件的同一位置创建一个额外的文件夹,而不是为文件本身提供特殊支持。

因此,要实施什么?

1 个答案:

答案 0 :(得分:0)

没有专门用于实现压缩文件夹的shell接口。它实现为一个普通的 Shell命名空间扩展,它恰好创建/打开一个普通的.zip文件,并使用PIDL和标准shell接口(如IShellFolder,{{}向Shell表示其内容。 1}},IShellItemIDataObject等.SNE甚至将.zip文件本身表示为其父文件夹中的子文件夹,而不是文件,因此Shell可以遍历到.zip使用SNE的IEnumIDList实现文件,就像任何其他文件夹一样。 Shell没有关于它正在访问.zip文件的概念,它只是另一个Shell项,其特性告诉Shell如何使用它。 SNE的实现处理访问/更新.zip文件而不是文件系统的细节。

MSDN的一部分描述了必须创建Shell命名空间扩展,包括:

Windows Shell

Creating Shell Data Source Objects and Extending the Shell Namespace

Creating Shell Extension Handlers

Implementing the Basic Folder Object Interfaces