Hvordan du aktiverer hendelseshåndtering for ActiveX-kontroll på en webside


Sammendrag


En ActiveX-kontroll, må implementere grensesnittet IProvideClassInfo eller IProvideClassInfo2 for å aktivere hendelseshåndtering på en webside. Microsoft Internet Explorer bruker dette grensesnittet til å hente typebiblioteket for kontrollen og bestemmer settet med tilgjengelige hendelsen.

Hvis du vil ha mer informasjon


Ved hjelp av et skriptspråk som VBScript eller JavaScript, kan forfatteren av websiden bruke automatisering til å starte metoder/egenskaper og håndtere hendelser for en ActiveX-kontroll som er plassert på siden med en HTML < OBJECT >-kode.

Det må implementere grensesnittet IProvideClassInfo eller IProvideClassInfo2 for en ActiveX-kontroll til å støtte slike hendelseshåndtering. Internet Explorer spør kontrollen for disse grensesnittene og, hvis implementert, kaller GetClassInfo()-metoden for å få typebiblioteket for kontrollen. Internet Explorer spørre først kontrollen for IProvideClassInfo2, og hvis dette ikke er implementert, deretter vil spørre etter IProvideClassInfo.


IProvideClassInfo2-grensesnittet er avledet fra IProvideClassInfo, og gir en ekstra metode, GetGUID(), som returnerer et objekt utgående grensesnitt-ID for den standard hendelsen sett.


IProvideClassInfo2-grensesnittet implementeres for ActiveX-kontroller som er utviklet ved hjelp av Microsoft Foundation Classes, som standard.


IProvideClassInfo-grensesnittet implementeres for ActiveX-kontroller som er utviklet ved hjelp av Microsoft Visual Basic, som standard.


Når du bruker i Microsoft Active Template Library (ATL), versjon 3.0, implementerer følgende 'lite kontroll' ATL objekter ikke grensesnittet IProvideClassInfo2 som standard:
  • Enkelt objekt
  • Internet Explorer-objektet
  • Lite kontroll
  • Lite sammensatt kontroll
  • Lite HTML-kontroll
Du kan enkelt legge til støtte for hendelsesbehandling ved å implementere IProvideClassInfo-grensesnitt. Dette gjøres ved derivert kontrollen fra ATL standardimplementeringen IProvideClassInfo2Impl.


  1. Legg til følgende linje til i listen over klasse-avledning:
       public IProvideClassInfo2Impl<&CLSID_<object_name>, NULL,
    &LIBID_<project_name>Lib>
  2. Legg til følgende linjer i COM_MAP:
       COM_INTERFACE_ENTRY(IProvideClassInfo)
    COM_INTERFACE_ENTRY(IProvideClassInfo2)

Referanser


Hvis du vil ha mer informasjon om Active Template Library og implementering av ActiveX-kontroller, kan du se dokumentasjonen for Microsoft Visual C++ Online.

Hvis du vil ha mer informasjon om hvordan du utvikler Web-baserte løsninger for Microsoft Internet Explorer, kan du gå til følgende Microsoft-webområder:(c) Microsoft Corporation 1999, alle rettigheter forbeholdt. Bidrag fra Mark Davis, Microsoft Corporation.