タイプ ライブラリを読み込み、提供された 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 |
1 つ以上のポインターが無効です。 |
E_INVALIDARG |
1 つ以上の引数が無効です。 |
TYPE_E_IOERROR |
関数がファイルへの書き込みを実行できませんでした。 |
TYPE_E_REGISTRYACCESS |
システム登録データベースを開けませんでした。 |
TYPE_E_INVALIDSTATE |
タイプ ライブラリを開けませんでした。 |
TYPE_E_CANTLOADLIBRARY |
タイプ ライブラリまたは DLL を読み込めませんでした。 |
解説
Tlbexp.exe (タイプ ライブラリ エクスポーター) は、アセンブリからタイプ ライブラリへの変換プロセス中に LoadTypeLibWithResolver 関数を呼び出します。
この関数は、レジストリへの最小限のアクセス権で、指定されたタイプ ライブラリを読み込みます。 その後、この関数はタイプ ライブラリを調べ、内部的に参照されているタイプ ライブラリを確認します。これらはそれぞれ、親タイプ ライブラリに読み込まれ、追加される必要があります。
参照されているタイプ ライブラリを読み込む前に、その参照ファイルのパスは完全なファイル パスへと解決される必要があります。 これは、ITypeLibResolver インターフェイス (pTlbResolver パラメーターで渡されます) によって提供される ResolveTypeLib メソッドを使って実現されます。
参照されているタイプ ライブラリの完全ファイル パスが確認されたら、LoadTypeLibWithResolver 関数は参照されているタイプ ライブラリを読み込んで親タイプ ライブラリに追加し、結合されたプライマリ タイプ ライブラリを作成します。
内部的に参照されているすべてのタイプ ライブラリを解決して読み込んだら、この関数は解決済みのプライマリ タイプ ライブラリへの参照を pptlib パラメーターで返します。
LoadTypeLibWithResolver 関数は、通常、Tlbexp.exe (タイプ ライブラリ エクスポーター)によって呼び出されます。このツールは、独自の内部的な ITypeLibResolver インターフェイス実装を pTlbResolver パラメーターで提供します。
LoadTypeLibWithResolver を直接呼び出す場合は、独自の ITypeLibResolver インターフェイス実装を提供する必要があります。
必要条件
:「システム要件」を参照してください。
ヘッダー: TlbRef.h
ライブラリ: TlbRef.lib
.NET Framework のバージョン: 3.5, 3.0, 2.0
関連項目
.NET