Click here to Skip to main content
Click here to Skip to main content

Cookie Spy

, 10 Oct 2001
Rate this:
Please Sign up or sign in to vote.
Creating a CookieSpy explorer bar with ATL
<!-- Download Links -->
  • Download source files - 44 Kb
  • Download dll - 64 Kb
  • <!-- Article image -->

    Sample Image - CookieSpy.gif

    <!-- Main HTML starts here -->


    CookieSpy is a custom explorer bar. This extension was created for the monitoring of cookie activity and for the possibility to add and edit cookies. I used VC++ 6.0 (SP4) and ATL.


    1. At first, every IE band object must implement a couple interfaces:
    - IDeskBand
    - IObjectWithSite
    I wrote a template class DeskBandImpl<> to implement all the IE necessary routines.

    2. Second, the band object must add to the registry the appropriate records to the "Component Categories" hive. I registered for CATID_InfoBand and CATID_CommBand categories. Certainly, you can use only one placement for band: vertical or horizontal at the same time.

    3. Next, when IE calls IObjectWithSite::SetSite method, the main objectives are:
    - to create a band window.
    - to advise DWebBrowserEvents2 event sink interface for receiving event notifications from a explorer

    4. CookieSpy::OnCreate method objectives:
    - to create MSHTML control for displaying HTML page from resource
    - to set external dispatch

    5. By processing events: BeforeNavigate2, DocumentComplete, NavigateComplete2, I try to update the cookie's information for the current document:
    - to parse cookie string
    - to update a main html page

    Cookie Edit Dialog

    6. Also the user can add and edit the cookie. If the cookie was stored on the hard disc, I try to find the cookie's file in cookie's folder for determining a expire date and domain\path info otherwise (in case lack of such file) I suggest that it's the session cookie. Then with help InternetSetCookie API I create a cookie for the specified URL.


    I tested this band under Win2k and IE 5.0 only


    Thanks a Neeraj Srivastava for his article "Implementing Web Browser Band Using ATL HTML Control"


    12 Oct 2001 - New download files: These solve trouble with IE.5.5\6.0 and CookieSpy plug-ins.


    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here


    About the Author

    Konstantin Boukreev
    Web Developer
    Russian Federation Russian Federation
    I am freelance programmer. About 3 years of experience in C++ and I would rather use ATL, STL, WTL but not MFC Smile | :) . Main backgrounds are Win32 API, COM and Networking. Now I am interested about AI (Neural Network, Fuzzy Logic and GA). Currently based in Vladivostok, Russia.

    Comments and Discussions

    GeneralRe: Does not work with English IE 5.5 PinmemberKonstantin Boukreev9-Oct-01 20:16 
    GeneralInstalling the Plugin PinmemberGoran Lastro5-Mar-01 1:12 
    GeneralRe: Installing the Plugin PinmemberTom Wellige5-Mar-01 3:58 
    GeneralRe: Installing the Plugin PinmemberAnonymous6-Mar-01 11:51 
    GeneralRe: Installing the Plugin Pinmembersas28-Mar-01 14:09 
    GeneralRe: Installing the Plugin PinmemberAnonymous5-Jan-03 19:40 
    GeneralRe: Installing the Plugin PinmemberLed16-Sep-03 12:50 
    GeneralRe: Installing the Plugin PinsussAnonymous15-May-03 12:52 
    Shut down your computer, restart it ans then you can see it at View->Explorer bar->Cookie Spy. Roll eyes | :rolleyes:

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

    | Advertise | Privacy | Terms of Use | Mobile
    Web02 | 2.8.150129.1 | Last Updated 11 Oct 2001
    Article Copyright 2001 by Konstantin Boukreev
    Everything else Copyright © CodeProject, 1999-2015
    Layout: fixed | fluid