我们在我们的应用程序中使用第三方ActiveX控件,最近根据我们的要求,他们在ActiveX控件界面中添加了新功能,我们正试图在我们的应用程序中访问这些功能。由于某种原因,我们有可能无法部署我们的第三方ActiveX控件,但我们正在部署我们的应用程序。所以旧的第三方ActiveX没有新功能,但我们正在使用这些功能的应用程序正在尝试访问新功能。因为我们正在获得一些不一致的行为lIke崩溃或消息错误框。 所以我们想了解在我们的应用程序中是否有任何方法可以确定是否存在第三方ActiveX控件的功能?因此,我们希望避免调用这些函数。 感谢。
答案 0 :(得分:1)
好吧,您可以获取类型库信息并尝试阅读并遍历它以确定该函数是否存在。
或者,您可以通过IDispatch :: Invoke调用该函数,看看它是否失败。如果失败,请不要再次调用它并调用回退功能。
那么,两个不同的接口没有单独的Guid?从技术上讲,它应该......但有时供应商不会为更新的接口提供新的Guid ....我请求第5次。
它应该工作的方式是你想要的接口的QueryInterface并使用它。