如何使用ITypeInfo指针获取类型的名称?

Pet*_*man 8 com automation

应该是一个简单的问题,但搜索文档让我疯了.假设我有一个coclass或接口的ITypeInfo指针.如何获取该类或接口的名称?

Pet*_*man 7

好.事实证明这很简单.您只需要将ITypeInfo.GetDocumentation成员标识设置为MEMBERID_NIL(-1)即可调用该方法.像这样:

CComBSTR typeName;
hr = typeInfo->GetDocumentation( MEMBERID_NIL, &typeName, NULL, NULL, NULL );
Run Code Online (Sandbox Code Playgroud)

如果您使用.NET编程,可以通过以下Marshal.GetTypeInfoName方法为您方便地执行上述操作:

// using System.Runtime.InteropServices;
string typeName = Marshal.GetTypeInfoName(typeInfo);
Run Code Online (Sandbox Code Playgroud)

  • 请记住,我的问题是关于自动化。这是通过 COM 调用接口上的方法的过程,并且完全独立于这些方法的实现。所讨论的组件类和接口具有关联的元数据(可通过 ITypeInfo 访问),并且这确实包括它们的名称。无论如何,感谢您的帮助。我很感激! (2认同)