您的当前位置:首页正文

vc++ Windows Shell 编程

2024-11-26 来源:个人技术集锦
用VC++ 进行Windows Shell 扩展编成
              由ccc编译
 
序言:
       看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对windows shell的扩展编程不很了解,也缺乏这方面的资料。
       在做过一些程序之后,感觉到使用windows shell的扩展编程可以使程序与操作系统的结合更加紧密,就好像应用程序已经融入到操作系统之中一样。在使用windows shell扩张编程工具的过程中深切体会到windows shell技术资料的重要性,为此,根据 Dino Esposito的《Visual C++ Windows Shell Programming》为蓝本,编译形成以下文字,为希望使用windows shell编程的人员提供一点帮助。
       编译过程可能会出现错误,希望朋友们指正,请Email联系: 。本人将不胜感激。

  

引言
欢迎阅读 CV++ Windows Shell 编程,在这本书中,你将学到怎样扩展 Windows Shell ,客户化它的行为和继承应用到 Windows Shell 中。你还将发现怎样使用和修改它的属性以达到最好的效能,以及调用那些资料欠缺的 Shell API  函数的方法。对 Shell 编程并不困难,但是很少有关于这方面的完整资料进行介绍。
 
系统的演变
Windows 95   Windows NT 4.0  中微软通过各种不同的扩展使操作系统的 Shell 可编程并高度客户化, Shell 和命名空间扩展只是其各种扩展的冰山一角。对 Shell 编程的一般理解还包括有 Shell API 函数和注册表键等,他们也可以转变你的 Win32 应用。
集成的 Web 浏览器已经混淆了本地与远程对象的差别,它在你的桌面上使用相同的风格表示每一个事物。它可以扩展到包含用户的应用和资料。集成新的 Windows Shell 部件是这个进程的关键部分。所以,现今的 Shell  不仅仅是 COM 、扩展和用户接口,还包含了 Internet 、动态 HTML 和脚本 Windows Shell 已经成为了包含大量客户端技术的汇集点。每一个开发基于 Windows 代码的程序员,很快或不久就将需要实际和深入例程来探索 Windows Shell  的内在特征。这本书包含了全部 API 函数详细说明,揭示其中的 Bugs 和没有说明资料的特征。它深入到探测器的内部世界,带出其中闪亮的东西,比如,钩子、注册表、浏览器帮助对象、 Shell  扩展、命名空间扩展和 Web 观察。他还注意到 Windows 脚本环境扩展和 Shell 脚本对象。
这本书是为专业开发者定制的,有三个主要的目标:
          为现存的和资料贫乏的 Shell API  提供解释
          给出新应用概念
          显示关于 IE4.0 、活动桌面和 Windows98 的新特征和这些新特征怎样适应以存在的 Shell
本书范围
在这本书中我们见致力于回答下面一般的问题
          什么是 Shell API  和我怎样使用它
          怎样使用注册表来客户化我的 Windows Shell
          我怎样才能建立向“回收站”和“我的公文包”那样的特殊目录
          有哪些不同的方法把代码插入到探测器地址空间
          怎样处理图标、任务条和“回收站”
          什么是 Windows 脚本环境,我怎样才能使用它
          什么是 Shell 脚本对象和浏览器帮助对象
          我怎样才能实现 Shell 对我的应用处理的文档的支持
          我怎样才能客户化我的文档的关联菜单
          我怎样在 Shell 和命名空间扩展中使用 COM ATL 来改变 Shell 的行为
          怎样排除 Shell 扩展中的错误
          解释建立成功的 Shell 集成的应用的原理和所需要的技术
          我是怎样使用动态 HTML 客户化一个文件夹的
每一个 Shell 编程问题都使用实际例程进行说明,例子程序是由 VC++6.0 ATL3.0 书写的。这本书中还有一些更有趣的例程:
          “开始”按钮的子类
          建立和安装新的增强型快捷方式处理器
          Windows 脚本环境一起工作的新对象
          依据控制板尺寸指派不同的图标和 Bitmap 文件的 Shell 扩展
          探测器中的按键和建立新的文件夹
          在探测器中把打开的窗口作为节点显示
 
技术准备
准备一台运行 Windows98 Windows95  Windows NT 4.0 ( 带有 ServicePack4.0) 的计算机就不用说了,还要特别注意的是有些例程要求你安装 IE4.0 以上版本。
代码是由 VC++6.0 ATL3.0 写成的,在 CV++5.0 中可能会有错误。书中还使用了 Windows 脚本环境和 IE4.01 环境编写了一些示例。
 
习惯用法
书中使用不同的文字方格和布局来区分不同的信息。下面是一些例子和他们的意义。

框中是重要的说明资料,它们直接向关于上下文内容。
 
 

 


其它信息以文字形式出现如下.
     重要文字以黑体形式给出
     出现在屏幕山的文字,如菜单选择,与实际屏幕显示的字体相同
     键盘上的按键如 Crtl Delete 使用斜体
     所有文件名都有 Pidl.cpp 这种风格
     函数名则有 SHBrowseForFolder() 这种风格
新的,重要的和与当前讨论问题相关的代码有如下形式:
void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
HWND hwndOK = GetDlgItem(g_hwndDlg, IDOK);
// Simulate the Close button being pressed
if(IsWindowEnabled(hwndOK))
PostMessage(g_hwndDlg, WM_COMMAND, IDCANCEL, 0);
}
 
联系地址
          电子邮箱  
显示全文