如何给filter添加自定义接口 分类: DirectX 2014-10-24 08:59 499人阅读 评论(0) 收藏
2014-10-24 08:59
465 查看
给一个filter添加接口,步骤如下:1、建立一个声明接口的头文件“Interface.h” ,内容包括指定接口的GUID(使用GuidGen.exe)以及接口函数的声明。
记得加 initguid.h 的include,不然使用时会出现"无法解析的外部符号_IID_"错误
2、在Cfilter类的头文件filter.h开头添加 #include “Interface.h” 。
3、在Cfilter类的声明中继承这个接口 CFilter:public Interface。
4、在Cfilter类的声明中增加Interface接口的函数的声明:
//--------Interface methods----------
STDMETHODIMP SetServerAddr(char* inIP, int inPort);
5、在Cfilter类的定义中实现Interface接口的函数的定义:
//-----------------------Interface methods-----------------------------
STDMETHODIMP CFilter::SetServerAddr(char* inIP, int inPort)
{
……
return S_OK;
}
6、最后别忘了,在CFilter::NonDelegatingQueryInterface函数中添加两行代码,用来向外界暴露该接口:
// Basic COM - used here to reveal our own interfaces
STDMETHODIMP CFilter::NonDelegatingQueryInterface(REFIID riid, void ** ppv)
{
……
if (riid == IID_Interface)
return GetInterface((Interface *) this, ppv);
……
}
至此,filter的接口添加完毕。如果其它应用程序想要用这个接口,那么就像使用其它com组件一样。1、把Interface.h添加到工程里。2、使用前添加 #include “Interface.h”。3、在成功添加filter之后,使用QueryInterface函数获得接口指针即可使用。
记得加 initguid.h 的include,不然使用时会出现"无法解析的外部符号_IID_"错误
2、在Cfilter类的头文件filter.h开头添加 #include “Interface.h” 。
3、在Cfilter类的声明中继承这个接口 CFilter:public Interface。
4、在Cfilter类的声明中增加Interface接口的函数的声明:
//--------Interface methods----------
STDMETHODIMP SetServerAddr(char* inIP, int inPort);
5、在Cfilter类的定义中实现Interface接口的函数的定义:
//-----------------------Interface methods-----------------------------
STDMETHODIMP CFilter::SetServerAddr(char* inIP, int inPort)
{
……
return S_OK;
}
6、最后别忘了,在CFilter::NonDelegatingQueryInterface函数中添加两行代码,用来向外界暴露该接口:
// Basic COM - used here to reveal our own interfaces
STDMETHODIMP CFilter::NonDelegatingQueryInterface(REFIID riid, void ** ppv)
{
……
if (riid == IID_Interface)
return GetInterface((Interface *) this, ppv);
……
}
至此,filter的接口添加完毕。如果其它应用程序想要用这个接口,那么就像使用其它com组件一样。1、把Interface.h添加到工程里。2、使用前添加 #include “Interface.h”。3、在成功添加filter之后,使用QueryInterface函数获得接口指针即可使用。
相关文章推荐
- 如何给filter添加自定义接口及调用 分类: DirectX 2014-10-24 14:47 455人阅读 评论(0) 收藏
- DirectX:在graph自动连线中加入自定义filter(graph中遍历filter) 分类: DirectX 2014-10-30 09:39 524人阅读 评论(0) 收藏
- 如何注册Filter 分类: DirectX 2014-09-22 17:31 415人阅读 评论(0) 收藏
- directshow filter中添加属性页 分类: DirectX 2014-09-22 18:02 457人阅读 评论(0) 收藏
- 如何创建Filter的属性页 分类: DirectX 2014-10-17 17:32 550人阅读 评论(0) 收藏
- DirectShow基础编程 最简单transform filter 编写步骤 分类: DirectX 2014-10-25 15:03 462人阅读 评论(0) 收藏
- 如何使用系统设备枚举器 分类: DirectX 2013-11-15 16:03 707人阅读 评论(0) 收藏
- 查找IFileSourceFilter上的Pin 分类: DirectX 2014-10-27 18:19 433人阅读 评论(0) 收藏
- directX播放程序 分类: DirectX 2014-09-20 08:49 499人阅读 评论(0) 收藏
- Filter的注册2 分类: DirectX 2014-09-22 17:41 451人阅读 评论(0) 收藏
- 如何把任意文件隐藏在一张图片里? 分类: DirectX 2013-11-15 16:05 524人阅读 评论(0) 收藏
- DirectX:函数可以连接任意两个filter 分类: DirectX 2014-10-27 19:20 466人阅读 评论(0) 收藏
- directX根据设备类GUID查询所属的filter 分类: DirectX 2014-09-20 08:34 501人阅读 评论(0) 收藏
- DirectShow中写push模式的source filter流程 + 源代码(内附详细注释) 分类: DirectX 2014-10-08 18:01 564人阅读 评论(0) 收藏
- 获取Filter的三种途径 分类: DirectX 2014-10-09 17:47 438人阅读 评论(0) 收藏
- 如何在Eclipse中查看Android API源码以及support包源码 分类: H1_ANDROID 2013-11-12 22:32 626人阅读 评论(0) 收藏
- 利用 DirectShow 开发自己的 Filter 分类: DirectX 2013-11-15 16:01 686人阅读 评论(0) 收藏
- COM编程入门第一部分——什么是COM,如何使用COM 分类: com技术 2013-09-30 08:19 565人阅读 评论(0) 收藏
- 如何解决安卓SDK无法下载Package的问题 分类: H1_ANDROID 2013-09-09 10:26 1199人阅读 评论(0) 收藏
- Com原理及應用——Com對象和接口 分类: com技术 2013-09-30 08:20 641人阅读 评论(0) 收藏