2011-08-08 8 views

답변

3

예외가 myWebBrowser2 유형 'System.Windows.Controls.WebBrowser'의 있음을 알려줍니다에 유형 'System.Windows.Controls.WebBrowser을'변환 할 수 없습니다. 그러나이 예제에서는 'SHDocVw.IWebBrowser2'유형입니다.

[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); 
... 

그리고 myWebBrowser2 상호 작용에 대한 준비가되어 있습니다 : 그것은 당신이 그들이 WPF WebBrowser 컨트롤에서 IWebBrowser2를 추출 부분을 건너 뛸 것 같다 (이 예 'myWebBrowser'에서 귀하의 웹 브라우저 컨트롤입니다).

관련 문제