Postupy: Jímka spravovaných událostí jazyka C# v aplikaci Internet Explorer skript

Překlady článku Překlady článku
ID článku: 313891 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek ukazuje, jak umyvadlo spravované události z klientů Component Object Model (COM) (nespravovaný kód) při psaní ovládací prvky .NET Windows. Například můžete umyvadlo spravované události z klientů COM při spuštění skriptu v aplikaci Internet Explorer.

Informace o zápisu a použití spravovaných typů z COM naleznete v dokumentaci následující Microsoft .NET Framework Developer's Guide:
Exposing .NET Framework Components to COM (Zpřístupnění komponent technologie .NET Framework modelu COM)
http://msdn2.microsoft.com/en-us/library/zsfww439(vs.71).aspx

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a požadované aktualizace Service Pack:
  • Microsoft Visual Studio .NET
  • Microsoft Internet Explorer verze 5.5 nebo vyšší (programovací)

Spravované kroky jímka událostí Internet Explorer skript

  1. Vytvořit vlastní ovládací prvek model Windows Forms:
    1. Spusťte aplikaci Visual Studio .NET.
    2. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt.
    3. V dialogovém okně Nový projekt klepněte v části Typy projektuVisual C# projekty a v části šablony klepněte na položku Windows Control Library.
  2. Definujte zdrojové rozhraní událostí být vystavena.
  3. Zdrojové rozhraní přidejte třídu GuidAttribute. Je třeba formátovat řetězec předat atribut jako argument přijatelné konstruktoru typu GUID. Vytvořit nepoužívané GUID pomocí souboru Guidgen.exe.
    [GuidAttribute("0422D916-C11A-474e-947D-45A107038D12") ]
        
        public interface ControlEvents 
    
    		
        {
            //  Insert code here.
        }
    					
  4. Přidejte atribut InterfaceType zdrojové rozhraní vystavit COM jako rozhraní IDispatch:
    [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
        public interface ControlEvents 
    
    		
        {
           
            // Insert code here.
        }
    					
  5. Přidat DispIdAttribute žádné členy zdrojového rozhraní určíte identifikátor dispatch COM (DISPID) metody nebo pole:
    public interface ControlEvents 
    	
        {
            [DispIdAttribute(0x60020000)]
            void ClickEvent(int x, int y);
        }
    					
  6. Vytvořit nový typ události zalomení požadované události vystavit.
  7. Implementujte zdrojové rozhraní na vlastní ovládací prvek model Windows Forms
  8. Přidáním atributu ComSourceInterfaces k ovládacímu prvku určete seznam rozhraní, která jsou zpřístupněna jako zdroje událostí COM prvku:
    [ClassInterface(ClassInterfaceType.None),ComSourceInterfaces(typeof(ControlEvents))]
    	public class MyWindowControl : System.Windows.Forms.UserControl 
        {
    
          // Insert code here.
        }
    					
  9. Zkompilujte ovládací prvek jako soubor dynamické knihovny (DLL).
  10. Vytvořte blok skriptu na stránce HTML zachytávat událost. Například:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=iso-8859-1' />
    
    <HTML>
    	<HEAD>
    		<TITLE>Sink managed event in Internet Explorer</TITLE>
    		
    		
    	</HEAD>
    	
    	<BODY>
    		
    		<OBJECT id="ctrl" classid="YourDllName.dll#ActiveXSourcing.MyWindowControl">
    		</OBJECT>
    		<SCRIPT LANGUAGE="JScript">
                function ctrl::ClickEvent(a,b)
                {
                    alert("MyWindowControl_ClickEvent");
                }
    		</SCRIPT>
    		
    	</BODY>
    </HTML>
    					
  11. V jakémkoli systému klienta pomocí nástroje .NET Framework Configuration (Mscorcfg.msc) udělit sestavení jednotlivých oprávnění, které jsou požadovány.

Úplný výpis kódu

using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace ActiveXSourcing
{
	public delegate void ClickEventHandler(int x, int y); 

	//Source interface for events to be exposed.
	//Add GuidAttribute to the source interface to supply an explicit System.Guid.
	//Add InterfaceTypeAttribute to indicate that interface is IDispatch interface.
	[GuidAttribute("0422D916-C11A-474e-947D-45A107038D12") ]
	[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
	public interface ControlEvents 

		//Add a DisIdAttribute to any members in the source 
		//interface to specify the COM DispId.
	{
		[DispIdAttribute(0x60020000)]
		void ClickEvent(int x, int y);
	}

	//Add a ComSourceInterfaces attribute to the control to 
	//identify the list of interfaces that are exposed as COM event sources. 
	[ClassInterface(ClassInterfaceType.None),ComSourceInterfaces(typeof(ControlEvents))]
	public class MyWindowControl : System.Windows.Forms.UserControl 
		//, ComInteropControlInterface
	{
        System.Windows.Forms.TextBox tx = new TextBox();

		private void InitializeComponent()
		{
			
			this.Name = "MyWindowControl";

		}
	
		event ActiveXSourcing.ClickEventHandler ClickEvent;
    	
		public MyWindowControl() : base()
		{				               

			initMyWindowControl();

		}
        
		private void initMyWindowControl() 
		{

			Size = new System.Drawing.Size(300, 50);
			tx.Text = "Click on the TextBox to invoke  'ClickEvent'";
			tx.Size = this.Size;                  
			tx.Click += new System.EventHandler(ClickHandler);
			this.Controls.Add(tx);
			
		}
            
        
		private void ClickHandler(object sender, System.EventArgs e)
		{
			if (ClickEvent != null) 
			{
				ClickEvent(0, 0);
			}
		}
	}
}
				

Odkazy

Další informace naleznete na následujících webech společnosti Microsoft:
Zpracování a zvýšení události
http://msdn2.microsoft.com/en-us/library/edzehd2t(vs.71).aspx

Konfigurační nástroj .NET framework (Mscorcfg.msc)
http://msdn2.microsoft.com/en-us/library/2bc0cxhc(vs.71).aspx

Spolupráce s nespravovaným kódem.
http://msdn2.microsoft.com/en-us/library/sd10k43k(vs.71).aspx

Hostitel Secure, Lightweight prvky na straně klienta v aplikaci Microsoft Internet Explorer
http://msdn.microsoft.com/msdnmag/issues/02/01/UserCtrl/default.aspx
Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
316510Chyba: Výjimka zabezpečení při použití obslužných rutin událostí v aplikaci Internet Explorer

Vlastnosti

ID článku: 313891 - Poslední aktualizace: 17. května 2007 - Revize: 3.4
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Internet Explorer 5.5
Klíčová slova: 
kbmt kbcominterop kbhowto kbhowtomaster kbsample KB313891 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:313891

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com