Internet Explorer Extension



Click here for larger image

Environment: Win2000, IE 5.0 and later

This article is about a technique that allows you to write your own Internet Explorer Extensions. In other words it allows you to launch your own applications from the toolbar of Internet Explorer in the way messenger or yahoo or scores of other commercial applications can be launched.

The coolest part of this whole affair is that this seemingly appealing and impressive feat, from useability perspective, can be achieved by doing some simple tweaking of the registry and the design and developement of the actual application can remain completely insulated. Thanks to the Extensions feature of the Internet Explorer.

What are Extensions?

For those who are still dazed by all this talk of "Extensions" in Internet Explorer, I will recommend that you have a good look at the browser that you are using for veiwing this page. Chances are that you are using Internet Explorer and chances are that icons of some other applications that you have installed in your machine e.g. MSN messenger, Yahoo etc. are comfortably seated there in the toolbar of Internet Explorer. These are "Extensions" to Internet Explorer.

This is a particularly powerful feature of Internet Explorer and opens up a new resource for application developers to tap into. However, I will like to center this article around plugging custom applications into the IE.

How can Extensions be useful to me?

This is not exactly a technical question but a practical question none the less. As an application developer I found this feature particularly useful to buy my applications some real estate on the users desktop. If you are designing some internet centric application , and are concerned about your target users not finding it when needed, then there is nothing better then make it stare right at the users face from the browser toolbar. The other reason that I find no less compelling is the kick that you get from buying your application some space amongst supremos like messenger and yahoo :) . Any developer who loves the application that he designs will agree with me.

Ok, I am interested, so how do I do it?

Before we delve into code, let us look into the some particularly interesting registry entries.



Click here for larger image


As you can see in the status bar of regedit.exe in the image there is an Extensions entry in the Internet Explorer. Believe it or not, this is all that you need to peek in to plug your application into Internet Explorer. Let us drill down a little further and see the extension pertaining to some CMM Automation applications that we have in our company.



Click here for larger image


Now let me try to introduce all this gibberish to you formally.

The huge number selected on the left pane is a guid that I made with guidgen.exe that has been installed on my machine by Visual Studio. It uniquely identifies my application and separates it from the multitude of other IE extensions that might be made by others.

The keys shown on the right pane are mostly self explanatory, but I will provide one liners

  1. CLSID : The number shown in the picture signifies that this extension will run an exe. It is dictated by Microsoft and hence there is not much to think about this one. Different numbers are used to indicate different kind of extensions but I will refrain from talking about them.
  2. Default Visible : The value yes signifies that the icon is to be shown by default. If the value is 'no' then user will have to customize his IE toolbar by right clicking on it to see this icon.
  3. Exec : Path of the executable to be executed on clicking the icon.
  4. Icon : Path of the icon file to be shown in the toolbar.
  5. Hot Icon : Path of icon that is to be shown when mouse is brought over it.
  6. Menu Text : This is the text you will see in IE under Tools menu. Clicking on this text will launch the application.
  7. Menu Status Bar : The text shown in the status bar of IE when mouse is moved over the Menu described above.

Believe it or not guys, this is all that you do to put your application up there in the esteemed toolbar! Use any language/script that allows you to write onto the registry and find some jazzy icons and you are done.

So let us sum up all that we need to do

  1. Create a guid.
  2. Make a new key with this guid under Internet Explorer in the windows registry.
  3. Create the set of entries under this key as shown in the last image.

As is evident from the above text this feat can be achieved in variety of languages and the trick can be put to use in many scenarios. You can create an application that allows users to put their choice of applications into the IE. You can have this feature built into the installer code for your applications. The code I am attaching along with this article puts a helloworld application into the IE toolbar. It is made in VB for no other reason then I could do it in 15 minutes in this language.

Downloads

Download demo project - 15 Kb
Download source - 8 Kb


Comments

  • is there an extension for Facebook to expand "Similar Posts" ?

    Posted by Azalaksh on 04/17/2010 09:22pm

    Firefox and Chrome have this.....

    Reply
  • Great! Now how about creating a whole Band in VB?

    Posted by Legacy on 02/13/2004 12:00am

    Originally posted by: Wayne Hoit

    Do you happen to have sample code on how I can create an entire Band for IE using VB?

    Something like the toolbar that Yahoo or Google supplies?

    Thanks,
    Wayne

    Reply
  • good job

    Posted by Legacy on 09/24/2002 12:00am

    Originally posted by: pankaj

    First of all Thankx a lot for such a wonderfull article and above all I feel great after ur article. Now I can do so many things with my IE.......the list is endless........but the thing is I can do with less efforts.

    thankx again

    Please keep on writing on such cryptic issues.

    Reply
  • Info 4 U, and a .NET question

    Posted by Legacy on 08/10/2002 12:00am

    Originally posted by: JF

    Here are a couple additional links that you may find are helpful:

    http://msdn.microsoft.com/workshop/browser/ext/overview/overview.asp?frame=true

    http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/ext/tutorials/button.asp

    http://safari.oreilly.com/main.asp?bookname=vbshell&snode=99 (VERY good, but requires subscription)

    ----

    Now, how do you make this work in .NET?????

    I have a compiled VB.NET dll, but since it does not have a registry entry (even after I tried to use regsvr32 on it), I can't figure out how to refer to the DLL in the registry. Help!

    Reply
  • Same Question as Everyone else.

    Posted by Legacy on 07/18/2002 12:00am

    Originally posted by: John Price

    How do you pass the url or better yet the page to the app you are launching. I am starting to look at the Browser Helper Objects if anyone knows anything about them.

    Thanks for the article. It covers the topic much better than MSDN does.

    Reply
  • I still didnt get it...

    Posted by Legacy on 06/26/2002 12:00am

    Originally posted by: Nimi

    How can i pass the url and other info to my app?
    Please if anyone knows...
    Mail me or leave a msg here.
    thanks,
    Nimi.
    nimshory@hotmail.com

    Reply
  • Save the current document...

    Posted by Legacy on 06/25/2002 12:00am

    Originally posted by: Mike

    hi,

    many thank for this helpfull demo... first i found in the net...

    now here my question, maybe somebody can helpme out.

    i wanna add this button so that instead of calling a exe file, it saves the current document to a defined path.

    i mostly open word-docs... and instead of telling save as... and have to search for the path

    i thoungt that when i get the code explorer uses to do that, i can change it to not ask where, and only by one click... save the word dok.

    thanks

    Reply
  • ok 1 question

    Posted by Legacy on 06/19/2002 12:00am

    Originally posted by: Steven

    ok How do you get the current page being viewed when launching said program from the tool bar?

    Reply
  • TOOOOOOO Good "JEETE RAHO PARTHA"

    Posted by Legacy on 06/13/2002 12:00am

    Originally posted by: Ashwini

    Hi Partha,
    Today i was looking for some other code and I shocked
    "is this the same Partha whom I know or different" . But after reading your article about IE extension I forgot my problem. This is really really good article . "JEETE RAHO PARTHA"

    Ashwini

    Reply
  • May I know all the properties and functions of InternetExplorer.Document?

    Posted by Legacy on 05/29/2002 12:00am

    Originally posted by: jian2587

    Well, as u know when u typed the dot after an object a bunch of properties, functions, constants will pop out.
    This ain't the case for Document, I looked it up in the
    Object Browser but no luck. I wanna know how do I get all
    these hidden properties? (Such as Document.Title)

    Thanx

    Reply
  • Loading, Please Wait ...

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • On-demand Event Event Date: September 10, 2014 Modern mobile applications connect systems-of-engagement (mobile apps) with systems-of-record (traditional IT) to deliver new and innovative business value. But the lifecycle for development of mobile apps is also new and different. Emerging trends in mobile development call for faster delivery of incremental features, coupled with feedback from the users of the app "in the wild." This loop of continuous delivery and continuous feedback is how the best mobile …

  • Webinar on September 23, 2014, 2 p.m. ET / 11 a.m. PT Mobile commerce presents an array of opportunities for any business -- from connecting with your customers through mobile apps to enriching operations with mobile enterprise solutions. Join guest speaker, Michael Facemire, Forrester Research, Inc. Principal Analyst, as he discusses the new demands of mobile engagement and how application program interfaces (APIs) play a crucial role. Check out this upcoming webinar to learn about the new set of …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds