WPF の WebBrowser コントロールから IWebBrowser2 インタフェースを取得する

ちょっと強引ですが、リフレクションを使って WPF の WebBrowser コントロールから IWebBrowser2 インタフェースを取得できます。

WinForms 版 には ActiveXInstance プロパティがありますが、WPF 版にはそれに相当するものが見当たらないので、これ以外に方法は無さそう。

var nativeBrowser = _webBrowser.GetType().InvokeMember(
    "_axIWebBrowser2",
    BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic,
    null,
    _webBrowser,
    new object[0]) as IWebBrowser2;

IWebBrowser2 インタフェースの定義は Google Code Search などで探して下さい。