声明工厂模板
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
下一步是声明筛选器的工厂模板。 工厂模板是包含类工厂信息的 C++ 类。 在 DLL 中,声明 CFactoryTemplate 对象的全局数组,每个筛选器或 DLL 中的 COM 组件对应一个。 数组必须 g_Templates命名。 有关工厂模板的详细信息,请参阅 如何创建 DirectShow 筛选器 DLL。
工厂模板 m_pAMovieSetup_Filter 成员是指向前面所述的 AMOVIESETUP_FILTER 结构的指针。 以下示例演示了一个工厂模板,该模板使用上一个示例中给出的结构:
CFactoryTemplate g_Templates[] = {
{
g_wszName, // Name.
&CLSID_SomeFilter, // CLSID.
CSomeFilter::CreateInstance, // Creation function.
NULL,
&sudFilterReg // Pointer to filter information.
}
};
int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
如果未声明任何筛选器信息, m_pAMoveSetup_Filter 可以为 NULL。
相关主题