2011-01-06 69 views
1

GetRecordInfoFromGuids要求注册类型库,但我不希望我的注册类型库(项目需求),因为我使用它:替代GetRecordInfoFromGuids - 获取IRecordInfo没有类型库正在注册

#import "ComService.tlb" 

哪有我没有使用GetRecordInfoFromGuids得到IRecordInfo?

+0

我不遵循#import是编译时间。它与是否有帮助在运行时定位.tlb的注册表键无关。 – 2011-01-07 04:00:24

+0

对,#import是早期绑定的。问题是GetRecordInfoFromGuids将查询注册表。 我想直接从我导入的tlb获取记录信息。任何想法如何做到这一点? – 2011-01-07 05:29:33

回答

1

我认为你可以使用GetRecordInfoFromTypeInfo函数。 该函数的第一个参数是指向ITypeInfo接口的指针。

您可以使用LoadTypeLibEx函数手动加载typelib,并找到所需的ITypeInfo指针。

0

一种选择是使用无注册COM。您可以在二进制文件的清单文件中定义COM注册,而不是注册表中的COM注册。我在这种情况下使用了UDT,它工作得很好。看到这个演练:

http://msdn.microsoft.com/en-us/library/ms973913.aspx