Microsoft DirectX 8.1 (C++)

Layout of the Registry Keys

DirectShow filters are registered in two places:

Filters are not required to register the additional filter information. As long as the DLL is registered as the COM server, an application can create the filter and add it to a filter graph. However, if you want your filter to be discoverable by the System Device Enumerator or the Filter Mapper, you must register the additional information.

The registry entry for the DLL has the following keys:

HKEY_CLASSES_ROOT
    CLSID
        Filter CLSID 
            REG_SZ: (Default) = Friendly name

            InprocServer32
                REG_SZ: (Default) = File name of the DLL
                REG_SZ: ThreadingModel = Both

The registry entry for the filter information has the following keys:

HKEY_CLASSES_ROOT
    CLSID
        Category
            Instance
                Filter CLSID
                    REG_SZ: CLSID = Filter CLSID
                    REG_BINARY: Filter Data = Filter information
                    REG_SZ: FriendlyName = Friendly name

Category is the GUID of a filter category. (See Filter Categories.) The filter information is packed into a binary format. The IFilterMapper2 interface unpacks this data when it searches the registry for a filter.

All of the filter category GUIDs are listed in the registry under the following key:

HKEY_CLASSES_ROOT\CLSID\CLSID_ActiveMovieCategories\Instance