Installing and Registering Protocol Handlers

Installing protocol handlers involves copying the DLL(s) to an appropriate location in the Program Files directory and registering them.

This section contains the following topics:

  • Installation Guidelines
  • To Register Protocol Handlers
  • To Register Shell Extensions

Installation Guidelines

Protocol handlers should implement self-registration for installation and should follow these guidelines:

  • The installer must use either EXE or MSI installer.
  • Release notes must be provided.
  • An Add/Remove Programs entry must be created for each add-in installed.
  • The installer must take over all registry settings for the particular file type or store that the current add-in understands.
  • If a previous add-in is being overwritten, the installer should notify the user.
  • If a newer add-in has overwritten the previous add-in, there should be the ability to restore the previous add-in's functionality and make it the default add-in for that file type again.

To Register Protocol Handlers

You need to make fourteen entries in the registry to register the protocol handler component, where:

  • Ver_Ind_ProgID is the version independent ProgID of the protocol handler implementation
  • Ver_Dep_ProgID is the version dependent ProgID of the protocol handler implementation
  • CLSID_1 is the CLSID of the protocol handler implementation
  1. Register the version independent ProgID with the following keys and values:

    • HKEY_CLASSES_ROOT\<Ver_Ind_ProgID>

    • HKEY_CLASSES_ROOT\<Ver_Ind_ProgID>/CLSID

    • HKEY_CLASSES_ROOT\<Ver_Ind_ProgID>/CurVer
  2. Register the version dependent ProgID with the following keys and values:

    • HKEY_CLASSES_ROOT\<Ver_Dep_ProgID>

    • HKEY_CLASSES_ROOT\<Ver_Dep_ProgID>/CLSID

  3. Register the protocol handler's CLSID with the following keys and values:

    • HKEY_CLASSES_ROOT\{CLSID_1}

    • HKEY_CLASSES_ROOT\{CLSID_1}/InprocServer32

    • HKEY_CLASSES_ROOT\{CLSID_1}/ProgID

    • HKEY_CLASSES_ROOT\{CLSID_1}/ShellFolder

    • HKEY_CLASSES_ROOT\{CLSID_1}/TypeLib

    • HKEY_CLASSES_ROOT\{CLSID_1}/VersionIndependentProgID

  4. Register the protocol handler with Windows Desktop Search:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\RSSearch\ProtocolHandlers

    • HKEY_CURRENT_USER\Software\Microsoft\RSSearch\ProtocolHandlers

    • HKEY_CURRENT_USER\Software\Microsoft\Windows Desktop Search\DS\Index\ProtocolHandlers\<Protocol Name>

To Register Shell Extensions

You need to make two entries in the registry to register the protocol handler's Shell extension.

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{CLSID of PH Implementation}

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Extensions\Approved