如何检测COM对象实现的所有接口?

sha*_*oth 7 windows com

消费者有没有办法枚举给定COM对象实现的所有接口?

小智 2

如果您只是想知道消费者可以调用哪些方法,您可以尝试 IDispatch/IDispatchEx。

在 COM 中,IUnknown 上的 QueryInterface 方法不需要公开它可能返回的接口。你根据 IID 来请求一个,然后要么得到,要么得不到。特定 COM 对象中 QI 的实现差异很大,尽管它应该遵循 Microsoft 此处描述的模式 - http://msdn.microsoft.com/en-us/library/ms682521%28VS.85%29.aspx