Visual Studio のアドインやマクロのインタフェイスが分かりにくい理由

The Evil EnvDTE Namespace が興味深いです。 Visual Studio のアドインやマクロを何度か作ったことがあるのですが、たくさんの似たようなインタフェイス (EnvDTE.Solution や EnvDTE.Project、EnvDTE.ProjectItem、 EnvDTE80.SolutionFolder、EnvDTE.DTE など) が存在して、最初はどれを使えばいいのかわかりませんでした。ややこしいですよね。

詳細は The Evil EnvDTE Namespace を読んでください。とりあえず、 IVsHierarchy と IVsProject がポイントです。 How to convert from EnvDTE.Project to IVsHierarchy and IVsProject and viceversa も参考になります。