Share via


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