DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CFactoryTemplate [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
클래스 팩토리를 생성 하는 템플릿을 제공한다.
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 | 그 클래스의 개체 생성 함수를 호출한다. |