Share via


LoadTypeLib 函式 (oleauto.h)

載入並註冊類型連結庫。

語法

HRESULT LoadTypeLib(
  LPCOLESTR szFile,
  ITypeLib  **pptlib
);

參數

szFile

方法應該嘗試載入類型庫的檔名。

pptlib

載入的類型連結庫。

傳回值

此函式可以傳回下列其中一個值。

傳回碼 Description
S_OK
成功。
E_INVALIDARG
一或多個自變數無效。
E_OUTOFMEMORY
記憶體不足,無法完成作業。
TYPE_E_IOERROR
函式無法寫入到檔案。
TYPE_E_INVALIDSTATE
無法開啟型別程式庫。
TYPE_E_INVDATAREAD
函式無法從檔案讀取。
TYPE_E_UNSUPFORMAT
類型連結庫具有較舊的格式。
TYPE_E_UNKNOWNLCID
在 OLE 支援的 DLL 中找不到 LCID。
TYPE_E_CANTLOADLIBRARY
無法載入型別程式庫或 DLL。

備註

LoadTypeLib 函式會載入類型庫 (通常會使用儲存在指定檔案中的 MkTypLib) 建立。 如果 szFile 只指定不含任何路徑的檔名, LoadTypeLib 會搜尋檔案並繼續進行,如下所示:

  • 如果檔案是由 Typelib.dll 實作的獨立類型連結庫,則會直接載入連結庫。
  • 如果檔案是 DLL 或可執行檔,則會載入它。 根據預設,類型庫會從 ITypeLib類型的第一個資源擷取。 若要載入不同類型的連結庫資源,請將整數索引附加至 szFile。 例如:
    ITypeLib *ptlib;
    LoadTypeLib("C:\\MONTANA\\EXE\\MFA.EXE\\3", &ptlib)
    

    此語句會從檔案 Mfa.exe 檔案載入類型庫資源 3。

  • 如果檔案不是上述的,檔名會剖析成Moniker (代表檔案連結來源) 的物件,然後系結至Moniker。 此方法可讓 LoadTypeLib 用於外部類型庫,包括記憶體內部類型庫。 外部類型連結庫不能位於 DLL 或可執行檔中。 如需Moniker的詳細資訊,請參閱 COM 程式設計人員參考。
如果已經載入類型庫, LoadTypeLib 會遞增類型庫的參考計數,並傳回類型庫的指標。

為了回溯相容性,如果 szFile 參數中未指定路徑,LoadTypeLib 將會註冊類型庫。 如果指定類型連結庫的路徑,LoadTypeLib 將不會註冊類型庫。 建議使用 RegisterTypeLib 來註冊類型庫。

規格需求

需求
目標平台 Windows
標頭 oleauto.h
程式庫 OleAut32.lib
Dll OleAut32.dll