webBrowser中的问题,BHO、DispId的问题,做过的进来
这2段是从某个国外牛人写的代码中抄袭出来的,可以正常运行		   
 //   COM   Event   Handler   for   HTML   Element   Events 
 		[DispId(0)] 
 		public   void   DefaultMethod() 
 		{ 
 			//   obtain   the   event   object   and   ensure   a   context   menu   has   been   applied   to   the   document 
 			HtmlEventObject   eventObject   =   document.parentWindow.@event; 
 			string   eventType   =   eventObject.type;   
 			//   Call   the   custom   Web   Browser   HTML   event    
 			ContextMenuShow(this,   eventObject);   
 		}   //DefaultMethod     
 private   void   BrowserDocumentComplete(object   sender,   AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent   e) 
 		{ 
 			//   get   access   to   the   HTMLDocument 
 			document   =   (HtmlDocument)this.axWebBrowser1.Document; 
 			//   add   style   sheet   link 
 			string   href   =   Path.GetTempPath()   +    "/StyleMain.css "; 
 			LinkStyleSheet(href);   
 			body   =   (HtmlBody)document.body;   
 			//   COM   Interop   Start 
 			//   once   browsing   has   completed   there   is   the   need   to   setup   some   options 
 			//   need   to   ensure   URLs   are   not   modified   when   html   is   pasted 
 			IOleCommandTarget   target   =   null; 
 			int   hResult   =   HRESULT.S_OK; 
 			//   try   to   obtain   the   command   target   for   the   web   browser   document 
 			try 
 			{ 
 				//   cast   the   document   to   a   command   target 
 				target   =   (IOleCommandTarget)document; 
 				//   set   the   appropriate   no   url   fixups   on   paste 
 				hResult   =   target.Exec(ref   CommandGroup.CGID_MSHTML,   (int)CommandId.IDM_NOFIXUPURLSONPASTE,   (int)CommandOption.OLECMDEXECOPT_DONTPROMPTUSER,   ref   EMPTY_PARAMETER,   ref   EMPTY_PARAMETER); 
 			} 
 				//   catch   any   exception   and   map   back   to   the   HRESULT 
 			catch   (Exception   ex) 
 			{ 
 				hResult   =   Marshal.GetHRForException(ex); 
 			} 
 			//   test   the   HRESULT   for   a   valid   operation 
 			if   (hResult   ==   HRESULT.S_OK) 
 			{ 
 				//   urls   will   not   automatically   be   rebased 
 				rebaseUrlsNeeded   =   false; 
 			} 
 			else 
 			{ 
 				//throw   new   HtmlEditorException(string.Format( "Error   executing   NOFIXUPURLSONPASTE:   Result   {0} ",   hResult)); 
 				rebaseUrlsNeeded   =   true; 
 			} 
 			//   COM   Interop   End   
 			//   at   this   point   the   document   and   body   has   been   loaded 
 			//   so   define   the   event   handler   as   the   same   class 
 			//document.oncontextmenu   =   this; 
 			((mshtml.DispHTMLDocument)document).oncontextmenu   =   this; 
 //   这句话是我加的,他只能相应DisoId(0)的方法 
 			((mshtml.DispHTMLDocument)document).ondblclick   =   this; 
 			//   complete