Microsoft DirectX 8.1 (C++)

Create Registry Information

The Filter Graph Manager uses your filter's registry entries to configure your filter and its connections. You provide your filter's registry information in the AMOVIESETUP_MEDIATYPE, AMOVIESETUP_PIN, and AMOVIESETUP_FILTER structures. Typically, these structures are at the beginning of your filter implementation code. For more information about using these structures, see How to Register DirectShow Filters.

Perform the following steps to provide the three structures you need for filter registration:

  1. Provide the AMOVIESETUP_MEDIATYPE structure. This structure holds registry information about the media types your filter supports. For example:
        const AMOVIESETUP_MEDIATYPE sudPinTypes = 
                        { &MEDIATYPE_Video             // major type
                        , &MEDIASUBTYPE_NULL}  ;       // minor type
    

    The possible major types are MEDIATYPE_Stream, MEDIATYPE_Video, and MEDIATYPE_Audio.

  2. Provide the AMOVIESETUP_PIN structure. This structure holds registry information about the pins your filter supports.
  3. Provide the AMOVIESETUP_FILTER structure. This structure holds registry information about your filter object: its CLSID, description, number of pins, the pin structure's name, and your filter's merit. The merit controls the order in which the Filter Graph Manager accesses your filter. Possible merit values are MERIT_PREFERRED, MERIT_NORMAL, MERIT_UNLIKELY, and MERIT_DO_NOT_USE. For a description of merit values, see IFilterMapper::RegisterFilter. The following code shows an example of an AMOVIESETUP_FILTER structure:
        const AMOVIESETUP_FILTER
        sudMyFilter = { &CLSID_MyFilter         // clsID
                    , L"My Filter Description"  // strName
                    , MERIT_UNLIKELY            // dwMerit
                    , 2                         // nPins
                    , sudpPins };               // lpPin