C# 无法转换类型';System.Windows.Controls.WebBrowser';至';SHDocVw.DWebBrowserEvents';
我从网站上看到了一个例子 在这里,他们使用的语句如下:C# 无法转换类型';System.Windows.Controls.WebBrowser';至';SHDocVw.DWebBrowserEvents';,c#,wpf,C#,Wpf,我从网站上看到了一个例子 在这里,他们使用的语句如下: SHDocVw.DWebBrowserEvents_Event wbEvents = (SHDocVw.DWebBrowserEvents_Event)myWebBrowser2; SHDocVw.DWebBrowserEvents2_Event wbEvents2 = (SHDocVw.DWebBrowserEvents2_Event)myWebBrowser2; 当我编译程序时,我得到以下错误。我遗漏了什么
SHDocVw.DWebBrowserEvents_Event wbEvents = (SHDocVw.DWebBrowserEvents_Event)myWebBrowser2;
SHDocVw.DWebBrowserEvents2_Event wbEvents2 = (SHDocVw.DWebBrowserEvents2_Event)myWebBrowser2;
当我编译程序时,我得到以下错误。我遗漏了什么吗
无法将类型“System.Windows.Controls.WebBrowser”转换为“SHDocVw.DWebBrowserEvents”异常告诉您myWebBrowser2属于类型“System.Windows.Controls.WebBrowser”。但是,在本例中,它的类型为“SHDocVw.IWebBrowser2”。您似乎跳过了他们从WPF WebBrowser控件中提取IWebBrowser2的部分(在本例中,“myWebBrowser”是您的WebBrowser控件): 然后myWebBrowser2就可以进行交互了
[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("6d5140c1-7436-11ce-8034-00aa006009fa")]
internal interface IServiceProvider
{
[return: MarshalAs(UnmanagedType.IUnknown)]
object QueryService(ref Guid guidService, ref Guid riid);
}
static readonly Guid SID_SWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
...
IServiceProvider serviceProvider = (IServiceProvider)myWebBrowser.Document;
Guid serviceGuid = SID_SWebBrowserApp;
Guid iid = typeof(SHDocVw.IWebBrowser2).GUID;
SHDocVw.IWebBrowser2 myWebBrowser2 = (SHDocVw.IWebBrowser2) serviceProvider.QueryService(ref serviceGuid, ref iid);
...