Registration Requirements for DTS Transformations

DTS Programming

DTS Programming

Registration Requirements for DTS Transformations

Data Transformation Services (DTS) custom transformations require entries in their class registration to identify them as DTS transformations. You need to add code to the DLLRegisterServer and DLLUnregisterServer functions or add script to the registry script (.rgs) file of the custom transformation project so that it can create these entries.

DTS Transformation Registry Entries

The DLLRegisterServer function needs to create a set of registry keys under \HKEY_CLASSES_ROOT\CLSID\ with the following structure:

  • {Class ID for Component.CXFormClass}
    (Default)              transformation description
    • DTSTransform
      • 1033
        DTSTransformDescription        transformation description
    • Implemented Categories
      • {GUID for DTS Transformations component category}
    • InprocHandler32
      (Default)            ole32.dll

    • InprocServer32
      (Default)             path\Component.dll
      Threading Model  Both

    • ProgID
      (Default)             Component.CXFormClass.version

    • VersionIndependentProgID
      (Default)              Component.CTaskClass

The transformation description is the name that appears in the Create New Transformation dialog box of DTS Designer. The subkeys under the DTSTransform key provide locale-specific versions of the transformation description. You can add a subkey for each locale in which you expect your transformation to be used.

DTS defines a component category for DTS transformations, which is a globally unique identifier (GUID) that is added to the system registry when Microsoft® SQL Server™ 2000 client tools are installed on your system. To make a custom transformation registration visible to DTS Designer, you must provide the Implemented Categories key and a subkey that contains this component category.

In addition, DLLRegisterServer needs to map the VersionIndependentProgID and ProgID to the class ID by creating these keys directly under \HKEY_CLASSES_ROOT\:

  • Component.CXFormClass
    (Default)              transformation description
    • CLSID
      (Default)              {Class ID for Component.CXFormClass}
  • Component.CXFormClass.version
    (Default)              transformation description
    • CLSID
      (Default)              {Class ID for Component.CXFormClass}

DLLUnregisterServer removes the registry entries added by DLLRegisterServer.

Registry Script File

If you use the Active Template Library (ATL) to create the framework for your custom transformation, it provides a registry script that creates these registry keys under \HKEY_CLASSES_ROOT\CLSID\:

  • {Class ID for Component.CXFormClass}
    (Default)                CXFormClass Class
    • InprocServer32
      (Default)                 path\Component.dll
      Threading Model      Both

    • ProgID
      (Default)                 Component.CXFormClass.version

    • Programmable

    • TypeLib
      (Default)                 {Component type library GUID}

    • VersionIndependentProgID
      (Default)                 Component.CTaskClass

You can add the required DTSTransform, Implemented Categories and InprocHandler32 subkeys by editing the registry script file. There is no need to remove the Programmable and TypeLib keys. For more information, see Building a Custom Transformation from a Standard ATL Template.