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

Cookie Spy

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.85/5 (14投票s)

2001 年 3 月 4 日

viewsIcon

206546

downloadIcon

5158

使用 ATL 创建 CookieSpy 资源管理器栏。

  • 下载源文件 - 44 Kb
  • 下载 DLL - 64 Kb
  • Sample Image - CookieSpy.gif

    引言

    CookieSpy 是一个自定义的浏览器工具栏。这个扩展程序是为了监控 cookie 活动以及添加和编辑 cookie 而创建的。我使用了 VC++ 6.0 (SP4) 和 ATL。

    实现。

    1. 首先,每个 IE band 对象必须实现一对接口
    - IDeskBand
    - IObjectWithSite
    我编写了一个模板类 DeskBandImpl<> 来实现所有 IE 必要的例程。

    2. 其次,band 对象必须将适当的记录添加到注册表的“Component Categories”项。我注册了 CATID_InfoBand 和 CATID_CommBand 类别。当然,您可以同时只使用一种 band 放置方式:垂直或水平。

    3. 接下来,当 IE 调用 IObjectWithSite::SetSite 方法时,主要目标是
    - 创建一个 band 窗口。
    - 建议 DWebBrowserEvents2 事件接收器接口,以接收来自浏览器的事件通知

    4. CookieSpy::OnCreate 方法的目标
    - 从资源中创建 MSHTML 控件以显示 HTML 页面
    - 设置外部分发

    5. 通过处理事件:BeforeNavigate2DocumentCompleteNavigateComplete2,我尝试更新当前文档的 cookie 信息
    - 解析 cookie 字符串
    - 更新主 HTML 页面

    Cookie Edit Dialog

    6. 此外,用户还可以添加和编辑 cookie。如果 cookie 存储在硬盘上,我会尝试在 cookie 文件夹中找到 cookie 文件,以确定过期日期和域名\路径信息;否则(如果缺少此类文件),我会建议这是一个会话 cookie。然后,借助 InternetSetCookie API,我为指定的 URL 创建一个 cookie。

    环境。

    我只在 Win2k 和 IE 5.0 下测试了这个 band

    致谢。

    感谢 Neeraj Srivastava 提供了他的文章 “使用 ATL HTML 控件实现 Web 浏览器 Band”

    历史

    2001 年 10 月 12 日 - 新的下载文件:这些解决了 IE.5.5\6.0 和 CookieSpy 插件的问题。

    © . All rights reserved.