DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CFactoryTemplate   [목차열람] [주소복사] [슬롯비우기]
CFactoryTemplate 클래스
 
Microsoft DirectX 9.0

CFactoryTemplate 클래스

클래스 팩토리를 생성 하는 템플릿을 제공한다.

Microsoft® DirectShow® 에서는, 클래스 팩토리는,"팩토리 템플릿" 이라고도 불리는 CFactoryTemplate 클래스에 의해 특수화 된다. 각 클래스 팩토리는, 팩토리 템플릿의 포인터를 보관 유지한다. 팩토리 템플릿에는, COM 개체에 관한 정보 (개체의 클래스 ID (CLSID), 개체를 생성 한 함수의 포인터등)가 저장 된다.

DLL 에서는, 팩토리 템플릿의 글로벌 배열을 g_Templates 라는 이름으로 선언한다. DLL 내의 각 개체에 1 개씩 팩토리 템플릿을 추가한다. DllGetClassObject 함수로 새로운 클래스 팩토리를 생성 할 때 이 함수는 일치하는 CLSID 를 가지는 템플릿을 배열로부터 검색한다. 일치하는 것이 발견되면 일치하는 템플릿의 포인터를 보관 유지하는 클래스 팩토리를 생성 한다. 클라이언트가 IClassFactory::CreateInstance 를 호출하면, 이 클래스 팩토리는 템플릿에 정의되고 있는 인스턴스화 함수를 호출한다.

더 자세한 정보는, 「DLL 의 생성 방법」을 참조할것.

요건

헤더: Combase.h 로 선언해, Streams.h 를 인클루드 한다.

라이브러리: Strmbase.lib (리테일 빌드) 또는 Strmbasd.lib (디버그 빌드).

퍼블릭 멤버 변수  
m_Name 필터의 이름.
m_ClsID 개체의 CLSID 의 포인터.
m_lpfnNew 개체의 인스턴스를 생성 하는 함수의 포인터.
m_lpfnInit DLL 엔트리 포인트로부터 불려 가는 함수의 포인터.
m_pAMovieSetup_Filter AMOVIESETUP_FILTER 구조체의 포인터.
퍼블릭 메서드  
IsClassID CLSID 가 이 클래스 템플릿과 일치할지 어떨지를 확인한다.
CreateInstance 그 클래스의 개체 생성 함수를 호출한다.

↑TOP