ShellUIHelper

IE7 では、ShellUIHelper に検索プロバイダの登録機能などを定義している IShellUIHelper2 が追加実装されているので SHDocVw が次のようになる。Guid は A7FE6EDA-1932-4281-B881-87B31B8BC52C である。 using System.Runtime.InteropServices; namespace SHDocVw { \[Guid("A7FE6EDA-1932-4281-B881-87B31B8BC52C")\] \[CoClass(typeof(ShellUIHelperClass))\] public interface ShellUIHelper : IShellUIHelper2 { } } このインスタンスをIE6環境で生成しようとすると、IShellUIHelper2 がないため InvalidCastException で落ちる。そのため、個別に COM コクラスを定義する。以前のGuid は、64AB4BB7-111E-11D1-8F79-00C04FC2FBE1 である。 using System.Runtime.InteropServices; namespace net.tilfin { \[ComImport(), Guid("64AB4BB7-111E-11D1-8F79-00C04FC2FBE1")\] public class ShellUIHelper { } } 「お気に入りの整理」を呼び出すサンプル .NET 2.0 で IDocHostUIHandler ではなくそこから参照している MSHTML をロード後に ShowBrowserUI や IE コンポーネントで印刷機能がなぜか効かなくなる。(調査中) object oHelper = new net.tilfin.ShellUIHelper(); SHDocVw.IShellUIHelper helper = (SHDocVw.IShellUIHelper)oHelper; helper.ShowBrowserUI("OrganizeFavorites", ref arg);

2007年5月11日 · Toshimitsu Takahashi