しかし、同じインターフェースが.NETで定義されています
.NET では定義されていません。shdocvw.dll への参照を追加することで取得できます。Visual Studio は、その DLL に埋め込まれているタイプ ライブラリを読み取り、そこから相互運用ライブラリを生成しました。Tlbimp.exe と同じことです。これが、COM 相互運用が基本レベルでどのように機能するかです。
.NET フレームワーク アセンブリで既に宣言されている COM インターフェイス型がいくつかあり、そのほとんどは System.Runtime.InteropServices.ComTypes 名前空間にあります。.NET 自体が作業を完了するために必要な非常に基本的なもの。これらは MSDN で文書化されているため、MSDN をすばやく検索するだけでそれらを見つけることができます。そして、.NET ラッパー クラスを機能させるためだけにあるinternalのものがたくさんあります。参照ソースまたは逆コンパイラでしかそれらを見つけることができませんでした。それ以外の場合は、コピー/貼り付け以外には役に立ちません。
COM インターフェイスの型を自分で宣言することは危険な冒険であり、常に避ける必要があります。小さな間違いが原因で、実行時エラーの診断が非常に困難で困難になります。またはエラーなし、最悪の種類。shdocvw.dll で行ったように、タイプ ライブラリがある場合は常にインポートすることをお勧めします。タイプ ライブラリは、間違いを避けるように設計されています。タイプ ライブラリがない場合は、グーグル コードが次善の策です。もちろん、SOでそれについて尋ねます。