loadTypeLib 函数 (oleauto.h)

加载并注册类型库。

语法

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

参数

szFile

方法应尝试从中加载类型库的文件的名称。

pptlib

加载的类型库。

返回值

此函数可以返回其中一个值。

返回代码 说明
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。

  • 如果文件不是上述名称,则将文件名解析为名字对象 (表示基于文件的链接源) 的对象,然后绑定到名字对象。 此方法允许对外部类型库(包括内存中类型库)使用 LoadTypeLib 。 外部类型库不能驻留在 DLL 或可执行文件中。 有关名字对象的详细信息,请参阅 COM 程序员参考。
如果已加载类型库, LoadTypeLib 将递增类型库的引用计数,并返回指向类型库的指针。

为了向后兼容,如果未在 szFile 参数中指定路径,LoadTypeLib 将注册类型库。 如果指定了类型库的路径,LoadTypeLib 将不会注册类型库。 建议使用 RegisterTypeLib 注册类型库。

要求

要求
目标平台 Windows
标头 oleauto.h
Library OleAut32.lib
DLL OleAut32.dll