我想枚举计算机上所有IDispatch支持对象。目前,我需要知道什么是类ID或程序ID,但是,为了检查我的机器,我想知道是否可以枚举实现IDispatch的所有对象。

这有可能吗?

任何帮助将非常感激 :)

最佳答案

这是一个非常奇怪的要求。擦在“所有”规定中。仅通过HKCR \ Typelib键和LoadTypeLib()进行枚举是不够的,不需要COM服务器来发布类型库。实际上,您必须为IDispatch提供CoCreateInstance()以及CoQuery类和QueryInterface。这不仅缓慢,而且有风险。

如果您解释为什么您实际上会考虑这样做,则可能会得到更好的答案。调用IDispatch :: Invoke()时不了解参数的含义或副作用可能是灾难的根源。远离方法名称,例如“ ReformatDrive”。

关于c++ - 枚举计算机上所有IDispatch实现对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1756242/

10-10 07:38