Excel 为什么不';t ITypeInfo::GetIDsOfNames工作吗?

Excel 为什么不';t ITypeInfo::GetIDsOfNames工作吗?,excel,com,excel-automation,com-automation,Excel,Com,Excel Automation,Com Automation,我正在为COM自动化重新编写一些代码。 使用IDispatch Excel客户端(应用程序),我可以评估 idispatch.GetIDsOfNames('Run' 'Macro' 'Arg1' 'Arg2') 它是有效的。它返回一个数组,其中包含Run方法的memberID(此版本中为1925)以及参数宏Arg1和Arg2的索引。 但是,如果我试图从ITypeInfo获取相同的信息,即我通过将GetTypeInfo(0)发送到同一idispatch获得的信息,则会产生错误HRESULT_E_

我正在为COM自动化重新编写一些代码。 使用IDispatch Excel客户端(应用程序),我可以评估

idispatch.GetIDsOfNames('Run' 'Macro' 'Arg1' 'Arg2')
它是有效的。它返回一个数组,其中包含Run方法的memberID(此版本中为1925)以及参数宏Arg1和Arg2的索引。 但是,如果我试图从ITypeInfo获取相同的信息,即我通过将GetTypeInfo(0)发送到同一idispatch获得的信息,则会产生错误HRESULT_E_NOTIMPL。
此函数是否适用于ITypeInfo?表示是…

实现IDispatch的服务器没有义务实现GetTypeInfo()。您应该首先检查GetTypeInfoCount()。当你得到0时,你就完成了。是的,我已经检查过了,它给了我1。此外,ITypeInfo有一个有效的地址,它成功地响应其他消息。我可以从中获得类型属性、函数描述和许多其他内容。只是我不能使用这个特殊的函数,这让我很困惑。