Visual Basic では、タイプ ライブラリを持つ COM オブジェクトへの参照を追加するには、COM ライブラリの相互運用機能アセンブリを作成する必要があります。 COM オブジェクトのメンバーへの参照は相互運用機能アセンブリにルーティングされ、実際の COM オブジェクトに転送されます。 COM オブジェクトからの応答は相互運用機能アセンブリにルーティングされ、.NET Framework アプリケーションに転送されます。
.NET アセンブリに COM オブジェクトの型情報を埋め込むことで、相互運用機能アセンブリを使用せずに COM オブジェクトを参照できます。 型情報を埋め込むには、 Embed Interop Types
プロパティを COM オブジェクトへの参照の True
に設定します。 コマンド ライン コンパイラを使用してコンパイルする場合は、 /link
オプションを使用して COM ライブラリを参照します。 詳細については、「 -link (Visual Basic)」を参照してください。
統合開発環境 (IDE) からタイプ ライブラリへの参照を追加すると、Visual Basic によって相互運用機能アセンブリが自動的に作成されます。 コマンド ラインから作業するときは、Tlbimp ユーティリティを使用して相互運用機能アセンブリを手動で作成できます。
COM オブジェクトへの参照を追加するには
[ プロジェクト ] メニューの [ 参照の追加 ] を選択し、ダイアログ ボックスの [ COM ] タブをクリックします。
COM オブジェクトの一覧から使用するコンポーネントを選択します。
相互運用機能アセンブリへのアクセスを簡略化するには、COM オブジェクトを使用するクラスまたはモジュールの先頭に
Imports
ステートメントを追加します。 たとえば、次のコード例では、INKEDLib
ライブラリで参照されているオブジェクトの名前空間Microsoft InkEdit Control 1.0
をインポートします。Class Sample 'Private s As IInkCursor End Class
Tlbimp を使用して相互運用機能アセンブリを作成するには
Tlbimp の場所を検索パスに追加します(まだ検索パスの一部ではなく、現在その場所にあるディレクトリに存在しない場合)。
コマンド プロンプトから Tlbimp を呼び出し、次の情報を指定します。
タイプ ライブラリを含む DLL の名前と場所
情報を配置する名前空間の名前と場所
ターゲット相互運用機能アセンブリの名前と場所
次にコード例を示します。
Tlbimp test3.dll /out:NameSpace1 /out:Interop1.dll
Tlbimp を使用すると、登録されていない COM オブジェクトの場合でも、タイプ ライブラリの相互運用機能アセンブリを作成できます。 ただし、相互運用機能アセンブリによって参照される COM オブジェクトは、使用するコンピューターに適切に登録する必要があります。 COM オブジェクトは、Windows オペレーティング システムに含まれている Regsvr32 ユーティリティを使用して登録できます。
こちらも参照ください
.NET