Sammanfattning
En ActiveX-kontroll måste implementera gränssnittet IProvideClassInfo eller IProvideClassInfo2 om du vill aktivera händelsehantering på en webbsida. Microsoft Internet Explorer använder gränssnittet för att hämta typbibliotek för kontroll och bestämma vilka tillgängliga händelserna.
Mer information
Med hjälp av ett skriptspråk, till exempel VBScript eller JavaScript, kan en webbsida författare använda automation för att anropa metoder/egenskaper och hantera händelser för en ActiveX-kontroll som placeras på sidan med en HTML-koden < OBJECT >-tagg. Det måste implementera gränssnittet IProvideClassInfo eller IProvideClassInfo2 för en ActiveX-kontroll att stödja sådana händelsehantering. Internet Explorer frågar kontroll för dessa gränssnitt och om genomförs, anropar metoden GetClassInfo() för att hämta typbibliotek för kontrollen. Internet Explorer efterfrågas först kontrollen för IProvideClassInfo2 och, om detta inte är implementerat kommer sedan fråga efter IProvideClassInfo.The IProvideClassInfo2 gränssnitt som härleds från IProvideClassInfo och ger ytterligare en metod, GetGUID() , som returnerar ett objekt utgående gränssnitts-ID för den händelse standarduppsättningen. För ActiveX-kontroller som utvecklats med Microsoft Foundation Classes, implementeras gränssnittet IProvideClassInfo2 som standard. För ActiveX-kontroller som utvecklats med Microsoft Visual Basic, implementeras gränssnittet IProvideClassInfo som standard. När du använder en Microsoft ATL Active Template Library (), version 3.0, implementerar följande ”lite kontroll” ATL objekt inte gränssnittet IProvideClassInfo2 som standard:
-
Simple Object
-
Internet Explorer-objekt
-
Lite kontroll
-
Lite sammansatt kontroll
-
Lite HTML-kontroll
Du kan enkelt lägga till stöd för händelsehantering som implementerar gränssnittet IProvideClassInfo. Detta görs genom som följer kontrollen av ATL standardimplementeringen, IProvideClassInfo2Impl.
-
Lägg till följande rad i listan klass härledning:
public IProvideClassInfo2Impl<&CLSID_<object_name>, NULL, &LIBID_<project_name>Lib>
-
Lägg till följande rader i din COM_MAP:
COM_INTERFACE_ENTRY(IProvideClassInfo) COM_INTERFACE_ENTRY(IProvideClassInfo2)
Referenser
Mer information om Active Template Library och implementera ActiveX-kontroller finns i dokumentationen till Microsoft Visual C++ Online. För mer information om hur du utvecklar webbaserade lösningar för Microsoft Internet Explorer finns på följande Microsoft-webbplatser:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep(c) Microsoft Corporation 1999, alla rättigheter förbehålles. Bidrag av märket Davis, Microsoft Corporation.