作用:检查对象是否实现了某个接口
__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")
Copyright © 2025- vba.vip All Rights Reserved.