检查接口实现

当前位置:首页>EventApp>检查接口实现

检查接口实现

作用:检查对象是否实现了某个接口

__declspec(dllexport) HRESULT CALLING_CONV CheckObjectInterface(

    IDispatch* pObj,

    BSTR interfaceName,

    VARIANT_BOOL* pResult)


Function CheckObjectInterface(pObj As Object, interfaceName As String) As Boolean

目前仅支持interfaceName,例如IUnknown/IDispatch/IProvideClass/IConnectionPoint等

后台检查逻辑:

1、先检查常用接口表,这个在dll里内置了

2、然后查注册表

3、然后QueryInterface(这个也就是核心了)

4、也会从obj对应的TypeLib中去查找


之前有写过支持iid的,后来可能是不小心裁减掉了


调用:

Debug.Print CheckObjectInterface(CreateObject("vbscript.regexp"), "IDispatch")