如何给filter添加接口

 给一个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函数获得接口指针即可使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值