Interfaces necessárias (COM)
A tabela abaixo lista as interfaces de contêiner de controle ActiveX e indica quais interfaces são opcionais e quais são obrigatórias e devem ser implementadas por contêineres de controle.
Interface | Obrigatório? | Comentários |
---|---|---|
IOleClientSite |
Sim |
|
IAdviseSink |
Não |
Somente quando o contêiner deseja (a) notificações de alteração de dados (controles com IDataObject), (b) exibir notificação de alteração (controles que não estão ativos e têm IViewObject ou IViewObject2) e (c) outras notificações de controles que atuam como objetos incorporados padrão. |
IOleInPlaceSite |
Sim |
|
IOleControlSite |
Sim |
|
IOleInPlaceFrame |
Sim |
|
IOleContainer |
Sim |
Ver nota 1 |
IDispatch para propriedades de ambiente |
Sim |
Consulte a nota 2 e Propriedades do ambiente para controles |
Conjuntos de eventos de controle |
Sim |
Confira a observação 2 |
ISimpleFrameSite |
Não |
ISimpleFrameSite e suporte para quadros simples aninhados é opcional. |
IPropertyNotifySink |
Não |
Necessário apenas para contêineres que (a) têm sua própria interface do usuário de edição de propriedade, o que exigiria atualização sempre que um controle alterasse uma propriedade ou (b) desejasse controlar as alterações de propriedade [requestedit] e outros recursos de vinculação de dados. |
IErrorInfo |
Sim |
Obrigatório se o contêiner suportar interfaces duplas. Ver nota 2. |
IClassFactory2 |
Não |
O suporte é altamente recomendado. |
- IOleContainer é implementado no documento ou objeto de formulário (ou analógico apropriado) que contém os sites de contêiner. Os controles usam IOleContainer para navegar para outros controles no mesmo documento ou formulário.
- O suporte para interfaces duplas não é obrigatório, mas é altamente recomendado. Escrever contêineres de controle ActiveX para tirar proveito de interfaces duplas proporcionará melhor desempenho com controles que oferecem suporte a interface dupla.
Os contêineres de controle ActiveX devem oferecer suporte a exceções de automação OLE. Se um contêiner de controle oferecer suporte a interfaces duplas, ele deverá capturar exceções de automação por meio do IErrorInfo.