Resumo
Um controle ActiveX deve implementar a interface IProvideClassInfo ou IProvideClassInfo2 para habilitar a manipulação de eventos em uma página da Web. Microsoft Internet Explorer usa essa interface para obter a biblioteca de tipos para o controle e determinar o conjunto de eventos disponíveis.
Informações adicionais
Usando uma linguagem de script, como VBScript ou JavaScript, um autor de página da Web pode usar a automação para invocar métodos/propriedades e manipular eventos para um controle ActiveX colocado na página com uma marca HTML < objeto >. Para um controle ActiveX oferecer suporte a essa manipulação de eventos, ele deve implementar a interface IProvideClassInfo ou IProvideClassInfo2. Internet Explorer consultará o controle para essas interfaces e, se implementada, chama o método GetClassInfo() para obter a biblioteca de tipos para o controle. Internet Explorer consultará inicialmente o controle IProvideClassInfo2 e, se isso não for implementado, em seguida, irá consultar IProvideClassInfo.The IProvideClassInfo2 interface é derivada de IProvideClassInfo e fornece um método adicional, GetGUID() , que retorna um objeto da identificação de evento conjunto padrão de saída. Para controles ActiveX desenvolvidos usando o Microsoft Foundation Classes, a interface IProvideClassInfo2 é implementada por padrão. Para controles ActiveX desenvolvidos usando o Microsoft Visual Basic, a interface IProvideClassInfo é implementada por padrão. Ao usar o Microsoft biblioteca ATL (Active Template), versão 3.0, os seguintes objetos ATL 'lite controle' não implementam a interface IProvideClassInfo2 por padrão:
-
Objeto simples
-
Objeto do Internet Explorer
-
Controle Lite
-
Controle composto Lite
-
Controle HTML Lite
Você pode adicionar facilmente suporte para manipulação de eventos, implementando as interfaces IProvideClassInfo. Isso é feito derivando seu controle a implementação padrão de ATL, IProvideClassInfo2Impl.
-
Adicione a seguinte linha à sua lista de derivação de classe:
public IProvideClassInfo2Impl<&CLSID_<object_name>, NULL, &LIBID_<project_name>Lib>
-
Adicione as seguintes linhas ao seu COM_MAP:
COM_INTERFACE_ENTRY(IProvideClassInfo) COM_INTERFACE_ENTRY(IProvideClassInfo2)
Referências
Para obter mais informações sobre a Active Template Library e Implementando controles ActiveX, consulte a documentação do Microsoft Visual C++ Online. Para obter mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, visite os seguintes sites da Microsoft:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep(c) 1999 Microsoft Corporation todos os direitos reservados. Contribuições por Mark Davis, da Microsoft Corporation.