1、引用system32中的SHDocVw.dll
2、引用命名空间
using System.Runtime.InteropServices;
using SHDocVw;
3、在所在的类定义变量
代码
[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 " );
[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 " );
4、打印方法
代码
IServiceProvider serviceProvider
=
null
;
if (webbrowse.Document != null )
{
serviceProvider = (IServiceProvider)webbrowse.Document;
}
Guid serviceGuid = SID_SWebBrowserApp;
Guid iid = typeof (SHDocVw.IWebBrowser2).GUID;
SHDocVw.IWebBrowser2 myWebBrowser2 = (SHDocVw.IWebBrowser2)serviceProvider.QueryService( ref serviceGuid, ref iid);
object NullValue = null ;
myWebBrowser2.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER, ref NullValue, ref NullValue);
if (webbrowse.Document != null )
{
serviceProvider = (IServiceProvider)webbrowse.Document;
}
Guid serviceGuid = SID_SWebBrowserApp;
Guid iid = typeof (SHDocVw.IWebBrowser2).GUID;
SHDocVw.IWebBrowser2 myWebBrowser2 = (SHDocVw.IWebBrowser2)serviceProvider.QueryService( ref serviceGuid, ref iid);
object NullValue = null ;
myWebBrowser2.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER, ref NullValue, ref NullValue);