다음을 통해 공유


CFactoryTemplate 클래스

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

클래스 팩터리를 만들기 위한 템플릿을 제공합니다.

DirectShow에서 클래스 팩터리는 팩터리 템플릿이라고도 하는 CFactoryTemplate 클래스를 사용하여 특수화됩니다. 각 클래스 팩터리에는 팩터리 템플릿에 대한 포인터가 있습니다. 팩터리 템플릿에는 개체의 CLSID(클래스 식별자) 및 개체를 만드는 함수에 대한 포인터를 포함하여 COM 개체에 대한 정보가 포함되어 있습니다.

DLL에서 g_Templates 라는 팩터리 템플릿의 전역 배열을 선언합니다. DLL의 각 개체에 대해 하나의 팩터리 템플릿을 포함합니다. DllGetClassObject 함수가 새 클래스 팩터리를 만들 때 일치하는 CLSID가 있는 템플릿을 검색합니다. 이를 찾은 경우 일치하는 템플릿에 대한 포인터를 포함하는 클래스 팩터리를 만듭니다. 클라이언트가 IClassFactory::CreateInstance를 호출하면 클래스 팩터리는 템플릿에 정의된 인스턴스화 함수를 호출합니다.

자세한 내용은 DirectShow 필터 DLL을 만드는 방법을 참조하세요.

공용 멤버 변수 Description
m_Name 필터의 이름입니다.
m_ClsID 개체의 CLSID에 대한 포인터입니다.
m_lpfnNew 개체의 instance 만드는 함수에 대한 포인터입니다.
m_lpfnInit DLL 진입점에서 호출되는 함수에 대한 포인터입니다.
m_pAMovieSetup_Filter AMOVIESETUP_FILTER 구조체에 대한 포인터입니다.
Public 메서드 Description
IsClassID CLSID가 이 클래스 템플릿과 일치하는지 여부를 결정합니다.
CreateInstance 클래스에 대한 개체 만들기 함수를 호출합니다.

요구 사항

요구 사항
헤더
Combase.h(Streams.h 포함)
라이브러리
Strmbase.lib;
Strmbasd.lib

추가 정보

기본 클래스 참조