当前位置: 代码迷 >> 多媒体/流媒体开发 >> directshow 如何在自己的程序中加载指定的外部的ax filter
  详细解决方案

directshow 如何在自己的程序中加载指定的外部的ax filter

热度:6522   发布时间:2013-02-26 00:00:00.0
directshow 怎么在自己的程序中加载指定的外部的ax filter
播放视频 不想注册AX控件到注册表。想由自己的程序自己加载AX 滤镜 
并播放视频文件...
 该着么做?
 有代码的发个我看看 邮箱:nbachenxiao@126.com
 谢谢,可以的立马给分...

------解决方案--------------------------------------------------------
取得.ax导出的DllGetClassObject(),然后就可以生成对象实例了
------解决方案--------------------------------------------------------
同一楼,其实CoCreateInstance主要也就是调用了暴露出来的那些个函数,通过类厂创建出Filter。
注册到系统注册表,CoCreateInstance才能找到具体的Filter文件位置,
如果自己想调用,把环境配置好,参考COM的使用方法应该可以自己调用。
------解决方案--------------------------------------------------------
注册AX文件到系统中后才能通过CoCreateInstance创建,不然会找不到AX文件无法创建成功的。
一般创建Filter么,就用CoCreateInstance(clsid,0,CLSCTX_INPROC_SERVER,IID_IBaseFilter,(void**)(&pFilter));
clsid就是AX Filter的clsid,可以通过GraphEdit添加filter时查看到。
比如:@device:sw:{083863F1-70DE-11D0-BD40-00A0C911CE86}\{04FE9017-F873-410E-871E-AB91661A4EF7}
{04FE9017-F873-410E-871E-AB91661A4EF7}就是这个Filter的CLSID.
  相关解决方案