internet explorer plug-in
Written in COM C++ with only the STL. Using registry entries this component is included in the IE Explorer bars list. It hosts the WebBrowser control sourcing the document to the initial site (www.xsearchservices.com by default) and provides the script context with additional COM functions to allow it to access the main pages events and document.
Its functionality resembles GreaseMonkey closely except that TIPs runs an entire webpage in the Explrer bar rather than just loading Javascript files.
The installation MSI needs to be improved so that the Explorer bar folds out immediately after installation. At the moment the user is left wondering what happened.
The component implements the following interfaces:
public IInputObject,
public IObjectWithSite,
public IOleClientSite,
public IOleInPlaceSite, //GetWindowContext
public IOleInPlaceFrame, //(IOleInPlaceUIWindow)
public IDocHostUIHandler, //window.external events
public IStorage,
public IPersistStream //save to disk stuff
and provides the following services to the script via the window.external object:
#define DISPID_CUSTOM_LOCAL_GETDOCUMENT 0
#define DISPID_CUSTOM_LOCAL_REQUESTDOM 1
#define DISPID_CUSTOM_LOCAL_RELEASEDOCUMENT 2
#define DISPID_CUSTOM_LOCAL_FINDTEXTS 3
#define DISPID_CUSTOM_LOCAL_MARKUPTEXTS 4
#define DISPID_CUSTOM_LOCAL_SETREGVALUE 5
#define DISPID_CUSTOM_LOCAL_GETREGVALUE 6
Knowledge of C++, COM and Internet Explorer architecture are required to work on this code.
You can browse / download the source code for this here.