Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

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_FILTERstructures.

Typically, these structures are at the beginning of your filter implementation code. For more information about using these structures, see Registering DirectShow Filters.

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

Provide the AMOVIESETUP_MEDIATYPEstructure. This structure holds registry information about the media types your filter supports. For example:

Copy Code
	const AMOVIESETUP_MEDIATYPE sudPinTypes = 
					{ &MEDIATYPE_Video			 // major
type
					, &MEDIASUBTYPE_NULL}  ;  // minor
type

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

Provide the AMOVIESETUP_PINstructure. This structure holds registry information about the pins your filter supports.

Provide the AMOVIESETUP_FILTERstructure. 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 meritcontrols 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_FILTERstructure.

Copy Code
	const AMOVIESETUP_FILTER
	sudMyFilter = { &CLSID_MyFilter		 // clsID
				, L"My Filter Description"  // strName
				, MERIT_UNLIKELY			// dwMerit
				, 2						 // nPins
				, sudpPins }; 		 // lpPin