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
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
Register the version dependent ProgID with the following keys and values:
HKEY_CLASSES_ROOT\<Ver_Dep_ProgID>
HKEY_CLASSES_ROOT\<Ver_Dep_ProgID>/CLSID
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
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