2011-01-06 44 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