65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 ATL 对象向导创建 DeskBands

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.97/5 (25投票s)

2000年4月13日

viewsIcon

826305

downloadIcon

7955

一个 ATL 对象向导,用于帮助创建 DeskBand 的 COM 对象实现。用于 Internet Explorer 和桌面的 Web 配件。历史记录、收藏夹、搜索、广播、地址栏... 自 Internet Explorer 4.0 起您就见过它们了。现在,创建您自己的吧!

  • 下载源文件 - 32.3 Kb
  • Sample Image - RBDeskBand.gif

    什么是 DeskBands?

    DeskBand 有 4 种类型。通信栏 (Communications Band) 位于 IE4+ 实例的底部。信息栏 (Information Band) 位于 IE4+ 实例的左侧,就像允许您在硬盘上搜索文件或文件夹的搜索栏一样。桌面栏 (Desk Band) 位于桌面上,它可以浮动或停靠在显示器的任意 4 个侧面。最后一种是工具栏 (Toolbar),位于 Internet Explorer 的 rebar 空间中,例如地址栏。

    要查看这一点,请启动 IE4+。点击“查看”菜单项,然后转到“浏览器栏”菜单项。分隔符上方的上半部分是可用的信息栏,下半部分是通信栏。

    要查看桌面栏,请右键单击任务栏(连接到开始按钮的区域)。从上下文菜单中选择工具栏菜单项。列表中是可用的桌面栏。

    DeskBand 也可以作为 Internet Explorer 4+ 中的工具栏存在。该向导目前不提供此代码,尽管我已有。我将在下周左右更新向导以支持工具栏并使其更具可配置性。

    安装

    在此版本中,您不再需要安装 Microsoft Installer 即可使用此 ATL 对象向导。过去,文件存储在 MSI 文件中,该文件会将文件安装到正确的位置并允许轻松卸载。为了让更多人能够使用该向导。我已经将文件从 MSI 中移出,并让用户根据以下说明将其放置在正确的位置。

    步骤
    • 将源 zip 文件中的文件解压到您的 Visual Studio 位置下的相对路径 Common\MSDev98\Template\ATL
    • 从命令提示符运行 RegSvr32.exe 来注册 RBDeskband.dll。RegSvr32 RBDeskBand

    第 1 步的路径示例

    • C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template\ATL
    • C:\MyDevEnv\Common\MSDev98\Template\ATL

    用法

    要创建 DeskBand 的基本实现,请执行以下操作
    1. 使用“插入”菜单中提供的“新建 ATL 对象”选项启动 ATL 对象向导。
    2. 从“RadBytes”类别中选择“DeskBand”ATL 对象向导组件。
    3. 在“名称”对话框页面中填写您的 Deskband 信息。
    4. 选择“DeskBand ATL Object Wizard”选项卡。
    5. 选择至少一种您希望暴露您的 Band 的 DeskBand 类型。
    6. 点击“确定”
    7. 您的项目将使用编译您的 deskband 基本实现所需的关联类文件进行更新。

    我运行了向导,现在该怎么办?

    您需要做的就是实现您创建的 Band 的内容和内部工作。存在一个静态的基类窗口。这样可以轻松地提取和插入任何替换代码。我选择这样做而不是直接将 CWindowImpl 附加到 deskband,以便于更改、使用和适应。

    我的 DeskBand 未在菜单项中列出

  • 请确保您正在查看您创建的 Band 类型对应的正确菜单项列表。
  • 另外请记住,explorer.exe 进程会在您本次 Windows 会话的菜单首次访问时缓存浏览器栏和工具栏的列表,而不是 IE 会话。因此,如果您在此会话中访问过菜单,您将需要注销并重新登录,或者终止 explorer.exe 进程。

    自动生成的代码

    输出是根据 ATL 对象向导属性页中提供的短名称生成的源文件、头文件和注册表资源文件。被向导修改的文件是:您的主源文件、IDL、RC 和 DSP 文件。


    Unicode

    生成的代码可以在 UNICODE 和 ANSI 下进行编译。


    历史

    1.1
    [2001年3月22日]
    修复
  • Band 注册问题,Threading model 被设置为 Single [Hwan, Erik Funkenbusch]
  • 移除了 MSI 要求。[Siddhartha Ghosal]
  • 移除了“谢谢”对话框。我决定它很烦人且无用。

    新增功能
  • 添加了新的向导页面,允许以多种方式创建 Band。
  • 添加了 Internet Explorer 工具栏支持
  • 使用 ATL CATEGORY_MAP [Erik Funkenbusch]

    待解决的问题
  • 测试表明,使用向导将大量 Bands 添加到项目中会导致 VC 在项目源文件的底部插入 #include 指令。没有已知修复方法,且发生频率低。
  • 将多个 Internet Explorer 工具栏添加到同一个项目会导致 HKEY hKeyLocal = NULL; 重定义。解决方法是删除冗余定义。
  • 初始发布
    [2000年4月13日]
    我首次发布 ATL 对象向导和文章。
  • © . All rights reserved.