Pluggable Protocols


Introduction

Internet Explorer 4 allows developers to produce plug-ins to handle different protocols. For example, type 'about:things' into your browser. This will echo back the word 'things' in the browser. All the different protocols supported by IE4 are implemented using asynchronous pluggable protocols, as these plug-ins are known.

I have been attemting to write a pluggable protocol in Delphi for a while now. However, unlike most programming activities, it seems almost impossible to find informative websites for this kind of development. This is why I have added this page to my website. As I learn more about them, I will add more information here. It will primarily cover implementation in Delphi.

Implementation

In order to write a pluggable protocol, it is necessary to implement the IInternetProtocol interface. The developer can also implement the IInternetProtocolInfo interface, although I'm not entirely sure why you'd want to do this.

Unfortunately, Delphi does not provide the necessary interface definitions. A Delphi translation can be downloaded from Scoutship Technologies' site (see below).

Finally, to help you on your way, here is my implementaion of a simple pluggable protocol.  The zip file only contains the implementation of the interface. It uses the ework: protocol. It will echo back the URL in a HTML document, along with the type of the operation and any data that has been passed.

Links

Scoutship Technologies have a page dedicated to the development of namespace handlers. These are very similar to asynchronous pluggable protocols, except these allow the developer to handle regsitered protocols differently. So, for example, you could handle the http protocol differently for specific URLs.

Microsoft have an overview of pluggable protocols.

Microsoft have also provided an example protocol, called ETCPROT. However, this is written in Visual C++, using the ATL, so does not provide too much help for us Delphi programmers. You'll need to register with Microsoft Support to download this file

There is a newsgroup devoted to this subject. It can be found at news:microsoft.public.inetsdk.programming.urlmonikers

Also of use may be the IE5 newsgroup. This is news:microsoft.public.inetexplorer.ie5beta.programming.urlmonikers

A useful newsgroup for Delphi programmers is news:borland.public.delphi.internet


Last updated 05/12/99