构造命名空间扩展

【勇芳软件工作室】汉化HomePreviousNext

与shell扩展的情况一样,命名空间扩展被实现为COM进程内服务器DLL。即使是最简单的扩展,在尝试实现命名空间扩展之前,需要使用COM,OLE和Windows资源管理器的体验。这也意味着您必须在系统注册表中正确输入,否则它将无法正常工作。

作为提醒,构建进程内服务器DLL需要实现导出以下功能的DLL:

*DllMain

*DllGetClassObject

*DllUnloadNow

该DLL还实现了一个对象,用于创建包含在DLL中的其他对象的IClassFactory.这些对象将暴露IUnknown和实现命名空间扩展所需的其他接口,包括IPersistFolderIShellFolderIEnumIDListIShellView.这些接口允许资源管理器和您的扩展显示,交互和通信。

请务必记住,Explorer通过使用您在扩展程序中实现的IShellFolderIShellView接口来呼叫您的分机。IShellBrowser界面(由Explorer实现)允许您的扩展回调到资源管理器。它非常类似于在OLE场景中常见的“Site”类型接口。

除了这些必需的接口之外,您的扩展将需要实现将由IShellFolder对象创建的其他接口。这些包括IExtractIcon提供图标IContextMenu为您的项目提供上下文菜单,拖放界面(IDropSourceIDropTarget)和IDataObject进行数据传输。

进程内服务器DLL的示例,特别是包含命名空间或扩展名的任何内容,显然有助于学习构建命名空间扩展DLL。