如何给filter添加自定义接口

简介: <span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;">给一个filter添加接口,步骤如下:</span><p style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-he
给一个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函数获得接口指针即可使用。

相关文章
|
4月前
|
开发框架 JSON 前端开发
利用过滤器Filter和特性Attribute实现对Web API返回结果的封装和统一异常处理
利用过滤器Filter和特性Attribute实现对Web API返回结果的封装和统一异常处理
|
XML Java 应用服务中间件
Filter 过滤器--基本原理--Filter 过滤器生命周期--过滤器链--注意事项和细节--全部应用实例--综合代码示例
Filter 过滤器--基本原理--Filter 过滤器生命周期--过滤器链--注意事项和细节--全部应用实例--综合代码示例
153 0
|
6月前
|
JavaScript 前端开发
filter() 方法使用
filter() 方法使用
44 0
|
Java
Filter概述、接口及配置
Filter概述、接口及配置
10764 0
|
Java 应用服务中间件 Spring
自定义Filter后,我的业务代码怎么被执行了多次?
若要求构建的过滤器针对全局路径有效,且无任何特殊需求(主要针对 Servlet 3.0 的一些异步特性),则完全可直接使用 Filter 接口(或继承 Spring 对 Filter 接口的包装类 OncePerRequestFilter),并使用**@Component** 将其包装为 Spring 中的普通 Bean,也可达到预期需求。
159 0
|
前端开发 Java 应用服务中间件
servlet中的Filter接口(过滤器接口)
servlet中的Filter接口(过滤器接口)
200 0
servlet中的Filter接口(过滤器接口)
|
Java 开发者
使用filter-mapping控制多个Filter的执行顺序| 学习笔记
快速学习使用filter-mapping控制多个Filter的执行顺序。
247 0
使用filter-mapping控制多个Filter的执行顺序| 学习笔记
|
JavaScript 开发者
过滤器-定义私有过滤器|学习笔记
快速学习过滤器-定义私有过滤器
115 0
过滤器-定义私有过滤器|学习笔记
|
Java 开发者
使用filter-mapping控制多个Filter的执行顺序|学习笔记
使用filter-mapping控制多个Filter的执行顺序
使用filter-mapping控制多个Filter的执行顺序|学习笔记