How to: Register an IRM Protector

Applies to: SharePoint Foundation 2010

After you compile your custom Information Rights Management (IRM) protector, you must register that protector with Microsoft SharePoint Foundation 2010 to make it available for document libraries.

Each IRM protector is registered at the farm level, and made available to every document library in the server farm. Each IRM protector must be registered and deployed on every front-end Web server, and must be added to every registry subtree of each front-end Web server.

To register an IRM protector with SharePoint Foundation

  1. Register the protector as a COM object.

    The threading model for this object should be set to both. Registering the protector as a COM object enables SharePoint Foundation 2010 to reference the protector’s functions.

  2. Create the following registry key:

    HKLM\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\<protector name>

  3. Set the following registry subkeys in the HKLM\ SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\IrmProtectors key:

    • **Name:**ClassID of the protector. Must be the ClassID used to register the protector as a COM object.

    • Value: Name of the protector.

    • Type: String

    In addition, we highly recommended that a protector stores certain metadata about itself in the registry. Specifically, we recommended, but do not require, that a protector set and consume the following registry subkeys, which are set in the HKLM\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\<protector name> key:

    • Name: Extensions

    • Value: Comma-separated list of file extensions that this protector converts.

    • Type: String

    • Name: Product

    • Value: Name of the protector.

    • Type: String

    • Name: Version

    • Value: Version number of the protector.

    • Type: String

Example

The following example is a .wxs file that demonstrates how to associate file formats with an IRM protector. The example registers an IRM protector as a COM object, and sets the correct registry keys.

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="https://schemas.microsoft.com/wix/2003/01/wi">
  <Fragment>
    <DirectoryRef Id="STSBin">
      <Component Id="Contoso_IrmProtector" DiskId="1">
        <File Id="CONIRMP.DLL_0001">
          <TypeLib Id="C0321D28-5B26-4CE5-855C-7863852283C6" 
            Advertise="no" Language="0" MajorVersion="1">
            <Class Id="4F9976DC-47C3-4518-B2A2-A258B379F970" 
              Description="IrmProtector Class" ThreadingModel="both" 
              Context="InprocServer InprocServer32">
              <ProgId Id="IrmProtector.Protector.1">
                <ProgId Id="IrmProtector.Protector" />
              </ProgId>
            </Class>
          </TypeLib>
        </File>

<Registry Id="IrmProtector.1" Root="HKLM" Key="SOFTWARE\Microsoft\Shared Tools\Web Server 
Extensions\12.0\IrmProtectors" Name="{4F9976DC-47C3-4518-B2A2-A258B379F970}" 
Value="Contoso.Irm.Protector" Type="string" />

<Registry Id="IrmProtector.2" Root="HKLM" Key="SOFTWARE\Microsoft\Shared Tools\Web Server 
Extensions\IrmProtector" Action="createKeyAndRemoveKeyOnUninstall" />

<Registry Id="IrmProtector.3" Root="HKLM" Key="SOFTWARE\Microsoft\Shared Tools\Web Server 
Extensions\IrmProtector" Name="Extensions" Value="XYZ,PDQ,FOO"  Type="string" />

<Registry Id="MsoProtector.4" Root="HKLM" Key="SOFTWARE\Microsoft\Shared Tools\Web Server 
Extensions\IrmProtector" Name="Product" Value="MsoProtector" Type="string" />

<Registry Id="IrmProtector.5" Root="HKLM" Key="SOFTWARE\Microsoft\Shared Tools\Web Server 
Extensions\IrmProtector" Name="Version" Value="1" Type="string" />

      </Component>
    </DirectoryRef>
  </Fragment>
</Wix>

See Also

Concepts

Information Rights Management in SharePoint Foundation

IRM Framework Architecture in SharePoint Foundation

IRM File Processing

Custom IRM Protectors