Resumo
Um controlo ActiveX tem de implementar a interface IProvideClassInfo ou IProvideClassInfo2 para activar o processamento de eventos numa página Web. Microsoft Internet Explorer utiliza esta interface para obter a biblioteca de tipos para o controlo e determinar o conjunto de eventos disponíveis.
Mais Informações
Utilizando uma linguagem de script, como VBScript ou JavaScript, um autor da página Web pode utilizar a automatização para invocar métodos/propriedades e processar eventos para um controlo ActiveX colocada na página com uma tag HTML < OBJECT >. Para um controlo ActiveX suportar esse processamento de eventos, tem de implementar a interface IProvideClassInfo ou IProvideClassInfo2. Internet Explorer consulta o controlo para estas interfaces e, se implementada, chama o método de GetClassInfo() para obter a biblioteca de tipos para o controlo. Internet Explorer inicialmente irá consultar o controlo IProvideClassInfo2 e, se não for implementada, em seguida, irá consultar para IProvideClassInfo.The IProvideClassInfo2 interface deriva de IProvideClassInfo e fornece um método adicional, GetGUID() , que devolve um objecto da saída interface ID de evento conjunto predefinido. Para controlos de ActiveX desenvolvidos utilizando o Microsoft Foundation Classes, a interface de IProvideClassInfo2 é implementada por predefinição. Para controlos de ActiveX desenvolvidos utilizando o Microsoft Visual Basic, a interface de IProvideClassInfo é implementada por predefinição. Quando utilizar o Microsoft Active modelo de biblioteca (ATL), versão 3.0, os seguintes objectos ATL 'controlo lite' não implementa a interface de IProvideClassInfo2 por predefinição:
-
Objecto Simple
-
Objecto do Internet Explorer
-
Controlo Lite
-
Controlo composto Lite
-
Controlo de HTML Lite
Pode facilmente adicionar suporte para processamento por implementar as interfaces de IProvideClassInfo de eventos. Isto é feito por decorrentes do controlo da implementação ATL predefinida, a IProvideClassInfo2Impl.
-
Adicione a seguinte linha à lista de derivação de classe:
public IProvideClassInfo2Impl<&CLSID_<object_name>, NULL, &LIBID_<project_name>Lib>
-
Adicione as seguintes linhas para o COM_MAP:
COM_INTERFACE_ENTRY(IProvideClassInfo) COM_INTERFACE_ENTRY(IProvideClassInfo2)
Referências
Para mais informações sobre a biblioteca de modelos activa e execução controlos ActiveX, consulte a documentação do Microsoft Visual C++ Online. Para mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, visite os seguintes Web sites da Microsoft:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep(c) 1999 Microsoft Corporation, todos os direitos reservados. Contribuições marca Davis, Microsoft Corporation.