CFactoryTemplate 类

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

提供用于创建类工厂的模板。

在 DirectShow 中,类工厂使用 CFactoryTemplate 类(也称为 工厂模板)进行专用化。 每个类工厂都有一个指向工厂模板的指针。 工厂模板包含有关 COM 对象的信息,包括对象的类标识符 (CLSID) ,以及指向创建对象的函数的指针。

在 DLL 中,声明名为 g_Templates 的工厂模板的全局数组。 为 DLL 中的每个对象包括一个工厂模板。 当 DllGetClassObject 函数创建一个新的类工厂时,它会在数组中搜索具有匹配 CLSID 的模板。 假设找到一个,它会创建一个类工厂,用于保存指向匹配模板的指针。 当客户端调用 IClassFactory::CreateInstance 时,类工厂将调用模板中定义的实例化函数。

有关详细信息,请参阅 如何创建 DirectShow 筛选器 DLL

公共成员变量 说明
m_Name 筛选器名称。
m_ClsID 指向 对象的 CLSID 的指针。
m_lpfnNew 指向创建 对象实例的函数的指针。
m_lpfnInit 指向从 DLL 入口点调用的函数的指针。
m_pAMovieSetup_Filter 指向 AMOVIESETUP_FILTER 结构的指针。
公共方法 说明
IsClassID 确定 CLSID 是否与此类模板匹配。
CreateInstance 调用 类的对象创建函数。

要求

要求
标头
Combase.h (包括 Streams.h)

Strmbase.lib;
Strmbasd.lib

另请参阅

基类引用