LoadTypeLibWithResolver 函式

載入型別程式庫並使用所提供的 ITypeLibResolver interface 來解析任何內部參考的型別程式庫。

語法

HRESULT LoadTypeLibWithResolver(  
    [in]  LPCOLESTR           szFile,  
    [in]  REGKIND             regkind,  
    [in]  ITypeLibResolver   *pTlbResolver,  
    [out] ITypeLib          **pptlib);  

參數

szFile
[in] 型別程式庫的檔案路徑。

regkind
[in] REGKIND 列舉旗標,可控制型別程式庫的註冊方式。 其可能值如下:

  • REGKIND_DEFAULT:使用預設的註冊行為。

  • REGKIND_REGISTER:註冊此型別程式庫。

  • REGKIND_NONE:不要註冊此型別程式庫。

pTlbResolver
[in] ITypeLibResolver 介面實作的指標。

pptlib
[out] 所載入型別程式庫的參考。

傳回值

下表所列的其中一個 HRESULT 值。

傳回值 意義
S_OK 成功。
E_OUTOFMEMORY 記憶體不足。
E_POINTER 一或多個指標無效。
E_INVALIDARG 一或多個引數無效。
TYPE_E_IOERROR 函式無法寫入到檔案。
TYPE_E_REGISTRYACCESS 無法開啟系統註冊資料庫。
TYPE_E_INVALIDSTATE 無法開啟型別程式庫。
TYPE_E_CANTLOADLIBRARY 無法載入型別程式庫或 DLL。

備註

Tlbexp.exe (型別程式庫匯出工具) 會在組件對型別程式庫轉換程序進行期間呼叫 LoadTypeLibWithResolver 函式。

此函式會載入具有最少登錄存取權的指定型別程式庫。 此函式接著會檢查型別程式庫以尋找內部參考的型別程式庫,每個型別程式庫都必須載入並新增至父型別程式庫。

必須先將所參考型別程式庫的參考檔案路徑解析為完整檔案路徑,才能載入所參考的型別程式庫。 這可透過 ITypeLibResolver 介面所提供的 ResolveTypeLib 方法來完成,該介面會在 pTlbResolver 參數中傳遞。

在知道所參考型別程式庫的完整檔案路徑時,LoadTypeLibWithResolver 函式便會將所參考的型別程式庫載入並新增至父型別程式庫,以建立合併的主要型別程式庫。

函式解析並載入所有內部參考的型別程式庫之後,它會傳回 pptlib 參數中主要的已解析型別程式庫的參考。

LoadTypeLibWithResolver 函式通常由 Tlbexp.exe (型別程式庫匯出工具) 呼叫,其會在 pTlbResolver 參數中提供自己的內部 ITypeLibResolver 介面實作。

如果您直接呼叫 LoadTypeLibWithResolver,則必須提供自己的 ITypeLibResolver 介面實作。

規格需求

平台:請參閱系統需求

標頭:TlbRef.h

程式庫:TlbRef.lib

.NET Framework版本:3.5、3.0、2.0

另請參閱