I had a need to create an extension to IE. When I did my initial research I couldn’t find anything that seemed to address the subject. Since Internet Explorer is the most commonly used browser on the internet I knew I was doing something wrong. Apparently I didn’t even know the propper terminology to use for what I was doing.
The most basic extension to Internet Explorer is called a “Browser Helper Object” or BHO
just knowing that would have saved me a couple of hours.
A Browser Helper Object is in the form of a .dll that is intended to interact with IE. Other things like toolbars can be built on top of it.
Creating a BHO: anything that can compile a .dll can be used. It’s easiest to find references that are in Visual Studio and C++ or Visual Basic.
Development: The development is deceptively simple once you get started. There are a few basic methods that are required like getSite and setSite. These can both be very quirky so I suggest referring to a tutorial to create these most basic methods: http://msdn2.microsoft.com/en-us/library/bb250489.aspx once you have the basics methods setup you have to get yourself acquainted with a new lirary of features know as MSHTML which allows you to interact with IE and the documents it references: http://msdn2.microsoft.com/en-us/library/bb498651(VS.85).aspx
as usual it helps to have code to look at, I suggest browsing the projects at CodeProject, I found many there that were helpful.
There are a few distinct things that a BHO can do that you can’t do easily with anything else (At least for IE).
- Create interaction between the desktop applications and the web
- Simulate user interaction, that is transparent to sites.
- Bypass cross site security restrictions
- DOM manipulation on any site.
I only found 1 boook that even mentioned Broowser Helper Objects, and it was very useful. Unfortunately it’s only for VB
http://safari.oreilly.com/1565926706/ch12-94108#snippet
Once you have the BHO developed, what ties it to Internet Explorer is that it has to be linked to IE in the registry. The process is spelled out in the tutorial I linked earlier. It’s very easy to see if the connection to IE exists by looking at the “Manage Addons” menu.
I hope that helps launch someone starting the process.