LoadTypeLibWithResolver 函数
加载类型库,并使用所提供的 ITypeLibResolver 接口解析任何内部引用的类型库。
语法
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