Windows 2000 UI 新特点之四:其他类型的外壳扩展

2016-01-29 11:51 5 1 收藏

Windows 2000 UI 新特点之四:其他类型的外壳扩展,Windows 2000 UI 新特点之四:其他类型的外壳扩展

【 tulaoshi.com - C语言心得技巧 】

Windows 2000 UI 新特点之四:其他类型的外壳扩展

原文参见:MSDN Magazine March 2000


编译/赵湘宁

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

第一部分 Windows 2000 UI 新特点之一:信息条提示(Infotip)
第二部分 Windows 2000 UI 新特点之二:自定义文件夹栏目
第三部分 Windows 2000 UI 新特点之三:搜索管理器

下载源代码

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com) 摘要:本文是关于Windows 2000 UI 新特点系列文章的第四篇,探讨几个其它的外壳扩展类型,如外壳执行、图标覆盖、磁盘清理管理程序、使用属性页的文件夹定制、以及上下文菜单。
     Windows 2000 还有三个新的外壳扩展:外壳执行管理器(shell execution handler)、图标覆盖管理器(icon overlay handler)和清理管理器(cleanup handler)。
     所谓“外壳执行”,是提供 IShellExecuteHook 接口的一个模块,这个接口导致自己的代码在某个命令行被外壳经由资源管理器或"运行"对话框处理之前被调用。IShellExecuteHook 接口与WH_SHELL没有什么关系,因为您的代码的执行先于目标程序的启动,而且都是在外壳的地址空间内工作。
     Windows 2000是第一个全面支持图标覆盖的Windows 版本。有关的接口有两个:IShellIconOverlay 和 IShellIconOverlayIdentifier。前者是为显示覆盖的名字空间扩展保留的。后者是允许您定义自制图像用于文件夹图标覆盖的主要接口。 图标覆盖是某种条件下外壳自动在图标左下角绘制的代表文件夹项目的一个小图像。典型的例子是快捷方式图标坐下角的小箭头,以及共享文件夹图标左下角的小手图标。这些用户看到的图标是结合在一起的两个重叠图标。这种机制在Windows 2000中被开放,已不是什么秘密。
    当绘制一个文件夹图标时,资源管理器试图从代表特定文件夹类型的名字空间获得一个IShellIconOverlay指针。如果这个接口存在,名字空间便有机会使用定制的项目。Windows 2000 的平台SDK文档中没有关于IShellIconOverlay 和IShellIconOverlayIdentifier接口的信息,但这两个接口实际上自从Windows 9x 和Windows NT 4.0的桌面更新引入一来就已经存在了。如果您在Windows 9x 和Windows NT 4.0 或更早的 OS 版本上编写代码,请参考 Q192055 文档包含的一些有用的技巧。

清除管理器

    Windows 98发布之初,微软制作了一个叫"磁盘清理(Disk Cleanup)"的实用程序挂在操作系统中(参见图十)。这个工具的目的是通过删除、压缩或备份无用的文件来释放磁盘空间。为此,"磁盘清理"的实用程序清除几个标准的文件夹中的内容,如:垃圾箱、下载的程序文件、临时的Internet 文件。

图十 磁盘清理程序

    通过写一个磁盘清理扩展,可以将新的入口增加到图十显示的对话框中以便管理特定的自制应用程序文件集。"磁盘清理"有一个模块化的结构并由一些系统级的处理器构成,您可以编写并注册自己的清理扩展。每一个扩展实现几个COM接口来与"磁盘清理"管理器通讯。
     编写清理扩展必须要创建一个暴露IEmptyVolumeCache2接口的COM对象。Windows 98 和Windows 2000中的清理扩展有一些细微的差别。在Windows 98中必须提供IEmptyVolumeCache接口,而在Windows 2000中还必须提供IEmptyVolumeCache2接口。IEmptyVolumeCache2接口是IEmptyVolumeCache接口的超集并加入了InitializeEx方法。
    下面是本文提供的一个很基本的清理扩展实现:

Cleanup Extension// IEmptyVolumeCache2Impl.h#include <AtlCom.h#include <emptyvc.hclass ATL_NO_VTABLE IEmptyVolumeCache2Impl : public IEmptyVolumeCache2{public:    // IUnknown    STDMETHOD(QueryInterface)(REFIID riid, void** ppvObject) =         0;    _ATL_DEBUG_ADDREF_RELEASE_IMPL(IEmptyVolumeCache2Impl)    // IEmptyVolumeCache::Initialize    STDMETHOD(Initialize)(HKEY hkRegKey, LPCWSTR pcwszVolume,
                        

来源:http://www.tulaoshi.com/n/20160129/1483608.html

延伸阅读
标签: ASP
在上一篇对活动目录有个基本了解之后下面我就来接触一下活动目录实质上的一面——活动目录的结构。上篇我们讲到活动目录是包括两方面:目录和目录相关的服务。目录是存储各种对象的一个物理上的容器,与我们平常所说的目录没什么区别,目录管理的基本对象是用户、计算机、文件以及打印机等资源。而目录服务是使目录中所有信息和资源发挥作用的服...
标签: Web开发
代码如下: (function($){ $.navs=function(){ return $('#top_menu_bar li').each(function(){ $(this).hover( function(){ $(this).find('ul:eq(0)').show(); }, function(){ $(this).find('ul:eq(0)').hide(); } ); }); }; })(jQuery); 上面是直接定义属性。下面是种常见的方法: 代码如下: jQuery.ext...
标签: 电脑入门
1、在文件夹界面中点击展开图标按钮,如下图所示。或者按Ctrl+F1热键,展开功能区; 2、点击文件夹菜单中的查看,然后点击更改文件夹和搜索选项;如下图所示: 3、点击查看选项卡,将隐藏已知文件类型的扩展名此项的勾选取消,点击确定即可显示已知文件类型的扩展名。如下图所示:
标签: Web开发
前面已经总结了主要的API扩展,下面几个扩展只有在专用的场合才会发挥最大的作用,这里简单了解一下。下面这些特性无一例外,IE均不支持。应用缓存和服务端消息在其他的主流浏览器中都是支持的。桌面通知目前只有Chrome支持。 应用缓存 很多时候,我们需要缓存一些不经常改变的页面来提高访问速度;而且对于某些应用,我们也希望在离线的情...
标签: ASP
理解了活动目录的原理之后,现在我们就可以进行活动目录的安装与配置了,活动目录的安装配置过程并不是很复杂,因为WIN2K中提供 了安装向导,只需按照提示一步步按系统要求设定即可。但安装前的准备工作显得比较复杂,只有充分理解了活动目录的前提下才能正确地安装配置活动目录。下面我就详细地介绍一下活动目录的安装与配置及其准备了。 ...

经验教程

532

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部