LoadTypeLibWithResolver 函数

加载类型库并使用提供的 ITypeLibResolver 接口解析任何内部引用的类型库。

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

参数

  • szFile
    [in] 该类型库的文件路径。

  • regkind
    [in] 一个控制类型库如何注册的 REGKIND Enumeration 枚举标志。 其可能值如下:

    • 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 接口实现。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**TlbRef.h

**库:**TlbRef.lib

**.NET Framework 版本:**3.5、3.0、2.0

请参见

参考

LoadTypeLibEx Function

其他资源

Tlbexp 帮助器函数(非托管 API 参考)